cleanup some remaining nitc
[nit.git] / c_src / parser.sep.14.c
1 #include "parser.sep.0.h"
2 /* method parser#ReduceAction654#action for (self: ReduceAction654, Parser) */
3 void parser__ReduceAction654__action(val* self, val* p0) {
4 val* var_p /* var p: Parser */;
5 val* var /* : null */;
6 val* var_node_list /* var node_list: nullable Object */;
7 val* var1 /* : nullable Object */;
8 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9 val* var2 /* : nullable Object */;
10 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
11 val* var_tkwsupernode3 /* var tkwsupernode3: nullable Object */;
12 short int var3 /* : Bool */;
13 int cltype;
14 int idtype;
15 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
16 short int var4 /* : Bool */;
17 int cltype5;
18 int idtype6;
19 val* var7 /* : ASuperExpr */;
20 val* var8 /* : null */;
21 val* var_pexprnode1 /* var pexprnode1: nullable ASuperExpr */;
22 long var9 /* : Int */;
23 long var10 /* : Int */;
24 var_p = p0;
25 var = NULL;
26 var_node_list = var;
27 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
28 var_nodearraylist2 = var1;
29 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
30 var_nodearraylist1 = var2;
31 var_tkwsupernode3 = var_nodearraylist1;
32 /* <var_tkwsupernode3:nullable Object> isa nullable TKwsuper */
33 cltype = type_nullable_parser_nodes__TKwsuper.color;
34 idtype = type_nullable_parser_nodes__TKwsuper.id;
35 if(var_tkwsupernode3 == NULL) {
36 var3 = 1;
37 } else {
38 if(cltype >= var_tkwsupernode3->type->table_size) {
39 var3 = 0;
40 } else {
41 var3 = var_tkwsupernode3->type->type_table[cltype] == idtype;
42 }
43 }
44 if (!var3) {
45 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25414);
46 exit(1);
47 }
48 var_pexprsnode4 = var_nodearraylist2;
49 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
50 cltype5 = type_nullable_parser_nodes__AExprs.color;
51 idtype6 = type_nullable_parser_nodes__AExprs.id;
52 if(var_pexprsnode4 == NULL) {
53 var4 = 1;
54 } else {
55 if(cltype5 >= var_pexprsnode4->type->table_size) {
56 var4 = 0;
57 } else {
58 var4 = var_pexprsnode4->type->type_table[cltype5] == idtype6;
59 }
60 }
61 if (!var4) {
62 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25416);
63 exit(1);
64 }
65 var7 = NEW_parser_nodes__ASuperExpr(&type_parser_nodes__ASuperExpr);
66 var8 = NULL;
67 ((void (*)(val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ASuperExpr__init_asuperexpr]))(var7, var8, var_tkwsupernode3, var_pexprsnode4) /* init_asuperexpr on <var7:ASuperExpr>*/;
68 CHECK_NEW_parser_nodes__ASuperExpr(var7);
69 var_pexprnode1 = var7;
70 var_node_list = var_pexprnode1;
71 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction654> */
72 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
73 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
74 RET_LABEL:;
75 }
76 /* method parser#ReduceAction654#action for (self: Object, Parser) */
77 void VIRTUAL_parser__ReduceAction654__action(val* self, val* p0) {
78 parser__ReduceAction654__action(self, p0);
79 RET_LABEL:;
80 }
81 /* method parser#ReduceAction655#action for (self: ReduceAction655, Parser) */
82 void parser__ReduceAction655__action(val* self, val* p0) {
83 val* var_p /* var p: Parser */;
84 val* var /* : null */;
85 val* var_node_list /* var node_list: nullable Object */;
86 val* var1 /* : nullable Object */;
87 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
88 val* var2 /* : nullable Object */;
89 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
90 val* var3 /* : nullable Object */;
91 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
92 val* var4 /* : Array[Object] */;
93 val* var_listnode3 /* var listnode3: Array[Object] */;
94 val* var_tclassidnode4 /* var tclassidnode4: nullable Object */;
95 short int var5 /* : Bool */;
96 int cltype;
97 int idtype;
98 val* var6 /* : AQualified */;
99 val* var_pqualifiednode2 /* var pqualifiednode2: nullable AQualified */;
100 val* var_tkwsupernode5 /* var tkwsupernode5: nullable Object */;
101 short int var7 /* : Bool */;
102 int cltype8;
103 int idtype9;
104 val* var_pexprsnode6 /* var pexprsnode6: nullable Object */;
105 short int var10 /* : Bool */;
106 int cltype11;
107 int idtype12;
108 val* var13 /* : ASuperExpr */;
109 val* var_pexprnode1 /* var pexprnode1: nullable ASuperExpr */;
110 long var14 /* : Int */;
111 long var15 /* : Int */;
112 var_p = p0;
113 var = NULL;
114 var_node_list = var;
115 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
116 var_nodearraylist3 = var1;
117 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
118 var_nodearraylist2 = var2;
119 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
120 var_nodearraylist1 = var3;
121 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
122 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
123 CHECK_NEW_array__Array(var4);
124 var_listnode3 = var4;
125 var_tclassidnode4 = var_nodearraylist1;
126 /* <var_tclassidnode4:nullable Object> isa nullable TClassid */
127 cltype = type_nullable_parser_nodes__TClassid.color;
128 idtype = type_nullable_parser_nodes__TClassid.id;
129 if(var_tclassidnode4 == NULL) {
130 var5 = 1;
131 } else {
132 if(cltype >= var_tclassidnode4->type->table_size) {
133 var5 = 0;
134 } else {
135 var5 = var_tclassidnode4->type->type_table[cltype] == idtype;
136 }
137 }
138 if (!var5) {
139 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25436);
140 exit(1);
141 }
142 var6 = NEW_parser_nodes__AQualified(&type_parser_nodes__AQualified);
143 ((void (*)(val*, val*, val*))(var6->class->vft[COLOR_parser_prod__AQualified__init_aqualified]))(var6, var_listnode3, var_tclassidnode4) /* init_aqualified on <var6:AQualified>*/;
144 CHECK_NEW_parser_nodes__AQualified(var6);
145 var_pqualifiednode2 = var6;
146 var_tkwsupernode5 = var_nodearraylist2;
147 /* <var_tkwsupernode5:nullable Object> isa nullable TKwsuper */
148 cltype8 = type_nullable_parser_nodes__TKwsuper.color;
149 idtype9 = type_nullable_parser_nodes__TKwsuper.id;
150 if(var_tkwsupernode5 == NULL) {
151 var7 = 1;
152 } else {
153 if(cltype8 >= var_tkwsupernode5->type->table_size) {
154 var7 = 0;
155 } else {
156 var7 = var_tkwsupernode5->type->type_table[cltype8] == idtype9;
157 }
158 }
159 if (!var7) {
160 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25442);
161 exit(1);
162 }
163 var_pexprsnode6 = var_nodearraylist3;
164 /* <var_pexprsnode6:nullable Object> isa nullable AExprs */
165 cltype11 = type_nullable_parser_nodes__AExprs.color;
166 idtype12 = type_nullable_parser_nodes__AExprs.id;
167 if(var_pexprsnode6 == NULL) {
168 var10 = 1;
169 } else {
170 if(cltype11 >= var_pexprsnode6->type->table_size) {
171 var10 = 0;
172 } else {
173 var10 = var_pexprsnode6->type->type_table[cltype11] == idtype12;
174 }
175 }
176 if (!var10) {
177 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25444);
178 exit(1);
179 }
180 var13 = NEW_parser_nodes__ASuperExpr(&type_parser_nodes__ASuperExpr);
181 ((void (*)(val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__ASuperExpr__init_asuperexpr]))(var13, var_pqualifiednode2, var_tkwsupernode5, var_pexprsnode6) /* init_asuperexpr on <var13:ASuperExpr>*/;
182 CHECK_NEW_parser_nodes__ASuperExpr(var13);
183 var_pexprnode1 = var13;
184 var_node_list = var_pexprnode1;
185 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction655> */
186 var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
187 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
188 RET_LABEL:;
189 }
190 /* method parser#ReduceAction655#action for (self: Object, Parser) */
191 void VIRTUAL_parser__ReduceAction655__action(val* self, val* p0) {
192 parser__ReduceAction655__action(self, p0);
193 RET_LABEL:;
194 }
195 /* method parser#ReduceAction656#action for (self: ReduceAction656, Parser) */
196 void parser__ReduceAction656__action(val* self, val* p0) {
197 val* var_p /* var p: Parser */;
198 val* var /* : null */;
199 val* var_node_list /* var node_list: nullable Object */;
200 val* var1 /* : nullable Object */;
201 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
202 val* var2 /* : nullable Object */;
203 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
204 val* var3 /* : nullable Object */;
205 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
206 val* var4 /* : nullable Object */;
207 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
208 val* var5 /* : Array[Object] */;
209 val* var_listnode4 /* var listnode4: Array[Object] */;
210 val* var_listnode3 /* var listnode3: nullable Object */;
211 short int var6 /* : Bool */;
212 int cltype;
213 int idtype;
214 val* var7 /* : Array[Object] */;
215 val* var_tclassidnode5 /* var tclassidnode5: nullable Object */;
216 short int var8 /* : Bool */;
217 int cltype9;
218 int idtype10;
219 val* var11 /* : AQualified */;
220 val* var_pqualifiednode2 /* var pqualifiednode2: nullable AQualified */;
221 val* var_tkwsupernode6 /* var tkwsupernode6: nullable Object */;
222 short int var12 /* : Bool */;
223 int cltype13;
224 int idtype14;
225 val* var_pexprsnode7 /* var pexprsnode7: nullable Object */;
226 short int var15 /* : Bool */;
227 int cltype16;
228 int idtype17;
229 val* var18 /* : ASuperExpr */;
230 val* var_pexprnode1 /* var pexprnode1: nullable ASuperExpr */;
231 long var19 /* : Int */;
232 long var20 /* : Int */;
233 var_p = p0;
234 var = NULL;
235 var_node_list = var;
236 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
237 var_nodearraylist4 = var1;
238 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
239 var_nodearraylist3 = var2;
240 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
241 var_nodearraylist2 = var3;
242 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
243 var_nodearraylist1 = var4;
244 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
245 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
246 CHECK_NEW_array__Array(var5);
247 var_listnode4 = var5;
248 var_listnode3 = var_nodearraylist1;
249 /* <var_listnode3:nullable Object> isa Array[Object] */
250 cltype = type_array__Arraykernel__Object.color;
251 idtype = type_array__Arraykernel__Object.id;
252 if(var_listnode3 == NULL) {
253 var6 = 0;
254 } else {
255 if(cltype >= var_listnode3->type->table_size) {
256 var6 = 0;
257 } else {
258 var6 = var_listnode3->type->type_table[cltype] == idtype;
259 }
260 }
261 if (!var6) {
262 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25465);
263 exit(1);
264 }
265 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction656>*/;
266 var_listnode4 = var7;
267 var_tclassidnode5 = var_nodearraylist2;
268 /* <var_tclassidnode5:nullable Object> isa nullable TClassid */
269 cltype9 = type_nullable_parser_nodes__TClassid.color;
270 idtype10 = type_nullable_parser_nodes__TClassid.id;
271 if(var_tclassidnode5 == NULL) {
272 var8 = 1;
273 } else {
274 if(cltype9 >= var_tclassidnode5->type->table_size) {
275 var8 = 0;
276 } else {
277 var8 = var_tclassidnode5->type->type_table[cltype9] == idtype10;
278 }
279 }
280 if (!var8) {
281 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25468);
282 exit(1);
283 }
284 var11 = NEW_parser_nodes__AQualified(&type_parser_nodes__AQualified);
285 ((void (*)(val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AQualified__init_aqualified]))(var11, var_listnode4, var_tclassidnode5) /* init_aqualified on <var11:AQualified>*/;
286 CHECK_NEW_parser_nodes__AQualified(var11);
287 var_pqualifiednode2 = var11;
288 var_tkwsupernode6 = var_nodearraylist3;
289 /* <var_tkwsupernode6:nullable Object> isa nullable TKwsuper */
290 cltype13 = type_nullable_parser_nodes__TKwsuper.color;
291 idtype14 = type_nullable_parser_nodes__TKwsuper.id;
292 if(var_tkwsupernode6 == NULL) {
293 var12 = 1;
294 } else {
295 if(cltype13 >= var_tkwsupernode6->type->table_size) {
296 var12 = 0;
297 } else {
298 var12 = var_tkwsupernode6->type->type_table[cltype13] == idtype14;
299 }
300 }
301 if (!var12) {
302 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25474);
303 exit(1);
304 }
305 var_pexprsnode7 = var_nodearraylist4;
306 /* <var_pexprsnode7:nullable Object> isa nullable AExprs */
307 cltype16 = type_nullable_parser_nodes__AExprs.color;
308 idtype17 = type_nullable_parser_nodes__AExprs.id;
309 if(var_pexprsnode7 == NULL) {
310 var15 = 1;
311 } else {
312 if(cltype16 >= var_pexprsnode7->type->table_size) {
313 var15 = 0;
314 } else {
315 var15 = var_pexprsnode7->type->type_table[cltype16] == idtype17;
316 }
317 }
318 if (!var15) {
319 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25476);
320 exit(1);
321 }
322 var18 = NEW_parser_nodes__ASuperExpr(&type_parser_nodes__ASuperExpr);
323 ((void (*)(val*, val*, val*, val*))(var18->class->vft[COLOR_parser_prod__ASuperExpr__init_asuperexpr]))(var18, var_pqualifiednode2, var_tkwsupernode6, var_pexprsnode7) /* init_asuperexpr on <var18:ASuperExpr>*/;
324 CHECK_NEW_parser_nodes__ASuperExpr(var18);
325 var_pexprnode1 = var18;
326 var_node_list = var_pexprnode1;
327 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction656> */
328 var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
329 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
330 RET_LABEL:;
331 }
332 /* method parser#ReduceAction656#action for (self: Object, Parser) */
333 void VIRTUAL_parser__ReduceAction656__action(val* self, val* p0) {
334 parser__ReduceAction656__action(self, p0);
335 RET_LABEL:;
336 }
337 /* method parser#ReduceAction657#action for (self: ReduceAction657, Parser) */
338 void parser__ReduceAction657__action(val* self, val* p0) {
339 val* var_p /* var p: Parser */;
340 val* var /* : null */;
341 val* var_node_list /* var node_list: nullable Object */;
342 val* var1 /* : nullable Object */;
343 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
344 val* var2 /* : nullable Object */;
345 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
346 val* var3 /* : nullable Object */;
347 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
348 val* var4 /* : Array[Object] */;
349 val* var_listnode4 /* var listnode4: Array[Object] */;
350 val* var_listnode3 /* var listnode3: nullable Object */;
351 short int var5 /* : Bool */;
352 int cltype;
353 int idtype;
354 val* var6 /* : Array[Object] */;
355 val* var7 /* : AQualified */;
356 val* var8 /* : null */;
357 val* var_pqualifiednode2 /* var pqualifiednode2: nullable AQualified */;
358 val* var_tkwsupernode6 /* var tkwsupernode6: nullable Object */;
359 short int var9 /* : Bool */;
360 int cltype10;
361 int idtype11;
362 val* var_pexprsnode7 /* var pexprsnode7: nullable Object */;
363 short int var12 /* : Bool */;
364 int cltype13;
365 int idtype14;
366 val* var15 /* : ASuperExpr */;
367 val* var_pexprnode1 /* var pexprnode1: nullable ASuperExpr */;
368 long var16 /* : Int */;
369 long var17 /* : Int */;
370 var_p = p0;
371 var = NULL;
372 var_node_list = var;
373 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
374 var_nodearraylist3 = var1;
375 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
376 var_nodearraylist2 = var2;
377 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
378 var_nodearraylist1 = var3;
379 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
380 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
381 CHECK_NEW_array__Array(var4);
382 var_listnode4 = var4;
383 var_listnode3 = var_nodearraylist1;
384 /* <var_listnode3:nullable Object> isa Array[Object] */
385 cltype = type_array__Arraykernel__Object.color;
386 idtype = type_array__Arraykernel__Object.id;
387 if(var_listnode3 == NULL) {
388 var5 = 0;
389 } else {
390 if(cltype >= var_listnode3->type->table_size) {
391 var5 = 0;
392 } else {
393 var5 = var_listnode3->type->type_table[cltype] == idtype;
394 }
395 }
396 if (!var5) {
397 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25496);
398 exit(1);
399 }
400 var6 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction657>*/;
401 var_listnode4 = var6;
402 var7 = NEW_parser_nodes__AQualified(&type_parser_nodes__AQualified);
403 var8 = NULL;
404 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AQualified__init_aqualified]))(var7, var_listnode4, var8) /* init_aqualified on <var7:AQualified>*/;
405 CHECK_NEW_parser_nodes__AQualified(var7);
406 var_pqualifiednode2 = var7;
407 var_tkwsupernode6 = var_nodearraylist2;
408 /* <var_tkwsupernode6:nullable Object> isa nullable TKwsuper */
409 cltype10 = type_nullable_parser_nodes__TKwsuper.color;
410 idtype11 = type_nullable_parser_nodes__TKwsuper.id;
411 if(var_tkwsupernode6 == NULL) {
412 var9 = 1;
413 } else {
414 if(cltype10 >= var_tkwsupernode6->type->table_size) {
415 var9 = 0;
416 } else {
417 var9 = var_tkwsupernode6->type->type_table[cltype10] == idtype11;
418 }
419 }
420 if (!var9) {
421 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25503);
422 exit(1);
423 }
424 var_pexprsnode7 = var_nodearraylist3;
425 /* <var_pexprsnode7:nullable Object> isa nullable AExprs */
426 cltype13 = type_nullable_parser_nodes__AExprs.color;
427 idtype14 = type_nullable_parser_nodes__AExprs.id;
428 if(var_pexprsnode7 == NULL) {
429 var12 = 1;
430 } else {
431 if(cltype13 >= var_pexprsnode7->type->table_size) {
432 var12 = 0;
433 } else {
434 var12 = var_pexprsnode7->type->type_table[cltype13] == idtype14;
435 }
436 }
437 if (!var12) {
438 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25505);
439 exit(1);
440 }
441 var15 = NEW_parser_nodes__ASuperExpr(&type_parser_nodes__ASuperExpr);
442 ((void (*)(val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__ASuperExpr__init_asuperexpr]))(var15, var_pqualifiednode2, var_tkwsupernode6, var_pexprsnode7) /* init_asuperexpr on <var15:ASuperExpr>*/;
443 CHECK_NEW_parser_nodes__ASuperExpr(var15);
444 var_pexprnode1 = var15;
445 var_node_list = var_pexprnode1;
446 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction657> */
447 var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
448 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
449 RET_LABEL:;
450 }
451 /* method parser#ReduceAction657#action for (self: Object, Parser) */
452 void VIRTUAL_parser__ReduceAction657__action(val* self, val* p0) {
453 parser__ReduceAction657__action(self, p0);
454 RET_LABEL:;
455 }
456 /* method parser#ReduceAction658#action for (self: ReduceAction658, Parser) */
457 void parser__ReduceAction658__action(val* self, val* p0) {
458 val* var_p /* var p: Parser */;
459 val* var /* : null */;
460 val* var_node_list /* var node_list: nullable Object */;
461 val* var1 /* : nullable Object */;
462 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
463 val* var2 /* : nullable Object */;
464 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
465 val* var3 /* : nullable Object */;
466 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
467 val* var4 /* : nullable Object */;
468 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
469 val* var5 /* : nullable Object */;
470 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
471 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
472 short int var6 /* : Bool */;
473 int cltype;
474 int idtype;
475 val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */;
476 short int var7 /* : Bool */;
477 int cltype8;
478 int idtype9;
479 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
480 short int var10 /* : Bool */;
481 int cltype11;
482 int idtype12;
483 val* var13 /* : AInitExpr */;
484 val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */;
485 long var14 /* : Int */;
486 long var15 /* : Int */;
487 var_p = p0;
488 var = NULL;
489 var_node_list = var;
490 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
491 var_nodearraylist5 = var1;
492 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
493 var_nodearraylist4 = var2;
494 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
495 var_nodearraylist3 = var3;
496 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
497 var_nodearraylist2 = var4;
498 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
499 var_nodearraylist1 = var5;
500 var_pexprnode2 = var_nodearraylist1;
501 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
502 cltype = type_nullable_parser_nodes__AExpr.color;
503 idtype = type_nullable_parser_nodes__AExpr.id;
504 if(var_pexprnode2 == NULL) {
505 var6 = 1;
506 } else {
507 if(cltype >= var_pexprnode2->type->table_size) {
508 var6 = 0;
509 } else {
510 var6 = var_pexprnode2->type->type_table[cltype] == idtype;
511 }
512 }
513 if (!var6) {
514 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25526);
515 exit(1);
516 }
517 var_tkwinitnode3 = var_nodearraylist4;
518 /* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
519 cltype8 = type_nullable_parser_nodes__TKwinit.color;
520 idtype9 = type_nullable_parser_nodes__TKwinit.id;
521 if(var_tkwinitnode3 == NULL) {
522 var7 = 1;
523 } else {
524 if(cltype8 >= var_tkwinitnode3->type->table_size) {
525 var7 = 0;
526 } else {
527 var7 = var_tkwinitnode3->type->type_table[cltype8] == idtype9;
528 }
529 }
530 if (!var7) {
531 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25528);
532 exit(1);
533 }
534 var_pexprsnode4 = var_nodearraylist5;
535 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
536 cltype11 = type_nullable_parser_nodes__AExprs.color;
537 idtype12 = type_nullable_parser_nodes__AExprs.id;
538 if(var_pexprsnode4 == NULL) {
539 var10 = 1;
540 } else {
541 if(cltype11 >= var_pexprsnode4->type->table_size) {
542 var10 = 0;
543 } else {
544 var10 = var_pexprsnode4->type->type_table[cltype11] == idtype12;
545 }
546 }
547 if (!var10) {
548 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25530);
549 exit(1);
550 }
551 var13 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr);
552 ((void (*)(val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__AInitExpr__init_ainitexpr]))(var13, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4) /* init_ainitexpr on <var13:AInitExpr>*/;
553 CHECK_NEW_parser_nodes__AInitExpr(var13);
554 var_pexprnode1 = var13;
555 var_node_list = var_pexprnode1;
556 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction658> */
557 var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
558 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
559 RET_LABEL:;
560 }
561 /* method parser#ReduceAction658#action for (self: Object, Parser) */
562 void VIRTUAL_parser__ReduceAction658__action(val* self, val* p0) {
563 parser__ReduceAction658__action(self, p0);
564 RET_LABEL:;
565 }
566 /* method parser#ReduceAction659#action for (self: ReduceAction659, Parser) */
567 void parser__ReduceAction659__action(val* self, val* p0) {
568 val* var_p /* var p: Parser */;
569 val* var /* : null */;
570 val* var_node_list /* var node_list: nullable Object */;
571 val* var1 /* : nullable Object */;
572 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
573 val* var2 /* : nullable Object */;
574 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
575 val* var3 /* : AImplicitSelfExpr */;
576 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
577 val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */;
578 short int var4 /* : Bool */;
579 int cltype;
580 int idtype;
581 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
582 short int var5 /* : Bool */;
583 int cltype6;
584 int idtype7;
585 val* var8 /* : AInitExpr */;
586 val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */;
587 long var9 /* : Int */;
588 long var10 /* : Int */;
589 var_p = p0;
590 var = NULL;
591 var_node_list = var;
592 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
593 var_nodearraylist2 = var1;
594 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
595 var_nodearraylist1 = var2;
596 var3 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
597 ((void (*)(val*))(var3->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var3) /* init_aimplicitselfexpr on <var3:AImplicitSelfExpr>*/;
598 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var3);
599 var_pexprnode2 = var3;
600 var_tkwinitnode3 = var_nodearraylist1;
601 /* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
602 cltype = type_nullable_parser_nodes__TKwinit.color;
603 idtype = type_nullable_parser_nodes__TKwinit.id;
604 if(var_tkwinitnode3 == NULL) {
605 var4 = 1;
606 } else {
607 if(cltype >= var_tkwinitnode3->type->table_size) {
608 var4 = 0;
609 } else {
610 var4 = var_tkwinitnode3->type->type_table[cltype] == idtype;
611 }
612 }
613 if (!var4) {
614 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25549);
615 exit(1);
616 }
617 var_pexprsnode4 = var_nodearraylist2;
618 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
619 cltype6 = type_nullable_parser_nodes__AExprs.color;
620 idtype7 = type_nullable_parser_nodes__AExprs.id;
621 if(var_pexprsnode4 == NULL) {
622 var5 = 1;
623 } else {
624 if(cltype6 >= var_pexprsnode4->type->table_size) {
625 var5 = 0;
626 } else {
627 var5 = var_pexprsnode4->type->type_table[cltype6] == idtype7;
628 }
629 }
630 if (!var5) {
631 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25551);
632 exit(1);
633 }
634 var8 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr);
635 ((void (*)(val*, val*, val*, val*))(var8->class->vft[COLOR_parser_prod__AInitExpr__init_ainitexpr]))(var8, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4) /* init_ainitexpr on <var8:AInitExpr>*/;
636 CHECK_NEW_parser_nodes__AInitExpr(var8);
637 var_pexprnode1 = var8;
638 var_node_list = var_pexprnode1;
639 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction659> */
640 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
641 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
642 RET_LABEL:;
643 }
644 /* method parser#ReduceAction659#action for (self: Object, Parser) */
645 void VIRTUAL_parser__ReduceAction659__action(val* self, val* p0) {
646 parser__ReduceAction659__action(self, p0);
647 RET_LABEL:;
648 }
649 /* method parser#ReduceAction660#action for (self: ReduceAction660, Parser) */
650 void parser__ReduceAction660__action(val* self, val* p0) {
651 val* var_p /* var p: Parser */;
652 val* var /* : null */;
653 val* var_node_list /* var node_list: nullable Object */;
654 val* var1 /* : nullable Object */;
655 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
656 val* var2 /* : nullable Object */;
657 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
658 val* var3 /* : nullable Object */;
659 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
660 val* var4 /* : nullable Object */;
661 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
662 val* var5 /* : nullable Object */;
663 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
664 val* var6 /* : nullable Object */;
665 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
666 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
667 short int var7 /* : Bool */;
668 int cltype;
669 int idtype;
670 val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */;
671 short int var8 /* : Bool */;
672 int cltype9;
673 int idtype10;
674 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
675 short int var11 /* : Bool */;
676 int cltype12;
677 int idtype13;
678 val* var14 /* : AInitExpr */;
679 val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */;
680 long var15 /* : Int */;
681 long var16 /* : Int */;
682 var_p = p0;
683 var = NULL;
684 var_node_list = var;
685 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
686 var_nodearraylist6 = var1;
687 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
688 var_nodearraylist5 = var2;
689 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
690 var_nodearraylist4 = var3;
691 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
692 var_nodearraylist3 = var4;
693 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
694 var_nodearraylist2 = var5;
695 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
696 var_nodearraylist1 = var6;
697 var_pexprnode2 = var_nodearraylist1;
698 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
699 cltype = type_nullable_parser_nodes__AExpr.color;
700 idtype = type_nullable_parser_nodes__AExpr.id;
701 if(var_pexprnode2 == NULL) {
702 var7 = 1;
703 } else {
704 if(cltype >= var_pexprnode2->type->table_size) {
705 var7 = 0;
706 } else {
707 var7 = var_pexprnode2->type->type_table[cltype] == idtype;
708 }
709 }
710 if (!var7) {
711 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25573);
712 exit(1);
713 }
714 var_tkwinitnode3 = var_nodearraylist5;
715 /* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
716 cltype9 = type_nullable_parser_nodes__TKwinit.color;
717 idtype10 = type_nullable_parser_nodes__TKwinit.id;
718 if(var_tkwinitnode3 == NULL) {
719 var8 = 1;
720 } else {
721 if(cltype9 >= var_tkwinitnode3->type->table_size) {
722 var8 = 0;
723 } else {
724 var8 = var_tkwinitnode3->type->type_table[cltype9] == idtype10;
725 }
726 }
727 if (!var8) {
728 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25575);
729 exit(1);
730 }
731 var_pexprsnode4 = var_nodearraylist6;
732 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
733 cltype12 = type_nullable_parser_nodes__AExprs.color;
734 idtype13 = type_nullable_parser_nodes__AExprs.id;
735 if(var_pexprsnode4 == NULL) {
736 var11 = 1;
737 } else {
738 if(cltype12 >= var_pexprsnode4->type->table_size) {
739 var11 = 0;
740 } else {
741 var11 = var_pexprsnode4->type->type_table[cltype12] == idtype13;
742 }
743 }
744 if (!var11) {
745 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25577);
746 exit(1);
747 }
748 var14 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr);
749 ((void (*)(val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__AInitExpr__init_ainitexpr]))(var14, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4) /* init_ainitexpr on <var14:AInitExpr>*/;
750 CHECK_NEW_parser_nodes__AInitExpr(var14);
751 var_pexprnode1 = var14;
752 var_node_list = var_pexprnode1;
753 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction660> */
754 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
755 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
756 RET_LABEL:;
757 }
758 /* method parser#ReduceAction660#action for (self: Object, Parser) */
759 void VIRTUAL_parser__ReduceAction660__action(val* self, val* p0) {
760 parser__ReduceAction660__action(self, p0);
761 RET_LABEL:;
762 }
763 /* method parser#ReduceAction661#action for (self: ReduceAction661, Parser) */
764 void parser__ReduceAction661__action(val* self, val* p0) {
765 val* var_p /* var p: Parser */;
766 val* var /* : null */;
767 val* var_node_list /* var node_list: nullable Object */;
768 val* var1 /* : nullable Object */;
769 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
770 val* var2 /* : nullable Object */;
771 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
772 val* var3 /* : nullable Object */;
773 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
774 val* var4 /* : nullable Object */;
775 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
776 val* var5 /* : nullable Object */;
777 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
778 val* var6 /* : nullable Object */;
779 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
780 val* var7 /* : nullable Object */;
781 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
782 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
783 short int var8 /* : Bool */;
784 int cltype;
785 int idtype;
786 val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */;
787 short int var9 /* : Bool */;
788 int cltype10;
789 int idtype11;
790 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
791 short int var12 /* : Bool */;
792 int cltype13;
793 int idtype14;
794 val* var15 /* : AInitExpr */;
795 val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */;
796 long var16 /* : Int */;
797 long var17 /* : Int */;
798 var_p = p0;
799 var = NULL;
800 var_node_list = var;
801 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
802 var_nodearraylist7 = var1;
803 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
804 var_nodearraylist6 = var2;
805 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
806 var_nodearraylist5 = var3;
807 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
808 var_nodearraylist4 = var4;
809 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
810 var_nodearraylist3 = var5;
811 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
812 var_nodearraylist2 = var6;
813 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
814 var_nodearraylist1 = var7;
815 var_pexprnode2 = var_nodearraylist1;
816 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
817 cltype = type_nullable_parser_nodes__AExpr.color;
818 idtype = type_nullable_parser_nodes__AExpr.id;
819 if(var_pexprnode2 == NULL) {
820 var8 = 1;
821 } else {
822 if(cltype >= var_pexprnode2->type->table_size) {
823 var8 = 0;
824 } else {
825 var8 = var_pexprnode2->type->type_table[cltype] == idtype;
826 }
827 }
828 if (!var8) {
829 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25600);
830 exit(1);
831 }
832 var_tkwinitnode3 = var_nodearraylist6;
833 /* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
834 cltype10 = type_nullable_parser_nodes__TKwinit.color;
835 idtype11 = type_nullable_parser_nodes__TKwinit.id;
836 if(var_tkwinitnode3 == NULL) {
837 var9 = 1;
838 } else {
839 if(cltype10 >= var_tkwinitnode3->type->table_size) {
840 var9 = 0;
841 } else {
842 var9 = var_tkwinitnode3->type->type_table[cltype10] == idtype11;
843 }
844 }
845 if (!var9) {
846 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25602);
847 exit(1);
848 }
849 var_pexprsnode4 = var_nodearraylist7;
850 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
851 cltype13 = type_nullable_parser_nodes__AExprs.color;
852 idtype14 = type_nullable_parser_nodes__AExprs.id;
853 if(var_pexprsnode4 == NULL) {
854 var12 = 1;
855 } else {
856 if(cltype13 >= var_pexprsnode4->type->table_size) {
857 var12 = 0;
858 } else {
859 var12 = var_pexprsnode4->type->type_table[cltype13] == idtype14;
860 }
861 }
862 if (!var12) {
863 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25604);
864 exit(1);
865 }
866 var15 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr);
867 ((void (*)(val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__AInitExpr__init_ainitexpr]))(var15, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4) /* init_ainitexpr on <var15:AInitExpr>*/;
868 CHECK_NEW_parser_nodes__AInitExpr(var15);
869 var_pexprnode1 = var15;
870 var_node_list = var_pexprnode1;
871 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction661> */
872 var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
873 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
874 RET_LABEL:;
875 }
876 /* method parser#ReduceAction661#action for (self: Object, Parser) */
877 void VIRTUAL_parser__ReduceAction661__action(val* self, val* p0) {
878 parser__ReduceAction661__action(self, p0);
879 RET_LABEL:;
880 }
881 /* method parser#ReduceAction663#action for (self: ReduceAction663, Parser) */
882 void parser__ReduceAction663__action(val* self, val* p0) {
883 val* var_p /* var p: Parser */;
884 val* var /* : null */;
885 val* var_node_list /* var node_list: nullable Object */;
886 val* var1 /* : nullable Object */;
887 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
888 val* var2 /* : nullable Object */;
889 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
890 val* var3 /* : nullable Object */;
891 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
892 val* var4 /* : AImplicitSelfExpr */;
893 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
894 val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */;
895 short int var5 /* : Bool */;
896 int cltype;
897 int idtype;
898 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
899 short int var6 /* : Bool */;
900 int cltype7;
901 int idtype8;
902 val* var9 /* : AInitExpr */;
903 val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */;
904 long var10 /* : Int */;
905 long var11 /* : Int */;
906 var_p = p0;
907 var = NULL;
908 var_node_list = var;
909 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
910 var_nodearraylist3 = var1;
911 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
912 var_nodearraylist2 = var2;
913 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
914 var_nodearraylist1 = var3;
915 var4 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
916 ((void (*)(val*))(var4->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var4) /* init_aimplicitselfexpr on <var4:AImplicitSelfExpr>*/;
917 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var4);
918 var_pexprnode2 = var4;
919 var_tkwinitnode3 = var_nodearraylist2;
920 /* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
921 cltype = type_nullable_parser_nodes__TKwinit.color;
922 idtype = type_nullable_parser_nodes__TKwinit.id;
923 if(var_tkwinitnode3 == NULL) {
924 var5 = 1;
925 } else {
926 if(cltype >= var_tkwinitnode3->type->table_size) {
927 var5 = 0;
928 } else {
929 var5 = var_tkwinitnode3->type->type_table[cltype] == idtype;
930 }
931 }
932 if (!var5) {
933 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25624);
934 exit(1);
935 }
936 var_pexprsnode4 = var_nodearraylist3;
937 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
938 cltype7 = type_nullable_parser_nodes__AExprs.color;
939 idtype8 = type_nullable_parser_nodes__AExprs.id;
940 if(var_pexprsnode4 == NULL) {
941 var6 = 1;
942 } else {
943 if(cltype7 >= var_pexprsnode4->type->table_size) {
944 var6 = 0;
945 } else {
946 var6 = var_pexprsnode4->type->type_table[cltype7] == idtype8;
947 }
948 }
949 if (!var6) {
950 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25626);
951 exit(1);
952 }
953 var9 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr);
954 ((void (*)(val*, val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AInitExpr__init_ainitexpr]))(var9, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4) /* init_ainitexpr on <var9:AInitExpr>*/;
955 CHECK_NEW_parser_nodes__AInitExpr(var9);
956 var_pexprnode1 = var9;
957 var_node_list = var_pexprnode1;
958 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction663> */
959 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
960 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
961 RET_LABEL:;
962 }
963 /* method parser#ReduceAction663#action for (self: Object, Parser) */
964 void VIRTUAL_parser__ReduceAction663__action(val* self, val* p0) {
965 parser__ReduceAction663__action(self, p0);
966 RET_LABEL:;
967 }
968 /* method parser#ReduceAction664#action for (self: ReduceAction664, Parser) */
969 void parser__ReduceAction664__action(val* self, val* p0) {
970 val* var_p /* var p: Parser */;
971 val* var /* : null */;
972 val* var_node_list /* var node_list: nullable Object */;
973 val* var1 /* : nullable Object */;
974 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
975 val* var2 /* : nullable Object */;
976 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
977 val* var3 /* : nullable Object */;
978 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
979 val* var4 /* : nullable Object */;
980 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
981 val* var5 /* : AImplicitSelfExpr */;
982 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
983 val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */;
984 short int var6 /* : Bool */;
985 int cltype;
986 int idtype;
987 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
988 short int var7 /* : Bool */;
989 int cltype8;
990 int idtype9;
991 val* var10 /* : AInitExpr */;
992 val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */;
993 long var11 /* : Int */;
994 long var12 /* : Int */;
995 var_p = p0;
996 var = NULL;
997 var_node_list = var;
998 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
999 var_nodearraylist4 = var1;
1000 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1001 var_nodearraylist3 = var2;
1002 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1003 var_nodearraylist2 = var3;
1004 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1005 var_nodearraylist1 = var4;
1006 var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
1007 ((void (*)(val*))(var5->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var5) /* init_aimplicitselfexpr on <var5:AImplicitSelfExpr>*/;
1008 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var5);
1009 var_pexprnode2 = var5;
1010 var_tkwinitnode3 = var_nodearraylist3;
1011 /* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
1012 cltype = type_nullable_parser_nodes__TKwinit.color;
1013 idtype = type_nullable_parser_nodes__TKwinit.id;
1014 if(var_tkwinitnode3 == NULL) {
1015 var6 = 1;
1016 } else {
1017 if(cltype >= var_tkwinitnode3->type->table_size) {
1018 var6 = 0;
1019 } else {
1020 var6 = var_tkwinitnode3->type->type_table[cltype] == idtype;
1021 }
1022 }
1023 if (!var6) {
1024 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25647);
1025 exit(1);
1026 }
1027 var_pexprsnode4 = var_nodearraylist4;
1028 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
1029 cltype8 = type_nullable_parser_nodes__AExprs.color;
1030 idtype9 = type_nullable_parser_nodes__AExprs.id;
1031 if(var_pexprsnode4 == NULL) {
1032 var7 = 1;
1033 } else {
1034 if(cltype8 >= var_pexprsnode4->type->table_size) {
1035 var7 = 0;
1036 } else {
1037 var7 = var_pexprsnode4->type->type_table[cltype8] == idtype9;
1038 }
1039 }
1040 if (!var7) {
1041 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25649);
1042 exit(1);
1043 }
1044 var10 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr);
1045 ((void (*)(val*, val*, val*, val*))(var10->class->vft[COLOR_parser_prod__AInitExpr__init_ainitexpr]))(var10, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4) /* init_ainitexpr on <var10:AInitExpr>*/;
1046 CHECK_NEW_parser_nodes__AInitExpr(var10);
1047 var_pexprnode1 = var10;
1048 var_node_list = var_pexprnode1;
1049 var11 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction664> */
1050 var12 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var11) /* go_to on <var_p:Parser>*/;
1051 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var12, var_node_list) /* push on <var_p:Parser>*/;
1052 RET_LABEL:;
1053 }
1054 /* method parser#ReduceAction664#action for (self: Object, Parser) */
1055 void VIRTUAL_parser__ReduceAction664__action(val* self, val* p0) {
1056 parser__ReduceAction664__action(self, p0);
1057 RET_LABEL:;
1058 }
1059 /* method parser#ReduceAction666#action for (self: ReduceAction666, Parser) */
1060 void parser__ReduceAction666__action(val* self, val* p0) {
1061 val* var_p /* var p: Parser */;
1062 val* var /* : null */;
1063 val* var_node_list /* var node_list: nullable Object */;
1064 val* var1 /* : nullable Object */;
1065 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1066 val* var2 /* : nullable Object */;
1067 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1068 val* var3 /* : nullable Object */;
1069 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1070 val* var4 /* : nullable Object */;
1071 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1072 val* var5 /* : nullable Object */;
1073 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1074 val* var_tkwdebugnode2 /* var tkwdebugnode2: nullable Object */;
1075 short int var6 /* : Bool */;
1076 int cltype;
1077 int idtype;
1078 val* var_tkwtypenode3 /* var tkwtypenode3: nullable Object */;
1079 short int var7 /* : Bool */;
1080 int cltype8;
1081 int idtype9;
1082 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
1083 short int var10 /* : Bool */;
1084 int cltype11;
1085 int idtype12;
1086 val* var_ptypenode5 /* var ptypenode5: nullable Object */;
1087 short int var13 /* : Bool */;
1088 int cltype14;
1089 int idtype15;
1090 val* var16 /* : ADebugTypeExpr */;
1091 val* var_pexprnode1 /* var pexprnode1: nullable ADebugTypeExpr */;
1092 long var17 /* : Int */;
1093 long var18 /* : Int */;
1094 var_p = p0;
1095 var = NULL;
1096 var_node_list = var;
1097 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1098 var_nodearraylist5 = var1;
1099 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1100 var_nodearraylist4 = var2;
1101 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1102 var_nodearraylist3 = var3;
1103 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1104 var_nodearraylist2 = var4;
1105 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1106 var_nodearraylist1 = var5;
1107 var_tkwdebugnode2 = var_nodearraylist1;
1108 /* <var_tkwdebugnode2:nullable Object> isa nullable TKwdebug */
1109 cltype = type_nullable_parser_nodes__TKwdebug.color;
1110 idtype = type_nullable_parser_nodes__TKwdebug.id;
1111 if(var_tkwdebugnode2 == NULL) {
1112 var6 = 1;
1113 } else {
1114 if(cltype >= var_tkwdebugnode2->type->table_size) {
1115 var6 = 0;
1116 } else {
1117 var6 = var_tkwdebugnode2->type->type_table[cltype] == idtype;
1118 }
1119 }
1120 if (!var6) {
1121 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25670);
1122 exit(1);
1123 }
1124 var_tkwtypenode3 = var_nodearraylist2;
1125 /* <var_tkwtypenode3:nullable Object> isa nullable TKwtype */
1126 cltype8 = type_nullable_parser_nodes__TKwtype.color;
1127 idtype9 = type_nullable_parser_nodes__TKwtype.id;
1128 if(var_tkwtypenode3 == NULL) {
1129 var7 = 1;
1130 } else {
1131 if(cltype8 >= var_tkwtypenode3->type->table_size) {
1132 var7 = 0;
1133 } else {
1134 var7 = var_tkwtypenode3->type->type_table[cltype8] == idtype9;
1135 }
1136 }
1137 if (!var7) {
1138 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25672);
1139 exit(1);
1140 }
1141 var_pexprnode4 = var_nodearraylist5;
1142 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
1143 cltype11 = type_nullable_parser_nodes__AExpr.color;
1144 idtype12 = type_nullable_parser_nodes__AExpr.id;
1145 if(var_pexprnode4 == NULL) {
1146 var10 = 1;
1147 } else {
1148 if(cltype11 >= var_pexprnode4->type->table_size) {
1149 var10 = 0;
1150 } else {
1151 var10 = var_pexprnode4->type->type_table[cltype11] == idtype12;
1152 }
1153 }
1154 if (!var10) {
1155 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25674);
1156 exit(1);
1157 }
1158 var_ptypenode5 = var_nodearraylist3;
1159 /* <var_ptypenode5:nullable Object> isa nullable AType */
1160 cltype14 = type_nullable_parser_nodes__AType.color;
1161 idtype15 = type_nullable_parser_nodes__AType.id;
1162 if(var_ptypenode5 == NULL) {
1163 var13 = 1;
1164 } else {
1165 if(cltype14 >= var_ptypenode5->type->table_size) {
1166 var13 = 0;
1167 } else {
1168 var13 = var_ptypenode5->type->type_table[cltype14] == idtype15;
1169 }
1170 }
1171 if (!var13) {
1172 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25676);
1173 exit(1);
1174 }
1175 var16 = NEW_parser_nodes__ADebugTypeExpr(&type_parser_nodes__ADebugTypeExpr);
1176 ((void (*)(val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__ADebugTypeExpr__init_adebugtypeexpr]))(var16, var_tkwdebugnode2, var_tkwtypenode3, var_pexprnode4, var_ptypenode5) /* init_adebugtypeexpr on <var16:ADebugTypeExpr>*/;
1177 CHECK_NEW_parser_nodes__ADebugTypeExpr(var16);
1178 var_pexprnode1 = var16;
1179 var_node_list = var_pexprnode1;
1180 var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction666> */
1181 var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
1182 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
1183 RET_LABEL:;
1184 }
1185 /* method parser#ReduceAction666#action for (self: Object, Parser) */
1186 void VIRTUAL_parser__ReduceAction666__action(val* self, val* p0) {
1187 parser__ReduceAction666__action(self, p0);
1188 RET_LABEL:;
1189 }
1190 /* method parser#ReduceAction667#action for (self: ReduceAction667, Parser) */
1191 void parser__ReduceAction667__action(val* self, val* p0) {
1192 val* var_p /* var p: Parser */;
1193 val* var /* : null */;
1194 val* var_node_list /* var node_list: nullable Object */;
1195 val* var1 /* : nullable Object */;
1196 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1197 val* var2 /* : nullable Object */;
1198 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1199 val* var_tkwlabelnode2 /* var tkwlabelnode2: nullable Object */;
1200 short int var3 /* : Bool */;
1201 int cltype;
1202 int idtype;
1203 val* var_tidnode3 /* var tidnode3: nullable Object */;
1204 short int var4 /* : Bool */;
1205 int cltype5;
1206 int idtype6;
1207 val* var7 /* : ALabel */;
1208 val* var_plabelnode1 /* var plabelnode1: nullable ALabel */;
1209 long var8 /* : Int */;
1210 long var9 /* : Int */;
1211 var_p = p0;
1212 var = NULL;
1213 var_node_list = var;
1214 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1215 var_nodearraylist2 = var1;
1216 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1217 var_nodearraylist1 = var2;
1218 var_tkwlabelnode2 = var_nodearraylist1;
1219 /* <var_tkwlabelnode2:nullable Object> isa nullable TKwlabel */
1220 cltype = type_nullable_parser_nodes__TKwlabel.color;
1221 idtype = type_nullable_parser_nodes__TKwlabel.id;
1222 if(var_tkwlabelnode2 == NULL) {
1223 var3 = 1;
1224 } else {
1225 if(cltype >= var_tkwlabelnode2->type->table_size) {
1226 var3 = 0;
1227 } else {
1228 var3 = var_tkwlabelnode2->type->type_table[cltype] == idtype;
1229 }
1230 }
1231 if (!var3) {
1232 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25695);
1233 exit(1);
1234 }
1235 var_tidnode3 = var_nodearraylist2;
1236 /* <var_tidnode3:nullable Object> isa nullable TId */
1237 cltype5 = type_nullable_parser_nodes__TId.color;
1238 idtype6 = type_nullable_parser_nodes__TId.id;
1239 if(var_tidnode3 == NULL) {
1240 var4 = 1;
1241 } else {
1242 if(cltype5 >= var_tidnode3->type->table_size) {
1243 var4 = 0;
1244 } else {
1245 var4 = var_tidnode3->type->type_table[cltype5] == idtype6;
1246 }
1247 }
1248 if (!var4) {
1249 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25697);
1250 exit(1);
1251 }
1252 var7 = NEW_parser_nodes__ALabel(&type_parser_nodes__ALabel);
1253 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ALabel__init_alabel]))(var7, var_tkwlabelnode2, var_tidnode3) /* init_alabel on <var7:ALabel>*/;
1254 CHECK_NEW_parser_nodes__ALabel(var7);
1255 var_plabelnode1 = var7;
1256 var_node_list = var_plabelnode1;
1257 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction667> */
1258 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
1259 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
1260 RET_LABEL:;
1261 }
1262 /* method parser#ReduceAction667#action for (self: Object, Parser) */
1263 void VIRTUAL_parser__ReduceAction667__action(val* self, val* p0) {
1264 parser__ReduceAction667__action(self, p0);
1265 RET_LABEL:;
1266 }
1267 /* method parser#ReduceAction668#action for (self: ReduceAction668, Parser) */
1268 void parser__ReduceAction668__action(val* self, val* p0) {
1269 val* var_p /* var p: Parser */;
1270 val* var /* : null */;
1271 val* var_node_list /* var node_list: nullable Object */;
1272 val* var1 /* : nullable Object */;
1273 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1274 val* var2 /* : Array[Object] */;
1275 val* var_listnode2 /* var listnode2: Array[Object] */;
1276 val* var_pclosuredefnode1 /* var pclosuredefnode1: nullable Object */;
1277 val* var3 /* : null */;
1278 short int var4 /* : Bool */;
1279 long var5 /* : Int */;
1280 long var6 /* : Int */;
1281 var_p = p0;
1282 var = NULL;
1283 var_node_list = var;
1284 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1285 var_nodearraylist1 = var1;
1286 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
1287 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
1288 CHECK_NEW_array__Array(var2);
1289 var_listnode2 = var2;
1290 var_pclosuredefnode1 = var_nodearraylist1;
1291 var3 = NULL;
1292 if (var_pclosuredefnode1 == NULL) {
1293 var4 = 0; /* is null */
1294 } else {
1295 var4 = 1; /* arg is null and recv is not */
1296 }
1297 if (var4){
1298 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_pclosuredefnode1) /* add on <var_listnode2:Array[Object]>*/;
1299 } else {
1300 }
1301 var_node_list = var_listnode2;
1302 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction668> */
1303 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
1304 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
1305 RET_LABEL:;
1306 }
1307 /* method parser#ReduceAction668#action for (self: Object, Parser) */
1308 void VIRTUAL_parser__ReduceAction668__action(val* self, val* p0) {
1309 parser__ReduceAction668__action(self, p0);
1310 RET_LABEL:;
1311 }
1312 /* method parser#ReduceAction669#action for (self: ReduceAction669, Parser) */
1313 void parser__ReduceAction669__action(val* self, val* p0) {
1314 val* var_p /* var p: Parser */;
1315 val* var /* : null */;
1316 val* var_node_list /* var node_list: nullable Object */;
1317 val* var1 /* : nullable Object */;
1318 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1319 val* var2 /* : nullable Object */;
1320 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1321 val* var3 /* : Array[Object] */;
1322 val* var_listnode3 /* var listnode3: Array[Object] */;
1323 val* var_pclosuredefnode1 /* var pclosuredefnode1: nullable Object */;
1324 val* var_listnode2 /* var listnode2: nullable Object */;
1325 short int var4 /* : Bool */;
1326 int cltype;
1327 int idtype;
1328 val* var5 /* : null */;
1329 short int var6 /* : Bool */;
1330 val* var7 /* : Array[Object] */;
1331 long var8 /* : Int */;
1332 long var9 /* : Int */;
1333 var_p = p0;
1334 var = NULL;
1335 var_node_list = var;
1336 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1337 var_nodearraylist2 = var1;
1338 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1339 var_nodearraylist1 = var2;
1340 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
1341 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
1342 CHECK_NEW_array__Array(var3);
1343 var_listnode3 = var3;
1344 var_pclosuredefnode1 = var_nodearraylist1;
1345 var_listnode2 = var_nodearraylist2;
1346 /* <var_listnode2:nullable Object> isa Array[Object] */
1347 cltype = type_array__Arraykernel__Object.color;
1348 idtype = type_array__Arraykernel__Object.id;
1349 if(var_listnode2 == NULL) {
1350 var4 = 0;
1351 } else {
1352 if(cltype >= var_listnode2->type->table_size) {
1353 var4 = 0;
1354 } else {
1355 var4 = var_listnode2->type->type_table[cltype] == idtype;
1356 }
1357 }
1358 if (!var4) {
1359 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25731);
1360 exit(1);
1361 }
1362 var5 = NULL;
1363 if (var_pclosuredefnode1 == NULL) {
1364 var6 = 0; /* is null */
1365 } else {
1366 var6 = 1; /* arg is null and recv is not */
1367 }
1368 if (var6){
1369 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pclosuredefnode1) /* add on <var_listnode3:Array[Object]>*/;
1370 } else {
1371 }
1372 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode2) /* concat on <self:ReduceAction669>*/;
1373 var_listnode3 = var7;
1374 var_node_list = var_listnode3;
1375 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction669> */
1376 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
1377 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
1378 RET_LABEL:;
1379 }
1380 /* method parser#ReduceAction669#action for (self: Object, Parser) */
1381 void VIRTUAL_parser__ReduceAction669__action(val* self, val* p0) {
1382 parser__ReduceAction669__action(self, p0);
1383 RET_LABEL:;
1384 }
1385 /* method parser#ReduceAction670#action for (self: ReduceAction670, Parser) */
1386 void parser__ReduceAction670__action(val* self, val* p0) {
1387 val* var_p /* var p: Parser */;
1388 val* var /* : null */;
1389 val* var_node_list /* var node_list: nullable Object */;
1390 val* var1 /* : nullable Object */;
1391 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1392 val* var2 /* : nullable Object */;
1393 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1394 val* var3 /* : nullable Object */;
1395 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1396 val* var4 /* : nullable Object */;
1397 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1398 val* var5 /* : nullable Object */;
1399 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1400 val* var6 /* : Array[Object] */;
1401 val* var_listnode4 /* var listnode4: Array[Object] */;
1402 val* var_tbangnode2 /* var tbangnode2: nullable Object */;
1403 short int var7 /* : Bool */;
1404 int cltype;
1405 int idtype;
1406 val* var_pclosureidnode3 /* var pclosureidnode3: nullable Object */;
1407 short int var8 /* : Bool */;
1408 int cltype9;
1409 int idtype10;
1410 val* var_tkwdonode5 /* var tkwdonode5: nullable Object */;
1411 short int var11 /* : Bool */;
1412 int cltype12;
1413 int idtype13;
1414 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
1415 short int var14 /* : Bool */;
1416 int cltype15;
1417 int idtype16;
1418 val* var_plabelnode7 /* var plabelnode7: nullable Object */;
1419 short int var17 /* : Bool */;
1420 int cltype18;
1421 int idtype19;
1422 val* var20 /* : AClosureDef */;
1423 val* var_pclosuredefnode1 /* var pclosuredefnode1: nullable AClosureDef */;
1424 long var21 /* : Int */;
1425 long var22 /* : Int */;
1426 var_p = p0;
1427 var = NULL;
1428 var_node_list = var;
1429 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1430 var_nodearraylist5 = var1;
1431 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1432 var_nodearraylist4 = var2;
1433 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1434 var_nodearraylist3 = var3;
1435 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1436 var_nodearraylist2 = var4;
1437 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1438 var_nodearraylist1 = var5;
1439 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
1440 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
1441 CHECK_NEW_array__Array(var6);
1442 var_listnode4 = var6;
1443 var_tbangnode2 = var_nodearraylist1;
1444 /* <var_tbangnode2:nullable Object> isa nullable TBang */
1445 cltype = type_nullable_parser_nodes__TBang.color;
1446 idtype = type_nullable_parser_nodes__TBang.id;
1447 if(var_tbangnode2 == NULL) {
1448 var7 = 1;
1449 } else {
1450 if(cltype >= var_tbangnode2->type->table_size) {
1451 var7 = 0;
1452 } else {
1453 var7 = var_tbangnode2->type->type_table[cltype] == idtype;
1454 }
1455 }
1456 if (!var7) {
1457 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25752);
1458 exit(1);
1459 }
1460 var_pclosureidnode3 = var_nodearraylist2;
1461 /* <var_pclosureidnode3:nullable Object> isa nullable AClosureId */
1462 cltype9 = type_nullable_parser_nodes__AClosureId.color;
1463 idtype10 = type_nullable_parser_nodes__AClosureId.id;
1464 if(var_pclosureidnode3 == NULL) {
1465 var8 = 1;
1466 } else {
1467 if(cltype9 >= var_pclosureidnode3->type->table_size) {
1468 var8 = 0;
1469 } else {
1470 var8 = var_pclosureidnode3->type->type_table[cltype9] == idtype10;
1471 }
1472 }
1473 if (!var8) {
1474 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25754);
1475 exit(1);
1476 }
1477 var_tkwdonode5 = var_nodearraylist3;
1478 /* <var_tkwdonode5:nullable Object> isa nullable TKwdo */
1479 cltype12 = type_nullable_parser_nodes__TKwdo.color;
1480 idtype13 = type_nullable_parser_nodes__TKwdo.id;
1481 if(var_tkwdonode5 == NULL) {
1482 var11 = 1;
1483 } else {
1484 if(cltype12 >= var_tkwdonode5->type->table_size) {
1485 var11 = 0;
1486 } else {
1487 var11 = var_tkwdonode5->type->type_table[cltype12] == idtype13;
1488 }
1489 }
1490 if (!var11) {
1491 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25756);
1492 exit(1);
1493 }
1494 var_pexprnode6 = var_nodearraylist4;
1495 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
1496 cltype15 = type_nullable_parser_nodes__AExpr.color;
1497 idtype16 = type_nullable_parser_nodes__AExpr.id;
1498 if(var_pexprnode6 == NULL) {
1499 var14 = 1;
1500 } else {
1501 if(cltype15 >= var_pexprnode6->type->table_size) {
1502 var14 = 0;
1503 } else {
1504 var14 = var_pexprnode6->type->type_table[cltype15] == idtype16;
1505 }
1506 }
1507 if (!var14) {
1508 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25758);
1509 exit(1);
1510 }
1511 var_plabelnode7 = var_nodearraylist5;
1512 /* <var_plabelnode7:nullable Object> isa nullable ALabel */
1513 cltype18 = type_nullable_parser_nodes__ALabel.color;
1514 idtype19 = type_nullable_parser_nodes__ALabel.id;
1515 if(var_plabelnode7 == NULL) {
1516 var17 = 1;
1517 } else {
1518 if(cltype18 >= var_plabelnode7->type->table_size) {
1519 var17 = 0;
1520 } else {
1521 var17 = var_plabelnode7->type->type_table[cltype18] == idtype19;
1522 }
1523 }
1524 if (!var17) {
1525 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25760);
1526 exit(1);
1527 }
1528 var20 = NEW_parser_nodes__AClosureDef(&type_parser_nodes__AClosureDef);
1529 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var20->class->vft[COLOR_parser_prod__AClosureDef__init_aclosuredef]))(var20, var_tbangnode2, var_pclosureidnode3, var_listnode4, var_tkwdonode5, var_pexprnode6, var_plabelnode7) /* init_aclosuredef on <var20:AClosureDef>*/;
1530 CHECK_NEW_parser_nodes__AClosureDef(var20);
1531 var_pclosuredefnode1 = var20;
1532 var_node_list = var_pclosuredefnode1;
1533 var21 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction670> */
1534 var22 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var21) /* go_to on <var_p:Parser>*/;
1535 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var22, var_node_list) /* push on <var_p:Parser>*/;
1536 RET_LABEL:;
1537 }
1538 /* method parser#ReduceAction670#action for (self: Object, Parser) */
1539 void VIRTUAL_parser__ReduceAction670__action(val* self, val* p0) {
1540 parser__ReduceAction670__action(self, p0);
1541 RET_LABEL:;
1542 }
1543 /* method parser#ReduceAction671#action for (self: ReduceAction671, Parser) */
1544 void parser__ReduceAction671__action(val* self, val* p0) {
1545 val* var_p /* var p: Parser */;
1546 val* var /* : null */;
1547 val* var_node_list /* var node_list: nullable Object */;
1548 val* var1 /* : nullable Object */;
1549 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
1550 val* var2 /* : nullable Object */;
1551 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
1552 val* var3 /* : nullable Object */;
1553 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
1554 val* var4 /* : nullable Object */;
1555 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
1556 val* var5 /* : nullable Object */;
1557 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
1558 val* var6 /* : nullable Object */;
1559 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1560 val* var7 /* : nullable Object */;
1561 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1562 val* var8 /* : nullable Object */;
1563 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1564 val* var9 /* : nullable Object */;
1565 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1566 val* var10 /* : nullable Object */;
1567 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1568 val* var11 /* : Array[Object] */;
1569 val* var_listnode5 /* var listnode5: Array[Object] */;
1570 val* var_tbangnode2 /* var tbangnode2: nullable Object */;
1571 short int var12 /* : Bool */;
1572 int cltype;
1573 int idtype;
1574 val* var_pclosureidnode3 /* var pclosureidnode3: nullable Object */;
1575 short int var13 /* : Bool */;
1576 int cltype14;
1577 int idtype15;
1578 val* var_listnode4 /* var listnode4: nullable Object */;
1579 short int var16 /* : Bool */;
1580 int cltype17;
1581 int idtype18;
1582 val* var19 /* : Array[Object] */;
1583 val* var_tkwdonode6 /* var tkwdonode6: nullable Object */;
1584 short int var20 /* : Bool */;
1585 int cltype21;
1586 int idtype22;
1587 val* var_pexprnode7 /* var pexprnode7: nullable Object */;
1588 short int var23 /* : Bool */;
1589 int cltype24;
1590 int idtype25;
1591 val* var_plabelnode8 /* var plabelnode8: nullable Object */;
1592 short int var26 /* : Bool */;
1593 int cltype27;
1594 int idtype28;
1595 val* var29 /* : AClosureDef */;
1596 val* var_pclosuredefnode1 /* var pclosuredefnode1: nullable AClosureDef */;
1597 long var30 /* : Int */;
1598 long var31 /* : Int */;
1599 var_p = p0;
1600 var = NULL;
1601 var_node_list = var;
1602 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1603 var_nodearraylist10 = var1;
1604 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1605 var_nodearraylist9 = var2;
1606 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1607 var_nodearraylist8 = var3;
1608 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1609 var_nodearraylist7 = var4;
1610 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1611 var_nodearraylist6 = var5;
1612 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1613 var_nodearraylist5 = var6;
1614 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1615 var_nodearraylist4 = var7;
1616 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1617 var_nodearraylist3 = var8;
1618 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1619 var_nodearraylist2 = var9;
1620 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1621 var_nodearraylist1 = var10;
1622 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
1623 ((void (*)(val*))(var11->class->vft[COLOR_array__Array__init]))(var11) /* init on <var11:Array[Object]>*/;
1624 CHECK_NEW_array__Array(var11);
1625 var_listnode5 = var11;
1626 var_tbangnode2 = var_nodearraylist1;
1627 /* <var_tbangnode2:nullable Object> isa nullable TBang */
1628 cltype = type_nullable_parser_nodes__TBang.color;
1629 idtype = type_nullable_parser_nodes__TBang.id;
1630 if(var_tbangnode2 == NULL) {
1631 var12 = 1;
1632 } else {
1633 if(cltype >= var_tbangnode2->type->table_size) {
1634 var12 = 0;
1635 } else {
1636 var12 = var_tbangnode2->type->type_table[cltype] == idtype;
1637 }
1638 }
1639 if (!var12) {
1640 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25790);
1641 exit(1);
1642 }
1643 var_pclosureidnode3 = var_nodearraylist2;
1644 /* <var_pclosureidnode3:nullable Object> isa nullable AClosureId */
1645 cltype14 = type_nullable_parser_nodes__AClosureId.color;
1646 idtype15 = type_nullable_parser_nodes__AClosureId.id;
1647 if(var_pclosureidnode3 == NULL) {
1648 var13 = 1;
1649 } else {
1650 if(cltype14 >= var_pclosureidnode3->type->table_size) {
1651 var13 = 0;
1652 } else {
1653 var13 = var_pclosureidnode3->type->type_table[cltype14] == idtype15;
1654 }
1655 }
1656 if (!var13) {
1657 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25792);
1658 exit(1);
1659 }
1660 var_listnode4 = var_nodearraylist5;
1661 /* <var_listnode4:nullable Object> isa Array[Object] */
1662 cltype17 = type_array__Arraykernel__Object.color;
1663 idtype18 = type_array__Arraykernel__Object.id;
1664 if(var_listnode4 == NULL) {
1665 var16 = 0;
1666 } else {
1667 if(cltype17 >= var_listnode4->type->table_size) {
1668 var16 = 0;
1669 } else {
1670 var16 = var_listnode4->type->type_table[cltype17] == idtype18;
1671 }
1672 }
1673 if (!var16) {
1674 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25794);
1675 exit(1);
1676 }
1677 var19 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction671>*/;
1678 var_listnode5 = var19;
1679 var_tkwdonode6 = var_nodearraylist8;
1680 /* <var_tkwdonode6:nullable Object> isa nullable TKwdo */
1681 cltype21 = type_nullable_parser_nodes__TKwdo.color;
1682 idtype22 = type_nullable_parser_nodes__TKwdo.id;
1683 if(var_tkwdonode6 == NULL) {
1684 var20 = 1;
1685 } else {
1686 if(cltype21 >= var_tkwdonode6->type->table_size) {
1687 var20 = 0;
1688 } else {
1689 var20 = var_tkwdonode6->type->type_table[cltype21] == idtype22;
1690 }
1691 }
1692 if (!var20) {
1693 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25797);
1694 exit(1);
1695 }
1696 var_pexprnode7 = var_nodearraylist9;
1697 /* <var_pexprnode7:nullable Object> isa nullable AExpr */
1698 cltype24 = type_nullable_parser_nodes__AExpr.color;
1699 idtype25 = type_nullable_parser_nodes__AExpr.id;
1700 if(var_pexprnode7 == NULL) {
1701 var23 = 1;
1702 } else {
1703 if(cltype24 >= var_pexprnode7->type->table_size) {
1704 var23 = 0;
1705 } else {
1706 var23 = var_pexprnode7->type->type_table[cltype24] == idtype25;
1707 }
1708 }
1709 if (!var23) {
1710 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25799);
1711 exit(1);
1712 }
1713 var_plabelnode8 = var_nodearraylist10;
1714 /* <var_plabelnode8:nullable Object> isa nullable ALabel */
1715 cltype27 = type_nullable_parser_nodes__ALabel.color;
1716 idtype28 = type_nullable_parser_nodes__ALabel.id;
1717 if(var_plabelnode8 == NULL) {
1718 var26 = 1;
1719 } else {
1720 if(cltype27 >= var_plabelnode8->type->table_size) {
1721 var26 = 0;
1722 } else {
1723 var26 = var_plabelnode8->type->type_table[cltype27] == idtype28;
1724 }
1725 }
1726 if (!var26) {
1727 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25801);
1728 exit(1);
1729 }
1730 var29 = NEW_parser_nodes__AClosureDef(&type_parser_nodes__AClosureDef);
1731 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var29->class->vft[COLOR_parser_prod__AClosureDef__init_aclosuredef]))(var29, var_tbangnode2, var_pclosureidnode3, var_listnode5, var_tkwdonode6, var_pexprnode7, var_plabelnode8) /* init_aclosuredef on <var29:AClosureDef>*/;
1732 CHECK_NEW_parser_nodes__AClosureDef(var29);
1733 var_pclosuredefnode1 = var29;
1734 var_node_list = var_pclosuredefnode1;
1735 var30 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction671> */
1736 var31 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var30) /* go_to on <var_p:Parser>*/;
1737 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var31, var_node_list) /* push on <var_p:Parser>*/;
1738 RET_LABEL:;
1739 }
1740 /* method parser#ReduceAction671#action for (self: Object, Parser) */
1741 void VIRTUAL_parser__ReduceAction671__action(val* self, val* p0) {
1742 parser__ReduceAction671__action(self, p0);
1743 RET_LABEL:;
1744 }
1745 /* method parser#ReduceAction672#action for (self: ReduceAction672, Parser) */
1746 void parser__ReduceAction672__action(val* self, val* p0) {
1747 val* var_p /* var p: Parser */;
1748 val* var /* : null */;
1749 val* var_node_list /* var node_list: nullable Object */;
1750 val* var1 /* : nullable Object */;
1751 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
1752 val* var2 /* : nullable Object */;
1753 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1754 val* var3 /* : nullable Object */;
1755 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1756 val* var4 /* : nullable Object */;
1757 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1758 val* var5 /* : nullable Object */;
1759 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1760 val* var6 /* : nullable Object */;
1761 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1762 val* var7 /* : Array[Object] */;
1763 val* var_listnode5 /* var listnode5: Array[Object] */;
1764 val* var_tbangnode2 /* var tbangnode2: nullable Object */;
1765 short int var8 /* : Bool */;
1766 int cltype;
1767 int idtype;
1768 val* var_pclosureidnode3 /* var pclosureidnode3: nullable Object */;
1769 short int var9 /* : Bool */;
1770 int cltype10;
1771 int idtype11;
1772 val* var_listnode4 /* var listnode4: nullable Object */;
1773 short int var12 /* : Bool */;
1774 int cltype13;
1775 int idtype14;
1776 val* var15 /* : Array[Object] */;
1777 val* var_tkwdonode6 /* var tkwdonode6: nullable Object */;
1778 short int var16 /* : Bool */;
1779 int cltype17;
1780 int idtype18;
1781 val* var_pexprnode7 /* var pexprnode7: nullable Object */;
1782 short int var19 /* : Bool */;
1783 int cltype20;
1784 int idtype21;
1785 val* var_plabelnode8 /* var plabelnode8: nullable Object */;
1786 short int var22 /* : Bool */;
1787 int cltype23;
1788 int idtype24;
1789 val* var25 /* : AClosureDef */;
1790 val* var_pclosuredefnode1 /* var pclosuredefnode1: nullable AClosureDef */;
1791 long var26 /* : Int */;
1792 long var27 /* : Int */;
1793 var_p = p0;
1794 var = NULL;
1795 var_node_list = var;
1796 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1797 var_nodearraylist6 = var1;
1798 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1799 var_nodearraylist5 = var2;
1800 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1801 var_nodearraylist4 = var3;
1802 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1803 var_nodearraylist3 = var4;
1804 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1805 var_nodearraylist2 = var5;
1806 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1807 var_nodearraylist1 = var6;
1808 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
1809 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
1810 CHECK_NEW_array__Array(var7);
1811 var_listnode5 = var7;
1812 var_tbangnode2 = var_nodearraylist1;
1813 /* <var_tbangnode2:nullable Object> isa nullable TBang */
1814 cltype = type_nullable_parser_nodes__TBang.color;
1815 idtype = type_nullable_parser_nodes__TBang.id;
1816 if(var_tbangnode2 == NULL) {
1817 var8 = 1;
1818 } else {
1819 if(cltype >= var_tbangnode2->type->table_size) {
1820 var8 = 0;
1821 } else {
1822 var8 = var_tbangnode2->type->type_table[cltype] == idtype;
1823 }
1824 }
1825 if (!var8) {
1826 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25827);
1827 exit(1);
1828 }
1829 var_pclosureidnode3 = var_nodearraylist2;
1830 /* <var_pclosureidnode3:nullable Object> isa nullable AClosureId */
1831 cltype10 = type_nullable_parser_nodes__AClosureId.color;
1832 idtype11 = type_nullable_parser_nodes__AClosureId.id;
1833 if(var_pclosureidnode3 == NULL) {
1834 var9 = 1;
1835 } else {
1836 if(cltype10 >= var_pclosureidnode3->type->table_size) {
1837 var9 = 0;
1838 } else {
1839 var9 = var_pclosureidnode3->type->type_table[cltype10] == idtype11;
1840 }
1841 }
1842 if (!var9) {
1843 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25829);
1844 exit(1);
1845 }
1846 var_listnode4 = var_nodearraylist3;
1847 /* <var_listnode4:nullable Object> isa Array[Object] */
1848 cltype13 = type_array__Arraykernel__Object.color;
1849 idtype14 = type_array__Arraykernel__Object.id;
1850 if(var_listnode4 == NULL) {
1851 var12 = 0;
1852 } else {
1853 if(cltype13 >= var_listnode4->type->table_size) {
1854 var12 = 0;
1855 } else {
1856 var12 = var_listnode4->type->type_table[cltype13] == idtype14;
1857 }
1858 }
1859 if (!var12) {
1860 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25831);
1861 exit(1);
1862 }
1863 var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction672>*/;
1864 var_listnode5 = var15;
1865 var_tkwdonode6 = var_nodearraylist4;
1866 /* <var_tkwdonode6:nullable Object> isa nullable TKwdo */
1867 cltype17 = type_nullable_parser_nodes__TKwdo.color;
1868 idtype18 = type_nullable_parser_nodes__TKwdo.id;
1869 if(var_tkwdonode6 == NULL) {
1870 var16 = 1;
1871 } else {
1872 if(cltype17 >= var_tkwdonode6->type->table_size) {
1873 var16 = 0;
1874 } else {
1875 var16 = var_tkwdonode6->type->type_table[cltype17] == idtype18;
1876 }
1877 }
1878 if (!var16) {
1879 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25834);
1880 exit(1);
1881 }
1882 var_pexprnode7 = var_nodearraylist5;
1883 /* <var_pexprnode7:nullable Object> isa nullable AExpr */
1884 cltype20 = type_nullable_parser_nodes__AExpr.color;
1885 idtype21 = type_nullable_parser_nodes__AExpr.id;
1886 if(var_pexprnode7 == NULL) {
1887 var19 = 1;
1888 } else {
1889 if(cltype20 >= var_pexprnode7->type->table_size) {
1890 var19 = 0;
1891 } else {
1892 var19 = var_pexprnode7->type->type_table[cltype20] == idtype21;
1893 }
1894 }
1895 if (!var19) {
1896 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25836);
1897 exit(1);
1898 }
1899 var_plabelnode8 = var_nodearraylist6;
1900 /* <var_plabelnode8:nullable Object> isa nullable ALabel */
1901 cltype23 = type_nullable_parser_nodes__ALabel.color;
1902 idtype24 = type_nullable_parser_nodes__ALabel.id;
1903 if(var_plabelnode8 == NULL) {
1904 var22 = 1;
1905 } else {
1906 if(cltype23 >= var_plabelnode8->type->table_size) {
1907 var22 = 0;
1908 } else {
1909 var22 = var_plabelnode8->type->type_table[cltype23] == idtype24;
1910 }
1911 }
1912 if (!var22) {
1913 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25838);
1914 exit(1);
1915 }
1916 var25 = NEW_parser_nodes__AClosureDef(&type_parser_nodes__AClosureDef);
1917 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var25->class->vft[COLOR_parser_prod__AClosureDef__init_aclosuredef]))(var25, var_tbangnode2, var_pclosureidnode3, var_listnode5, var_tkwdonode6, var_pexprnode7, var_plabelnode8) /* init_aclosuredef on <var25:AClosureDef>*/;
1918 CHECK_NEW_parser_nodes__AClosureDef(var25);
1919 var_pclosuredefnode1 = var25;
1920 var_node_list = var_pclosuredefnode1;
1921 var26 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction672> */
1922 var27 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var26) /* go_to on <var_p:Parser>*/;
1923 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var27, var_node_list) /* push on <var_p:Parser>*/;
1924 RET_LABEL:;
1925 }
1926 /* method parser#ReduceAction672#action for (self: Object, Parser) */
1927 void VIRTUAL_parser__ReduceAction672__action(val* self, val* p0) {
1928 parser__ReduceAction672__action(self, p0);
1929 RET_LABEL:;
1930 }
1931 /* method parser#ReduceAction673#action for (self: ReduceAction673, Parser) */
1932 void parser__ReduceAction673__action(val* self, val* p0) {
1933 val* var_p /* var p: Parser */;
1934 val* var /* : null */;
1935 val* var_node_list /* var node_list: nullable Object */;
1936 val* var1 /* : nullable Object */;
1937 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1938 val* var2 /* : nullable Object */;
1939 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1940 val* var3 /* : nullable Object */;
1941 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1942 val* var4 /* : nullable Object */;
1943 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1944 val* var5 /* : Array[Object] */;
1945 val* var_listnode4 /* var listnode4: Array[Object] */;
1946 val* var_tbangnode2 /* var tbangnode2: nullable Object */;
1947 short int var6 /* : Bool */;
1948 int cltype;
1949 int idtype;
1950 val* var_pclosureidnode3 /* var pclosureidnode3: nullable Object */;
1951 short int var7 /* : Bool */;
1952 int cltype8;
1953 int idtype9;
1954 val* var_tkwdonode5 /* var tkwdonode5: nullable Object */;
1955 short int var10 /* : Bool */;
1956 int cltype11;
1957 int idtype12;
1958 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
1959 short int var13 /* : Bool */;
1960 int cltype14;
1961 int idtype15;
1962 val* var16 /* : AClosureDef */;
1963 val* var17 /* : null */;
1964 val* var_pclosuredefnode1 /* var pclosuredefnode1: nullable AClosureDef */;
1965 long var18 /* : Int */;
1966 long var19 /* : Int */;
1967 var_p = p0;
1968 var = NULL;
1969 var_node_list = var;
1970 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1971 var_nodearraylist4 = var1;
1972 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1973 var_nodearraylist3 = var2;
1974 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1975 var_nodearraylist2 = var3;
1976 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1977 var_nodearraylist1 = var4;
1978 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
1979 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
1980 CHECK_NEW_array__Array(var5);
1981 var_listnode4 = var5;
1982 var_tbangnode2 = var_nodearraylist1;
1983 /* <var_tbangnode2:nullable Object> isa nullable TBang */
1984 cltype = type_nullable_parser_nodes__TBang.color;
1985 idtype = type_nullable_parser_nodes__TBang.id;
1986 if(var_tbangnode2 == NULL) {
1987 var6 = 1;
1988 } else {
1989 if(cltype >= var_tbangnode2->type->table_size) {
1990 var6 = 0;
1991 } else {
1992 var6 = var_tbangnode2->type->type_table[cltype] == idtype;
1993 }
1994 }
1995 if (!var6) {
1996 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25862);
1997 exit(1);
1998 }
1999 var_pclosureidnode3 = var_nodearraylist2;
2000 /* <var_pclosureidnode3:nullable Object> isa nullable AClosureId */
2001 cltype8 = type_nullable_parser_nodes__AClosureId.color;
2002 idtype9 = type_nullable_parser_nodes__AClosureId.id;
2003 if(var_pclosureidnode3 == NULL) {
2004 var7 = 1;
2005 } else {
2006 if(cltype8 >= var_pclosureidnode3->type->table_size) {
2007 var7 = 0;
2008 } else {
2009 var7 = var_pclosureidnode3->type->type_table[cltype8] == idtype9;
2010 }
2011 }
2012 if (!var7) {
2013 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25864);
2014 exit(1);
2015 }
2016 var_tkwdonode5 = var_nodearraylist3;
2017 /* <var_tkwdonode5:nullable Object> isa nullable TKwdo */
2018 cltype11 = type_nullable_parser_nodes__TKwdo.color;
2019 idtype12 = type_nullable_parser_nodes__TKwdo.id;
2020 if(var_tkwdonode5 == NULL) {
2021 var10 = 1;
2022 } else {
2023 if(cltype11 >= var_tkwdonode5->type->table_size) {
2024 var10 = 0;
2025 } else {
2026 var10 = var_tkwdonode5->type->type_table[cltype11] == idtype12;
2027 }
2028 }
2029 if (!var10) {
2030 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25866);
2031 exit(1);
2032 }
2033 var_pexprnode6 = var_nodearraylist4;
2034 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
2035 cltype14 = type_nullable_parser_nodes__AExpr.color;
2036 idtype15 = type_nullable_parser_nodes__AExpr.id;
2037 if(var_pexprnode6 == NULL) {
2038 var13 = 1;
2039 } else {
2040 if(cltype14 >= var_pexprnode6->type->table_size) {
2041 var13 = 0;
2042 } else {
2043 var13 = var_pexprnode6->type->type_table[cltype14] == idtype15;
2044 }
2045 }
2046 if (!var13) {
2047 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25868);
2048 exit(1);
2049 }
2050 var16 = NEW_parser_nodes__AClosureDef(&type_parser_nodes__AClosureDef);
2051 var17 = NULL;
2052 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__AClosureDef__init_aclosuredef]))(var16, var_tbangnode2, var_pclosureidnode3, var_listnode4, var_tkwdonode5, var_pexprnode6, var17) /* init_aclosuredef on <var16:AClosureDef>*/;
2053 CHECK_NEW_parser_nodes__AClosureDef(var16);
2054 var_pclosuredefnode1 = var16;
2055 var_node_list = var_pclosuredefnode1;
2056 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction673> */
2057 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
2058 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
2059 RET_LABEL:;
2060 }
2061 /* method parser#ReduceAction673#action for (self: Object, Parser) */
2062 void VIRTUAL_parser__ReduceAction673__action(val* self, val* p0) {
2063 parser__ReduceAction673__action(self, p0);
2064 RET_LABEL:;
2065 }
2066 /* method parser#ReduceAction674#action for (self: ReduceAction674, Parser) */
2067 void parser__ReduceAction674__action(val* self, val* p0) {
2068 val* var_p /* var p: Parser */;
2069 val* var /* : null */;
2070 val* var_node_list /* var node_list: nullable Object */;
2071 val* var1 /* : nullable Object */;
2072 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
2073 val* var2 /* : nullable Object */;
2074 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
2075 val* var3 /* : nullable Object */;
2076 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
2077 val* var4 /* : nullable Object */;
2078 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
2079 val* var5 /* : nullable Object */;
2080 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2081 val* var6 /* : nullable Object */;
2082 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2083 val* var7 /* : nullable Object */;
2084 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2085 val* var8 /* : nullable Object */;
2086 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2087 val* var9 /* : nullable Object */;
2088 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2089 val* var10 /* : Array[Object] */;
2090 val* var_listnode5 /* var listnode5: Array[Object] */;
2091 val* var_tbangnode2 /* var tbangnode2: nullable Object */;
2092 short int var11 /* : Bool */;
2093 int cltype;
2094 int idtype;
2095 val* var_pclosureidnode3 /* var pclosureidnode3: nullable Object */;
2096 short int var12 /* : Bool */;
2097 int cltype13;
2098 int idtype14;
2099 val* var_listnode4 /* var listnode4: nullable Object */;
2100 short int var15 /* : Bool */;
2101 int cltype16;
2102 int idtype17;
2103 val* var18 /* : Array[Object] */;
2104 val* var_tkwdonode6 /* var tkwdonode6: nullable Object */;
2105 short int var19 /* : Bool */;
2106 int cltype20;
2107 int idtype21;
2108 val* var_pexprnode7 /* var pexprnode7: nullable Object */;
2109 short int var22 /* : Bool */;
2110 int cltype23;
2111 int idtype24;
2112 val* var25 /* : AClosureDef */;
2113 val* var26 /* : null */;
2114 val* var_pclosuredefnode1 /* var pclosuredefnode1: nullable AClosureDef */;
2115 long var27 /* : Int */;
2116 long var28 /* : Int */;
2117 var_p = p0;
2118 var = NULL;
2119 var_node_list = var;
2120 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2121 var_nodearraylist9 = var1;
2122 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2123 var_nodearraylist8 = var2;
2124 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2125 var_nodearraylist7 = var3;
2126 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2127 var_nodearraylist6 = var4;
2128 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2129 var_nodearraylist5 = var5;
2130 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2131 var_nodearraylist4 = var6;
2132 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2133 var_nodearraylist3 = var7;
2134 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2135 var_nodearraylist2 = var8;
2136 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2137 var_nodearraylist1 = var9;
2138 var10 = NEW_array__Array(&type_array__Arraykernel__Object);
2139 ((void (*)(val*))(var10->class->vft[COLOR_array__Array__init]))(var10) /* init on <var10:Array[Object]>*/;
2140 CHECK_NEW_array__Array(var10);
2141 var_listnode5 = var10;
2142 var_tbangnode2 = var_nodearraylist1;
2143 /* <var_tbangnode2:nullable Object> isa nullable TBang */
2144 cltype = type_nullable_parser_nodes__TBang.color;
2145 idtype = type_nullable_parser_nodes__TBang.id;
2146 if(var_tbangnode2 == NULL) {
2147 var11 = 1;
2148 } else {
2149 if(cltype >= var_tbangnode2->type->table_size) {
2150 var11 = 0;
2151 } else {
2152 var11 = var_tbangnode2->type->type_table[cltype] == idtype;
2153 }
2154 }
2155 if (!var11) {
2156 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25897);
2157 exit(1);
2158 }
2159 var_pclosureidnode3 = var_nodearraylist2;
2160 /* <var_pclosureidnode3:nullable Object> isa nullable AClosureId */
2161 cltype13 = type_nullable_parser_nodes__AClosureId.color;
2162 idtype14 = type_nullable_parser_nodes__AClosureId.id;
2163 if(var_pclosureidnode3 == NULL) {
2164 var12 = 1;
2165 } else {
2166 if(cltype13 >= var_pclosureidnode3->type->table_size) {
2167 var12 = 0;
2168 } else {
2169 var12 = var_pclosureidnode3->type->type_table[cltype13] == idtype14;
2170 }
2171 }
2172 if (!var12) {
2173 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25899);
2174 exit(1);
2175 }
2176 var_listnode4 = var_nodearraylist5;
2177 /* <var_listnode4:nullable Object> isa Array[Object] */
2178 cltype16 = type_array__Arraykernel__Object.color;
2179 idtype17 = type_array__Arraykernel__Object.id;
2180 if(var_listnode4 == NULL) {
2181 var15 = 0;
2182 } else {
2183 if(cltype16 >= var_listnode4->type->table_size) {
2184 var15 = 0;
2185 } else {
2186 var15 = var_listnode4->type->type_table[cltype16] == idtype17;
2187 }
2188 }
2189 if (!var15) {
2190 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25901);
2191 exit(1);
2192 }
2193 var18 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction674>*/;
2194 var_listnode5 = var18;
2195 var_tkwdonode6 = var_nodearraylist8;
2196 /* <var_tkwdonode6:nullable Object> isa nullable TKwdo */
2197 cltype20 = type_nullable_parser_nodes__TKwdo.color;
2198 idtype21 = type_nullable_parser_nodes__TKwdo.id;
2199 if(var_tkwdonode6 == NULL) {
2200 var19 = 1;
2201 } else {
2202 if(cltype20 >= var_tkwdonode6->type->table_size) {
2203 var19 = 0;
2204 } else {
2205 var19 = var_tkwdonode6->type->type_table[cltype20] == idtype21;
2206 }
2207 }
2208 if (!var19) {
2209 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25904);
2210 exit(1);
2211 }
2212 var_pexprnode7 = var_nodearraylist9;
2213 /* <var_pexprnode7:nullable Object> isa nullable AExpr */
2214 cltype23 = type_nullable_parser_nodes__AExpr.color;
2215 idtype24 = type_nullable_parser_nodes__AExpr.id;
2216 if(var_pexprnode7 == NULL) {
2217 var22 = 1;
2218 } else {
2219 if(cltype23 >= var_pexprnode7->type->table_size) {
2220 var22 = 0;
2221 } else {
2222 var22 = var_pexprnode7->type->type_table[cltype23] == idtype24;
2223 }
2224 }
2225 if (!var22) {
2226 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25906);
2227 exit(1);
2228 }
2229 var25 = NEW_parser_nodes__AClosureDef(&type_parser_nodes__AClosureDef);
2230 var26 = NULL;
2231 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var25->class->vft[COLOR_parser_prod__AClosureDef__init_aclosuredef]))(var25, var_tbangnode2, var_pclosureidnode3, var_listnode5, var_tkwdonode6, var_pexprnode7, var26) /* init_aclosuredef on <var25:AClosureDef>*/;
2232 CHECK_NEW_parser_nodes__AClosureDef(var25);
2233 var_pclosuredefnode1 = var25;
2234 var_node_list = var_pclosuredefnode1;
2235 var27 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction674> */
2236 var28 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var27) /* go_to on <var_p:Parser>*/;
2237 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var28, var_node_list) /* push on <var_p:Parser>*/;
2238 RET_LABEL:;
2239 }
2240 /* method parser#ReduceAction674#action for (self: Object, Parser) */
2241 void VIRTUAL_parser__ReduceAction674__action(val* self, val* p0) {
2242 parser__ReduceAction674__action(self, p0);
2243 RET_LABEL:;
2244 }
2245 /* method parser#ReduceAction675#action for (self: ReduceAction675, Parser) */
2246 void parser__ReduceAction675__action(val* self, val* p0) {
2247 val* var_p /* var p: Parser */;
2248 val* var /* : null */;
2249 val* var_node_list /* var node_list: nullable Object */;
2250 val* var1 /* : nullable Object */;
2251 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2252 val* var2 /* : nullable Object */;
2253 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2254 val* var3 /* : nullable Object */;
2255 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2256 val* var4 /* : nullable Object */;
2257 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2258 val* var5 /* : nullable Object */;
2259 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2260 val* var6 /* : Array[Object] */;
2261 val* var_listnode5 /* var listnode5: Array[Object] */;
2262 val* var_tbangnode2 /* var tbangnode2: nullable Object */;
2263 short int var7 /* : Bool */;
2264 int cltype;
2265 int idtype;
2266 val* var_pclosureidnode3 /* var pclosureidnode3: nullable Object */;
2267 short int var8 /* : Bool */;
2268 int cltype9;
2269 int idtype10;
2270 val* var_listnode4 /* var listnode4: nullable Object */;
2271 short int var11 /* : Bool */;
2272 int cltype12;
2273 int idtype13;
2274 val* var14 /* : Array[Object] */;
2275 val* var_tkwdonode6 /* var tkwdonode6: nullable Object */;
2276 short int var15 /* : Bool */;
2277 int cltype16;
2278 int idtype17;
2279 val* var_pexprnode7 /* var pexprnode7: nullable Object */;
2280 short int var18 /* : Bool */;
2281 int cltype19;
2282 int idtype20;
2283 val* var21 /* : AClosureDef */;
2284 val* var22 /* : null */;
2285 val* var_pclosuredefnode1 /* var pclosuredefnode1: nullable AClosureDef */;
2286 long var23 /* : Int */;
2287 long var24 /* : Int */;
2288 var_p = p0;
2289 var = NULL;
2290 var_node_list = var;
2291 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2292 var_nodearraylist5 = var1;
2293 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2294 var_nodearraylist4 = var2;
2295 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2296 var_nodearraylist3 = var3;
2297 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2298 var_nodearraylist2 = var4;
2299 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2300 var_nodearraylist1 = var5;
2301 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
2302 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
2303 CHECK_NEW_array__Array(var6);
2304 var_listnode5 = var6;
2305 var_tbangnode2 = var_nodearraylist1;
2306 /* <var_tbangnode2:nullable Object> isa nullable TBang */
2307 cltype = type_nullable_parser_nodes__TBang.color;
2308 idtype = type_nullable_parser_nodes__TBang.id;
2309 if(var_tbangnode2 == NULL) {
2310 var7 = 1;
2311 } else {
2312 if(cltype >= var_tbangnode2->type->table_size) {
2313 var7 = 0;
2314 } else {
2315 var7 = var_tbangnode2->type->type_table[cltype] == idtype;
2316 }
2317 }
2318 if (!var7) {
2319 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25931);
2320 exit(1);
2321 }
2322 var_pclosureidnode3 = var_nodearraylist2;
2323 /* <var_pclosureidnode3:nullable Object> isa nullable AClosureId */
2324 cltype9 = type_nullable_parser_nodes__AClosureId.color;
2325 idtype10 = type_nullable_parser_nodes__AClosureId.id;
2326 if(var_pclosureidnode3 == NULL) {
2327 var8 = 1;
2328 } else {
2329 if(cltype9 >= var_pclosureidnode3->type->table_size) {
2330 var8 = 0;
2331 } else {
2332 var8 = var_pclosureidnode3->type->type_table[cltype9] == idtype10;
2333 }
2334 }
2335 if (!var8) {
2336 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25933);
2337 exit(1);
2338 }
2339 var_listnode4 = var_nodearraylist3;
2340 /* <var_listnode4:nullable Object> isa Array[Object] */
2341 cltype12 = type_array__Arraykernel__Object.color;
2342 idtype13 = type_array__Arraykernel__Object.id;
2343 if(var_listnode4 == NULL) {
2344 var11 = 0;
2345 } else {
2346 if(cltype12 >= var_listnode4->type->table_size) {
2347 var11 = 0;
2348 } else {
2349 var11 = var_listnode4->type->type_table[cltype12] == idtype13;
2350 }
2351 }
2352 if (!var11) {
2353 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25935);
2354 exit(1);
2355 }
2356 var14 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction675>*/;
2357 var_listnode5 = var14;
2358 var_tkwdonode6 = var_nodearraylist4;
2359 /* <var_tkwdonode6:nullable Object> isa nullable TKwdo */
2360 cltype16 = type_nullable_parser_nodes__TKwdo.color;
2361 idtype17 = type_nullable_parser_nodes__TKwdo.id;
2362 if(var_tkwdonode6 == NULL) {
2363 var15 = 1;
2364 } else {
2365 if(cltype16 >= var_tkwdonode6->type->table_size) {
2366 var15 = 0;
2367 } else {
2368 var15 = var_tkwdonode6->type->type_table[cltype16] == idtype17;
2369 }
2370 }
2371 if (!var15) {
2372 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25938);
2373 exit(1);
2374 }
2375 var_pexprnode7 = var_nodearraylist5;
2376 /* <var_pexprnode7:nullable Object> isa nullable AExpr */
2377 cltype19 = type_nullable_parser_nodes__AExpr.color;
2378 idtype20 = type_nullable_parser_nodes__AExpr.id;
2379 if(var_pexprnode7 == NULL) {
2380 var18 = 1;
2381 } else {
2382 if(cltype19 >= var_pexprnode7->type->table_size) {
2383 var18 = 0;
2384 } else {
2385 var18 = var_pexprnode7->type->type_table[cltype19] == idtype20;
2386 }
2387 }
2388 if (!var18) {
2389 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25940);
2390 exit(1);
2391 }
2392 var21 = NEW_parser_nodes__AClosureDef(&type_parser_nodes__AClosureDef);
2393 var22 = NULL;
2394 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var21->class->vft[COLOR_parser_prod__AClosureDef__init_aclosuredef]))(var21, var_tbangnode2, var_pclosureidnode3, var_listnode5, var_tkwdonode6, var_pexprnode7, var22) /* init_aclosuredef on <var21:AClosureDef>*/;
2395 CHECK_NEW_parser_nodes__AClosureDef(var21);
2396 var_pclosuredefnode1 = var21;
2397 var_node_list = var_pclosuredefnode1;
2398 var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction675> */
2399 var24 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var23) /* go_to on <var_p:Parser>*/;
2400 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var24, var_node_list) /* push on <var_p:Parser>*/;
2401 RET_LABEL:;
2402 }
2403 /* method parser#ReduceAction675#action for (self: Object, Parser) */
2404 void VIRTUAL_parser__ReduceAction675__action(val* self, val* p0) {
2405 parser__ReduceAction675__action(self, p0);
2406 RET_LABEL:;
2407 }
2408 /* method parser#ReduceAction676#action for (self: ReduceAction676, Parser) */
2409 void parser__ReduceAction676__action(val* self, val* p0) {
2410 val* var_p /* var p: Parser */;
2411 val* var /* : null */;
2412 val* var_node_list /* var node_list: nullable Object */;
2413 val* var1 /* : nullable Object */;
2414 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2415 val* var2 /* : nullable Object */;
2416 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2417 val* var3 /* : nullable Object */;
2418 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2419 val* var4 /* : nullable Object */;
2420 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2421 val* var5 /* : nullable Object */;
2422 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2423 val* var6 /* : Array[Object] */;
2424 val* var_listnode4 /* var listnode4: Array[Object] */;
2425 val* var_tbangnode2 /* var tbangnode2: nullable Object */;
2426 short int var7 /* : Bool */;
2427 int cltype;
2428 int idtype;
2429 val* var_pclosureidnode3 /* var pclosureidnode3: nullable Object */;
2430 short int var8 /* : Bool */;
2431 int cltype9;
2432 int idtype10;
2433 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
2434 short int var11 /* : Bool */;
2435 int cltype12;
2436 int idtype13;
2437 val* var14 /* : AClosureDef */;
2438 val* var15 /* : null */;
2439 val* var16 /* : null */;
2440 val* var_pclosuredefnode1 /* var pclosuredefnode1: nullable AClosureDef */;
2441 long var17 /* : Int */;
2442 long var18 /* : Int */;
2443 var_p = p0;
2444 var = NULL;
2445 var_node_list = var;
2446 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2447 var_nodearraylist5 = var1;
2448 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2449 var_nodearraylist4 = var2;
2450 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2451 var_nodearraylist3 = var3;
2452 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2453 var_nodearraylist2 = var4;
2454 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2455 var_nodearraylist1 = var5;
2456 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
2457 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
2458 CHECK_NEW_array__Array(var6);
2459 var_listnode4 = var6;
2460 var_tbangnode2 = var_nodearraylist1;
2461 /* <var_tbangnode2:nullable Object> isa nullable TBang */
2462 cltype = type_nullable_parser_nodes__TBang.color;
2463 idtype = type_nullable_parser_nodes__TBang.id;
2464 if(var_tbangnode2 == NULL) {
2465 var7 = 1;
2466 } else {
2467 if(cltype >= var_tbangnode2->type->table_size) {
2468 var7 = 0;
2469 } else {
2470 var7 = var_tbangnode2->type->type_table[cltype] == idtype;
2471 }
2472 }
2473 if (!var7) {
2474 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25965);
2475 exit(1);
2476 }
2477 var_pclosureidnode3 = var_nodearraylist2;
2478 /* <var_pclosureidnode3:nullable Object> isa nullable AClosureId */
2479 cltype9 = type_nullable_parser_nodes__AClosureId.color;
2480 idtype10 = type_nullable_parser_nodes__AClosureId.id;
2481 if(var_pclosureidnode3 == NULL) {
2482 var8 = 1;
2483 } else {
2484 if(cltype9 >= var_pclosureidnode3->type->table_size) {
2485 var8 = 0;
2486 } else {
2487 var8 = var_pclosureidnode3->type->type_table[cltype9] == idtype10;
2488 }
2489 }
2490 if (!var8) {
2491 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25967);
2492 exit(1);
2493 }
2494 var_pexprnode6 = var_nodearraylist5;
2495 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
2496 cltype12 = type_nullable_parser_nodes__AExpr.color;
2497 idtype13 = type_nullable_parser_nodes__AExpr.id;
2498 if(var_pexprnode6 == NULL) {
2499 var11 = 1;
2500 } else {
2501 if(cltype12 >= var_pexprnode6->type->table_size) {
2502 var11 = 0;
2503 } else {
2504 var11 = var_pexprnode6->type->type_table[cltype12] == idtype13;
2505 }
2506 }
2507 if (!var11) {
2508 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25969);
2509 exit(1);
2510 }
2511 var14 = NEW_parser_nodes__AClosureDef(&type_parser_nodes__AClosureDef);
2512 var15 = NULL;
2513 var16 = NULL;
2514 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__AClosureDef__init_aclosuredef]))(var14, var_tbangnode2, var_pclosureidnode3, var_listnode4, var15, var_pexprnode6, var16) /* init_aclosuredef on <var14:AClosureDef>*/;
2515 CHECK_NEW_parser_nodes__AClosureDef(var14);
2516 var_pclosuredefnode1 = var14;
2517 var_node_list = var_pclosuredefnode1;
2518 var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction676> */
2519 var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
2520 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
2521 RET_LABEL:;
2522 }
2523 /* method parser#ReduceAction676#action for (self: Object, Parser) */
2524 void VIRTUAL_parser__ReduceAction676__action(val* self, val* p0) {
2525 parser__ReduceAction676__action(self, p0);
2526 RET_LABEL:;
2527 }
2528 /* method parser#ReduceAction677#action for (self: ReduceAction677, Parser) */
2529 void parser__ReduceAction677__action(val* self, val* p0) {
2530 val* var_p /* var p: Parser */;
2531 val* var /* : null */;
2532 val* var_node_list /* var node_list: nullable Object */;
2533 val* var1 /* : nullable Object */;
2534 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
2535 val* var2 /* : nullable Object */;
2536 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
2537 val* var3 /* : nullable Object */;
2538 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
2539 val* var4 /* : nullable Object */;
2540 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
2541 val* var5 /* : nullable Object */;
2542 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
2543 val* var6 /* : nullable Object */;
2544 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2545 val* var7 /* : nullable Object */;
2546 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2547 val* var8 /* : nullable Object */;
2548 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2549 val* var9 /* : nullable Object */;
2550 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2551 val* var10 /* : nullable Object */;
2552 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2553 val* var11 /* : Array[Object] */;
2554 val* var_listnode5 /* var listnode5: Array[Object] */;
2555 val* var_tbangnode2 /* var tbangnode2: nullable Object */;
2556 short int var12 /* : Bool */;
2557 int cltype;
2558 int idtype;
2559 val* var_pclosureidnode3 /* var pclosureidnode3: nullable Object */;
2560 short int var13 /* : Bool */;
2561 int cltype14;
2562 int idtype15;
2563 val* var_listnode4 /* var listnode4: nullable Object */;
2564 short int var16 /* : Bool */;
2565 int cltype17;
2566 int idtype18;
2567 val* var19 /* : Array[Object] */;
2568 val* var_pexprnode7 /* var pexprnode7: nullable Object */;
2569 short int var20 /* : Bool */;
2570 int cltype21;
2571 int idtype22;
2572 val* var23 /* : AClosureDef */;
2573 val* var24 /* : null */;
2574 val* var25 /* : null */;
2575 val* var_pclosuredefnode1 /* var pclosuredefnode1: nullable AClosureDef */;
2576 long var26 /* : Int */;
2577 long var27 /* : Int */;
2578 var_p = p0;
2579 var = NULL;
2580 var_node_list = var;
2581 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2582 var_nodearraylist10 = var1;
2583 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2584 var_nodearraylist9 = var2;
2585 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2586 var_nodearraylist8 = var3;
2587 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2588 var_nodearraylist7 = var4;
2589 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2590 var_nodearraylist6 = var5;
2591 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2592 var_nodearraylist5 = var6;
2593 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2594 var_nodearraylist4 = var7;
2595 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2596 var_nodearraylist3 = var8;
2597 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2598 var_nodearraylist2 = var9;
2599 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2600 var_nodearraylist1 = var10;
2601 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
2602 ((void (*)(val*))(var11->class->vft[COLOR_array__Array__init]))(var11) /* init on <var11:Array[Object]>*/;
2603 CHECK_NEW_array__Array(var11);
2604 var_listnode5 = var11;
2605 var_tbangnode2 = var_nodearraylist1;
2606 /* <var_tbangnode2:nullable Object> isa nullable TBang */
2607 cltype = type_nullable_parser_nodes__TBang.color;
2608 idtype = type_nullable_parser_nodes__TBang.id;
2609 if(var_tbangnode2 == NULL) {
2610 var12 = 1;
2611 } else {
2612 if(cltype >= var_tbangnode2->type->table_size) {
2613 var12 = 0;
2614 } else {
2615 var12 = var_tbangnode2->type->type_table[cltype] == idtype;
2616 }
2617 }
2618 if (!var12) {
2619 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25999);
2620 exit(1);
2621 }
2622 var_pclosureidnode3 = var_nodearraylist2;
2623 /* <var_pclosureidnode3:nullable Object> isa nullable AClosureId */
2624 cltype14 = type_nullable_parser_nodes__AClosureId.color;
2625 idtype15 = type_nullable_parser_nodes__AClosureId.id;
2626 if(var_pclosureidnode3 == NULL) {
2627 var13 = 1;
2628 } else {
2629 if(cltype14 >= var_pclosureidnode3->type->table_size) {
2630 var13 = 0;
2631 } else {
2632 var13 = var_pclosureidnode3->type->type_table[cltype14] == idtype15;
2633 }
2634 }
2635 if (!var13) {
2636 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26001);
2637 exit(1);
2638 }
2639 var_listnode4 = var_nodearraylist5;
2640 /* <var_listnode4:nullable Object> isa Array[Object] */
2641 cltype17 = type_array__Arraykernel__Object.color;
2642 idtype18 = type_array__Arraykernel__Object.id;
2643 if(var_listnode4 == NULL) {
2644 var16 = 0;
2645 } else {
2646 if(cltype17 >= var_listnode4->type->table_size) {
2647 var16 = 0;
2648 } else {
2649 var16 = var_listnode4->type->type_table[cltype17] == idtype18;
2650 }
2651 }
2652 if (!var16) {
2653 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26003);
2654 exit(1);
2655 }
2656 var19 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction677>*/;
2657 var_listnode5 = var19;
2658 var_pexprnode7 = var_nodearraylist10;
2659 /* <var_pexprnode7:nullable Object> isa nullable AExpr */
2660 cltype21 = type_nullable_parser_nodes__AExpr.color;
2661 idtype22 = type_nullable_parser_nodes__AExpr.id;
2662 if(var_pexprnode7 == NULL) {
2663 var20 = 1;
2664 } else {
2665 if(cltype21 >= var_pexprnode7->type->table_size) {
2666 var20 = 0;
2667 } else {
2668 var20 = var_pexprnode7->type->type_table[cltype21] == idtype22;
2669 }
2670 }
2671 if (!var20) {
2672 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26006);
2673 exit(1);
2674 }
2675 var23 = NEW_parser_nodes__AClosureDef(&type_parser_nodes__AClosureDef);
2676 var24 = NULL;
2677 var25 = NULL;
2678 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var23->class->vft[COLOR_parser_prod__AClosureDef__init_aclosuredef]))(var23, var_tbangnode2, var_pclosureidnode3, var_listnode5, var24, var_pexprnode7, var25) /* init_aclosuredef on <var23:AClosureDef>*/;
2679 CHECK_NEW_parser_nodes__AClosureDef(var23);
2680 var_pclosuredefnode1 = var23;
2681 var_node_list = var_pclosuredefnode1;
2682 var26 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction677> */
2683 var27 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var26) /* go_to on <var_p:Parser>*/;
2684 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var27, var_node_list) /* push on <var_p:Parser>*/;
2685 RET_LABEL:;
2686 }
2687 /* method parser#ReduceAction677#action for (self: Object, Parser) */
2688 void VIRTUAL_parser__ReduceAction677__action(val* self, val* p0) {
2689 parser__ReduceAction677__action(self, p0);
2690 RET_LABEL:;
2691 }
2692 /* method parser#ReduceAction678#action for (self: ReduceAction678, Parser) */
2693 void parser__ReduceAction678__action(val* self, val* p0) {
2694 val* var_p /* var p: Parser */;
2695 val* var /* : null */;
2696 val* var_node_list /* var node_list: nullable Object */;
2697 val* var1 /* : nullable Object */;
2698 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
2699 val* var2 /* : nullable Object */;
2700 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2701 val* var3 /* : nullable Object */;
2702 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2703 val* var4 /* : nullable Object */;
2704 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2705 val* var5 /* : nullable Object */;
2706 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2707 val* var6 /* : nullable Object */;
2708 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2709 val* var7 /* : Array[Object] */;
2710 val* var_listnode5 /* var listnode5: Array[Object] */;
2711 val* var_tbangnode2 /* var tbangnode2: nullable Object */;
2712 short int var8 /* : Bool */;
2713 int cltype;
2714 int idtype;
2715 val* var_pclosureidnode3 /* var pclosureidnode3: nullable Object */;
2716 short int var9 /* : Bool */;
2717 int cltype10;
2718 int idtype11;
2719 val* var_listnode4 /* var listnode4: nullable Object */;
2720 short int var12 /* : Bool */;
2721 int cltype13;
2722 int idtype14;
2723 val* var15 /* : Array[Object] */;
2724 val* var_pexprnode7 /* var pexprnode7: nullable Object */;
2725 short int var16 /* : Bool */;
2726 int cltype17;
2727 int idtype18;
2728 val* var19 /* : AClosureDef */;
2729 val* var20 /* : null */;
2730 val* var21 /* : null */;
2731 val* var_pclosuredefnode1 /* var pclosuredefnode1: nullable AClosureDef */;
2732 long var22 /* : Int */;
2733 long var23 /* : Int */;
2734 var_p = p0;
2735 var = NULL;
2736 var_node_list = var;
2737 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2738 var_nodearraylist6 = var1;
2739 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2740 var_nodearraylist5 = var2;
2741 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2742 var_nodearraylist4 = var3;
2743 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2744 var_nodearraylist3 = var4;
2745 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2746 var_nodearraylist2 = var5;
2747 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2748 var_nodearraylist1 = var6;
2749 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
2750 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
2751 CHECK_NEW_array__Array(var7);
2752 var_listnode5 = var7;
2753 var_tbangnode2 = var_nodearraylist1;
2754 /* <var_tbangnode2:nullable Object> isa nullable TBang */
2755 cltype = type_nullable_parser_nodes__TBang.color;
2756 idtype = type_nullable_parser_nodes__TBang.id;
2757 if(var_tbangnode2 == NULL) {
2758 var8 = 1;
2759 } else {
2760 if(cltype >= var_tbangnode2->type->table_size) {
2761 var8 = 0;
2762 } else {
2763 var8 = var_tbangnode2->type->type_table[cltype] == idtype;
2764 }
2765 }
2766 if (!var8) {
2767 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26032);
2768 exit(1);
2769 }
2770 var_pclosureidnode3 = var_nodearraylist2;
2771 /* <var_pclosureidnode3:nullable Object> isa nullable AClosureId */
2772 cltype10 = type_nullable_parser_nodes__AClosureId.color;
2773 idtype11 = type_nullable_parser_nodes__AClosureId.id;
2774 if(var_pclosureidnode3 == NULL) {
2775 var9 = 1;
2776 } else {
2777 if(cltype10 >= var_pclosureidnode3->type->table_size) {
2778 var9 = 0;
2779 } else {
2780 var9 = var_pclosureidnode3->type->type_table[cltype10] == idtype11;
2781 }
2782 }
2783 if (!var9) {
2784 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26034);
2785 exit(1);
2786 }
2787 var_listnode4 = var_nodearraylist3;
2788 /* <var_listnode4:nullable Object> isa Array[Object] */
2789 cltype13 = type_array__Arraykernel__Object.color;
2790 idtype14 = type_array__Arraykernel__Object.id;
2791 if(var_listnode4 == NULL) {
2792 var12 = 0;
2793 } else {
2794 if(cltype13 >= var_listnode4->type->table_size) {
2795 var12 = 0;
2796 } else {
2797 var12 = var_listnode4->type->type_table[cltype13] == idtype14;
2798 }
2799 }
2800 if (!var12) {
2801 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26036);
2802 exit(1);
2803 }
2804 var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction678>*/;
2805 var_listnode5 = var15;
2806 var_pexprnode7 = var_nodearraylist6;
2807 /* <var_pexprnode7:nullable Object> isa nullable AExpr */
2808 cltype17 = type_nullable_parser_nodes__AExpr.color;
2809 idtype18 = type_nullable_parser_nodes__AExpr.id;
2810 if(var_pexprnode7 == NULL) {
2811 var16 = 1;
2812 } else {
2813 if(cltype17 >= var_pexprnode7->type->table_size) {
2814 var16 = 0;
2815 } else {
2816 var16 = var_pexprnode7->type->type_table[cltype17] == idtype18;
2817 }
2818 }
2819 if (!var16) {
2820 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26039);
2821 exit(1);
2822 }
2823 var19 = NEW_parser_nodes__AClosureDef(&type_parser_nodes__AClosureDef);
2824 var20 = NULL;
2825 var21 = NULL;
2826 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var19->class->vft[COLOR_parser_prod__AClosureDef__init_aclosuredef]))(var19, var_tbangnode2, var_pclosureidnode3, var_listnode5, var20, var_pexprnode7, var21) /* init_aclosuredef on <var19:AClosureDef>*/;
2827 CHECK_NEW_parser_nodes__AClosureDef(var19);
2828 var_pclosuredefnode1 = var19;
2829 var_node_list = var_pclosuredefnode1;
2830 var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction678> */
2831 var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
2832 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
2833 RET_LABEL:;
2834 }
2835 /* method parser#ReduceAction678#action for (self: Object, Parser) */
2836 void VIRTUAL_parser__ReduceAction678__action(val* self, val* p0) {
2837 parser__ReduceAction678__action(self, p0);
2838 RET_LABEL:;
2839 }
2840 /* method parser#ReduceAction679#action for (self: ReduceAction679, Parser) */
2841 void parser__ReduceAction679__action(val* self, val* p0) {
2842 val* var_p /* var p: Parser */;
2843 val* var /* : null */;
2844 val* var_node_list /* var node_list: nullable Object */;
2845 val* var1 /* : nullable Object */;
2846 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2847 val* var2 /* : nullable Object */;
2848 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2849 val* var3 /* : nullable Object */;
2850 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2851 val* var4 /* : nullable Object */;
2852 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2853 val* var5 /* : nullable Object */;
2854 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2855 val* var6 /* : Array[Object] */;
2856 val* var_listnode4 /* var listnode4: Array[Object] */;
2857 val* var_tbangnode2 /* var tbangnode2: nullable Object */;
2858 short int var7 /* : Bool */;
2859 int cltype;
2860 int idtype;
2861 val* var_pclosureidnode3 /* var pclosureidnode3: nullable Object */;
2862 short int var8 /* : Bool */;
2863 int cltype9;
2864 int idtype10;
2865 val* var_tkwdonode5 /* var tkwdonode5: nullable Object */;
2866 short int var11 /* : Bool */;
2867 int cltype12;
2868 int idtype13;
2869 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
2870 short int var14 /* : Bool */;
2871 int cltype15;
2872 int idtype16;
2873 val* var17 /* : AClosureDef */;
2874 val* var18 /* : null */;
2875 val* var_pclosuredefnode1 /* var pclosuredefnode1: nullable AClosureDef */;
2876 long var19 /* : Int */;
2877 long var20 /* : Int */;
2878 var_p = p0;
2879 var = NULL;
2880 var_node_list = var;
2881 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2882 var_nodearraylist5 = var1;
2883 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2884 var_nodearraylist4 = var2;
2885 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2886 var_nodearraylist3 = var3;
2887 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2888 var_nodearraylist2 = var4;
2889 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2890 var_nodearraylist1 = var5;
2891 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
2892 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
2893 CHECK_NEW_array__Array(var6);
2894 var_listnode4 = var6;
2895 var_tbangnode2 = var_nodearraylist1;
2896 /* <var_tbangnode2:nullable Object> isa nullable TBang */
2897 cltype = type_nullable_parser_nodes__TBang.color;
2898 idtype = type_nullable_parser_nodes__TBang.id;
2899 if(var_tbangnode2 == NULL) {
2900 var7 = 1;
2901 } else {
2902 if(cltype >= var_tbangnode2->type->table_size) {
2903 var7 = 0;
2904 } else {
2905 var7 = var_tbangnode2->type->type_table[cltype] == idtype;
2906 }
2907 }
2908 if (!var7) {
2909 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26064);
2910 exit(1);
2911 }
2912 var_pclosureidnode3 = var_nodearraylist2;
2913 /* <var_pclosureidnode3:nullable Object> isa nullable AClosureId */
2914 cltype9 = type_nullable_parser_nodes__AClosureId.color;
2915 idtype10 = type_nullable_parser_nodes__AClosureId.id;
2916 if(var_pclosureidnode3 == NULL) {
2917 var8 = 1;
2918 } else {
2919 if(cltype9 >= var_pclosureidnode3->type->table_size) {
2920 var8 = 0;
2921 } else {
2922 var8 = var_pclosureidnode3->type->type_table[cltype9] == idtype10;
2923 }
2924 }
2925 if (!var8) {
2926 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26066);
2927 exit(1);
2928 }
2929 var_tkwdonode5 = var_nodearraylist3;
2930 /* <var_tkwdonode5:nullable Object> isa nullable TKwdo */
2931 cltype12 = type_nullable_parser_nodes__TKwdo.color;
2932 idtype13 = type_nullable_parser_nodes__TKwdo.id;
2933 if(var_tkwdonode5 == NULL) {
2934 var11 = 1;
2935 } else {
2936 if(cltype12 >= var_tkwdonode5->type->table_size) {
2937 var11 = 0;
2938 } else {
2939 var11 = var_tkwdonode5->type->type_table[cltype12] == idtype13;
2940 }
2941 }
2942 if (!var11) {
2943 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26068);
2944 exit(1);
2945 }
2946 var_pexprnode6 = var_nodearraylist5;
2947 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
2948 cltype15 = type_nullable_parser_nodes__AExpr.color;
2949 idtype16 = type_nullable_parser_nodes__AExpr.id;
2950 if(var_pexprnode6 == NULL) {
2951 var14 = 1;
2952 } else {
2953 if(cltype15 >= var_pexprnode6->type->table_size) {
2954 var14 = 0;
2955 } else {
2956 var14 = var_pexprnode6->type->type_table[cltype15] == idtype16;
2957 }
2958 }
2959 if (!var14) {
2960 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26070);
2961 exit(1);
2962 }
2963 var17 = NEW_parser_nodes__AClosureDef(&type_parser_nodes__AClosureDef);
2964 var18 = NULL;
2965 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AClosureDef__init_aclosuredef]))(var17, var_tbangnode2, var_pclosureidnode3, var_listnode4, var_tkwdonode5, var_pexprnode6, var18) /* init_aclosuredef on <var17:AClosureDef>*/;
2966 CHECK_NEW_parser_nodes__AClosureDef(var17);
2967 var_pclosuredefnode1 = var17;
2968 var_node_list = var_pclosuredefnode1;
2969 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction679> */
2970 var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
2971 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
2972 RET_LABEL:;
2973 }
2974 /* method parser#ReduceAction679#action for (self: Object, Parser) */
2975 void VIRTUAL_parser__ReduceAction679__action(val* self, val* p0) {
2976 parser__ReduceAction679__action(self, p0);
2977 RET_LABEL:;
2978 }
2979 /* method parser#ReduceAction680#action for (self: ReduceAction680, Parser) */
2980 void parser__ReduceAction680__action(val* self, val* p0) {
2981 val* var_p /* var p: Parser */;
2982 val* var /* : null */;
2983 val* var_node_list /* var node_list: nullable Object */;
2984 val* var1 /* : nullable Object */;
2985 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
2986 val* var2 /* : nullable Object */;
2987 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
2988 val* var3 /* : nullable Object */;
2989 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
2990 val* var4 /* : nullable Object */;
2991 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
2992 val* var5 /* : nullable Object */;
2993 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
2994 val* var6 /* : nullable Object */;
2995 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2996 val* var7 /* : nullable Object */;
2997 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2998 val* var8 /* : nullable Object */;
2999 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3000 val* var9 /* : nullable Object */;
3001 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3002 val* var10 /* : nullable Object */;
3003 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3004 val* var11 /* : Array[Object] */;
3005 val* var_listnode5 /* var listnode5: Array[Object] */;
3006 val* var_tbangnode2 /* var tbangnode2: nullable Object */;
3007 short int var12 /* : Bool */;
3008 int cltype;
3009 int idtype;
3010 val* var_pclosureidnode3 /* var pclosureidnode3: nullable Object */;
3011 short int var13 /* : Bool */;
3012 int cltype14;
3013 int idtype15;
3014 val* var_listnode4 /* var listnode4: nullable Object */;
3015 short int var16 /* : Bool */;
3016 int cltype17;
3017 int idtype18;
3018 val* var19 /* : Array[Object] */;
3019 val* var_tkwdonode6 /* var tkwdonode6: nullable Object */;
3020 short int var20 /* : Bool */;
3021 int cltype21;
3022 int idtype22;
3023 val* var_pexprnode7 /* var pexprnode7: nullable Object */;
3024 short int var23 /* : Bool */;
3025 int cltype24;
3026 int idtype25;
3027 val* var26 /* : AClosureDef */;
3028 val* var27 /* : null */;
3029 val* var_pclosuredefnode1 /* var pclosuredefnode1: nullable AClosureDef */;
3030 long var28 /* : Int */;
3031 long var29 /* : Int */;
3032 var_p = p0;
3033 var = NULL;
3034 var_node_list = var;
3035 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3036 var_nodearraylist10 = var1;
3037 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3038 var_nodearraylist9 = var2;
3039 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3040 var_nodearraylist8 = var3;
3041 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3042 var_nodearraylist7 = var4;
3043 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3044 var_nodearraylist6 = var5;
3045 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3046 var_nodearraylist5 = var6;
3047 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3048 var_nodearraylist4 = var7;
3049 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3050 var_nodearraylist3 = var8;
3051 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3052 var_nodearraylist2 = var9;
3053 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3054 var_nodearraylist1 = var10;
3055 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
3056 ((void (*)(val*))(var11->class->vft[COLOR_array__Array__init]))(var11) /* init on <var11:Array[Object]>*/;
3057 CHECK_NEW_array__Array(var11);
3058 var_listnode5 = var11;
3059 var_tbangnode2 = var_nodearraylist1;
3060 /* <var_tbangnode2:nullable Object> isa nullable TBang */
3061 cltype = type_nullable_parser_nodes__TBang.color;
3062 idtype = type_nullable_parser_nodes__TBang.id;
3063 if(var_tbangnode2 == NULL) {
3064 var12 = 1;
3065 } else {
3066 if(cltype >= var_tbangnode2->type->table_size) {
3067 var12 = 0;
3068 } else {
3069 var12 = var_tbangnode2->type->type_table[cltype] == idtype;
3070 }
3071 }
3072 if (!var12) {
3073 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26100);
3074 exit(1);
3075 }
3076 var_pclosureidnode3 = var_nodearraylist2;
3077 /* <var_pclosureidnode3:nullable Object> isa nullable AClosureId */
3078 cltype14 = type_nullable_parser_nodes__AClosureId.color;
3079 idtype15 = type_nullable_parser_nodes__AClosureId.id;
3080 if(var_pclosureidnode3 == NULL) {
3081 var13 = 1;
3082 } else {
3083 if(cltype14 >= var_pclosureidnode3->type->table_size) {
3084 var13 = 0;
3085 } else {
3086 var13 = var_pclosureidnode3->type->type_table[cltype14] == idtype15;
3087 }
3088 }
3089 if (!var13) {
3090 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26102);
3091 exit(1);
3092 }
3093 var_listnode4 = var_nodearraylist5;
3094 /* <var_listnode4:nullable Object> isa Array[Object] */
3095 cltype17 = type_array__Arraykernel__Object.color;
3096 idtype18 = type_array__Arraykernel__Object.id;
3097 if(var_listnode4 == NULL) {
3098 var16 = 0;
3099 } else {
3100 if(cltype17 >= var_listnode4->type->table_size) {
3101 var16 = 0;
3102 } else {
3103 var16 = var_listnode4->type->type_table[cltype17] == idtype18;
3104 }
3105 }
3106 if (!var16) {
3107 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26104);
3108 exit(1);
3109 }
3110 var19 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction680>*/;
3111 var_listnode5 = var19;
3112 var_tkwdonode6 = var_nodearraylist8;
3113 /* <var_tkwdonode6:nullable Object> isa nullable TKwdo */
3114 cltype21 = type_nullable_parser_nodes__TKwdo.color;
3115 idtype22 = type_nullable_parser_nodes__TKwdo.id;
3116 if(var_tkwdonode6 == NULL) {
3117 var20 = 1;
3118 } else {
3119 if(cltype21 >= var_tkwdonode6->type->table_size) {
3120 var20 = 0;
3121 } else {
3122 var20 = var_tkwdonode6->type->type_table[cltype21] == idtype22;
3123 }
3124 }
3125 if (!var20) {
3126 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26107);
3127 exit(1);
3128 }
3129 var_pexprnode7 = var_nodearraylist10;
3130 /* <var_pexprnode7:nullable Object> isa nullable AExpr */
3131 cltype24 = type_nullable_parser_nodes__AExpr.color;
3132 idtype25 = type_nullable_parser_nodes__AExpr.id;
3133 if(var_pexprnode7 == NULL) {
3134 var23 = 1;
3135 } else {
3136 if(cltype24 >= var_pexprnode7->type->table_size) {
3137 var23 = 0;
3138 } else {
3139 var23 = var_pexprnode7->type->type_table[cltype24] == idtype25;
3140 }
3141 }
3142 if (!var23) {
3143 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26109);
3144 exit(1);
3145 }
3146 var26 = NEW_parser_nodes__AClosureDef(&type_parser_nodes__AClosureDef);
3147 var27 = NULL;
3148 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var26->class->vft[COLOR_parser_prod__AClosureDef__init_aclosuredef]))(var26, var_tbangnode2, var_pclosureidnode3, var_listnode5, var_tkwdonode6, var_pexprnode7, var27) /* init_aclosuredef on <var26:AClosureDef>*/;
3149 CHECK_NEW_parser_nodes__AClosureDef(var26);
3150 var_pclosuredefnode1 = var26;
3151 var_node_list = var_pclosuredefnode1;
3152 var28 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction680> */
3153 var29 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var28) /* go_to on <var_p:Parser>*/;
3154 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var29, var_node_list) /* push on <var_p:Parser>*/;
3155 RET_LABEL:;
3156 }
3157 /* method parser#ReduceAction680#action for (self: Object, Parser) */
3158 void VIRTUAL_parser__ReduceAction680__action(val* self, val* p0) {
3159 parser__ReduceAction680__action(self, p0);
3160 RET_LABEL:;
3161 }
3162 /* method parser#ReduceAction681#action for (self: ReduceAction681, Parser) */
3163 void parser__ReduceAction681__action(val* self, val* p0) {
3164 val* var_p /* var p: Parser */;
3165 val* var /* : null */;
3166 val* var_node_list /* var node_list: nullable Object */;
3167 val* var1 /* : nullable Object */;
3168 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
3169 val* var2 /* : nullable Object */;
3170 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
3171 val* var3 /* : nullable Object */;
3172 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3173 val* var4 /* : nullable Object */;
3174 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3175 val* var5 /* : nullable Object */;
3176 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3177 val* var6 /* : nullable Object */;
3178 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3179 val* var7 /* : Array[Object] */;
3180 val* var_listnode5 /* var listnode5: Array[Object] */;
3181 val* var_tbangnode2 /* var tbangnode2: nullable Object */;
3182 short int var8 /* : Bool */;
3183 int cltype;
3184 int idtype;
3185 val* var_pclosureidnode3 /* var pclosureidnode3: nullable Object */;
3186 short int var9 /* : Bool */;
3187 int cltype10;
3188 int idtype11;
3189 val* var_listnode4 /* var listnode4: nullable Object */;
3190 short int var12 /* : Bool */;
3191 int cltype13;
3192 int idtype14;
3193 val* var15 /* : Array[Object] */;
3194 val* var_tkwdonode6 /* var tkwdonode6: nullable Object */;
3195 short int var16 /* : Bool */;
3196 int cltype17;
3197 int idtype18;
3198 val* var_pexprnode7 /* var pexprnode7: nullable Object */;
3199 short int var19 /* : Bool */;
3200 int cltype20;
3201 int idtype21;
3202 val* var22 /* : AClosureDef */;
3203 val* var23 /* : null */;
3204 val* var_pclosuredefnode1 /* var pclosuredefnode1: nullable AClosureDef */;
3205 long var24 /* : Int */;
3206 long var25 /* : Int */;
3207 var_p = p0;
3208 var = NULL;
3209 var_node_list = var;
3210 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3211 var_nodearraylist6 = var1;
3212 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3213 var_nodearraylist5 = var2;
3214 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3215 var_nodearraylist4 = var3;
3216 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3217 var_nodearraylist3 = var4;
3218 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3219 var_nodearraylist2 = var5;
3220 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3221 var_nodearraylist1 = var6;
3222 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
3223 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
3224 CHECK_NEW_array__Array(var7);
3225 var_listnode5 = var7;
3226 var_tbangnode2 = var_nodearraylist1;
3227 /* <var_tbangnode2:nullable Object> isa nullable TBang */
3228 cltype = type_nullable_parser_nodes__TBang.color;
3229 idtype = type_nullable_parser_nodes__TBang.id;
3230 if(var_tbangnode2 == NULL) {
3231 var8 = 1;
3232 } else {
3233 if(cltype >= var_tbangnode2->type->table_size) {
3234 var8 = 0;
3235 } else {
3236 var8 = var_tbangnode2->type->type_table[cltype] == idtype;
3237 }
3238 }
3239 if (!var8) {
3240 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26135);
3241 exit(1);
3242 }
3243 var_pclosureidnode3 = var_nodearraylist2;
3244 /* <var_pclosureidnode3:nullable Object> isa nullable AClosureId */
3245 cltype10 = type_nullable_parser_nodes__AClosureId.color;
3246 idtype11 = type_nullable_parser_nodes__AClosureId.id;
3247 if(var_pclosureidnode3 == NULL) {
3248 var9 = 1;
3249 } else {
3250 if(cltype10 >= var_pclosureidnode3->type->table_size) {
3251 var9 = 0;
3252 } else {
3253 var9 = var_pclosureidnode3->type->type_table[cltype10] == idtype11;
3254 }
3255 }
3256 if (!var9) {
3257 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26137);
3258 exit(1);
3259 }
3260 var_listnode4 = var_nodearraylist3;
3261 /* <var_listnode4:nullable Object> isa Array[Object] */
3262 cltype13 = type_array__Arraykernel__Object.color;
3263 idtype14 = type_array__Arraykernel__Object.id;
3264 if(var_listnode4 == NULL) {
3265 var12 = 0;
3266 } else {
3267 if(cltype13 >= var_listnode4->type->table_size) {
3268 var12 = 0;
3269 } else {
3270 var12 = var_listnode4->type->type_table[cltype13] == idtype14;
3271 }
3272 }
3273 if (!var12) {
3274 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26139);
3275 exit(1);
3276 }
3277 var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction681>*/;
3278 var_listnode5 = var15;
3279 var_tkwdonode6 = var_nodearraylist4;
3280 /* <var_tkwdonode6:nullable Object> isa nullable TKwdo */
3281 cltype17 = type_nullable_parser_nodes__TKwdo.color;
3282 idtype18 = type_nullable_parser_nodes__TKwdo.id;
3283 if(var_tkwdonode6 == NULL) {
3284 var16 = 1;
3285 } else {
3286 if(cltype17 >= var_tkwdonode6->type->table_size) {
3287 var16 = 0;
3288 } else {
3289 var16 = var_tkwdonode6->type->type_table[cltype17] == idtype18;
3290 }
3291 }
3292 if (!var16) {
3293 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26142);
3294 exit(1);
3295 }
3296 var_pexprnode7 = var_nodearraylist6;
3297 /* <var_pexprnode7:nullable Object> isa nullable AExpr */
3298 cltype20 = type_nullable_parser_nodes__AExpr.color;
3299 idtype21 = type_nullable_parser_nodes__AExpr.id;
3300 if(var_pexprnode7 == NULL) {
3301 var19 = 1;
3302 } else {
3303 if(cltype20 >= var_pexprnode7->type->table_size) {
3304 var19 = 0;
3305 } else {
3306 var19 = var_pexprnode7->type->type_table[cltype20] == idtype21;
3307 }
3308 }
3309 if (!var19) {
3310 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26144);
3311 exit(1);
3312 }
3313 var22 = NEW_parser_nodes__AClosureDef(&type_parser_nodes__AClosureDef);
3314 var23 = NULL;
3315 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var22->class->vft[COLOR_parser_prod__AClosureDef__init_aclosuredef]))(var22, var_tbangnode2, var_pclosureidnode3, var_listnode5, var_tkwdonode6, var_pexprnode7, var23) /* init_aclosuredef on <var22:AClosureDef>*/;
3316 CHECK_NEW_parser_nodes__AClosureDef(var22);
3317 var_pclosuredefnode1 = var22;
3318 var_node_list = var_pclosuredefnode1;
3319 var24 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction681> */
3320 var25 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var24) /* go_to on <var_p:Parser>*/;
3321 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var25, var_node_list) /* push on <var_p:Parser>*/;
3322 RET_LABEL:;
3323 }
3324 /* method parser#ReduceAction681#action for (self: Object, Parser) */
3325 void VIRTUAL_parser__ReduceAction681__action(val* self, val* p0) {
3326 parser__ReduceAction681__action(self, p0);
3327 RET_LABEL:;
3328 }
3329 /* method parser#ReduceAction682#action for (self: ReduceAction682, Parser) */
3330 void parser__ReduceAction682__action(val* self, val* p0) {
3331 val* var_p /* var p: Parser */;
3332 val* var /* : null */;
3333 val* var_node_list /* var node_list: nullable Object */;
3334 val* var1 /* : nullable Object */;
3335 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3336 val* var2 /* : nullable Object */;
3337 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3338 val* var3 /* : nullable Object */;
3339 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3340 val* var4 /* : nullable Object */;
3341 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3342 val* var5 /* : Array[Object] */;
3343 val* var_listnode4 /* var listnode4: Array[Object] */;
3344 val* var_tbangnode2 /* var tbangnode2: nullable Object */;
3345 short int var6 /* : Bool */;
3346 int cltype;
3347 int idtype;
3348 val* var_pclosureidnode3 /* var pclosureidnode3: nullable Object */;
3349 short int var7 /* : Bool */;
3350 int cltype8;
3351 int idtype9;
3352 val* var_tkwdonode5 /* var tkwdonode5: nullable Object */;
3353 short int var10 /* : Bool */;
3354 int cltype11;
3355 int idtype12;
3356 val* var13 /* : AClosureDef */;
3357 val* var14 /* : null */;
3358 val* var15 /* : null */;
3359 val* var_pclosuredefnode1 /* var pclosuredefnode1: nullable AClosureDef */;
3360 long var16 /* : Int */;
3361 long var17 /* : Int */;
3362 var_p = p0;
3363 var = NULL;
3364 var_node_list = var;
3365 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3366 var_nodearraylist4 = var1;
3367 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3368 var_nodearraylist3 = var2;
3369 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3370 var_nodearraylist2 = var3;
3371 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3372 var_nodearraylist1 = var4;
3373 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
3374 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
3375 CHECK_NEW_array__Array(var5);
3376 var_listnode4 = var5;
3377 var_tbangnode2 = var_nodearraylist1;
3378 /* <var_tbangnode2:nullable Object> isa nullable TBang */
3379 cltype = type_nullable_parser_nodes__TBang.color;
3380 idtype = type_nullable_parser_nodes__TBang.id;
3381 if(var_tbangnode2 == NULL) {
3382 var6 = 1;
3383 } else {
3384 if(cltype >= var_tbangnode2->type->table_size) {
3385 var6 = 0;
3386 } else {
3387 var6 = var_tbangnode2->type->type_table[cltype] == idtype;
3388 }
3389 }
3390 if (!var6) {
3391 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26168);
3392 exit(1);
3393 }
3394 var_pclosureidnode3 = var_nodearraylist2;
3395 /* <var_pclosureidnode3:nullable Object> isa nullable AClosureId */
3396 cltype8 = type_nullable_parser_nodes__AClosureId.color;
3397 idtype9 = type_nullable_parser_nodes__AClosureId.id;
3398 if(var_pclosureidnode3 == NULL) {
3399 var7 = 1;
3400 } else {
3401 if(cltype8 >= var_pclosureidnode3->type->table_size) {
3402 var7 = 0;
3403 } else {
3404 var7 = var_pclosureidnode3->type->type_table[cltype8] == idtype9;
3405 }
3406 }
3407 if (!var7) {
3408 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26170);
3409 exit(1);
3410 }
3411 var_tkwdonode5 = var_nodearraylist3;
3412 /* <var_tkwdonode5:nullable Object> isa nullable TKwdo */
3413 cltype11 = type_nullable_parser_nodes__TKwdo.color;
3414 idtype12 = type_nullable_parser_nodes__TKwdo.id;
3415 if(var_tkwdonode5 == NULL) {
3416 var10 = 1;
3417 } else {
3418 if(cltype11 >= var_tkwdonode5->type->table_size) {
3419 var10 = 0;
3420 } else {
3421 var10 = var_tkwdonode5->type->type_table[cltype11] == idtype12;
3422 }
3423 }
3424 if (!var10) {
3425 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26172);
3426 exit(1);
3427 }
3428 var13 = NEW_parser_nodes__AClosureDef(&type_parser_nodes__AClosureDef);
3429 var14 = NULL;
3430 var15 = NULL;
3431 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__AClosureDef__init_aclosuredef]))(var13, var_tbangnode2, var_pclosureidnode3, var_listnode4, var_tkwdonode5, var14, var15) /* init_aclosuredef on <var13:AClosureDef>*/;
3432 CHECK_NEW_parser_nodes__AClosureDef(var13);
3433 var_pclosuredefnode1 = var13;
3434 var_node_list = var_pclosuredefnode1;
3435 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction682> */
3436 var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
3437 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
3438 RET_LABEL:;
3439 }
3440 /* method parser#ReduceAction682#action for (self: Object, Parser) */
3441 void VIRTUAL_parser__ReduceAction682__action(val* self, val* p0) {
3442 parser__ReduceAction682__action(self, p0);
3443 RET_LABEL:;
3444 }
3445 /* method parser#ReduceAction683#action for (self: ReduceAction683, Parser) */
3446 void parser__ReduceAction683__action(val* self, val* p0) {
3447 val* var_p /* var p: Parser */;
3448 val* var /* : null */;
3449 val* var_node_list /* var node_list: nullable Object */;
3450 val* var1 /* : nullable Object */;
3451 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
3452 val* var2 /* : nullable Object */;
3453 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
3454 val* var3 /* : nullable Object */;
3455 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
3456 val* var4 /* : nullable Object */;
3457 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
3458 val* var5 /* : nullable Object */;
3459 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
3460 val* var6 /* : nullable Object */;
3461 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3462 val* var7 /* : nullable Object */;
3463 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3464 val* var8 /* : nullable Object */;
3465 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3466 val* var9 /* : nullable Object */;
3467 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3468 val* var10 /* : Array[Object] */;
3469 val* var_listnode5 /* var listnode5: Array[Object] */;
3470 val* var_tbangnode2 /* var tbangnode2: nullable Object */;
3471 short int var11 /* : Bool */;
3472 int cltype;
3473 int idtype;
3474 val* var_pclosureidnode3 /* var pclosureidnode3: nullable Object */;
3475 short int var12 /* : Bool */;
3476 int cltype13;
3477 int idtype14;
3478 val* var_listnode4 /* var listnode4: nullable Object */;
3479 short int var15 /* : Bool */;
3480 int cltype16;
3481 int idtype17;
3482 val* var18 /* : Array[Object] */;
3483 val* var_tkwdonode6 /* var tkwdonode6: nullable Object */;
3484 short int var19 /* : Bool */;
3485 int cltype20;
3486 int idtype21;
3487 val* var22 /* : AClosureDef */;
3488 val* var23 /* : null */;
3489 val* var24 /* : null */;
3490 val* var_pclosuredefnode1 /* var pclosuredefnode1: nullable AClosureDef */;
3491 long var25 /* : Int */;
3492 long var26 /* : Int */;
3493 var_p = p0;
3494 var = NULL;
3495 var_node_list = var;
3496 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3497 var_nodearraylist9 = var1;
3498 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3499 var_nodearraylist8 = var2;
3500 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3501 var_nodearraylist7 = var3;
3502 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3503 var_nodearraylist6 = var4;
3504 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3505 var_nodearraylist5 = var5;
3506 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3507 var_nodearraylist4 = var6;
3508 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3509 var_nodearraylist3 = var7;
3510 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3511 var_nodearraylist2 = var8;
3512 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3513 var_nodearraylist1 = var9;
3514 var10 = NEW_array__Array(&type_array__Arraykernel__Object);
3515 ((void (*)(val*))(var10->class->vft[COLOR_array__Array__init]))(var10) /* init on <var10:Array[Object]>*/;
3516 CHECK_NEW_array__Array(var10);
3517 var_listnode5 = var10;
3518 var_tbangnode2 = var_nodearraylist1;
3519 /* <var_tbangnode2:nullable Object> isa nullable TBang */
3520 cltype = type_nullable_parser_nodes__TBang.color;
3521 idtype = type_nullable_parser_nodes__TBang.id;
3522 if(var_tbangnode2 == NULL) {
3523 var11 = 1;
3524 } else {
3525 if(cltype >= var_tbangnode2->type->table_size) {
3526 var11 = 0;
3527 } else {
3528 var11 = var_tbangnode2->type->type_table[cltype] == idtype;
3529 }
3530 }
3531 if (!var11) {
3532 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26201);
3533 exit(1);
3534 }
3535 var_pclosureidnode3 = var_nodearraylist2;
3536 /* <var_pclosureidnode3:nullable Object> isa nullable AClosureId */
3537 cltype13 = type_nullable_parser_nodes__AClosureId.color;
3538 idtype14 = type_nullable_parser_nodes__AClosureId.id;
3539 if(var_pclosureidnode3 == NULL) {
3540 var12 = 1;
3541 } else {
3542 if(cltype13 >= var_pclosureidnode3->type->table_size) {
3543 var12 = 0;
3544 } else {
3545 var12 = var_pclosureidnode3->type->type_table[cltype13] == idtype14;
3546 }
3547 }
3548 if (!var12) {
3549 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26203);
3550 exit(1);
3551 }
3552 var_listnode4 = var_nodearraylist5;
3553 /* <var_listnode4:nullable Object> isa Array[Object] */
3554 cltype16 = type_array__Arraykernel__Object.color;
3555 idtype17 = type_array__Arraykernel__Object.id;
3556 if(var_listnode4 == NULL) {
3557 var15 = 0;
3558 } else {
3559 if(cltype16 >= var_listnode4->type->table_size) {
3560 var15 = 0;
3561 } else {
3562 var15 = var_listnode4->type->type_table[cltype16] == idtype17;
3563 }
3564 }
3565 if (!var15) {
3566 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26205);
3567 exit(1);
3568 }
3569 var18 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction683>*/;
3570 var_listnode5 = var18;
3571 var_tkwdonode6 = var_nodearraylist8;
3572 /* <var_tkwdonode6:nullable Object> isa nullable TKwdo */
3573 cltype20 = type_nullable_parser_nodes__TKwdo.color;
3574 idtype21 = type_nullable_parser_nodes__TKwdo.id;
3575 if(var_tkwdonode6 == NULL) {
3576 var19 = 1;
3577 } else {
3578 if(cltype20 >= var_tkwdonode6->type->table_size) {
3579 var19 = 0;
3580 } else {
3581 var19 = var_tkwdonode6->type->type_table[cltype20] == idtype21;
3582 }
3583 }
3584 if (!var19) {
3585 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26208);
3586 exit(1);
3587 }
3588 var22 = NEW_parser_nodes__AClosureDef(&type_parser_nodes__AClosureDef);
3589 var23 = NULL;
3590 var24 = NULL;
3591 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var22->class->vft[COLOR_parser_prod__AClosureDef__init_aclosuredef]))(var22, var_tbangnode2, var_pclosureidnode3, var_listnode5, var_tkwdonode6, var23, var24) /* init_aclosuredef on <var22:AClosureDef>*/;
3592 CHECK_NEW_parser_nodes__AClosureDef(var22);
3593 var_pclosuredefnode1 = var22;
3594 var_node_list = var_pclosuredefnode1;
3595 var25 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction683> */
3596 var26 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var25) /* go_to on <var_p:Parser>*/;
3597 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var26, var_node_list) /* push on <var_p:Parser>*/;
3598 RET_LABEL:;
3599 }
3600 /* method parser#ReduceAction683#action for (self: Object, Parser) */
3601 void VIRTUAL_parser__ReduceAction683__action(val* self, val* p0) {
3602 parser__ReduceAction683__action(self, p0);
3603 RET_LABEL:;
3604 }
3605 /* method parser#ReduceAction684#action for (self: ReduceAction684, Parser) */
3606 void parser__ReduceAction684__action(val* self, val* p0) {
3607 val* var_p /* var p: Parser */;
3608 val* var /* : null */;
3609 val* var_node_list /* var node_list: nullable Object */;
3610 val* var1 /* : nullable Object */;
3611 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
3612 val* var2 /* : nullable Object */;
3613 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3614 val* var3 /* : nullable Object */;
3615 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3616 val* var4 /* : nullable Object */;
3617 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3618 val* var5 /* : nullable Object */;
3619 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3620 val* var6 /* : Array[Object] */;
3621 val* var_listnode5 /* var listnode5: Array[Object] */;
3622 val* var_tbangnode2 /* var tbangnode2: nullable Object */;
3623 short int var7 /* : Bool */;
3624 int cltype;
3625 int idtype;
3626 val* var_pclosureidnode3 /* var pclosureidnode3: nullable Object */;
3627 short int var8 /* : Bool */;
3628 int cltype9;
3629 int idtype10;
3630 val* var_listnode4 /* var listnode4: nullable Object */;
3631 short int var11 /* : Bool */;
3632 int cltype12;
3633 int idtype13;
3634 val* var14 /* : Array[Object] */;
3635 val* var_tkwdonode6 /* var tkwdonode6: nullable Object */;
3636 short int var15 /* : Bool */;
3637 int cltype16;
3638 int idtype17;
3639 val* var18 /* : AClosureDef */;
3640 val* var19 /* : null */;
3641 val* var20 /* : null */;
3642 val* var_pclosuredefnode1 /* var pclosuredefnode1: nullable AClosureDef */;
3643 long var21 /* : Int */;
3644 long var22 /* : Int */;
3645 var_p = p0;
3646 var = NULL;
3647 var_node_list = var;
3648 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3649 var_nodearraylist5 = var1;
3650 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3651 var_nodearraylist4 = var2;
3652 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3653 var_nodearraylist3 = var3;
3654 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3655 var_nodearraylist2 = var4;
3656 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3657 var_nodearraylist1 = var5;
3658 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
3659 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
3660 CHECK_NEW_array__Array(var6);
3661 var_listnode5 = var6;
3662 var_tbangnode2 = var_nodearraylist1;
3663 /* <var_tbangnode2:nullable Object> isa nullable TBang */
3664 cltype = type_nullable_parser_nodes__TBang.color;
3665 idtype = type_nullable_parser_nodes__TBang.id;
3666 if(var_tbangnode2 == NULL) {
3667 var7 = 1;
3668 } else {
3669 if(cltype >= var_tbangnode2->type->table_size) {
3670 var7 = 0;
3671 } else {
3672 var7 = var_tbangnode2->type->type_table[cltype] == idtype;
3673 }
3674 }
3675 if (!var7) {
3676 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26233);
3677 exit(1);
3678 }
3679 var_pclosureidnode3 = var_nodearraylist2;
3680 /* <var_pclosureidnode3:nullable Object> isa nullable AClosureId */
3681 cltype9 = type_nullable_parser_nodes__AClosureId.color;
3682 idtype10 = type_nullable_parser_nodes__AClosureId.id;
3683 if(var_pclosureidnode3 == NULL) {
3684 var8 = 1;
3685 } else {
3686 if(cltype9 >= var_pclosureidnode3->type->table_size) {
3687 var8 = 0;
3688 } else {
3689 var8 = var_pclosureidnode3->type->type_table[cltype9] == idtype10;
3690 }
3691 }
3692 if (!var8) {
3693 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26235);
3694 exit(1);
3695 }
3696 var_listnode4 = var_nodearraylist3;
3697 /* <var_listnode4:nullable Object> isa Array[Object] */
3698 cltype12 = type_array__Arraykernel__Object.color;
3699 idtype13 = type_array__Arraykernel__Object.id;
3700 if(var_listnode4 == NULL) {
3701 var11 = 0;
3702 } else {
3703 if(cltype12 >= var_listnode4->type->table_size) {
3704 var11 = 0;
3705 } else {
3706 var11 = var_listnode4->type->type_table[cltype12] == idtype13;
3707 }
3708 }
3709 if (!var11) {
3710 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26237);
3711 exit(1);
3712 }
3713 var14 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction684>*/;
3714 var_listnode5 = var14;
3715 var_tkwdonode6 = var_nodearraylist4;
3716 /* <var_tkwdonode6:nullable Object> isa nullable TKwdo */
3717 cltype16 = type_nullable_parser_nodes__TKwdo.color;
3718 idtype17 = type_nullable_parser_nodes__TKwdo.id;
3719 if(var_tkwdonode6 == NULL) {
3720 var15 = 1;
3721 } else {
3722 if(cltype16 >= var_tkwdonode6->type->table_size) {
3723 var15 = 0;
3724 } else {
3725 var15 = var_tkwdonode6->type->type_table[cltype16] == idtype17;
3726 }
3727 }
3728 if (!var15) {
3729 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26240);
3730 exit(1);
3731 }
3732 var18 = NEW_parser_nodes__AClosureDef(&type_parser_nodes__AClosureDef);
3733 var19 = NULL;
3734 var20 = NULL;
3735 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var18->class->vft[COLOR_parser_prod__AClosureDef__init_aclosuredef]))(var18, var_tbangnode2, var_pclosureidnode3, var_listnode5, var_tkwdonode6, var19, var20) /* init_aclosuredef on <var18:AClosureDef>*/;
3736 CHECK_NEW_parser_nodes__AClosureDef(var18);
3737 var_pclosuredefnode1 = var18;
3738 var_node_list = var_pclosuredefnode1;
3739 var21 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction684> */
3740 var22 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var21) /* go_to on <var_p:Parser>*/;
3741 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var22, var_node_list) /* push on <var_p:Parser>*/;
3742 RET_LABEL:;
3743 }
3744 /* method parser#ReduceAction684#action for (self: Object, Parser) */
3745 void VIRTUAL_parser__ReduceAction684__action(val* self, val* p0) {
3746 parser__ReduceAction684__action(self, p0);
3747 RET_LABEL:;
3748 }
3749 /* method parser#ReduceAction685#action for (self: ReduceAction685, Parser) */
3750 void parser__ReduceAction685__action(val* self, val* p0) {
3751 val* var_p /* var p: Parser */;
3752 val* var /* : null */;
3753 val* var_node_list /* var node_list: nullable Object */;
3754 val* var1 /* : nullable Object */;
3755 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3756 val* var_tidnode2 /* var tidnode2: nullable Object */;
3757 short int var2 /* : Bool */;
3758 int cltype;
3759 int idtype;
3760 val* var3 /* : ASimpleClosureId */;
3761 val* var_pclosureidnode1 /* var pclosureidnode1: nullable ASimpleClosureId */;
3762 long var4 /* : Int */;
3763 long var5 /* : Int */;
3764 var_p = p0;
3765 var = NULL;
3766 var_node_list = var;
3767 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3768 var_nodearraylist1 = var1;
3769 var_tidnode2 = var_nodearraylist1;
3770 /* <var_tidnode2:nullable Object> isa nullable TId */
3771 cltype = type_nullable_parser_nodes__TId.color;
3772 idtype = type_nullable_parser_nodes__TId.id;
3773 if(var_tidnode2 == NULL) {
3774 var2 = 1;
3775 } else {
3776 if(cltype >= var_tidnode2->type->table_size) {
3777 var2 = 0;
3778 } else {
3779 var2 = var_tidnode2->type->type_table[cltype] == idtype;
3780 }
3781 }
3782 if (!var2) {
3783 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26260);
3784 exit(1);
3785 }
3786 var3 = NEW_parser_nodes__ASimpleClosureId(&type_parser_nodes__ASimpleClosureId);
3787 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__ASimpleClosureId__init_asimpleclosureid]))(var3, var_tidnode2) /* init_asimpleclosureid on <var3:ASimpleClosureId>*/;
3788 CHECK_NEW_parser_nodes__ASimpleClosureId(var3);
3789 var_pclosureidnode1 = var3;
3790 var_node_list = var_pclosureidnode1;
3791 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction685> */
3792 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
3793 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
3794 RET_LABEL:;
3795 }
3796 /* method parser#ReduceAction685#action for (self: Object, Parser) */
3797 void VIRTUAL_parser__ReduceAction685__action(val* self, val* p0) {
3798 parser__ReduceAction685__action(self, p0);
3799 RET_LABEL:;
3800 }
3801 /* method parser#ReduceAction686#action for (self: ReduceAction686, Parser) */
3802 void parser__ReduceAction686__action(val* self, val* p0) {
3803 val* var_p /* var p: Parser */;
3804 val* var /* : null */;
3805 val* var_node_list /* var node_list: nullable Object */;
3806 val* var1 /* : nullable Object */;
3807 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3808 val* var_tkwbreaknode2 /* var tkwbreaknode2: nullable Object */;
3809 short int var2 /* : Bool */;
3810 int cltype;
3811 int idtype;
3812 val* var3 /* : ABreakClosureId */;
3813 val* var_pclosureidnode1 /* var pclosureidnode1: nullable ABreakClosureId */;
3814 long var4 /* : Int */;
3815 long var5 /* : Int */;
3816 var_p = p0;
3817 var = NULL;
3818 var_node_list = var;
3819 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3820 var_nodearraylist1 = var1;
3821 var_tkwbreaknode2 = var_nodearraylist1;
3822 /* <var_tkwbreaknode2:nullable Object> isa nullable TKwbreak */
3823 cltype = type_nullable_parser_nodes__TKwbreak.color;
3824 idtype = type_nullable_parser_nodes__TKwbreak.id;
3825 if(var_tkwbreaknode2 == NULL) {
3826 var2 = 1;
3827 } else {
3828 if(cltype >= var_tkwbreaknode2->type->table_size) {
3829 var2 = 0;
3830 } else {
3831 var2 = var_tkwbreaknode2->type->type_table[cltype] == idtype;
3832 }
3833 }
3834 if (!var2) {
3835 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26275);
3836 exit(1);
3837 }
3838 var3 = NEW_parser_nodes__ABreakClosureId(&type_parser_nodes__ABreakClosureId);
3839 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__ABreakClosureId__init_abreakclosureid]))(var3, var_tkwbreaknode2) /* init_abreakclosureid on <var3:ABreakClosureId>*/;
3840 CHECK_NEW_parser_nodes__ABreakClosureId(var3);
3841 var_pclosureidnode1 = var3;
3842 var_node_list = var_pclosureidnode1;
3843 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction686> */
3844 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
3845 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
3846 RET_LABEL:;
3847 }
3848 /* method parser#ReduceAction686#action for (self: Object, Parser) */
3849 void VIRTUAL_parser__ReduceAction686__action(val* self, val* p0) {
3850 parser__ReduceAction686__action(self, p0);
3851 RET_LABEL:;
3852 }
3853 /* method parser#ReduceAction687#action for (self: ReduceAction687, Parser) */
3854 void parser__ReduceAction687__action(val* self, val* p0) {
3855 val* var_p /* var p: Parser */;
3856 val* var /* : null */;
3857 val* var_node_list /* var node_list: nullable Object */;
3858 val* var1 /* : nullable Object */;
3859 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3860 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
3861 short int var2 /* : Bool */;
3862 int cltype;
3863 int idtype;
3864 val* var3 /* : AContinueExpr */;
3865 val* var4 /* : null */;
3866 val* var5 /* : null */;
3867 val* var_pexprnode1 /* var pexprnode1: nullable AContinueExpr */;
3868 long var6 /* : Int */;
3869 long var7 /* : Int */;
3870 var_p = p0;
3871 var = NULL;
3872 var_node_list = var;
3873 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3874 var_nodearraylist1 = var1;
3875 var_pexprnode4 = var_nodearraylist1;
3876 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
3877 cltype = type_nullable_parser_nodes__AExpr.color;
3878 idtype = type_nullable_parser_nodes__AExpr.id;
3879 if(var_pexprnode4 == NULL) {
3880 var2 = 1;
3881 } else {
3882 if(cltype >= var_pexprnode4->type->table_size) {
3883 var2 = 0;
3884 } else {
3885 var2 = var_pexprnode4->type->type_table[cltype] == idtype;
3886 }
3887 }
3888 if (!var2) {
3889 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26290);
3890 exit(1);
3891 }
3892 var3 = NEW_parser_nodes__AContinueExpr(&type_parser_nodes__AContinueExpr);
3893 var4 = NULL;
3894 var5 = NULL;
3895 ((void (*)(val*, val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AContinueExpr__init_acontinueexpr]))(var3, var4, var5, var_pexprnode4) /* init_acontinueexpr on <var3:AContinueExpr>*/;
3896 CHECK_NEW_parser_nodes__AContinueExpr(var3);
3897 var_pexprnode1 = var3;
3898 var_node_list = var_pexprnode1;
3899 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction687> */
3900 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
3901 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
3902 RET_LABEL:;
3903 }
3904 /* method parser#ReduceAction687#action for (self: Object, Parser) */
3905 void VIRTUAL_parser__ReduceAction687__action(val* self, val* p0) {
3906 parser__ReduceAction687__action(self, p0);
3907 RET_LABEL:;
3908 }
3909 /* method parser#ReduceAction688#action for (self: ReduceAction688, Parser) */
3910 void parser__ReduceAction688__action(val* self, val* p0) {
3911 val* var_p /* var p: Parser */;
3912 val* var /* : null */;
3913 val* var_node_list /* var node_list: nullable Object */;
3914 val* var1 /* : nullable Object */;
3915 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3916 val* var2 /* : nullable Object */;
3917 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3918 val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */;
3919 short int var3 /* : Bool */;
3920 int cltype;
3921 int idtype;
3922 val* var_tidnode3 /* var tidnode3: nullable Object */;
3923 short int var4 /* : Bool */;
3924 int cltype5;
3925 int idtype6;
3926 val* var7 /* : AVardeclExpr */;
3927 val* var8 /* : null */;
3928 val* var9 /* : null */;
3929 val* var10 /* : null */;
3930 val* var11 /* : null */;
3931 val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */;
3932 long var12 /* : Int */;
3933 long var13 /* : Int */;
3934 var_p = p0;
3935 var = NULL;
3936 var_node_list = var;
3937 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3938 var_nodearraylist2 = var1;
3939 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3940 var_nodearraylist1 = var2;
3941 var_tkwvarnode2 = var_nodearraylist1;
3942 /* <var_tkwvarnode2:nullable Object> isa nullable TKwvar */
3943 cltype = type_nullable_parser_nodes__TKwvar.color;
3944 idtype = type_nullable_parser_nodes__TKwvar.id;
3945 if(var_tkwvarnode2 == NULL) {
3946 var3 = 1;
3947 } else {
3948 if(cltype >= var_tkwvarnode2->type->table_size) {
3949 var3 = 0;
3950 } else {
3951 var3 = var_tkwvarnode2->type->type_table[cltype] == idtype;
3952 }
3953 }
3954 if (!var3) {
3955 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26308);
3956 exit(1);
3957 }
3958 var_tidnode3 = var_nodearraylist2;
3959 /* <var_tidnode3:nullable Object> isa nullable TId */
3960 cltype5 = type_nullable_parser_nodes__TId.color;
3961 idtype6 = type_nullable_parser_nodes__TId.id;
3962 if(var_tidnode3 == NULL) {
3963 var4 = 1;
3964 } else {
3965 if(cltype5 >= var_tidnode3->type->table_size) {
3966 var4 = 0;
3967 } else {
3968 var4 = var_tidnode3->type->type_table[cltype5] == idtype6;
3969 }
3970 }
3971 if (!var4) {
3972 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26310);
3973 exit(1);
3974 }
3975 var7 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr);
3976 var8 = NULL;
3977 var9 = NULL;
3978 var10 = NULL;
3979 var11 = NULL;
3980 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AVardeclExpr__init_avardeclexpr]))(var7, var_tkwvarnode2, var_tidnode3, var8, var9, var10, var11) /* init_avardeclexpr on <var7:AVardeclExpr>*/;
3981 CHECK_NEW_parser_nodes__AVardeclExpr(var7);
3982 var_pexprnode1 = var7;
3983 var_node_list = var_pexprnode1;
3984 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction688> */
3985 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
3986 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
3987 RET_LABEL:;
3988 }
3989 /* method parser#ReduceAction688#action for (self: Object, Parser) */
3990 void VIRTUAL_parser__ReduceAction688__action(val* self, val* p0) {
3991 parser__ReduceAction688__action(self, p0);
3992 RET_LABEL:;
3993 }
3994 /* method parser#ReduceAction689#action for (self: ReduceAction689, Parser) */
3995 void parser__ReduceAction689__action(val* self, val* p0) {
3996 val* var_p /* var p: Parser */;
3997 val* var /* : null */;
3998 val* var_node_list /* var node_list: nullable Object */;
3999 val* var1 /* : nullable Object */;
4000 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4001 val* var2 /* : nullable Object */;
4002 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4003 val* var3 /* : nullable Object */;
4004 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4005 val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */;
4006 short int var4 /* : Bool */;
4007 int cltype;
4008 int idtype;
4009 val* var_tidnode3 /* var tidnode3: nullable Object */;
4010 short int var5 /* : Bool */;
4011 int cltype6;
4012 int idtype7;
4013 val* var_pannotationsnode7 /* var pannotationsnode7: nullable Object */;
4014 short int var8 /* : Bool */;
4015 int cltype9;
4016 int idtype10;
4017 val* var11 /* : AVardeclExpr */;
4018 val* var12 /* : null */;
4019 val* var13 /* : null */;
4020 val* var14 /* : null */;
4021 val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */;
4022 long var15 /* : Int */;
4023 long var16 /* : Int */;
4024 var_p = p0;
4025 var = NULL;
4026 var_node_list = var;
4027 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4028 var_nodearraylist3 = var1;
4029 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4030 var_nodearraylist2 = var2;
4031 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4032 var_nodearraylist1 = var3;
4033 var_tkwvarnode2 = var_nodearraylist1;
4034 /* <var_tkwvarnode2:nullable Object> isa nullable TKwvar */
4035 cltype = type_nullable_parser_nodes__TKwvar.color;
4036 idtype = type_nullable_parser_nodes__TKwvar.id;
4037 if(var_tkwvarnode2 == NULL) {
4038 var4 = 1;
4039 } else {
4040 if(cltype >= var_tkwvarnode2->type->table_size) {
4041 var4 = 0;
4042 } else {
4043 var4 = var_tkwvarnode2->type->type_table[cltype] == idtype;
4044 }
4045 }
4046 if (!var4) {
4047 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26332);
4048 exit(1);
4049 }
4050 var_tidnode3 = var_nodearraylist2;
4051 /* <var_tidnode3:nullable Object> isa nullable TId */
4052 cltype6 = type_nullable_parser_nodes__TId.color;
4053 idtype7 = type_nullable_parser_nodes__TId.id;
4054 if(var_tidnode3 == NULL) {
4055 var5 = 1;
4056 } else {
4057 if(cltype6 >= var_tidnode3->type->table_size) {
4058 var5 = 0;
4059 } else {
4060 var5 = var_tidnode3->type->type_table[cltype6] == idtype7;
4061 }
4062 }
4063 if (!var5) {
4064 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26334);
4065 exit(1);
4066 }
4067 var_pannotationsnode7 = var_nodearraylist3;
4068 /* <var_pannotationsnode7:nullable Object> isa nullable AAnnotations */
4069 cltype9 = type_nullable_parser_nodes__AAnnotations.color;
4070 idtype10 = type_nullable_parser_nodes__AAnnotations.id;
4071 if(var_pannotationsnode7 == NULL) {
4072 var8 = 1;
4073 } else {
4074 if(cltype9 >= var_pannotationsnode7->type->table_size) {
4075 var8 = 0;
4076 } else {
4077 var8 = var_pannotationsnode7->type->type_table[cltype9] == idtype10;
4078 }
4079 }
4080 if (!var8) {
4081 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26336);
4082 exit(1);
4083 }
4084 var11 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr);
4085 var12 = NULL;
4086 var13 = NULL;
4087 var14 = NULL;
4088 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AVardeclExpr__init_avardeclexpr]))(var11, var_tkwvarnode2, var_tidnode3, var12, var13, var14, var_pannotationsnode7) /* init_avardeclexpr on <var11:AVardeclExpr>*/;
4089 CHECK_NEW_parser_nodes__AVardeclExpr(var11);
4090 var_pexprnode1 = var11;
4091 var_node_list = var_pexprnode1;
4092 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction689> */
4093 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
4094 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
4095 RET_LABEL:;
4096 }
4097 /* method parser#ReduceAction689#action for (self: Object, Parser) */
4098 void VIRTUAL_parser__ReduceAction689__action(val* self, val* p0) {
4099 parser__ReduceAction689__action(self, p0);
4100 RET_LABEL:;
4101 }
4102 /* method parser#ReduceAction690#action for (self: ReduceAction690, Parser) */
4103 void parser__ReduceAction690__action(val* self, val* p0) {
4104 val* var_p /* var p: Parser */;
4105 val* var /* : null */;
4106 val* var_node_list /* var node_list: nullable Object */;
4107 val* var1 /* : nullable Object */;
4108 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4109 val* var2 /* : nullable Object */;
4110 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4111 val* var3 /* : nullable Object */;
4112 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4113 val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */;
4114 short int var4 /* : Bool */;
4115 int cltype;
4116 int idtype;
4117 val* var_tidnode3 /* var tidnode3: nullable Object */;
4118 short int var5 /* : Bool */;
4119 int cltype6;
4120 int idtype7;
4121 val* var_ptypenode4 /* var ptypenode4: nullable Object */;
4122 short int var8 /* : Bool */;
4123 int cltype9;
4124 int idtype10;
4125 val* var11 /* : AVardeclExpr */;
4126 val* var12 /* : null */;
4127 val* var13 /* : null */;
4128 val* var14 /* : null */;
4129 val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */;
4130 long var15 /* : Int */;
4131 long var16 /* : Int */;
4132 var_p = p0;
4133 var = NULL;
4134 var_node_list = var;
4135 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4136 var_nodearraylist3 = var1;
4137 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4138 var_nodearraylist2 = var2;
4139 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4140 var_nodearraylist1 = var3;
4141 var_tkwvarnode2 = var_nodearraylist1;
4142 /* <var_tkwvarnode2:nullable Object> isa nullable TKwvar */
4143 cltype = type_nullable_parser_nodes__TKwvar.color;
4144 idtype = type_nullable_parser_nodes__TKwvar.id;
4145 if(var_tkwvarnode2 == NULL) {
4146 var4 = 1;
4147 } else {
4148 if(cltype >= var_tkwvarnode2->type->table_size) {
4149 var4 = 0;
4150 } else {
4151 var4 = var_tkwvarnode2->type->type_table[cltype] == idtype;
4152 }
4153 }
4154 if (!var4) {
4155 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26358);
4156 exit(1);
4157 }
4158 var_tidnode3 = var_nodearraylist2;
4159 /* <var_tidnode3:nullable Object> isa nullable TId */
4160 cltype6 = type_nullable_parser_nodes__TId.color;
4161 idtype7 = type_nullable_parser_nodes__TId.id;
4162 if(var_tidnode3 == NULL) {
4163 var5 = 1;
4164 } else {
4165 if(cltype6 >= var_tidnode3->type->table_size) {
4166 var5 = 0;
4167 } else {
4168 var5 = var_tidnode3->type->type_table[cltype6] == idtype7;
4169 }
4170 }
4171 if (!var5) {
4172 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26360);
4173 exit(1);
4174 }
4175 var_ptypenode4 = var_nodearraylist3;
4176 /* <var_ptypenode4:nullable Object> isa nullable AType */
4177 cltype9 = type_nullable_parser_nodes__AType.color;
4178 idtype10 = type_nullable_parser_nodes__AType.id;
4179 if(var_ptypenode4 == NULL) {
4180 var8 = 1;
4181 } else {
4182 if(cltype9 >= var_ptypenode4->type->table_size) {
4183 var8 = 0;
4184 } else {
4185 var8 = var_ptypenode4->type->type_table[cltype9] == idtype10;
4186 }
4187 }
4188 if (!var8) {
4189 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26362);
4190 exit(1);
4191 }
4192 var11 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr);
4193 var12 = NULL;
4194 var13 = NULL;
4195 var14 = NULL;
4196 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AVardeclExpr__init_avardeclexpr]))(var11, var_tkwvarnode2, var_tidnode3, var_ptypenode4, var12, var13, var14) /* init_avardeclexpr on <var11:AVardeclExpr>*/;
4197 CHECK_NEW_parser_nodes__AVardeclExpr(var11);
4198 var_pexprnode1 = var11;
4199 var_node_list = var_pexprnode1;
4200 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction690> */
4201 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
4202 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
4203 RET_LABEL:;
4204 }
4205 /* method parser#ReduceAction690#action for (self: Object, Parser) */
4206 void VIRTUAL_parser__ReduceAction690__action(val* self, val* p0) {
4207 parser__ReduceAction690__action(self, p0);
4208 RET_LABEL:;
4209 }
4210 /* method parser#ReduceAction691#action for (self: ReduceAction691, Parser) */
4211 void parser__ReduceAction691__action(val* self, val* p0) {
4212 val* var_p /* var p: Parser */;
4213 val* var /* : null */;
4214 val* var_node_list /* var node_list: nullable Object */;
4215 val* var1 /* : nullable Object */;
4216 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4217 val* var2 /* : nullable Object */;
4218 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4219 val* var3 /* : nullable Object */;
4220 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4221 val* var4 /* : nullable Object */;
4222 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4223 val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */;
4224 short int var5 /* : Bool */;
4225 int cltype;
4226 int idtype;
4227 val* var_tidnode3 /* var tidnode3: nullable Object */;
4228 short int var6 /* : Bool */;
4229 int cltype7;
4230 int idtype8;
4231 val* var_ptypenode4 /* var ptypenode4: nullable Object */;
4232 short int var9 /* : Bool */;
4233 int cltype10;
4234 int idtype11;
4235 val* var_pannotationsnode7 /* var pannotationsnode7: nullable Object */;
4236 short int var12 /* : Bool */;
4237 int cltype13;
4238 int idtype14;
4239 val* var15 /* : AVardeclExpr */;
4240 val* var16 /* : null */;
4241 val* var17 /* : null */;
4242 val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */;
4243 long var18 /* : Int */;
4244 long var19 /* : Int */;
4245 var_p = p0;
4246 var = NULL;
4247 var_node_list = var;
4248 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4249 var_nodearraylist4 = var1;
4250 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4251 var_nodearraylist3 = var2;
4252 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4253 var_nodearraylist2 = var3;
4254 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4255 var_nodearraylist1 = var4;
4256 var_tkwvarnode2 = var_nodearraylist1;
4257 /* <var_tkwvarnode2:nullable Object> isa nullable TKwvar */
4258 cltype = type_nullable_parser_nodes__TKwvar.color;
4259 idtype = type_nullable_parser_nodes__TKwvar.id;
4260 if(var_tkwvarnode2 == NULL) {
4261 var5 = 1;
4262 } else {
4263 if(cltype >= var_tkwvarnode2->type->table_size) {
4264 var5 = 0;
4265 } else {
4266 var5 = var_tkwvarnode2->type->type_table[cltype] == idtype;
4267 }
4268 }
4269 if (!var5) {
4270 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26385);
4271 exit(1);
4272 }
4273 var_tidnode3 = var_nodearraylist2;
4274 /* <var_tidnode3:nullable Object> isa nullable TId */
4275 cltype7 = type_nullable_parser_nodes__TId.color;
4276 idtype8 = type_nullable_parser_nodes__TId.id;
4277 if(var_tidnode3 == NULL) {
4278 var6 = 1;
4279 } else {
4280 if(cltype7 >= var_tidnode3->type->table_size) {
4281 var6 = 0;
4282 } else {
4283 var6 = var_tidnode3->type->type_table[cltype7] == idtype8;
4284 }
4285 }
4286 if (!var6) {
4287 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26387);
4288 exit(1);
4289 }
4290 var_ptypenode4 = var_nodearraylist4;
4291 /* <var_ptypenode4:nullable Object> isa nullable AType */
4292 cltype10 = type_nullable_parser_nodes__AType.color;
4293 idtype11 = type_nullable_parser_nodes__AType.id;
4294 if(var_ptypenode4 == NULL) {
4295 var9 = 1;
4296 } else {
4297 if(cltype10 >= var_ptypenode4->type->table_size) {
4298 var9 = 0;
4299 } else {
4300 var9 = var_ptypenode4->type->type_table[cltype10] == idtype11;
4301 }
4302 }
4303 if (!var9) {
4304 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26389);
4305 exit(1);
4306 }
4307 var_pannotationsnode7 = var_nodearraylist3;
4308 /* <var_pannotationsnode7:nullable Object> isa nullable AAnnotations */
4309 cltype13 = type_nullable_parser_nodes__AAnnotations.color;
4310 idtype14 = type_nullable_parser_nodes__AAnnotations.id;
4311 if(var_pannotationsnode7 == NULL) {
4312 var12 = 1;
4313 } else {
4314 if(cltype13 >= var_pannotationsnode7->type->table_size) {
4315 var12 = 0;
4316 } else {
4317 var12 = var_pannotationsnode7->type->type_table[cltype13] == idtype14;
4318 }
4319 }
4320 if (!var12) {
4321 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26391);
4322 exit(1);
4323 }
4324 var15 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr);
4325 var16 = NULL;
4326 var17 = NULL;
4327 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__AVardeclExpr__init_avardeclexpr]))(var15, var_tkwvarnode2, var_tidnode3, var_ptypenode4, var16, var17, var_pannotationsnode7) /* init_avardeclexpr on <var15:AVardeclExpr>*/;
4328 CHECK_NEW_parser_nodes__AVardeclExpr(var15);
4329 var_pexprnode1 = var15;
4330 var_node_list = var_pexprnode1;
4331 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction691> */
4332 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
4333 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
4334 RET_LABEL:;
4335 }
4336 /* method parser#ReduceAction691#action for (self: Object, Parser) */
4337 void VIRTUAL_parser__ReduceAction691__action(val* self, val* p0) {
4338 parser__ReduceAction691__action(self, p0);
4339 RET_LABEL:;
4340 }
4341 /* method parser#ReduceAction692#action for (self: ReduceAction692, Parser) */
4342 void parser__ReduceAction692__action(val* self, val* p0) {
4343 val* var_p /* var p: Parser */;
4344 val* var /* : null */;
4345 val* var_node_list /* var node_list: nullable Object */;
4346 val* var1 /* : nullable Object */;
4347 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4348 val* var2 /* : nullable Object */;
4349 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4350 val* var3 /* : nullable Object */;
4351 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4352 val* var4 /* : nullable Object */;
4353 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4354 val* var5 /* : nullable Object */;
4355 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4356 val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */;
4357 short int var6 /* : Bool */;
4358 int cltype;
4359 int idtype;
4360 val* var_tidnode3 /* var tidnode3: nullable Object */;
4361 short int var7 /* : Bool */;
4362 int cltype8;
4363 int idtype9;
4364 val* var_tassignnode5 /* var tassignnode5: nullable Object */;
4365 short int var10 /* : Bool */;
4366 int cltype11;
4367 int idtype12;
4368 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
4369 short int var13 /* : Bool */;
4370 int cltype14;
4371 int idtype15;
4372 val* var16 /* : AVardeclExpr */;
4373 val* var17 /* : null */;
4374 val* var18 /* : null */;
4375 val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */;
4376 long var19 /* : Int */;
4377 long var20 /* : Int */;
4378 var_p = p0;
4379 var = NULL;
4380 var_node_list = var;
4381 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4382 var_nodearraylist5 = var1;
4383 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4384 var_nodearraylist4 = var2;
4385 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4386 var_nodearraylist3 = var3;
4387 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4388 var_nodearraylist2 = var4;
4389 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4390 var_nodearraylist1 = var5;
4391 var_tkwvarnode2 = var_nodearraylist1;
4392 /* <var_tkwvarnode2:nullable Object> isa nullable TKwvar */
4393 cltype = type_nullable_parser_nodes__TKwvar.color;
4394 idtype = type_nullable_parser_nodes__TKwvar.id;
4395 if(var_tkwvarnode2 == NULL) {
4396 var6 = 1;
4397 } else {
4398 if(cltype >= var_tkwvarnode2->type->table_size) {
4399 var6 = 0;
4400 } else {
4401 var6 = var_tkwvarnode2->type->type_table[cltype] == idtype;
4402 }
4403 }
4404 if (!var6) {
4405 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26415);
4406 exit(1);
4407 }
4408 var_tidnode3 = var_nodearraylist2;
4409 /* <var_tidnode3:nullable Object> isa nullable TId */
4410 cltype8 = type_nullable_parser_nodes__TId.color;
4411 idtype9 = type_nullable_parser_nodes__TId.id;
4412 if(var_tidnode3 == NULL) {
4413 var7 = 1;
4414 } else {
4415 if(cltype8 >= var_tidnode3->type->table_size) {
4416 var7 = 0;
4417 } else {
4418 var7 = var_tidnode3->type->type_table[cltype8] == idtype9;
4419 }
4420 }
4421 if (!var7) {
4422 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26417);
4423 exit(1);
4424 }
4425 var_tassignnode5 = var_nodearraylist3;
4426 /* <var_tassignnode5:nullable Object> isa nullable TAssign */
4427 cltype11 = type_nullable_parser_nodes__TAssign.color;
4428 idtype12 = type_nullable_parser_nodes__TAssign.id;
4429 if(var_tassignnode5 == NULL) {
4430 var10 = 1;
4431 } else {
4432 if(cltype11 >= var_tassignnode5->type->table_size) {
4433 var10 = 0;
4434 } else {
4435 var10 = var_tassignnode5->type->type_table[cltype11] == idtype12;
4436 }
4437 }
4438 if (!var10) {
4439 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26419);
4440 exit(1);
4441 }
4442 var_pexprnode6 = var_nodearraylist5;
4443 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
4444 cltype14 = type_nullable_parser_nodes__AExpr.color;
4445 idtype15 = type_nullable_parser_nodes__AExpr.id;
4446 if(var_pexprnode6 == NULL) {
4447 var13 = 1;
4448 } else {
4449 if(cltype14 >= var_pexprnode6->type->table_size) {
4450 var13 = 0;
4451 } else {
4452 var13 = var_pexprnode6->type->type_table[cltype14] == idtype15;
4453 }
4454 }
4455 if (!var13) {
4456 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26421);
4457 exit(1);
4458 }
4459 var16 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr);
4460 var17 = NULL;
4461 var18 = NULL;
4462 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__AVardeclExpr__init_avardeclexpr]))(var16, var_tkwvarnode2, var_tidnode3, var17, var_tassignnode5, var_pexprnode6, var18) /* init_avardeclexpr on <var16:AVardeclExpr>*/;
4463 CHECK_NEW_parser_nodes__AVardeclExpr(var16);
4464 var_pexprnode1 = var16;
4465 var_node_list = var_pexprnode1;
4466 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction692> */
4467 var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
4468 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
4469 RET_LABEL:;
4470 }
4471 /* method parser#ReduceAction692#action for (self: Object, Parser) */
4472 void VIRTUAL_parser__ReduceAction692__action(val* self, val* p0) {
4473 parser__ReduceAction692__action(self, p0);
4474 RET_LABEL:;
4475 }
4476 /* method parser#ReduceAction693#action for (self: ReduceAction693, Parser) */
4477 void parser__ReduceAction693__action(val* self, val* p0) {
4478 val* var_p /* var p: Parser */;
4479 val* var /* : null */;
4480 val* var_node_list /* var node_list: nullable Object */;
4481 val* var1 /* : nullable Object */;
4482 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4483 val* var2 /* : nullable Object */;
4484 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4485 val* var3 /* : nullable Object */;
4486 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4487 val* var4 /* : nullable Object */;
4488 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4489 val* var5 /* : nullable Object */;
4490 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4491 val* var6 /* : nullable Object */;
4492 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4493 val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */;
4494 short int var7 /* : Bool */;
4495 int cltype;
4496 int idtype;
4497 val* var_tidnode3 /* var tidnode3: nullable Object */;
4498 short int var8 /* : Bool */;
4499 int cltype9;
4500 int idtype10;
4501 val* var_tassignnode5 /* var tassignnode5: nullable Object */;
4502 short int var11 /* : Bool */;
4503 int cltype12;
4504 int idtype13;
4505 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
4506 short int var14 /* : Bool */;
4507 int cltype15;
4508 int idtype16;
4509 val* var_pannotationsnode7 /* var pannotationsnode7: nullable Object */;
4510 short int var17 /* : Bool */;
4511 int cltype18;
4512 int idtype19;
4513 val* var20 /* : AVardeclExpr */;
4514 val* var21 /* : null */;
4515 val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */;
4516 long var22 /* : Int */;
4517 long var23 /* : Int */;
4518 var_p = p0;
4519 var = NULL;
4520 var_node_list = var;
4521 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4522 var_nodearraylist6 = var1;
4523 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4524 var_nodearraylist5 = var2;
4525 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4526 var_nodearraylist4 = var3;
4527 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4528 var_nodearraylist3 = var4;
4529 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4530 var_nodearraylist2 = var5;
4531 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4532 var_nodearraylist1 = var6;
4533 var_tkwvarnode2 = var_nodearraylist1;
4534 /* <var_tkwvarnode2:nullable Object> isa nullable TKwvar */
4535 cltype = type_nullable_parser_nodes__TKwvar.color;
4536 idtype = type_nullable_parser_nodes__TKwvar.id;
4537 if(var_tkwvarnode2 == NULL) {
4538 var7 = 1;
4539 } else {
4540 if(cltype >= var_tkwvarnode2->type->table_size) {
4541 var7 = 0;
4542 } else {
4543 var7 = var_tkwvarnode2->type->type_table[cltype] == idtype;
4544 }
4545 }
4546 if (!var7) {
4547 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26446);
4548 exit(1);
4549 }
4550 var_tidnode3 = var_nodearraylist2;
4551 /* <var_tidnode3:nullable Object> isa nullable TId */
4552 cltype9 = type_nullable_parser_nodes__TId.color;
4553 idtype10 = type_nullable_parser_nodes__TId.id;
4554 if(var_tidnode3 == NULL) {
4555 var8 = 1;
4556 } else {
4557 if(cltype9 >= var_tidnode3->type->table_size) {
4558 var8 = 0;
4559 } else {
4560 var8 = var_tidnode3->type->type_table[cltype9] == idtype10;
4561 }
4562 }
4563 if (!var8) {
4564 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26448);
4565 exit(1);
4566 }
4567 var_tassignnode5 = var_nodearraylist4;
4568 /* <var_tassignnode5:nullable Object> isa nullable TAssign */
4569 cltype12 = type_nullable_parser_nodes__TAssign.color;
4570 idtype13 = type_nullable_parser_nodes__TAssign.id;
4571 if(var_tassignnode5 == NULL) {
4572 var11 = 1;
4573 } else {
4574 if(cltype12 >= var_tassignnode5->type->table_size) {
4575 var11 = 0;
4576 } else {
4577 var11 = var_tassignnode5->type->type_table[cltype12] == idtype13;
4578 }
4579 }
4580 if (!var11) {
4581 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26450);
4582 exit(1);
4583 }
4584 var_pexprnode6 = var_nodearraylist6;
4585 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
4586 cltype15 = type_nullable_parser_nodes__AExpr.color;
4587 idtype16 = type_nullable_parser_nodes__AExpr.id;
4588 if(var_pexprnode6 == NULL) {
4589 var14 = 1;
4590 } else {
4591 if(cltype15 >= var_pexprnode6->type->table_size) {
4592 var14 = 0;
4593 } else {
4594 var14 = var_pexprnode6->type->type_table[cltype15] == idtype16;
4595 }
4596 }
4597 if (!var14) {
4598 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26452);
4599 exit(1);
4600 }
4601 var_pannotationsnode7 = var_nodearraylist3;
4602 /* <var_pannotationsnode7:nullable Object> isa nullable AAnnotations */
4603 cltype18 = type_nullable_parser_nodes__AAnnotations.color;
4604 idtype19 = type_nullable_parser_nodes__AAnnotations.id;
4605 if(var_pannotationsnode7 == NULL) {
4606 var17 = 1;
4607 } else {
4608 if(cltype18 >= var_pannotationsnode7->type->table_size) {
4609 var17 = 0;
4610 } else {
4611 var17 = var_pannotationsnode7->type->type_table[cltype18] == idtype19;
4612 }
4613 }
4614 if (!var17) {
4615 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26454);
4616 exit(1);
4617 }
4618 var20 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr);
4619 var21 = NULL;
4620 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var20->class->vft[COLOR_parser_prod__AVardeclExpr__init_avardeclexpr]))(var20, var_tkwvarnode2, var_tidnode3, var21, var_tassignnode5, var_pexprnode6, var_pannotationsnode7) /* init_avardeclexpr on <var20:AVardeclExpr>*/;
4621 CHECK_NEW_parser_nodes__AVardeclExpr(var20);
4622 var_pexprnode1 = var20;
4623 var_node_list = var_pexprnode1;
4624 var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction693> */
4625 var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
4626 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
4627 RET_LABEL:;
4628 }
4629 /* method parser#ReduceAction693#action for (self: Object, Parser) */
4630 void VIRTUAL_parser__ReduceAction693__action(val* self, val* p0) {
4631 parser__ReduceAction693__action(self, p0);
4632 RET_LABEL:;
4633 }
4634 /* method parser#ReduceAction694#action for (self: ReduceAction694, Parser) */
4635 void parser__ReduceAction694__action(val* self, val* p0) {
4636 val* var_p /* var p: Parser */;
4637 val* var /* : null */;
4638 val* var_node_list /* var node_list: nullable Object */;
4639 val* var1 /* : nullable Object */;
4640 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4641 val* var2 /* : nullable Object */;
4642 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4643 val* var3 /* : nullable Object */;
4644 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4645 val* var4 /* : nullable Object */;
4646 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4647 val* var5 /* : nullable Object */;
4648 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4649 val* var6 /* : nullable Object */;
4650 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4651 val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */;
4652 short int var7 /* : Bool */;
4653 int cltype;
4654 int idtype;
4655 val* var_tidnode3 /* var tidnode3: nullable Object */;
4656 short int var8 /* : Bool */;
4657 int cltype9;
4658 int idtype10;
4659 val* var_ptypenode4 /* var ptypenode4: nullable Object */;
4660 short int var11 /* : Bool */;
4661 int cltype12;
4662 int idtype13;
4663 val* var_tassignnode5 /* var tassignnode5: nullable Object */;
4664 short int var14 /* : Bool */;
4665 int cltype15;
4666 int idtype16;
4667 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
4668 short int var17 /* : Bool */;
4669 int cltype18;
4670 int idtype19;
4671 val* var20 /* : AVardeclExpr */;
4672 val* var21 /* : null */;
4673 val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */;
4674 long var22 /* : Int */;
4675 long var23 /* : Int */;
4676 var_p = p0;
4677 var = NULL;
4678 var_node_list = var;
4679 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4680 var_nodearraylist6 = var1;
4681 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4682 var_nodearraylist5 = var2;
4683 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4684 var_nodearraylist4 = var3;
4685 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4686 var_nodearraylist3 = var4;
4687 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4688 var_nodearraylist2 = var5;
4689 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4690 var_nodearraylist1 = var6;
4691 var_tkwvarnode2 = var_nodearraylist1;
4692 /* <var_tkwvarnode2:nullable Object> isa nullable TKwvar */
4693 cltype = type_nullable_parser_nodes__TKwvar.color;
4694 idtype = type_nullable_parser_nodes__TKwvar.id;
4695 if(var_tkwvarnode2 == NULL) {
4696 var7 = 1;
4697 } else {
4698 if(cltype >= var_tkwvarnode2->type->table_size) {
4699 var7 = 0;
4700 } else {
4701 var7 = var_tkwvarnode2->type->type_table[cltype] == idtype;
4702 }
4703 }
4704 if (!var7) {
4705 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26479);
4706 exit(1);
4707 }
4708 var_tidnode3 = var_nodearraylist2;
4709 /* <var_tidnode3:nullable Object> isa nullable TId */
4710 cltype9 = type_nullable_parser_nodes__TId.color;
4711 idtype10 = type_nullable_parser_nodes__TId.id;
4712 if(var_tidnode3 == NULL) {
4713 var8 = 1;
4714 } else {
4715 if(cltype9 >= var_tidnode3->type->table_size) {
4716 var8 = 0;
4717 } else {
4718 var8 = var_tidnode3->type->type_table[cltype9] == idtype10;
4719 }
4720 }
4721 if (!var8) {
4722 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26481);
4723 exit(1);
4724 }
4725 var_ptypenode4 = var_nodearraylist3;
4726 /* <var_ptypenode4:nullable Object> isa nullable AType */
4727 cltype12 = type_nullable_parser_nodes__AType.color;
4728 idtype13 = type_nullable_parser_nodes__AType.id;
4729 if(var_ptypenode4 == NULL) {
4730 var11 = 1;
4731 } else {
4732 if(cltype12 >= var_ptypenode4->type->table_size) {
4733 var11 = 0;
4734 } else {
4735 var11 = var_ptypenode4->type->type_table[cltype12] == idtype13;
4736 }
4737 }
4738 if (!var11) {
4739 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26483);
4740 exit(1);
4741 }
4742 var_tassignnode5 = var_nodearraylist4;
4743 /* <var_tassignnode5:nullable Object> isa nullable TAssign */
4744 cltype15 = type_nullable_parser_nodes__TAssign.color;
4745 idtype16 = type_nullable_parser_nodes__TAssign.id;
4746 if(var_tassignnode5 == NULL) {
4747 var14 = 1;
4748 } else {
4749 if(cltype15 >= var_tassignnode5->type->table_size) {
4750 var14 = 0;
4751 } else {
4752 var14 = var_tassignnode5->type->type_table[cltype15] == idtype16;
4753 }
4754 }
4755 if (!var14) {
4756 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26485);
4757 exit(1);
4758 }
4759 var_pexprnode6 = var_nodearraylist6;
4760 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
4761 cltype18 = type_nullable_parser_nodes__AExpr.color;
4762 idtype19 = type_nullable_parser_nodes__AExpr.id;
4763 if(var_pexprnode6 == NULL) {
4764 var17 = 1;
4765 } else {
4766 if(cltype18 >= var_pexprnode6->type->table_size) {
4767 var17 = 0;
4768 } else {
4769 var17 = var_pexprnode6->type->type_table[cltype18] == idtype19;
4770 }
4771 }
4772 if (!var17) {
4773 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26487);
4774 exit(1);
4775 }
4776 var20 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr);
4777 var21 = NULL;
4778 ((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>*/;
4779 CHECK_NEW_parser_nodes__AVardeclExpr(var20);
4780 var_pexprnode1 = var20;
4781 var_node_list = var_pexprnode1;
4782 var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction694> */
4783 var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
4784 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
4785 RET_LABEL:;
4786 }
4787 /* method parser#ReduceAction694#action for (self: Object, Parser) */
4788 void VIRTUAL_parser__ReduceAction694__action(val* self, val* p0) {
4789 parser__ReduceAction694__action(self, p0);
4790 RET_LABEL:;
4791 }
4792 /* method parser#ReduceAction695#action for (self: ReduceAction695, Parser) */
4793 void parser__ReduceAction695__action(val* self, val* p0) {
4794 val* var_p /* var p: Parser */;
4795 val* var /* : null */;
4796 val* var_node_list /* var node_list: nullable Object */;
4797 val* var1 /* : nullable Object */;
4798 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
4799 val* var2 /* : nullable Object */;
4800 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4801 val* var3 /* : nullable Object */;
4802 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4803 val* var4 /* : nullable Object */;
4804 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4805 val* var5 /* : nullable Object */;
4806 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4807 val* var6 /* : nullable Object */;
4808 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4809 val* var7 /* : nullable Object */;
4810 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4811 val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */;
4812 short int var8 /* : Bool */;
4813 int cltype;
4814 int idtype;
4815 val* var_tidnode3 /* var tidnode3: nullable Object */;
4816 short int var9 /* : Bool */;
4817 int cltype10;
4818 int idtype11;
4819 val* var_ptypenode4 /* var ptypenode4: nullable Object */;
4820 short int var12 /* : Bool */;
4821 int cltype13;
4822 int idtype14;
4823 val* var_tassignnode5 /* var tassignnode5: nullable Object */;
4824 short int var15 /* : Bool */;
4825 int cltype16;
4826 int idtype17;
4827 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
4828 short int var18 /* : Bool */;
4829 int cltype19;
4830 int idtype20;
4831 val* var_pannotationsnode7 /* var pannotationsnode7: nullable Object */;
4832 short int var21 /* : Bool */;
4833 int cltype22;
4834 int idtype23;
4835 val* var24 /* : AVardeclExpr */;
4836 val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */;
4837 long var25 /* : Int */;
4838 long var26 /* : Int */;
4839 var_p = p0;
4840 var = NULL;
4841 var_node_list = var;
4842 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4843 var_nodearraylist7 = var1;
4844 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4845 var_nodearraylist6 = var2;
4846 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4847 var_nodearraylist5 = var3;
4848 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4849 var_nodearraylist4 = var4;
4850 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4851 var_nodearraylist3 = var5;
4852 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4853 var_nodearraylist2 = var6;
4854 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4855 var_nodearraylist1 = var7;
4856 var_tkwvarnode2 = var_nodearraylist1;
4857 /* <var_tkwvarnode2:nullable Object> isa nullable TKwvar */
4858 cltype = type_nullable_parser_nodes__TKwvar.color;
4859 idtype = type_nullable_parser_nodes__TKwvar.id;
4860 if(var_tkwvarnode2 == NULL) {
4861 var8 = 1;
4862 } else {
4863 if(cltype >= var_tkwvarnode2->type->table_size) {
4864 var8 = 0;
4865 } else {
4866 var8 = var_tkwvarnode2->type->type_table[cltype] == idtype;
4867 }
4868 }
4869 if (!var8) {
4870 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26513);
4871 exit(1);
4872 }
4873 var_tidnode3 = var_nodearraylist2;
4874 /* <var_tidnode3:nullable Object> isa nullable TId */
4875 cltype10 = type_nullable_parser_nodes__TId.color;
4876 idtype11 = type_nullable_parser_nodes__TId.id;
4877 if(var_tidnode3 == NULL) {
4878 var9 = 1;
4879 } else {
4880 if(cltype10 >= var_tidnode3->type->table_size) {
4881 var9 = 0;
4882 } else {
4883 var9 = var_tidnode3->type->type_table[cltype10] == idtype11;
4884 }
4885 }
4886 if (!var9) {
4887 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26515);
4888 exit(1);
4889 }
4890 var_ptypenode4 = var_nodearraylist4;
4891 /* <var_ptypenode4:nullable Object> isa nullable AType */
4892 cltype13 = type_nullable_parser_nodes__AType.color;
4893 idtype14 = type_nullable_parser_nodes__AType.id;
4894 if(var_ptypenode4 == NULL) {
4895 var12 = 1;
4896 } else {
4897 if(cltype13 >= var_ptypenode4->type->table_size) {
4898 var12 = 0;
4899 } else {
4900 var12 = var_ptypenode4->type->type_table[cltype13] == idtype14;
4901 }
4902 }
4903 if (!var12) {
4904 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26517);
4905 exit(1);
4906 }
4907 var_tassignnode5 = var_nodearraylist5;
4908 /* <var_tassignnode5:nullable Object> isa nullable TAssign */
4909 cltype16 = type_nullable_parser_nodes__TAssign.color;
4910 idtype17 = type_nullable_parser_nodes__TAssign.id;
4911 if(var_tassignnode5 == NULL) {
4912 var15 = 1;
4913 } else {
4914 if(cltype16 >= var_tassignnode5->type->table_size) {
4915 var15 = 0;
4916 } else {
4917 var15 = var_tassignnode5->type->type_table[cltype16] == idtype17;
4918 }
4919 }
4920 if (!var15) {
4921 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26519);
4922 exit(1);
4923 }
4924 var_pexprnode6 = var_nodearraylist7;
4925 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
4926 cltype19 = type_nullable_parser_nodes__AExpr.color;
4927 idtype20 = type_nullable_parser_nodes__AExpr.id;
4928 if(var_pexprnode6 == NULL) {
4929 var18 = 1;
4930 } else {
4931 if(cltype19 >= var_pexprnode6->type->table_size) {
4932 var18 = 0;
4933 } else {
4934 var18 = var_pexprnode6->type->type_table[cltype19] == idtype20;
4935 }
4936 }
4937 if (!var18) {
4938 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26521);
4939 exit(1);
4940 }
4941 var_pannotationsnode7 = var_nodearraylist3;
4942 /* <var_pannotationsnode7:nullable Object> isa nullable AAnnotations */
4943 cltype22 = type_nullable_parser_nodes__AAnnotations.color;
4944 idtype23 = type_nullable_parser_nodes__AAnnotations.id;
4945 if(var_pannotationsnode7 == NULL) {
4946 var21 = 1;
4947 } else {
4948 if(cltype22 >= var_pannotationsnode7->type->table_size) {
4949 var21 = 0;
4950 } else {
4951 var21 = var_pannotationsnode7->type->type_table[cltype22] == idtype23;
4952 }
4953 }
4954 if (!var21) {
4955 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26523);
4956 exit(1);
4957 }
4958 var24 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr);
4959 ((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>*/;
4960 CHECK_NEW_parser_nodes__AVardeclExpr(var24);
4961 var_pexprnode1 = var24;
4962 var_node_list = var_pexprnode1;
4963 var25 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction695> */
4964 var26 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var25) /* go_to on <var_p:Parser>*/;
4965 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var26, var_node_list) /* push on <var_p:Parser>*/;
4966 RET_LABEL:;
4967 }
4968 /* method parser#ReduceAction695#action for (self: Object, Parser) */
4969 void VIRTUAL_parser__ReduceAction695__action(val* self, val* p0) {
4970 parser__ReduceAction695__action(self, p0);
4971 RET_LABEL:;
4972 }
4973 /* method parser#ReduceAction696#action for (self: ReduceAction696, Parser) */
4974 void parser__ReduceAction696__action(val* self, val* p0) {
4975 val* var_p /* var p: Parser */;
4976 val* var /* : null */;
4977 val* var_node_list /* var node_list: nullable Object */;
4978 val* var1 /* : nullable Object */;
4979 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4980 val* var2 /* : nullable Object */;
4981 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4982 val* var3 /* : nullable Object */;
4983 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4984 val* var4 /* : nullable Object */;
4985 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4986 val* var5 /* : nullable Object */;
4987 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4988 val* var6 /* : nullable Object */;
4989 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4990 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
4991 short int var7 /* : Bool */;
4992 int cltype;
4993 int idtype;
4994 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
4995 short int var8 /* : Bool */;
4996 int cltype9;
4997 int idtype10;
4998 val* var_tassignnode4 /* var tassignnode4: nullable Object */;
4999 short int var11 /* : Bool */;
5000 int cltype12;
5001 int idtype13;
5002 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
5003 short int var14 /* : Bool */;
5004 int cltype15;
5005 int idtype16;
5006 val* var17 /* : AAttrAssignExpr */;
5007 val* var_pexprnode1 /* var pexprnode1: nullable AAttrAssignExpr */;
5008 long var18 /* : Int */;
5009 long var19 /* : Int */;
5010 var_p = p0;
5011 var = NULL;
5012 var_node_list = var;
5013 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5014 var_nodearraylist6 = var1;
5015 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5016 var_nodearraylist5 = var2;
5017 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5018 var_nodearraylist4 = var3;
5019 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5020 var_nodearraylist3 = var4;
5021 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5022 var_nodearraylist2 = var5;
5023 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5024 var_nodearraylist1 = var6;
5025 var_pexprnode2 = var_nodearraylist1;
5026 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
5027 cltype = type_nullable_parser_nodes__AExpr.color;
5028 idtype = type_nullable_parser_nodes__AExpr.id;
5029 if(var_pexprnode2 == NULL) {
5030 var7 = 1;
5031 } else {
5032 if(cltype >= var_pexprnode2->type->table_size) {
5033 var7 = 0;
5034 } else {
5035 var7 = var_pexprnode2->type->type_table[cltype] == idtype;
5036 }
5037 }
5038 if (!var7) {
5039 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26548);
5040 exit(1);
5041 }
5042 var_tattridnode3 = var_nodearraylist4;
5043 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
5044 cltype9 = type_nullable_parser_nodes__TAttrid.color;
5045 idtype10 = type_nullable_parser_nodes__TAttrid.id;
5046 if(var_tattridnode3 == NULL) {
5047 var8 = 1;
5048 } else {
5049 if(cltype9 >= var_tattridnode3->type->table_size) {
5050 var8 = 0;
5051 } else {
5052 var8 = var_tattridnode3->type->type_table[cltype9] == idtype10;
5053 }
5054 }
5055 if (!var8) {
5056 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26550);
5057 exit(1);
5058 }
5059 var_tassignnode4 = var_nodearraylist5;
5060 /* <var_tassignnode4:nullable Object> isa nullable TAssign */
5061 cltype12 = type_nullable_parser_nodes__TAssign.color;
5062 idtype13 = type_nullable_parser_nodes__TAssign.id;
5063 if(var_tassignnode4 == NULL) {
5064 var11 = 1;
5065 } else {
5066 if(cltype12 >= var_tassignnode4->type->table_size) {
5067 var11 = 0;
5068 } else {
5069 var11 = var_tassignnode4->type->type_table[cltype12] == idtype13;
5070 }
5071 }
5072 if (!var11) {
5073 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26552);
5074 exit(1);
5075 }
5076 var_pexprnode5 = var_nodearraylist6;
5077 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
5078 cltype15 = type_nullable_parser_nodes__AExpr.color;
5079 idtype16 = type_nullable_parser_nodes__AExpr.id;
5080 if(var_pexprnode5 == NULL) {
5081 var14 = 1;
5082 } else {
5083 if(cltype15 >= var_pexprnode5->type->table_size) {
5084 var14 = 0;
5085 } else {
5086 var14 = var_pexprnode5->type->type_table[cltype15] == idtype16;
5087 }
5088 }
5089 if (!var14) {
5090 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26554);
5091 exit(1);
5092 }
5093 var17 = NEW_parser_nodes__AAttrAssignExpr(&type_parser_nodes__AAttrAssignExpr);
5094 ((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>*/;
5095 CHECK_NEW_parser_nodes__AAttrAssignExpr(var17);
5096 var_pexprnode1 = var17;
5097 var_node_list = var_pexprnode1;
5098 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction696> */
5099 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
5100 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
5101 RET_LABEL:;
5102 }
5103 /* method parser#ReduceAction696#action for (self: Object, Parser) */
5104 void VIRTUAL_parser__ReduceAction696__action(val* self, val* p0) {
5105 parser__ReduceAction696__action(self, p0);
5106 RET_LABEL:;
5107 }
5108 /* method parser#ReduceAction697#action for (self: ReduceAction697, Parser) */
5109 void parser__ReduceAction697__action(val* self, val* p0) {
5110 val* var_p /* var p: Parser */;
5111 val* var /* : null */;
5112 val* var_node_list /* var node_list: nullable Object */;
5113 val* var1 /* : nullable Object */;
5114 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5115 val* var2 /* : nullable Object */;
5116 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5117 val* var3 /* : nullable Object */;
5118 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5119 val* var4 /* : AImplicitSelfExpr */;
5120 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
5121 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
5122 short int var5 /* : Bool */;
5123 int cltype;
5124 int idtype;
5125 val* var_tassignnode4 /* var tassignnode4: nullable Object */;
5126 short int var6 /* : Bool */;
5127 int cltype7;
5128 int idtype8;
5129 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
5130 short int var9 /* : Bool */;
5131 int cltype10;
5132 int idtype11;
5133 val* var12 /* : AAttrAssignExpr */;
5134 val* var_pexprnode1 /* var pexprnode1: nullable AAttrAssignExpr */;
5135 long var13 /* : Int */;
5136 long var14 /* : Int */;
5137 var_p = p0;
5138 var = NULL;
5139 var_node_list = var;
5140 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5141 var_nodearraylist3 = var1;
5142 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5143 var_nodearraylist2 = var2;
5144 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5145 var_nodearraylist1 = var3;
5146 var4 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
5147 ((void (*)(val*))(var4->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var4) /* init_aimplicitselfexpr on <var4:AImplicitSelfExpr>*/;
5148 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var4);
5149 var_pexprnode2 = var4;
5150 var_tattridnode3 = var_nodearraylist1;
5151 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
5152 cltype = type_nullable_parser_nodes__TAttrid.color;
5153 idtype = type_nullable_parser_nodes__TAttrid.id;
5154 if(var_tattridnode3 == NULL) {
5155 var5 = 1;
5156 } else {
5157 if(cltype >= var_tattridnode3->type->table_size) {
5158 var5 = 0;
5159 } else {
5160 var5 = var_tattridnode3->type->type_table[cltype] == idtype;
5161 }
5162 }
5163 if (!var5) {
5164 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26575);
5165 exit(1);
5166 }
5167 var_tassignnode4 = var_nodearraylist2;
5168 /* <var_tassignnode4:nullable Object> isa nullable TAssign */
5169 cltype7 = type_nullable_parser_nodes__TAssign.color;
5170 idtype8 = type_nullable_parser_nodes__TAssign.id;
5171 if(var_tassignnode4 == NULL) {
5172 var6 = 1;
5173 } else {
5174 if(cltype7 >= var_tassignnode4->type->table_size) {
5175 var6 = 0;
5176 } else {
5177 var6 = var_tassignnode4->type->type_table[cltype7] == idtype8;
5178 }
5179 }
5180 if (!var6) {
5181 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26577);
5182 exit(1);
5183 }
5184 var_pexprnode5 = var_nodearraylist3;
5185 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
5186 cltype10 = type_nullable_parser_nodes__AExpr.color;
5187 idtype11 = type_nullable_parser_nodes__AExpr.id;
5188 if(var_pexprnode5 == NULL) {
5189 var9 = 1;
5190 } else {
5191 if(cltype10 >= var_pexprnode5->type->table_size) {
5192 var9 = 0;
5193 } else {
5194 var9 = var_pexprnode5->type->type_table[cltype10] == idtype11;
5195 }
5196 }
5197 if (!var9) {
5198 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26579);
5199 exit(1);
5200 }
5201 var12 = NEW_parser_nodes__AAttrAssignExpr(&type_parser_nodes__AAttrAssignExpr);
5202 ((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>*/;
5203 CHECK_NEW_parser_nodes__AAttrAssignExpr(var12);
5204 var_pexprnode1 = var12;
5205 var_node_list = var_pexprnode1;
5206 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction697> */
5207 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
5208 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
5209 RET_LABEL:;
5210 }
5211 /* method parser#ReduceAction697#action for (self: Object, Parser) */
5212 void VIRTUAL_parser__ReduceAction697__action(val* self, val* p0) {
5213 parser__ReduceAction697__action(self, p0);
5214 RET_LABEL:;
5215 }
5216 /* method parser#ReduceAction698#action for (self: ReduceAction698, Parser) */
5217 void parser__ReduceAction698__action(val* self, val* p0) {
5218 val* var_p /* var p: Parser */;
5219 val* var /* : null */;
5220 val* var_node_list /* var node_list: nullable Object */;
5221 val* var1 /* : nullable Object */;
5222 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
5223 val* var2 /* : nullable Object */;
5224 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5225 val* var3 /* : nullable Object */;
5226 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5227 val* var4 /* : nullable Object */;
5228 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5229 val* var5 /* : nullable Object */;
5230 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5231 val* var6 /* : nullable Object */;
5232 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5233 val* var7 /* : nullable Object */;
5234 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5235 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
5236 short int var8 /* : Bool */;
5237 int cltype;
5238 int idtype;
5239 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
5240 short int var9 /* : Bool */;
5241 int cltype10;
5242 int idtype11;
5243 val* var_tassignnode4 /* var tassignnode4: nullable Object */;
5244 short int var12 /* : Bool */;
5245 int cltype13;
5246 int idtype14;
5247 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
5248 short int var15 /* : Bool */;
5249 int cltype16;
5250 int idtype17;
5251 val* var18 /* : AAttrAssignExpr */;
5252 val* var_pexprnode1 /* var pexprnode1: nullable AAttrAssignExpr */;
5253 long var19 /* : Int */;
5254 long var20 /* : Int */;
5255 var_p = p0;
5256 var = NULL;
5257 var_node_list = var;
5258 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5259 var_nodearraylist7 = var1;
5260 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5261 var_nodearraylist6 = var2;
5262 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5263 var_nodearraylist5 = var3;
5264 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5265 var_nodearraylist4 = var4;
5266 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5267 var_nodearraylist3 = var5;
5268 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5269 var_nodearraylist2 = var6;
5270 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5271 var_nodearraylist1 = var7;
5272 var_pexprnode2 = var_nodearraylist1;
5273 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
5274 cltype = type_nullable_parser_nodes__AExpr.color;
5275 idtype = type_nullable_parser_nodes__AExpr.id;
5276 if(var_pexprnode2 == NULL) {
5277 var8 = 1;
5278 } else {
5279 if(cltype >= var_pexprnode2->type->table_size) {
5280 var8 = 0;
5281 } else {
5282 var8 = var_pexprnode2->type->type_table[cltype] == idtype;
5283 }
5284 }
5285 if (!var8) {
5286 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26603);
5287 exit(1);
5288 }
5289 var_tattridnode3 = var_nodearraylist5;
5290 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
5291 cltype10 = type_nullable_parser_nodes__TAttrid.color;
5292 idtype11 = type_nullable_parser_nodes__TAttrid.id;
5293 if(var_tattridnode3 == NULL) {
5294 var9 = 1;
5295 } else {
5296 if(cltype10 >= var_tattridnode3->type->table_size) {
5297 var9 = 0;
5298 } else {
5299 var9 = var_tattridnode3->type->type_table[cltype10] == idtype11;
5300 }
5301 }
5302 if (!var9) {
5303 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26605);
5304 exit(1);
5305 }
5306 var_tassignnode4 = var_nodearraylist6;
5307 /* <var_tassignnode4:nullable Object> isa nullable TAssign */
5308 cltype13 = type_nullable_parser_nodes__TAssign.color;
5309 idtype14 = type_nullable_parser_nodes__TAssign.id;
5310 if(var_tassignnode4 == NULL) {
5311 var12 = 1;
5312 } else {
5313 if(cltype13 >= var_tassignnode4->type->table_size) {
5314 var12 = 0;
5315 } else {
5316 var12 = var_tassignnode4->type->type_table[cltype13] == idtype14;
5317 }
5318 }
5319 if (!var12) {
5320 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26607);
5321 exit(1);
5322 }
5323 var_pexprnode5 = var_nodearraylist7;
5324 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
5325 cltype16 = type_nullable_parser_nodes__AExpr.color;
5326 idtype17 = type_nullable_parser_nodes__AExpr.id;
5327 if(var_pexprnode5 == NULL) {
5328 var15 = 1;
5329 } else {
5330 if(cltype16 >= var_pexprnode5->type->table_size) {
5331 var15 = 0;
5332 } else {
5333 var15 = var_pexprnode5->type->type_table[cltype16] == idtype17;
5334 }
5335 }
5336 if (!var15) {
5337 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26609);
5338 exit(1);
5339 }
5340 var18 = NEW_parser_nodes__AAttrAssignExpr(&type_parser_nodes__AAttrAssignExpr);
5341 ((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>*/;
5342 CHECK_NEW_parser_nodes__AAttrAssignExpr(var18);
5343 var_pexprnode1 = var18;
5344 var_node_list = var_pexprnode1;
5345 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction698> */
5346 var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
5347 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
5348 RET_LABEL:;
5349 }
5350 /* method parser#ReduceAction698#action for (self: Object, Parser) */
5351 void VIRTUAL_parser__ReduceAction698__action(val* self, val* p0) {
5352 parser__ReduceAction698__action(self, p0);
5353 RET_LABEL:;
5354 }
5355 /* method parser#ReduceAction699#action for (self: ReduceAction699, Parser) */
5356 void parser__ReduceAction699__action(val* self, val* p0) {
5357 val* var_p /* var p: Parser */;
5358 val* var /* : null */;
5359 val* var_node_list /* var node_list: nullable Object */;
5360 val* var1 /* : nullable Object */;
5361 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
5362 val* var2 /* : nullable Object */;
5363 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
5364 val* var3 /* : nullable Object */;
5365 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5366 val* var4 /* : nullable Object */;
5367 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5368 val* var5 /* : nullable Object */;
5369 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5370 val* var6 /* : nullable Object */;
5371 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5372 val* var7 /* : nullable Object */;
5373 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5374 val* var8 /* : nullable Object */;
5375 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5376 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
5377 short int var9 /* : Bool */;
5378 int cltype;
5379 int idtype;
5380 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
5381 short int var10 /* : Bool */;
5382 int cltype11;
5383 int idtype12;
5384 val* var_tassignnode4 /* var tassignnode4: nullable Object */;
5385 short int var13 /* : Bool */;
5386 int cltype14;
5387 int idtype15;
5388 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
5389 short int var16 /* : Bool */;
5390 int cltype17;
5391 int idtype18;
5392 val* var19 /* : AAttrAssignExpr */;
5393 val* var_pexprnode1 /* var pexprnode1: nullable AAttrAssignExpr */;
5394 long var20 /* : Int */;
5395 long var21 /* : Int */;
5396 var_p = p0;
5397 var = NULL;
5398 var_node_list = var;
5399 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5400 var_nodearraylist8 = var1;
5401 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5402 var_nodearraylist7 = var2;
5403 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5404 var_nodearraylist6 = var3;
5405 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5406 var_nodearraylist5 = var4;
5407 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5408 var_nodearraylist4 = var5;
5409 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5410 var_nodearraylist3 = var6;
5411 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5412 var_nodearraylist2 = var7;
5413 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5414 var_nodearraylist1 = var8;
5415 var_pexprnode2 = var_nodearraylist1;
5416 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
5417 cltype = type_nullable_parser_nodes__AExpr.color;
5418 idtype = type_nullable_parser_nodes__AExpr.id;
5419 if(var_pexprnode2 == NULL) {
5420 var9 = 1;
5421 } else {
5422 if(cltype >= var_pexprnode2->type->table_size) {
5423 var9 = 0;
5424 } else {
5425 var9 = var_pexprnode2->type->type_table[cltype] == idtype;
5426 }
5427 }
5428 if (!var9) {
5429 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26634);
5430 exit(1);
5431 }
5432 var_tattridnode3 = var_nodearraylist6;
5433 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
5434 cltype11 = type_nullable_parser_nodes__TAttrid.color;
5435 idtype12 = type_nullable_parser_nodes__TAttrid.id;
5436 if(var_tattridnode3 == NULL) {
5437 var10 = 1;
5438 } else {
5439 if(cltype11 >= var_tattridnode3->type->table_size) {
5440 var10 = 0;
5441 } else {
5442 var10 = var_tattridnode3->type->type_table[cltype11] == idtype12;
5443 }
5444 }
5445 if (!var10) {
5446 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26636);
5447 exit(1);
5448 }
5449 var_tassignnode4 = var_nodearraylist7;
5450 /* <var_tassignnode4:nullable Object> isa nullable TAssign */
5451 cltype14 = type_nullable_parser_nodes__TAssign.color;
5452 idtype15 = type_nullable_parser_nodes__TAssign.id;
5453 if(var_tassignnode4 == NULL) {
5454 var13 = 1;
5455 } else {
5456 if(cltype14 >= var_tassignnode4->type->table_size) {
5457 var13 = 0;
5458 } else {
5459 var13 = var_tassignnode4->type->type_table[cltype14] == idtype15;
5460 }
5461 }
5462 if (!var13) {
5463 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26638);
5464 exit(1);
5465 }
5466 var_pexprnode5 = var_nodearraylist8;
5467 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
5468 cltype17 = type_nullable_parser_nodes__AExpr.color;
5469 idtype18 = type_nullable_parser_nodes__AExpr.id;
5470 if(var_pexprnode5 == NULL) {
5471 var16 = 1;
5472 } else {
5473 if(cltype17 >= var_pexprnode5->type->table_size) {
5474 var16 = 0;
5475 } else {
5476 var16 = var_pexprnode5->type->type_table[cltype17] == idtype18;
5477 }
5478 }
5479 if (!var16) {
5480 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26640);
5481 exit(1);
5482 }
5483 var19 = NEW_parser_nodes__AAttrAssignExpr(&type_parser_nodes__AAttrAssignExpr);
5484 ((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>*/;
5485 CHECK_NEW_parser_nodes__AAttrAssignExpr(var19);
5486 var_pexprnode1 = var19;
5487 var_node_list = var_pexprnode1;
5488 var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction699> */
5489 var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on <var_p:Parser>*/;
5490 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on <var_p:Parser>*/;
5491 RET_LABEL:;
5492 }
5493 /* method parser#ReduceAction699#action for (self: Object, Parser) */
5494 void VIRTUAL_parser__ReduceAction699__action(val* self, val* p0) {
5495 parser__ReduceAction699__action(self, p0);
5496 RET_LABEL:;
5497 }
5498 /* method parser#ReduceAction701#action for (self: ReduceAction701, Parser) */
5499 void parser__ReduceAction701__action(val* self, val* p0) {
5500 val* var_p /* var p: Parser */;
5501 val* var /* : null */;
5502 val* var_node_list /* var node_list: nullable Object */;
5503 val* var1 /* : nullable Object */;
5504 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5505 val* var2 /* : nullable Object */;
5506 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5507 val* var3 /* : nullable Object */;
5508 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5509 val* var4 /* : nullable Object */;
5510 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5511 val* var5 /* : AImplicitSelfExpr */;
5512 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
5513 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
5514 short int var6 /* : Bool */;
5515 int cltype;
5516 int idtype;
5517 val* var_tassignnode4 /* var tassignnode4: nullable Object */;
5518 short int var7 /* : Bool */;
5519 int cltype8;
5520 int idtype9;
5521 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
5522 short int var10 /* : Bool */;
5523 int cltype11;
5524 int idtype12;
5525 val* var13 /* : AAttrAssignExpr */;
5526 val* var_pexprnode1 /* var pexprnode1: nullable AAttrAssignExpr */;
5527 long var14 /* : Int */;
5528 long var15 /* : Int */;
5529 var_p = p0;
5530 var = NULL;
5531 var_node_list = var;
5532 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5533 var_nodearraylist4 = var1;
5534 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5535 var_nodearraylist3 = var2;
5536 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5537 var_nodearraylist2 = var3;
5538 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5539 var_nodearraylist1 = var4;
5540 var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
5541 ((void (*)(val*))(var5->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var5) /* init_aimplicitselfexpr on <var5:AImplicitSelfExpr>*/;
5542 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var5);
5543 var_pexprnode2 = var5;
5544 var_tattridnode3 = var_nodearraylist2;
5545 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
5546 cltype = type_nullable_parser_nodes__TAttrid.color;
5547 idtype = type_nullable_parser_nodes__TAttrid.id;
5548 if(var_tattridnode3 == NULL) {
5549 var6 = 1;
5550 } else {
5551 if(cltype >= var_tattridnode3->type->table_size) {
5552 var6 = 0;
5553 } else {
5554 var6 = var_tattridnode3->type->type_table[cltype] == idtype;
5555 }
5556 }
5557 if (!var6) {
5558 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26662);
5559 exit(1);
5560 }
5561 var_tassignnode4 = var_nodearraylist3;
5562 /* <var_tassignnode4:nullable Object> isa nullable TAssign */
5563 cltype8 = type_nullable_parser_nodes__TAssign.color;
5564 idtype9 = type_nullable_parser_nodes__TAssign.id;
5565 if(var_tassignnode4 == NULL) {
5566 var7 = 1;
5567 } else {
5568 if(cltype8 >= var_tassignnode4->type->table_size) {
5569 var7 = 0;
5570 } else {
5571 var7 = var_tassignnode4->type->type_table[cltype8] == idtype9;
5572 }
5573 }
5574 if (!var7) {
5575 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26664);
5576 exit(1);
5577 }
5578 var_pexprnode5 = var_nodearraylist4;
5579 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
5580 cltype11 = type_nullable_parser_nodes__AExpr.color;
5581 idtype12 = type_nullable_parser_nodes__AExpr.id;
5582 if(var_pexprnode5 == NULL) {
5583 var10 = 1;
5584 } else {
5585 if(cltype11 >= var_pexprnode5->type->table_size) {
5586 var10 = 0;
5587 } else {
5588 var10 = var_pexprnode5->type->type_table[cltype11] == idtype12;
5589 }
5590 }
5591 if (!var10) {
5592 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26666);
5593 exit(1);
5594 }
5595 var13 = NEW_parser_nodes__AAttrAssignExpr(&type_parser_nodes__AAttrAssignExpr);
5596 ((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>*/;
5597 CHECK_NEW_parser_nodes__AAttrAssignExpr(var13);
5598 var_pexprnode1 = var13;
5599 var_node_list = var_pexprnode1;
5600 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction701> */
5601 var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
5602 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
5603 RET_LABEL:;
5604 }
5605 /* method parser#ReduceAction701#action for (self: Object, Parser) */
5606 void VIRTUAL_parser__ReduceAction701__action(val* self, val* p0) {
5607 parser__ReduceAction701__action(self, p0);
5608 RET_LABEL:;
5609 }
5610 /* method parser#ReduceAction702#action for (self: ReduceAction702, Parser) */
5611 void parser__ReduceAction702__action(val* self, val* p0) {
5612 val* var_p /* var p: Parser */;
5613 val* var /* : null */;
5614 val* var_node_list /* var node_list: nullable Object */;
5615 val* var1 /* : nullable Object */;
5616 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5617 val* var2 /* : nullable Object */;
5618 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5619 val* var3 /* : nullable Object */;
5620 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5621 val* var4 /* : nullable Object */;
5622 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5623 val* var5 /* : nullable Object */;
5624 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5625 val* var6 /* : AImplicitSelfExpr */;
5626 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
5627 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
5628 short int var7 /* : Bool */;
5629 int cltype;
5630 int idtype;
5631 val* var_tassignnode4 /* var tassignnode4: nullable Object */;
5632 short int var8 /* : Bool */;
5633 int cltype9;
5634 int idtype10;
5635 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
5636 short int var11 /* : Bool */;
5637 int cltype12;
5638 int idtype13;
5639 val* var14 /* : AAttrAssignExpr */;
5640 val* var_pexprnode1 /* var pexprnode1: nullable AAttrAssignExpr */;
5641 long var15 /* : Int */;
5642 long var16 /* : Int */;
5643 var_p = p0;
5644 var = NULL;
5645 var_node_list = var;
5646 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5647 var_nodearraylist5 = var1;
5648 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5649 var_nodearraylist4 = var2;
5650 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5651 var_nodearraylist3 = var3;
5652 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5653 var_nodearraylist2 = var4;
5654 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5655 var_nodearraylist1 = var5;
5656 var6 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
5657 ((void (*)(val*))(var6->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var6) /* init_aimplicitselfexpr on <var6:AImplicitSelfExpr>*/;
5658 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var6);
5659 var_pexprnode2 = var6;
5660 var_tattridnode3 = var_nodearraylist3;
5661 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
5662 cltype = type_nullable_parser_nodes__TAttrid.color;
5663 idtype = type_nullable_parser_nodes__TAttrid.id;
5664 if(var_tattridnode3 == NULL) {
5665 var7 = 1;
5666 } else {
5667 if(cltype >= var_tattridnode3->type->table_size) {
5668 var7 = 0;
5669 } else {
5670 var7 = var_tattridnode3->type->type_table[cltype] == idtype;
5671 }
5672 }
5673 if (!var7) {
5674 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26689);
5675 exit(1);
5676 }
5677 var_tassignnode4 = var_nodearraylist4;
5678 /* <var_tassignnode4:nullable Object> isa nullable TAssign */
5679 cltype9 = type_nullable_parser_nodes__TAssign.color;
5680 idtype10 = type_nullable_parser_nodes__TAssign.id;
5681 if(var_tassignnode4 == NULL) {
5682 var8 = 1;
5683 } else {
5684 if(cltype9 >= var_tassignnode4->type->table_size) {
5685 var8 = 0;
5686 } else {
5687 var8 = var_tassignnode4->type->type_table[cltype9] == idtype10;
5688 }
5689 }
5690 if (!var8) {
5691 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26691);
5692 exit(1);
5693 }
5694 var_pexprnode5 = var_nodearraylist5;
5695 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
5696 cltype12 = type_nullable_parser_nodes__AExpr.color;
5697 idtype13 = type_nullable_parser_nodes__AExpr.id;
5698 if(var_pexprnode5 == NULL) {
5699 var11 = 1;
5700 } else {
5701 if(cltype12 >= var_pexprnode5->type->table_size) {
5702 var11 = 0;
5703 } else {
5704 var11 = var_pexprnode5->type->type_table[cltype12] == idtype13;
5705 }
5706 }
5707 if (!var11) {
5708 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26693);
5709 exit(1);
5710 }
5711 var14 = NEW_parser_nodes__AAttrAssignExpr(&type_parser_nodes__AAttrAssignExpr);
5712 ((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>*/;
5713 CHECK_NEW_parser_nodes__AAttrAssignExpr(var14);
5714 var_pexprnode1 = var14;
5715 var_node_list = var_pexprnode1;
5716 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction702> */
5717 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
5718 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
5719 RET_LABEL:;
5720 }
5721 /* method parser#ReduceAction702#action for (self: Object, Parser) */
5722 void VIRTUAL_parser__ReduceAction702__action(val* self, val* p0) {
5723 parser__ReduceAction702__action(self, p0);
5724 RET_LABEL:;
5725 }
5726 /* method parser#ReduceAction704#action for (self: ReduceAction704, Parser) */
5727 void parser__ReduceAction704__action(val* self, val* p0) {
5728 val* var_p /* var p: Parser */;
5729 val* var /* : null */;
5730 val* var_node_list /* var node_list: nullable Object */;
5731 val* var1 /* : nullable Object */;
5732 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
5733 val* var2 /* : nullable Object */;
5734 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5735 val* var3 /* : nullable Object */;
5736 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5737 val* var4 /* : nullable Object */;
5738 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5739 val* var5 /* : nullable Object */;
5740 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5741 val* var6 /* : nullable Object */;
5742 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5743 val* var7 /* : nullable Object */;
5744 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5745 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
5746 short int var8 /* : Bool */;
5747 int cltype;
5748 int idtype;
5749 val* var_tidnode3 /* var tidnode3: nullable Object */;
5750 short int var9 /* : Bool */;
5751 int cltype10;
5752 int idtype11;
5753 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
5754 short int var12 /* : Bool */;
5755 int cltype13;
5756 int idtype14;
5757 val* var_tassignnode5 /* var tassignnode5: nullable Object */;
5758 short int var15 /* : Bool */;
5759 int cltype16;
5760 int idtype17;
5761 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
5762 short int var18 /* : Bool */;
5763 int cltype19;
5764 int idtype20;
5765 val* var21 /* : ACallAssignExpr */;
5766 val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */;
5767 long var22 /* : Int */;
5768 long var23 /* : Int */;
5769 var_p = p0;
5770 var = NULL;
5771 var_node_list = var;
5772 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5773 var_nodearraylist7 = var1;
5774 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5775 var_nodearraylist6 = var2;
5776 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5777 var_nodearraylist5 = var3;
5778 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5779 var_nodearraylist4 = var4;
5780 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5781 var_nodearraylist3 = var5;
5782 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5783 var_nodearraylist2 = var6;
5784 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5785 var_nodearraylist1 = var7;
5786 var_pexprnode2 = var_nodearraylist1;
5787 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
5788 cltype = type_nullable_parser_nodes__AExpr.color;
5789 idtype = type_nullable_parser_nodes__AExpr.id;
5790 if(var_pexprnode2 == NULL) {
5791 var8 = 1;
5792 } else {
5793 if(cltype >= var_pexprnode2->type->table_size) {
5794 var8 = 0;
5795 } else {
5796 var8 = var_pexprnode2->type->type_table[cltype] == idtype;
5797 }
5798 }
5799 if (!var8) {
5800 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26717);
5801 exit(1);
5802 }
5803 var_tidnode3 = var_nodearraylist4;
5804 /* <var_tidnode3:nullable Object> isa nullable TId */
5805 cltype10 = type_nullable_parser_nodes__TId.color;
5806 idtype11 = type_nullable_parser_nodes__TId.id;
5807 if(var_tidnode3 == NULL) {
5808 var9 = 1;
5809 } else {
5810 if(cltype10 >= var_tidnode3->type->table_size) {
5811 var9 = 0;
5812 } else {
5813 var9 = var_tidnode3->type->type_table[cltype10] == idtype11;
5814 }
5815 }
5816 if (!var9) {
5817 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26719);
5818 exit(1);
5819 }
5820 var_pexprsnode4 = var_nodearraylist5;
5821 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
5822 cltype13 = type_nullable_parser_nodes__AExprs.color;
5823 idtype14 = type_nullable_parser_nodes__AExprs.id;
5824 if(var_pexprsnode4 == NULL) {
5825 var12 = 1;
5826 } else {
5827 if(cltype13 >= var_pexprsnode4->type->table_size) {
5828 var12 = 0;
5829 } else {
5830 var12 = var_pexprsnode4->type->type_table[cltype13] == idtype14;
5831 }
5832 }
5833 if (!var12) {
5834 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26721);
5835 exit(1);
5836 }
5837 var_tassignnode5 = var_nodearraylist6;
5838 /* <var_tassignnode5:nullable Object> isa nullable TAssign */
5839 cltype16 = type_nullable_parser_nodes__TAssign.color;
5840 idtype17 = type_nullable_parser_nodes__TAssign.id;
5841 if(var_tassignnode5 == NULL) {
5842 var15 = 1;
5843 } else {
5844 if(cltype16 >= var_tassignnode5->type->table_size) {
5845 var15 = 0;
5846 } else {
5847 var15 = var_tassignnode5->type->type_table[cltype16] == idtype17;
5848 }
5849 }
5850 if (!var15) {
5851 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26723);
5852 exit(1);
5853 }
5854 var_pexprnode6 = var_nodearraylist7;
5855 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
5856 cltype19 = type_nullable_parser_nodes__AExpr.color;
5857 idtype20 = type_nullable_parser_nodes__AExpr.id;
5858 if(var_pexprnode6 == NULL) {
5859 var18 = 1;
5860 } else {
5861 if(cltype19 >= var_pexprnode6->type->table_size) {
5862 var18 = 0;
5863 } else {
5864 var18 = var_pexprnode6->type->type_table[cltype19] == idtype20;
5865 }
5866 }
5867 if (!var18) {
5868 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26725);
5869 exit(1);
5870 }
5871 var21 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr);
5872 ((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>*/;
5873 CHECK_NEW_parser_nodes__ACallAssignExpr(var21);
5874 var_pexprnode1 = var21;
5875 var_node_list = var_pexprnode1;
5876 var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction704> */
5877 var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
5878 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
5879 RET_LABEL:;
5880 }
5881 /* method parser#ReduceAction704#action for (self: Object, Parser) */
5882 void VIRTUAL_parser__ReduceAction704__action(val* self, val* p0) {
5883 parser__ReduceAction704__action(self, p0);
5884 RET_LABEL:;
5885 }
5886 /* method parser#ReduceAction705#action for (self: ReduceAction705, Parser) */
5887 void parser__ReduceAction705__action(val* self, val* p0) {
5888 val* var_p /* var p: Parser */;
5889 val* var /* : null */;
5890 val* var_node_list /* var node_list: nullable Object */;
5891 val* var1 /* : nullable Object */;
5892 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5893 val* var2 /* : nullable Object */;
5894 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5895 val* var3 /* : nullable Object */;
5896 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5897 val* var4 /* : nullable Object */;
5898 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5899 val* var5 /* : AImplicitSelfExpr */;
5900 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
5901 val* var_tidnode3 /* var tidnode3: nullable Object */;
5902 short int var6 /* : Bool */;
5903 int cltype;
5904 int idtype;
5905 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
5906 short int var7 /* : Bool */;
5907 int cltype8;
5908 int idtype9;
5909 val* var_tassignnode5 /* var tassignnode5: nullable Object */;
5910 short int var10 /* : Bool */;
5911 int cltype11;
5912 int idtype12;
5913 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
5914 short int var13 /* : Bool */;
5915 int cltype14;
5916 int idtype15;
5917 val* var16 /* : ACallAssignExpr */;
5918 val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */;
5919 long var17 /* : Int */;
5920 long var18 /* : Int */;
5921 var_p = p0;
5922 var = NULL;
5923 var_node_list = var;
5924 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5925 var_nodearraylist4 = var1;
5926 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5927 var_nodearraylist3 = var2;
5928 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5929 var_nodearraylist2 = var3;
5930 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5931 var_nodearraylist1 = var4;
5932 var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
5933 ((void (*)(val*))(var5->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var5) /* init_aimplicitselfexpr on <var5:AImplicitSelfExpr>*/;
5934 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var5);
5935 var_pexprnode2 = var5;
5936 var_tidnode3 = var_nodearraylist1;
5937 /* <var_tidnode3:nullable Object> isa nullable TId */
5938 cltype = type_nullable_parser_nodes__TId.color;
5939 idtype = type_nullable_parser_nodes__TId.id;
5940 if(var_tidnode3 == NULL) {
5941 var6 = 1;
5942 } else {
5943 if(cltype >= var_tidnode3->type->table_size) {
5944 var6 = 0;
5945 } else {
5946 var6 = var_tidnode3->type->type_table[cltype] == idtype;
5947 }
5948 }
5949 if (!var6) {
5950 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26748);
5951 exit(1);
5952 }
5953 var_pexprsnode4 = var_nodearraylist2;
5954 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
5955 cltype8 = type_nullable_parser_nodes__AExprs.color;
5956 idtype9 = type_nullable_parser_nodes__AExprs.id;
5957 if(var_pexprsnode4 == NULL) {
5958 var7 = 1;
5959 } else {
5960 if(cltype8 >= var_pexprsnode4->type->table_size) {
5961 var7 = 0;
5962 } else {
5963 var7 = var_pexprsnode4->type->type_table[cltype8] == idtype9;
5964 }
5965 }
5966 if (!var7) {
5967 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26750);
5968 exit(1);
5969 }
5970 var_tassignnode5 = var_nodearraylist3;
5971 /* <var_tassignnode5:nullable Object> isa nullable TAssign */
5972 cltype11 = type_nullable_parser_nodes__TAssign.color;
5973 idtype12 = type_nullable_parser_nodes__TAssign.id;
5974 if(var_tassignnode5 == NULL) {
5975 var10 = 1;
5976 } else {
5977 if(cltype11 >= var_tassignnode5->type->table_size) {
5978 var10 = 0;
5979 } else {
5980 var10 = var_tassignnode5->type->type_table[cltype11] == idtype12;
5981 }
5982 }
5983 if (!var10) {
5984 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26752);
5985 exit(1);
5986 }
5987 var_pexprnode6 = var_nodearraylist4;
5988 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
5989 cltype14 = type_nullable_parser_nodes__AExpr.color;
5990 idtype15 = type_nullable_parser_nodes__AExpr.id;
5991 if(var_pexprnode6 == NULL) {
5992 var13 = 1;
5993 } else {
5994 if(cltype14 >= var_pexprnode6->type->table_size) {
5995 var13 = 0;
5996 } else {
5997 var13 = var_pexprnode6->type->type_table[cltype14] == idtype15;
5998 }
5999 }
6000 if (!var13) {
6001 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26754);
6002 exit(1);
6003 }
6004 var16 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr);
6005 ((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>*/;
6006 CHECK_NEW_parser_nodes__ACallAssignExpr(var16);
6007 var_pexprnode1 = var16;
6008 var_node_list = var_pexprnode1;
6009 var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction705> */
6010 var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
6011 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
6012 RET_LABEL:;
6013 }
6014 /* method parser#ReduceAction705#action for (self: Object, Parser) */
6015 void VIRTUAL_parser__ReduceAction705__action(val* self, val* p0) {
6016 parser__ReduceAction705__action(self, p0);
6017 RET_LABEL:;
6018 }
6019 /* method parser#ReduceAction706#action for (self: ReduceAction706, Parser) */
6020 void parser__ReduceAction706__action(val* self, val* p0) {
6021 val* var_p /* var p: Parser */;
6022 val* var /* : null */;
6023 val* var_node_list /* var node_list: nullable Object */;
6024 val* var1 /* : nullable Object */;
6025 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
6026 val* var2 /* : nullable Object */;
6027 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
6028 val* var3 /* : nullable Object */;
6029 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6030 val* var4 /* : nullable Object */;
6031 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6032 val* var5 /* : nullable Object */;
6033 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6034 val* var6 /* : nullable Object */;
6035 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6036 val* var7 /* : nullable Object */;
6037 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6038 val* var8 /* : nullable Object */;
6039 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6040 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
6041 short int var9 /* : Bool */;
6042 int cltype;
6043 int idtype;
6044 val* var_tidnode3 /* var tidnode3: nullable Object */;
6045 short int var10 /* : Bool */;
6046 int cltype11;
6047 int idtype12;
6048 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
6049 short int var13 /* : Bool */;
6050 int cltype14;
6051 int idtype15;
6052 val* var_tassignnode5 /* var tassignnode5: nullable Object */;
6053 short int var16 /* : Bool */;
6054 int cltype17;
6055 int idtype18;
6056 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
6057 short int var19 /* : Bool */;
6058 int cltype20;
6059 int idtype21;
6060 val* var22 /* : ACallAssignExpr */;
6061 val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */;
6062 long var23 /* : Int */;
6063 long var24 /* : Int */;
6064 var_p = p0;
6065 var = NULL;
6066 var_node_list = var;
6067 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6068 var_nodearraylist8 = var1;
6069 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6070 var_nodearraylist7 = var2;
6071 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6072 var_nodearraylist6 = var3;
6073 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6074 var_nodearraylist5 = var4;
6075 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6076 var_nodearraylist4 = var5;
6077 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6078 var_nodearraylist3 = var6;
6079 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6080 var_nodearraylist2 = var7;
6081 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6082 var_nodearraylist1 = var8;
6083 var_pexprnode2 = var_nodearraylist1;
6084 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
6085 cltype = type_nullable_parser_nodes__AExpr.color;
6086 idtype = type_nullable_parser_nodes__AExpr.id;
6087 if(var_pexprnode2 == NULL) {
6088 var9 = 1;
6089 } else {
6090 if(cltype >= var_pexprnode2->type->table_size) {
6091 var9 = 0;
6092 } else {
6093 var9 = var_pexprnode2->type->type_table[cltype] == idtype;
6094 }
6095 }
6096 if (!var9) {
6097 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26780);
6098 exit(1);
6099 }
6100 var_tidnode3 = var_nodearraylist5;
6101 /* <var_tidnode3:nullable Object> isa nullable TId */
6102 cltype11 = type_nullable_parser_nodes__TId.color;
6103 idtype12 = type_nullable_parser_nodes__TId.id;
6104 if(var_tidnode3 == NULL) {
6105 var10 = 1;
6106 } else {
6107 if(cltype11 >= var_tidnode3->type->table_size) {
6108 var10 = 0;
6109 } else {
6110 var10 = var_tidnode3->type->type_table[cltype11] == idtype12;
6111 }
6112 }
6113 if (!var10) {
6114 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26782);
6115 exit(1);
6116 }
6117 var_pexprsnode4 = var_nodearraylist6;
6118 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
6119 cltype14 = type_nullable_parser_nodes__AExprs.color;
6120 idtype15 = type_nullable_parser_nodes__AExprs.id;
6121 if(var_pexprsnode4 == NULL) {
6122 var13 = 1;
6123 } else {
6124 if(cltype14 >= var_pexprsnode4->type->table_size) {
6125 var13 = 0;
6126 } else {
6127 var13 = var_pexprsnode4->type->type_table[cltype14] == idtype15;
6128 }
6129 }
6130 if (!var13) {
6131 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26784);
6132 exit(1);
6133 }
6134 var_tassignnode5 = var_nodearraylist7;
6135 /* <var_tassignnode5:nullable Object> isa nullable TAssign */
6136 cltype17 = type_nullable_parser_nodes__TAssign.color;
6137 idtype18 = type_nullable_parser_nodes__TAssign.id;
6138 if(var_tassignnode5 == NULL) {
6139 var16 = 1;
6140 } else {
6141 if(cltype17 >= var_tassignnode5->type->table_size) {
6142 var16 = 0;
6143 } else {
6144 var16 = var_tassignnode5->type->type_table[cltype17] == idtype18;
6145 }
6146 }
6147 if (!var16) {
6148 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26786);
6149 exit(1);
6150 }
6151 var_pexprnode6 = var_nodearraylist8;
6152 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
6153 cltype20 = type_nullable_parser_nodes__AExpr.color;
6154 idtype21 = type_nullable_parser_nodes__AExpr.id;
6155 if(var_pexprnode6 == NULL) {
6156 var19 = 1;
6157 } else {
6158 if(cltype20 >= var_pexprnode6->type->table_size) {
6159 var19 = 0;
6160 } else {
6161 var19 = var_pexprnode6->type->type_table[cltype20] == idtype21;
6162 }
6163 }
6164 if (!var19) {
6165 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26788);
6166 exit(1);
6167 }
6168 var22 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr);
6169 ((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>*/;
6170 CHECK_NEW_parser_nodes__ACallAssignExpr(var22);
6171 var_pexprnode1 = var22;
6172 var_node_list = var_pexprnode1;
6173 var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction706> */
6174 var24 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var23) /* go_to on <var_p:Parser>*/;
6175 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var24, var_node_list) /* push on <var_p:Parser>*/;
6176 RET_LABEL:;
6177 }
6178 /* method parser#ReduceAction706#action for (self: Object, Parser) */
6179 void VIRTUAL_parser__ReduceAction706__action(val* self, val* p0) {
6180 parser__ReduceAction706__action(self, p0);
6181 RET_LABEL:;
6182 }
6183 /* method parser#ReduceAction707#action for (self: ReduceAction707, Parser) */
6184 void parser__ReduceAction707__action(val* self, val* p0) {
6185 val* var_p /* var p: Parser */;
6186 val* var /* : null */;
6187 val* var_node_list /* var node_list: nullable Object */;
6188 val* var1 /* : nullable Object */;
6189 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
6190 val* var2 /* : nullable Object */;
6191 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
6192 val* var3 /* : nullable Object */;
6193 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
6194 val* var4 /* : nullable Object */;
6195 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6196 val* var5 /* : nullable Object */;
6197 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6198 val* var6 /* : nullable Object */;
6199 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6200 val* var7 /* : nullable Object */;
6201 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6202 val* var8 /* : nullable Object */;
6203 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6204 val* var9 /* : nullable Object */;
6205 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6206 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
6207 short int var10 /* : Bool */;
6208 int cltype;
6209 int idtype;
6210 val* var_tidnode3 /* var tidnode3: nullable Object */;
6211 short int var11 /* : Bool */;
6212 int cltype12;
6213 int idtype13;
6214 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
6215 short int var14 /* : Bool */;
6216 int cltype15;
6217 int idtype16;
6218 val* var_tassignnode5 /* var tassignnode5: nullable Object */;
6219 short int var17 /* : Bool */;
6220 int cltype18;
6221 int idtype19;
6222 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
6223 short int var20 /* : Bool */;
6224 int cltype21;
6225 int idtype22;
6226 val* var23 /* : ACallAssignExpr */;
6227 val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */;
6228 long var24 /* : Int */;
6229 long var25 /* : Int */;
6230 var_p = p0;
6231 var = NULL;
6232 var_node_list = var;
6233 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6234 var_nodearraylist9 = var1;
6235 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6236 var_nodearraylist8 = var2;
6237 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6238 var_nodearraylist7 = var3;
6239 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6240 var_nodearraylist6 = var4;
6241 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6242 var_nodearraylist5 = var5;
6243 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6244 var_nodearraylist4 = var6;
6245 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6246 var_nodearraylist3 = var7;
6247 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6248 var_nodearraylist2 = var8;
6249 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6250 var_nodearraylist1 = var9;
6251 var_pexprnode2 = var_nodearraylist1;
6252 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
6253 cltype = type_nullable_parser_nodes__AExpr.color;
6254 idtype = type_nullable_parser_nodes__AExpr.id;
6255 if(var_pexprnode2 == NULL) {
6256 var10 = 1;
6257 } else {
6258 if(cltype >= var_pexprnode2->type->table_size) {
6259 var10 = 0;
6260 } else {
6261 var10 = var_pexprnode2->type->type_table[cltype] == idtype;
6262 }
6263 }
6264 if (!var10) {
6265 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26815);
6266 exit(1);
6267 }
6268 var_tidnode3 = var_nodearraylist6;
6269 /* <var_tidnode3:nullable Object> isa nullable TId */
6270 cltype12 = type_nullable_parser_nodes__TId.color;
6271 idtype13 = type_nullable_parser_nodes__TId.id;
6272 if(var_tidnode3 == NULL) {
6273 var11 = 1;
6274 } else {
6275 if(cltype12 >= var_tidnode3->type->table_size) {
6276 var11 = 0;
6277 } else {
6278 var11 = var_tidnode3->type->type_table[cltype12] == idtype13;
6279 }
6280 }
6281 if (!var11) {
6282 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26817);
6283 exit(1);
6284 }
6285 var_pexprsnode4 = var_nodearraylist7;
6286 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
6287 cltype15 = type_nullable_parser_nodes__AExprs.color;
6288 idtype16 = type_nullable_parser_nodes__AExprs.id;
6289 if(var_pexprsnode4 == NULL) {
6290 var14 = 1;
6291 } else {
6292 if(cltype15 >= var_pexprsnode4->type->table_size) {
6293 var14 = 0;
6294 } else {
6295 var14 = var_pexprsnode4->type->type_table[cltype15] == idtype16;
6296 }
6297 }
6298 if (!var14) {
6299 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26819);
6300 exit(1);
6301 }
6302 var_tassignnode5 = var_nodearraylist8;
6303 /* <var_tassignnode5:nullable Object> isa nullable TAssign */
6304 cltype18 = type_nullable_parser_nodes__TAssign.color;
6305 idtype19 = type_nullable_parser_nodes__TAssign.id;
6306 if(var_tassignnode5 == NULL) {
6307 var17 = 1;
6308 } else {
6309 if(cltype18 >= var_tassignnode5->type->table_size) {
6310 var17 = 0;
6311 } else {
6312 var17 = var_tassignnode5->type->type_table[cltype18] == idtype19;
6313 }
6314 }
6315 if (!var17) {
6316 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26821);
6317 exit(1);
6318 }
6319 var_pexprnode6 = var_nodearraylist9;
6320 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
6321 cltype21 = type_nullable_parser_nodes__AExpr.color;
6322 idtype22 = type_nullable_parser_nodes__AExpr.id;
6323 if(var_pexprnode6 == NULL) {
6324 var20 = 1;
6325 } else {
6326 if(cltype21 >= var_pexprnode6->type->table_size) {
6327 var20 = 0;
6328 } else {
6329 var20 = var_pexprnode6->type->type_table[cltype21] == idtype22;
6330 }
6331 }
6332 if (!var20) {
6333 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26823);
6334 exit(1);
6335 }
6336 var23 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr);
6337 ((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>*/;
6338 CHECK_NEW_parser_nodes__ACallAssignExpr(var23);
6339 var_pexprnode1 = var23;
6340 var_node_list = var_pexprnode1;
6341 var24 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction707> */
6342 var25 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var24) /* go_to on <var_p:Parser>*/;
6343 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var25, var_node_list) /* push on <var_p:Parser>*/;
6344 RET_LABEL:;
6345 }
6346 /* method parser#ReduceAction707#action for (self: Object, Parser) */
6347 void VIRTUAL_parser__ReduceAction707__action(val* self, val* p0) {
6348 parser__ReduceAction707__action(self, p0);
6349 RET_LABEL:;
6350 }
6351 /* method parser#ReduceAction709#action for (self: ReduceAction709, Parser) */
6352 void parser__ReduceAction709__action(val* self, val* p0) {
6353 val* var_p /* var p: Parser */;
6354 val* var /* : null */;
6355 val* var_node_list /* var node_list: nullable Object */;
6356 val* var1 /* : nullable Object */;
6357 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6358 val* var2 /* : nullable Object */;
6359 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6360 val* var3 /* : nullable Object */;
6361 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6362 val* var4 /* : nullable Object */;
6363 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6364 val* var5 /* : nullable Object */;
6365 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6366 val* var6 /* : AImplicitSelfExpr */;
6367 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
6368 val* var_tidnode3 /* var tidnode3: nullable Object */;
6369 short int var7 /* : Bool */;
6370 int cltype;
6371 int idtype;
6372 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
6373 short int var8 /* : Bool */;
6374 int cltype9;
6375 int idtype10;
6376 val* var_tassignnode5 /* var tassignnode5: nullable Object */;
6377 short int var11 /* : Bool */;
6378 int cltype12;
6379 int idtype13;
6380 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
6381 short int var14 /* : Bool */;
6382 int cltype15;
6383 int idtype16;
6384 val* var17 /* : ACallAssignExpr */;
6385 val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */;
6386 long var18 /* : Int */;
6387 long var19 /* : Int */;
6388 var_p = p0;
6389 var = NULL;
6390 var_node_list = var;
6391 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6392 var_nodearraylist5 = var1;
6393 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6394 var_nodearraylist4 = var2;
6395 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6396 var_nodearraylist3 = var3;
6397 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6398 var_nodearraylist2 = var4;
6399 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6400 var_nodearraylist1 = var5;
6401 var6 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
6402 ((void (*)(val*))(var6->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var6) /* init_aimplicitselfexpr on <var6:AImplicitSelfExpr>*/;
6403 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var6);
6404 var_pexprnode2 = var6;
6405 var_tidnode3 = var_nodearraylist2;
6406 /* <var_tidnode3:nullable Object> isa nullable TId */
6407 cltype = type_nullable_parser_nodes__TId.color;
6408 idtype = type_nullable_parser_nodes__TId.id;
6409 if(var_tidnode3 == NULL) {
6410 var7 = 1;
6411 } else {
6412 if(cltype >= var_tidnode3->type->table_size) {
6413 var7 = 0;
6414 } else {
6415 var7 = var_tidnode3->type->type_table[cltype] == idtype;
6416 }
6417 }
6418 if (!var7) {
6419 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26847);
6420 exit(1);
6421 }
6422 var_pexprsnode4 = var_nodearraylist3;
6423 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
6424 cltype9 = type_nullable_parser_nodes__AExprs.color;
6425 idtype10 = type_nullable_parser_nodes__AExprs.id;
6426 if(var_pexprsnode4 == NULL) {
6427 var8 = 1;
6428 } else {
6429 if(cltype9 >= var_pexprsnode4->type->table_size) {
6430 var8 = 0;
6431 } else {
6432 var8 = var_pexprsnode4->type->type_table[cltype9] == idtype10;
6433 }
6434 }
6435 if (!var8) {
6436 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26849);
6437 exit(1);
6438 }
6439 var_tassignnode5 = var_nodearraylist4;
6440 /* <var_tassignnode5:nullable Object> isa nullable TAssign */
6441 cltype12 = type_nullable_parser_nodes__TAssign.color;
6442 idtype13 = type_nullable_parser_nodes__TAssign.id;
6443 if(var_tassignnode5 == NULL) {
6444 var11 = 1;
6445 } else {
6446 if(cltype12 >= var_tassignnode5->type->table_size) {
6447 var11 = 0;
6448 } else {
6449 var11 = var_tassignnode5->type->type_table[cltype12] == idtype13;
6450 }
6451 }
6452 if (!var11) {
6453 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26851);
6454 exit(1);
6455 }
6456 var_pexprnode6 = var_nodearraylist5;
6457 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
6458 cltype15 = type_nullable_parser_nodes__AExpr.color;
6459 idtype16 = type_nullable_parser_nodes__AExpr.id;
6460 if(var_pexprnode6 == NULL) {
6461 var14 = 1;
6462 } else {
6463 if(cltype15 >= var_pexprnode6->type->table_size) {
6464 var14 = 0;
6465 } else {
6466 var14 = var_pexprnode6->type->type_table[cltype15] == idtype16;
6467 }
6468 }
6469 if (!var14) {
6470 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26853);
6471 exit(1);
6472 }
6473 var17 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr);
6474 ((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>*/;
6475 CHECK_NEW_parser_nodes__ACallAssignExpr(var17);
6476 var_pexprnode1 = var17;
6477 var_node_list = var_pexprnode1;
6478 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction709> */
6479 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
6480 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
6481 RET_LABEL:;
6482 }
6483 /* method parser#ReduceAction709#action for (self: Object, Parser) */
6484 void VIRTUAL_parser__ReduceAction709__action(val* self, val* p0) {
6485 parser__ReduceAction709__action(self, p0);
6486 RET_LABEL:;
6487 }
6488 /* method parser#ReduceAction710#action for (self: ReduceAction710, Parser) */
6489 void parser__ReduceAction710__action(val* self, val* p0) {
6490 val* var_p /* var p: Parser */;
6491 val* var /* : null */;
6492 val* var_node_list /* var node_list: nullable Object */;
6493 val* var1 /* : nullable Object */;
6494 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6495 val* var2 /* : nullable Object */;
6496 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6497 val* var3 /* : nullable Object */;
6498 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6499 val* var4 /* : nullable Object */;
6500 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6501 val* var5 /* : nullable Object */;
6502 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6503 val* var6 /* : nullable Object */;
6504 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6505 val* var7 /* : AImplicitSelfExpr */;
6506 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
6507 val* var_tidnode3 /* var tidnode3: nullable Object */;
6508 short int var8 /* : Bool */;
6509 int cltype;
6510 int idtype;
6511 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
6512 short int var9 /* : Bool */;
6513 int cltype10;
6514 int idtype11;
6515 val* var_tassignnode5 /* var tassignnode5: nullable Object */;
6516 short int var12 /* : Bool */;
6517 int cltype13;
6518 int idtype14;
6519 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
6520 short int var15 /* : Bool */;
6521 int cltype16;
6522 int idtype17;
6523 val* var18 /* : ACallAssignExpr */;
6524 val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */;
6525 long var19 /* : Int */;
6526 long var20 /* : Int */;
6527 var_p = p0;
6528 var = NULL;
6529 var_node_list = var;
6530 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6531 var_nodearraylist6 = var1;
6532 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6533 var_nodearraylist5 = var2;
6534 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6535 var_nodearraylist4 = var3;
6536 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6537 var_nodearraylist3 = var4;
6538 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6539 var_nodearraylist2 = var5;
6540 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6541 var_nodearraylist1 = var6;
6542 var7 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
6543 ((void (*)(val*))(var7->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var7) /* init_aimplicitselfexpr on <var7:AImplicitSelfExpr>*/;
6544 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var7);
6545 var_pexprnode2 = var7;
6546 var_tidnode3 = var_nodearraylist3;
6547 /* <var_tidnode3:nullable Object> isa nullable TId */
6548 cltype = type_nullable_parser_nodes__TId.color;
6549 idtype = type_nullable_parser_nodes__TId.id;
6550 if(var_tidnode3 == NULL) {
6551 var8 = 1;
6552 } else {
6553 if(cltype >= var_tidnode3->type->table_size) {
6554 var8 = 0;
6555 } else {
6556 var8 = var_tidnode3->type->type_table[cltype] == idtype;
6557 }
6558 }
6559 if (!var8) {
6560 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26878);
6561 exit(1);
6562 }
6563 var_pexprsnode4 = var_nodearraylist4;
6564 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
6565 cltype10 = type_nullable_parser_nodes__AExprs.color;
6566 idtype11 = type_nullable_parser_nodes__AExprs.id;
6567 if(var_pexprsnode4 == NULL) {
6568 var9 = 1;
6569 } else {
6570 if(cltype10 >= var_pexprsnode4->type->table_size) {
6571 var9 = 0;
6572 } else {
6573 var9 = var_pexprsnode4->type->type_table[cltype10] == idtype11;
6574 }
6575 }
6576 if (!var9) {
6577 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26880);
6578 exit(1);
6579 }
6580 var_tassignnode5 = var_nodearraylist5;
6581 /* <var_tassignnode5:nullable Object> isa nullable TAssign */
6582 cltype13 = type_nullable_parser_nodes__TAssign.color;
6583 idtype14 = type_nullable_parser_nodes__TAssign.id;
6584 if(var_tassignnode5 == NULL) {
6585 var12 = 1;
6586 } else {
6587 if(cltype13 >= var_tassignnode5->type->table_size) {
6588 var12 = 0;
6589 } else {
6590 var12 = var_tassignnode5->type->type_table[cltype13] == idtype14;
6591 }
6592 }
6593 if (!var12) {
6594 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26882);
6595 exit(1);
6596 }
6597 var_pexprnode6 = var_nodearraylist6;
6598 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
6599 cltype16 = type_nullable_parser_nodes__AExpr.color;
6600 idtype17 = type_nullable_parser_nodes__AExpr.id;
6601 if(var_pexprnode6 == NULL) {
6602 var15 = 1;
6603 } else {
6604 if(cltype16 >= var_pexprnode6->type->table_size) {
6605 var15 = 0;
6606 } else {
6607 var15 = var_pexprnode6->type->type_table[cltype16] == idtype17;
6608 }
6609 }
6610 if (!var15) {
6611 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26884);
6612 exit(1);
6613 }
6614 var18 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr);
6615 ((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>*/;
6616 CHECK_NEW_parser_nodes__ACallAssignExpr(var18);
6617 var_pexprnode1 = var18;
6618 var_node_list = var_pexprnode1;
6619 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction710> */
6620 var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
6621 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
6622 RET_LABEL:;
6623 }
6624 /* method parser#ReduceAction710#action for (self: Object, Parser) */
6625 void VIRTUAL_parser__ReduceAction710__action(val* self, val* p0) {
6626 parser__ReduceAction710__action(self, p0);
6627 RET_LABEL:;
6628 }
6629 /* method parser#ReduceAction712#action for (self: ReduceAction712, Parser) */
6630 void parser__ReduceAction712__action(val* self, val* p0) {
6631 val* var_p /* var p: Parser */;
6632 val* var /* : null */;
6633 val* var_node_list /* var node_list: nullable Object */;
6634 val* var1 /* : nullable Object */;
6635 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6636 val* var2 /* : nullable Object */;
6637 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6638 val* var3 /* : nullable Object */;
6639 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6640 val* var4 /* : nullable Object */;
6641 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6642 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
6643 short int var5 /* : Bool */;
6644 int cltype;
6645 int idtype;
6646 val* var_pexprsnode3 /* var pexprsnode3: nullable Object */;
6647 short int var6 /* : Bool */;
6648 int cltype7;
6649 int idtype8;
6650 val* var_tassignnode4 /* var tassignnode4: nullable Object */;
6651 short int var9 /* : Bool */;
6652 int cltype10;
6653 int idtype11;
6654 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
6655 short int var12 /* : Bool */;
6656 int cltype13;
6657 int idtype14;
6658 val* var15 /* : ABraAssignExpr */;
6659 val* var_pexprnode1 /* var pexprnode1: nullable ABraAssignExpr */;
6660 long var16 /* : Int */;
6661 long var17 /* : Int */;
6662 var_p = p0;
6663 var = NULL;
6664 var_node_list = var;
6665 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6666 var_nodearraylist4 = var1;
6667 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6668 var_nodearraylist3 = var2;
6669 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6670 var_nodearraylist2 = var3;
6671 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6672 var_nodearraylist1 = var4;
6673 var_pexprnode2 = var_nodearraylist1;
6674 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
6675 cltype = type_nullable_parser_nodes__AExpr.color;
6676 idtype = type_nullable_parser_nodes__AExpr.id;
6677 if(var_pexprnode2 == NULL) {
6678 var5 = 1;
6679 } else {
6680 if(cltype >= var_pexprnode2->type->table_size) {
6681 var5 = 0;
6682 } else {
6683 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
6684 }
6685 }
6686 if (!var5) {
6687 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26906);
6688 exit(1);
6689 }
6690 var_pexprsnode3 = var_nodearraylist2;
6691 /* <var_pexprsnode3:nullable Object> isa nullable AExprs */
6692 cltype7 = type_nullable_parser_nodes__AExprs.color;
6693 idtype8 = type_nullable_parser_nodes__AExprs.id;
6694 if(var_pexprsnode3 == NULL) {
6695 var6 = 1;
6696 } else {
6697 if(cltype7 >= var_pexprsnode3->type->table_size) {
6698 var6 = 0;
6699 } else {
6700 var6 = var_pexprsnode3->type->type_table[cltype7] == idtype8;
6701 }
6702 }
6703 if (!var6) {
6704 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26908);
6705 exit(1);
6706 }
6707 var_tassignnode4 = var_nodearraylist3;
6708 /* <var_tassignnode4:nullable Object> isa nullable TAssign */
6709 cltype10 = type_nullable_parser_nodes__TAssign.color;
6710 idtype11 = type_nullable_parser_nodes__TAssign.id;
6711 if(var_tassignnode4 == NULL) {
6712 var9 = 1;
6713 } else {
6714 if(cltype10 >= var_tassignnode4->type->table_size) {
6715 var9 = 0;
6716 } else {
6717 var9 = var_tassignnode4->type->type_table[cltype10] == idtype11;
6718 }
6719 }
6720 if (!var9) {
6721 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26910);
6722 exit(1);
6723 }
6724 var_pexprnode5 = var_nodearraylist4;
6725 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
6726 cltype13 = type_nullable_parser_nodes__AExpr.color;
6727 idtype14 = type_nullable_parser_nodes__AExpr.id;
6728 if(var_pexprnode5 == NULL) {
6729 var12 = 1;
6730 } else {
6731 if(cltype13 >= var_pexprnode5->type->table_size) {
6732 var12 = 0;
6733 } else {
6734 var12 = var_pexprnode5->type->type_table[cltype13] == idtype14;
6735 }
6736 }
6737 if (!var12) {
6738 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26912);
6739 exit(1);
6740 }
6741 var15 = NEW_parser_nodes__ABraAssignExpr(&type_parser_nodes__ABraAssignExpr);
6742 ((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>*/;
6743 CHECK_NEW_parser_nodes__ABraAssignExpr(var15);
6744 var_pexprnode1 = var15;
6745 var_node_list = var_pexprnode1;
6746 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction712> */
6747 var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
6748 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
6749 RET_LABEL:;
6750 }
6751 /* method parser#ReduceAction712#action for (self: Object, Parser) */
6752 void VIRTUAL_parser__ReduceAction712__action(val* self, val* p0) {
6753 parser__ReduceAction712__action(self, p0);
6754 RET_LABEL:;
6755 }
6756 /* method parser#ReduceAction713#action for (self: ReduceAction713, Parser) */
6757 void parser__ReduceAction713__action(val* self, val* p0) {
6758 val* var_p /* var p: Parser */;
6759 val* var /* : null */;
6760 val* var_node_list /* var node_list: nullable Object */;
6761 val* var1 /* : nullable Object */;
6762 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6763 val* var2 /* : nullable Object */;
6764 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6765 val* var3 /* : nullable Object */;
6766 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6767 val* var4 /* : nullable Object */;
6768 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6769 val* var5 /* : nullable Object */;
6770 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6771 val* var6 /* : nullable Object */;
6772 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6773 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
6774 short int var7 /* : Bool */;
6775 int cltype;
6776 int idtype;
6777 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
6778 short int var8 /* : Bool */;
6779 int cltype9;
6780 int idtype10;
6781 val* var_passignopnode4 /* var passignopnode4: nullable Object */;
6782 short int var11 /* : Bool */;
6783 int cltype12;
6784 int idtype13;
6785 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
6786 short int var14 /* : Bool */;
6787 int cltype15;
6788 int idtype16;
6789 val* var17 /* : AAttrReassignExpr */;
6790 val* var_pexprnode1 /* var pexprnode1: nullable AAttrReassignExpr */;
6791 long var18 /* : Int */;
6792 long var19 /* : Int */;
6793 var_p = p0;
6794 var = NULL;
6795 var_node_list = var;
6796 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6797 var_nodearraylist6 = var1;
6798 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6799 var_nodearraylist5 = var2;
6800 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6801 var_nodearraylist4 = var3;
6802 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6803 var_nodearraylist3 = var4;
6804 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6805 var_nodearraylist2 = var5;
6806 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6807 var_nodearraylist1 = var6;
6808 var_pexprnode2 = var_nodearraylist1;
6809 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
6810 cltype = type_nullable_parser_nodes__AExpr.color;
6811 idtype = type_nullable_parser_nodes__AExpr.id;
6812 if(var_pexprnode2 == NULL) {
6813 var7 = 1;
6814 } else {
6815 if(cltype >= var_pexprnode2->type->table_size) {
6816 var7 = 0;
6817 } else {
6818 var7 = var_pexprnode2->type->type_table[cltype] == idtype;
6819 }
6820 }
6821 if (!var7) {
6822 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26935);
6823 exit(1);
6824 }
6825 var_tattridnode3 = var_nodearraylist4;
6826 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
6827 cltype9 = type_nullable_parser_nodes__TAttrid.color;
6828 idtype10 = type_nullable_parser_nodes__TAttrid.id;
6829 if(var_tattridnode3 == NULL) {
6830 var8 = 1;
6831 } else {
6832 if(cltype9 >= var_tattridnode3->type->table_size) {
6833 var8 = 0;
6834 } else {
6835 var8 = var_tattridnode3->type->type_table[cltype9] == idtype10;
6836 }
6837 }
6838 if (!var8) {
6839 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26937);
6840 exit(1);
6841 }
6842 var_passignopnode4 = var_nodearraylist5;
6843 /* <var_passignopnode4:nullable Object> isa nullable AAssignOp */
6844 cltype12 = type_nullable_parser_nodes__AAssignOp.color;
6845 idtype13 = type_nullable_parser_nodes__AAssignOp.id;
6846 if(var_passignopnode4 == NULL) {
6847 var11 = 1;
6848 } else {
6849 if(cltype12 >= var_passignopnode4->type->table_size) {
6850 var11 = 0;
6851 } else {
6852 var11 = var_passignopnode4->type->type_table[cltype12] == idtype13;
6853 }
6854 }
6855 if (!var11) {
6856 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26939);
6857 exit(1);
6858 }
6859 var_pexprnode5 = var_nodearraylist6;
6860 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
6861 cltype15 = type_nullable_parser_nodes__AExpr.color;
6862 idtype16 = type_nullable_parser_nodes__AExpr.id;
6863 if(var_pexprnode5 == NULL) {
6864 var14 = 1;
6865 } else {
6866 if(cltype15 >= var_pexprnode5->type->table_size) {
6867 var14 = 0;
6868 } else {
6869 var14 = var_pexprnode5->type->type_table[cltype15] == idtype16;
6870 }
6871 }
6872 if (!var14) {
6873 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26941);
6874 exit(1);
6875 }
6876 var17 = NEW_parser_nodes__AAttrReassignExpr(&type_parser_nodes__AAttrReassignExpr);
6877 ((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>*/;
6878 CHECK_NEW_parser_nodes__AAttrReassignExpr(var17);
6879 var_pexprnode1 = var17;
6880 var_node_list = var_pexprnode1;
6881 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction713> */
6882 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
6883 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
6884 RET_LABEL:;
6885 }
6886 /* method parser#ReduceAction713#action for (self: Object, Parser) */
6887 void VIRTUAL_parser__ReduceAction713__action(val* self, val* p0) {
6888 parser__ReduceAction713__action(self, p0);
6889 RET_LABEL:;
6890 }
6891 /* method parser#ReduceAction714#action for (self: ReduceAction714, Parser) */
6892 void parser__ReduceAction714__action(val* self, val* p0) {
6893 val* var_p /* var p: Parser */;
6894 val* var /* : null */;
6895 val* var_node_list /* var node_list: nullable Object */;
6896 val* var1 /* : nullable Object */;
6897 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6898 val* var2 /* : nullable Object */;
6899 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6900 val* var3 /* : nullable Object */;
6901 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6902 val* var4 /* : AImplicitSelfExpr */;
6903 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
6904 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
6905 short int var5 /* : Bool */;
6906 int cltype;
6907 int idtype;
6908 val* var_passignopnode4 /* var passignopnode4: nullable Object */;
6909 short int var6 /* : Bool */;
6910 int cltype7;
6911 int idtype8;
6912 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
6913 short int var9 /* : Bool */;
6914 int cltype10;
6915 int idtype11;
6916 val* var12 /* : AAttrReassignExpr */;
6917 val* var_pexprnode1 /* var pexprnode1: nullable AAttrReassignExpr */;
6918 long var13 /* : Int */;
6919 long var14 /* : Int */;
6920 var_p = p0;
6921 var = NULL;
6922 var_node_list = var;
6923 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6924 var_nodearraylist3 = var1;
6925 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6926 var_nodearraylist2 = var2;
6927 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6928 var_nodearraylist1 = var3;
6929 var4 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
6930 ((void (*)(val*))(var4->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var4) /* init_aimplicitselfexpr on <var4:AImplicitSelfExpr>*/;
6931 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var4);
6932 var_pexprnode2 = var4;
6933 var_tattridnode3 = var_nodearraylist1;
6934 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
6935 cltype = type_nullable_parser_nodes__TAttrid.color;
6936 idtype = type_nullable_parser_nodes__TAttrid.id;
6937 if(var_tattridnode3 == NULL) {
6938 var5 = 1;
6939 } else {
6940 if(cltype >= var_tattridnode3->type->table_size) {
6941 var5 = 0;
6942 } else {
6943 var5 = var_tattridnode3->type->type_table[cltype] == idtype;
6944 }
6945 }
6946 if (!var5) {
6947 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26962);
6948 exit(1);
6949 }
6950 var_passignopnode4 = var_nodearraylist2;
6951 /* <var_passignopnode4:nullable Object> isa nullable AAssignOp */
6952 cltype7 = type_nullable_parser_nodes__AAssignOp.color;
6953 idtype8 = type_nullable_parser_nodes__AAssignOp.id;
6954 if(var_passignopnode4 == NULL) {
6955 var6 = 1;
6956 } else {
6957 if(cltype7 >= var_passignopnode4->type->table_size) {
6958 var6 = 0;
6959 } else {
6960 var6 = var_passignopnode4->type->type_table[cltype7] == idtype8;
6961 }
6962 }
6963 if (!var6) {
6964 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26964);
6965 exit(1);
6966 }
6967 var_pexprnode5 = var_nodearraylist3;
6968 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
6969 cltype10 = type_nullable_parser_nodes__AExpr.color;
6970 idtype11 = type_nullable_parser_nodes__AExpr.id;
6971 if(var_pexprnode5 == NULL) {
6972 var9 = 1;
6973 } else {
6974 if(cltype10 >= var_pexprnode5->type->table_size) {
6975 var9 = 0;
6976 } else {
6977 var9 = var_pexprnode5->type->type_table[cltype10] == idtype11;
6978 }
6979 }
6980 if (!var9) {
6981 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26966);
6982 exit(1);
6983 }
6984 var12 = NEW_parser_nodes__AAttrReassignExpr(&type_parser_nodes__AAttrReassignExpr);
6985 ((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>*/;
6986 CHECK_NEW_parser_nodes__AAttrReassignExpr(var12);
6987 var_pexprnode1 = var12;
6988 var_node_list = var_pexprnode1;
6989 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction714> */
6990 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
6991 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
6992 RET_LABEL:;
6993 }
6994 /* method parser#ReduceAction714#action for (self: Object, Parser) */
6995 void VIRTUAL_parser__ReduceAction714__action(val* self, val* p0) {
6996 parser__ReduceAction714__action(self, p0);
6997 RET_LABEL:;
6998 }
6999 /* method parser#ReduceAction715#action for (self: ReduceAction715, Parser) */
7000 void parser__ReduceAction715__action(val* self, val* p0) {
7001 val* var_p /* var p: Parser */;
7002 val* var /* : null */;
7003 val* var_node_list /* var node_list: nullable Object */;
7004 val* var1 /* : nullable Object */;
7005 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
7006 val* var2 /* : nullable Object */;
7007 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7008 val* var3 /* : nullable Object */;
7009 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7010 val* var4 /* : nullable Object */;
7011 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7012 val* var5 /* : nullable Object */;
7013 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7014 val* var6 /* : nullable Object */;
7015 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7016 val* var7 /* : nullable Object */;
7017 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7018 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7019 short int var8 /* : Bool */;
7020 int cltype;
7021 int idtype;
7022 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
7023 short int var9 /* : Bool */;
7024 int cltype10;
7025 int idtype11;
7026 val* var_passignopnode4 /* var passignopnode4: nullable Object */;
7027 short int var12 /* : Bool */;
7028 int cltype13;
7029 int idtype14;
7030 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
7031 short int var15 /* : Bool */;
7032 int cltype16;
7033 int idtype17;
7034 val* var18 /* : AAttrReassignExpr */;
7035 val* var_pexprnode1 /* var pexprnode1: nullable AAttrReassignExpr */;
7036 long var19 /* : Int */;
7037 long var20 /* : Int */;
7038 var_p = p0;
7039 var = NULL;
7040 var_node_list = var;
7041 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7042 var_nodearraylist7 = var1;
7043 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7044 var_nodearraylist6 = var2;
7045 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7046 var_nodearraylist5 = var3;
7047 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7048 var_nodearraylist4 = var4;
7049 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7050 var_nodearraylist3 = var5;
7051 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7052 var_nodearraylist2 = var6;
7053 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7054 var_nodearraylist1 = var7;
7055 var_pexprnode2 = var_nodearraylist1;
7056 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7057 cltype = type_nullable_parser_nodes__AExpr.color;
7058 idtype = type_nullable_parser_nodes__AExpr.id;
7059 if(var_pexprnode2 == NULL) {
7060 var8 = 1;
7061 } else {
7062 if(cltype >= var_pexprnode2->type->table_size) {
7063 var8 = 0;
7064 } else {
7065 var8 = var_pexprnode2->type->type_table[cltype] == idtype;
7066 }
7067 }
7068 if (!var8) {
7069 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26990);
7070 exit(1);
7071 }
7072 var_tattridnode3 = var_nodearraylist5;
7073 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
7074 cltype10 = type_nullable_parser_nodes__TAttrid.color;
7075 idtype11 = type_nullable_parser_nodes__TAttrid.id;
7076 if(var_tattridnode3 == NULL) {
7077 var9 = 1;
7078 } else {
7079 if(cltype10 >= var_tattridnode3->type->table_size) {
7080 var9 = 0;
7081 } else {
7082 var9 = var_tattridnode3->type->type_table[cltype10] == idtype11;
7083 }
7084 }
7085 if (!var9) {
7086 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26992);
7087 exit(1);
7088 }
7089 var_passignopnode4 = var_nodearraylist6;
7090 /* <var_passignopnode4:nullable Object> isa nullable AAssignOp */
7091 cltype13 = type_nullable_parser_nodes__AAssignOp.color;
7092 idtype14 = type_nullable_parser_nodes__AAssignOp.id;
7093 if(var_passignopnode4 == NULL) {
7094 var12 = 1;
7095 } else {
7096 if(cltype13 >= var_passignopnode4->type->table_size) {
7097 var12 = 0;
7098 } else {
7099 var12 = var_passignopnode4->type->type_table[cltype13] == idtype14;
7100 }
7101 }
7102 if (!var12) {
7103 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26994);
7104 exit(1);
7105 }
7106 var_pexprnode5 = var_nodearraylist7;
7107 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
7108 cltype16 = type_nullable_parser_nodes__AExpr.color;
7109 idtype17 = type_nullable_parser_nodes__AExpr.id;
7110 if(var_pexprnode5 == NULL) {
7111 var15 = 1;
7112 } else {
7113 if(cltype16 >= var_pexprnode5->type->table_size) {
7114 var15 = 0;
7115 } else {
7116 var15 = var_pexprnode5->type->type_table[cltype16] == idtype17;
7117 }
7118 }
7119 if (!var15) {
7120 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 26996);
7121 exit(1);
7122 }
7123 var18 = NEW_parser_nodes__AAttrReassignExpr(&type_parser_nodes__AAttrReassignExpr);
7124 ((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>*/;
7125 CHECK_NEW_parser_nodes__AAttrReassignExpr(var18);
7126 var_pexprnode1 = var18;
7127 var_node_list = var_pexprnode1;
7128 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction715> */
7129 var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
7130 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
7131 RET_LABEL:;
7132 }
7133 /* method parser#ReduceAction715#action for (self: Object, Parser) */
7134 void VIRTUAL_parser__ReduceAction715__action(val* self, val* p0) {
7135 parser__ReduceAction715__action(self, p0);
7136 RET_LABEL:;
7137 }
7138 /* method parser#ReduceAction716#action for (self: ReduceAction716, Parser) */
7139 void parser__ReduceAction716__action(val* self, val* p0) {
7140 val* var_p /* var p: Parser */;
7141 val* var /* : null */;
7142 val* var_node_list /* var node_list: nullable Object */;
7143 val* var1 /* : nullable Object */;
7144 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
7145 val* var2 /* : nullable Object */;
7146 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
7147 val* var3 /* : nullable Object */;
7148 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7149 val* var4 /* : nullable Object */;
7150 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7151 val* var5 /* : nullable Object */;
7152 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7153 val* var6 /* : nullable Object */;
7154 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7155 val* var7 /* : nullable Object */;
7156 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7157 val* var8 /* : nullable Object */;
7158 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7159 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7160 short int var9 /* : Bool */;
7161 int cltype;
7162 int idtype;
7163 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
7164 short int var10 /* : Bool */;
7165 int cltype11;
7166 int idtype12;
7167 val* var_passignopnode4 /* var passignopnode4: nullable Object */;
7168 short int var13 /* : Bool */;
7169 int cltype14;
7170 int idtype15;
7171 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
7172 short int var16 /* : Bool */;
7173 int cltype17;
7174 int idtype18;
7175 val* var19 /* : AAttrReassignExpr */;
7176 val* var_pexprnode1 /* var pexprnode1: nullable AAttrReassignExpr */;
7177 long var20 /* : Int */;
7178 long var21 /* : Int */;
7179 var_p = p0;
7180 var = NULL;
7181 var_node_list = var;
7182 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7183 var_nodearraylist8 = var1;
7184 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7185 var_nodearraylist7 = var2;
7186 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7187 var_nodearraylist6 = var3;
7188 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7189 var_nodearraylist5 = var4;
7190 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7191 var_nodearraylist4 = var5;
7192 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7193 var_nodearraylist3 = var6;
7194 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7195 var_nodearraylist2 = var7;
7196 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7197 var_nodearraylist1 = var8;
7198 var_pexprnode2 = var_nodearraylist1;
7199 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7200 cltype = type_nullable_parser_nodes__AExpr.color;
7201 idtype = type_nullable_parser_nodes__AExpr.id;
7202 if(var_pexprnode2 == NULL) {
7203 var9 = 1;
7204 } else {
7205 if(cltype >= var_pexprnode2->type->table_size) {
7206 var9 = 0;
7207 } else {
7208 var9 = var_pexprnode2->type->type_table[cltype] == idtype;
7209 }
7210 }
7211 if (!var9) {
7212 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27021);
7213 exit(1);
7214 }
7215 var_tattridnode3 = var_nodearraylist6;
7216 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
7217 cltype11 = type_nullable_parser_nodes__TAttrid.color;
7218 idtype12 = type_nullable_parser_nodes__TAttrid.id;
7219 if(var_tattridnode3 == NULL) {
7220 var10 = 1;
7221 } else {
7222 if(cltype11 >= var_tattridnode3->type->table_size) {
7223 var10 = 0;
7224 } else {
7225 var10 = var_tattridnode3->type->type_table[cltype11] == idtype12;
7226 }
7227 }
7228 if (!var10) {
7229 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27023);
7230 exit(1);
7231 }
7232 var_passignopnode4 = var_nodearraylist7;
7233 /* <var_passignopnode4:nullable Object> isa nullable AAssignOp */
7234 cltype14 = type_nullable_parser_nodes__AAssignOp.color;
7235 idtype15 = type_nullable_parser_nodes__AAssignOp.id;
7236 if(var_passignopnode4 == NULL) {
7237 var13 = 1;
7238 } else {
7239 if(cltype14 >= var_passignopnode4->type->table_size) {
7240 var13 = 0;
7241 } else {
7242 var13 = var_passignopnode4->type->type_table[cltype14] == idtype15;
7243 }
7244 }
7245 if (!var13) {
7246 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27025);
7247 exit(1);
7248 }
7249 var_pexprnode5 = var_nodearraylist8;
7250 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
7251 cltype17 = type_nullable_parser_nodes__AExpr.color;
7252 idtype18 = type_nullable_parser_nodes__AExpr.id;
7253 if(var_pexprnode5 == NULL) {
7254 var16 = 1;
7255 } else {
7256 if(cltype17 >= var_pexprnode5->type->table_size) {
7257 var16 = 0;
7258 } else {
7259 var16 = var_pexprnode5->type->type_table[cltype17] == idtype18;
7260 }
7261 }
7262 if (!var16) {
7263 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27027);
7264 exit(1);
7265 }
7266 var19 = NEW_parser_nodes__AAttrReassignExpr(&type_parser_nodes__AAttrReassignExpr);
7267 ((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>*/;
7268 CHECK_NEW_parser_nodes__AAttrReassignExpr(var19);
7269 var_pexprnode1 = var19;
7270 var_node_list = var_pexprnode1;
7271 var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction716> */
7272 var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on <var_p:Parser>*/;
7273 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on <var_p:Parser>*/;
7274 RET_LABEL:;
7275 }
7276 /* method parser#ReduceAction716#action for (self: Object, Parser) */
7277 void VIRTUAL_parser__ReduceAction716__action(val* self, val* p0) {
7278 parser__ReduceAction716__action(self, p0);
7279 RET_LABEL:;
7280 }
7281 /* method parser#ReduceAction718#action for (self: ReduceAction718, Parser) */
7282 void parser__ReduceAction718__action(val* self, val* p0) {
7283 val* var_p /* var p: Parser */;
7284 val* var /* : null */;
7285 val* var_node_list /* var node_list: nullable Object */;
7286 val* var1 /* : nullable Object */;
7287 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7288 val* var2 /* : nullable Object */;
7289 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7290 val* var3 /* : nullable Object */;
7291 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7292 val* var4 /* : nullable Object */;
7293 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7294 val* var5 /* : AImplicitSelfExpr */;
7295 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
7296 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
7297 short int var6 /* : Bool */;
7298 int cltype;
7299 int idtype;
7300 val* var_passignopnode4 /* var passignopnode4: nullable Object */;
7301 short int var7 /* : Bool */;
7302 int cltype8;
7303 int idtype9;
7304 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
7305 short int var10 /* : Bool */;
7306 int cltype11;
7307 int idtype12;
7308 val* var13 /* : AAttrReassignExpr */;
7309 val* var_pexprnode1 /* var pexprnode1: nullable AAttrReassignExpr */;
7310 long var14 /* : Int */;
7311 long var15 /* : Int */;
7312 var_p = p0;
7313 var = NULL;
7314 var_node_list = var;
7315 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7316 var_nodearraylist4 = var1;
7317 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7318 var_nodearraylist3 = var2;
7319 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7320 var_nodearraylist2 = var3;
7321 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7322 var_nodearraylist1 = var4;
7323 var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
7324 ((void (*)(val*))(var5->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var5) /* init_aimplicitselfexpr on <var5:AImplicitSelfExpr>*/;
7325 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var5);
7326 var_pexprnode2 = var5;
7327 var_tattridnode3 = var_nodearraylist2;
7328 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
7329 cltype = type_nullable_parser_nodes__TAttrid.color;
7330 idtype = type_nullable_parser_nodes__TAttrid.id;
7331 if(var_tattridnode3 == NULL) {
7332 var6 = 1;
7333 } else {
7334 if(cltype >= var_tattridnode3->type->table_size) {
7335 var6 = 0;
7336 } else {
7337 var6 = var_tattridnode3->type->type_table[cltype] == idtype;
7338 }
7339 }
7340 if (!var6) {
7341 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27049);
7342 exit(1);
7343 }
7344 var_passignopnode4 = var_nodearraylist3;
7345 /* <var_passignopnode4:nullable Object> isa nullable AAssignOp */
7346 cltype8 = type_nullable_parser_nodes__AAssignOp.color;
7347 idtype9 = type_nullable_parser_nodes__AAssignOp.id;
7348 if(var_passignopnode4 == NULL) {
7349 var7 = 1;
7350 } else {
7351 if(cltype8 >= var_passignopnode4->type->table_size) {
7352 var7 = 0;
7353 } else {
7354 var7 = var_passignopnode4->type->type_table[cltype8] == idtype9;
7355 }
7356 }
7357 if (!var7) {
7358 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27051);
7359 exit(1);
7360 }
7361 var_pexprnode5 = var_nodearraylist4;
7362 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
7363 cltype11 = type_nullable_parser_nodes__AExpr.color;
7364 idtype12 = type_nullable_parser_nodes__AExpr.id;
7365 if(var_pexprnode5 == NULL) {
7366 var10 = 1;
7367 } else {
7368 if(cltype11 >= var_pexprnode5->type->table_size) {
7369 var10 = 0;
7370 } else {
7371 var10 = var_pexprnode5->type->type_table[cltype11] == idtype12;
7372 }
7373 }
7374 if (!var10) {
7375 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27053);
7376 exit(1);
7377 }
7378 var13 = NEW_parser_nodes__AAttrReassignExpr(&type_parser_nodes__AAttrReassignExpr);
7379 ((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>*/;
7380 CHECK_NEW_parser_nodes__AAttrReassignExpr(var13);
7381 var_pexprnode1 = var13;
7382 var_node_list = var_pexprnode1;
7383 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction718> */
7384 var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
7385 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
7386 RET_LABEL:;
7387 }
7388 /* method parser#ReduceAction718#action for (self: Object, Parser) */
7389 void VIRTUAL_parser__ReduceAction718__action(val* self, val* p0) {
7390 parser__ReduceAction718__action(self, p0);
7391 RET_LABEL:;
7392 }
7393 /* method parser#ReduceAction719#action for (self: ReduceAction719, Parser) */
7394 void parser__ReduceAction719__action(val* self, val* p0) {
7395 val* var_p /* var p: Parser */;
7396 val* var /* : null */;
7397 val* var_node_list /* var node_list: nullable Object */;
7398 val* var1 /* : nullable Object */;
7399 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7400 val* var2 /* : nullable Object */;
7401 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7402 val* var3 /* : nullable Object */;
7403 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7404 val* var4 /* : nullable Object */;
7405 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7406 val* var5 /* : nullable Object */;
7407 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7408 val* var6 /* : AImplicitSelfExpr */;
7409 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
7410 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
7411 short int var7 /* : Bool */;
7412 int cltype;
7413 int idtype;
7414 val* var_passignopnode4 /* var passignopnode4: nullable Object */;
7415 short int var8 /* : Bool */;
7416 int cltype9;
7417 int idtype10;
7418 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
7419 short int var11 /* : Bool */;
7420 int cltype12;
7421 int idtype13;
7422 val* var14 /* : AAttrReassignExpr */;
7423 val* var_pexprnode1 /* var pexprnode1: nullable AAttrReassignExpr */;
7424 long var15 /* : Int */;
7425 long var16 /* : Int */;
7426 var_p = p0;
7427 var = NULL;
7428 var_node_list = var;
7429 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7430 var_nodearraylist5 = var1;
7431 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7432 var_nodearraylist4 = var2;
7433 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7434 var_nodearraylist3 = var3;
7435 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7436 var_nodearraylist2 = var4;
7437 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7438 var_nodearraylist1 = var5;
7439 var6 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
7440 ((void (*)(val*))(var6->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var6) /* init_aimplicitselfexpr on <var6:AImplicitSelfExpr>*/;
7441 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var6);
7442 var_pexprnode2 = var6;
7443 var_tattridnode3 = var_nodearraylist3;
7444 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
7445 cltype = type_nullable_parser_nodes__TAttrid.color;
7446 idtype = type_nullable_parser_nodes__TAttrid.id;
7447 if(var_tattridnode3 == NULL) {
7448 var7 = 1;
7449 } else {
7450 if(cltype >= var_tattridnode3->type->table_size) {
7451 var7 = 0;
7452 } else {
7453 var7 = var_tattridnode3->type->type_table[cltype] == idtype;
7454 }
7455 }
7456 if (!var7) {
7457 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27076);
7458 exit(1);
7459 }
7460 var_passignopnode4 = var_nodearraylist4;
7461 /* <var_passignopnode4:nullable Object> isa nullable AAssignOp */
7462 cltype9 = type_nullable_parser_nodes__AAssignOp.color;
7463 idtype10 = type_nullable_parser_nodes__AAssignOp.id;
7464 if(var_passignopnode4 == NULL) {
7465 var8 = 1;
7466 } else {
7467 if(cltype9 >= var_passignopnode4->type->table_size) {
7468 var8 = 0;
7469 } else {
7470 var8 = var_passignopnode4->type->type_table[cltype9] == idtype10;
7471 }
7472 }
7473 if (!var8) {
7474 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27078);
7475 exit(1);
7476 }
7477 var_pexprnode5 = var_nodearraylist5;
7478 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
7479 cltype12 = type_nullable_parser_nodes__AExpr.color;
7480 idtype13 = type_nullable_parser_nodes__AExpr.id;
7481 if(var_pexprnode5 == NULL) {
7482 var11 = 1;
7483 } else {
7484 if(cltype12 >= var_pexprnode5->type->table_size) {
7485 var11 = 0;
7486 } else {
7487 var11 = var_pexprnode5->type->type_table[cltype12] == idtype13;
7488 }
7489 }
7490 if (!var11) {
7491 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27080);
7492 exit(1);
7493 }
7494 var14 = NEW_parser_nodes__AAttrReassignExpr(&type_parser_nodes__AAttrReassignExpr);
7495 ((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>*/;
7496 CHECK_NEW_parser_nodes__AAttrReassignExpr(var14);
7497 var_pexprnode1 = var14;
7498 var_node_list = var_pexprnode1;
7499 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction719> */
7500 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
7501 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
7502 RET_LABEL:;
7503 }
7504 /* method parser#ReduceAction719#action for (self: Object, Parser) */
7505 void VIRTUAL_parser__ReduceAction719__action(val* self, val* p0) {
7506 parser__ReduceAction719__action(self, p0);
7507 RET_LABEL:;
7508 }
7509 /* method parser#ReduceAction721#action for (self: ReduceAction721, Parser) */
7510 void parser__ReduceAction721__action(val* self, val* p0) {
7511 val* var_p /* var p: Parser */;
7512 val* var /* : null */;
7513 val* var_node_list /* var node_list: nullable Object */;
7514 val* var1 /* : nullable Object */;
7515 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
7516 val* var2 /* : nullable Object */;
7517 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7518 val* var3 /* : nullable Object */;
7519 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7520 val* var4 /* : nullable Object */;
7521 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7522 val* var5 /* : nullable Object */;
7523 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7524 val* var6 /* : nullable Object */;
7525 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7526 val* var7 /* : nullable Object */;
7527 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7528 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7529 short int var8 /* : Bool */;
7530 int cltype;
7531 int idtype;
7532 val* var_tidnode3 /* var tidnode3: nullable Object */;
7533 short int var9 /* : Bool */;
7534 int cltype10;
7535 int idtype11;
7536 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
7537 short int var12 /* : Bool */;
7538 int cltype13;
7539 int idtype14;
7540 val* var_passignopnode5 /* var passignopnode5: nullable Object */;
7541 short int var15 /* : Bool */;
7542 int cltype16;
7543 int idtype17;
7544 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
7545 short int var18 /* : Bool */;
7546 int cltype19;
7547 int idtype20;
7548 val* var21 /* : ACallReassignExpr */;
7549 val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */;
7550 long var22 /* : Int */;
7551 long var23 /* : Int */;
7552 var_p = p0;
7553 var = NULL;
7554 var_node_list = var;
7555 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7556 var_nodearraylist7 = var1;
7557 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7558 var_nodearraylist6 = var2;
7559 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7560 var_nodearraylist5 = var3;
7561 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7562 var_nodearraylist4 = var4;
7563 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7564 var_nodearraylist3 = var5;
7565 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7566 var_nodearraylist2 = var6;
7567 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7568 var_nodearraylist1 = var7;
7569 var_pexprnode2 = var_nodearraylist1;
7570 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7571 cltype = type_nullable_parser_nodes__AExpr.color;
7572 idtype = type_nullable_parser_nodes__AExpr.id;
7573 if(var_pexprnode2 == NULL) {
7574 var8 = 1;
7575 } else {
7576 if(cltype >= var_pexprnode2->type->table_size) {
7577 var8 = 0;
7578 } else {
7579 var8 = var_pexprnode2->type->type_table[cltype] == idtype;
7580 }
7581 }
7582 if (!var8) {
7583 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27104);
7584 exit(1);
7585 }
7586 var_tidnode3 = var_nodearraylist4;
7587 /* <var_tidnode3:nullable Object> isa nullable TId */
7588 cltype10 = type_nullable_parser_nodes__TId.color;
7589 idtype11 = type_nullable_parser_nodes__TId.id;
7590 if(var_tidnode3 == NULL) {
7591 var9 = 1;
7592 } else {
7593 if(cltype10 >= var_tidnode3->type->table_size) {
7594 var9 = 0;
7595 } else {
7596 var9 = var_tidnode3->type->type_table[cltype10] == idtype11;
7597 }
7598 }
7599 if (!var9) {
7600 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27106);
7601 exit(1);
7602 }
7603 var_pexprsnode4 = var_nodearraylist5;
7604 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
7605 cltype13 = type_nullable_parser_nodes__AExprs.color;
7606 idtype14 = type_nullable_parser_nodes__AExprs.id;
7607 if(var_pexprsnode4 == NULL) {
7608 var12 = 1;
7609 } else {
7610 if(cltype13 >= var_pexprsnode4->type->table_size) {
7611 var12 = 0;
7612 } else {
7613 var12 = var_pexprsnode4->type->type_table[cltype13] == idtype14;
7614 }
7615 }
7616 if (!var12) {
7617 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27108);
7618 exit(1);
7619 }
7620 var_passignopnode5 = var_nodearraylist6;
7621 /* <var_passignopnode5:nullable Object> isa nullable AAssignOp */
7622 cltype16 = type_nullable_parser_nodes__AAssignOp.color;
7623 idtype17 = type_nullable_parser_nodes__AAssignOp.id;
7624 if(var_passignopnode5 == NULL) {
7625 var15 = 1;
7626 } else {
7627 if(cltype16 >= var_passignopnode5->type->table_size) {
7628 var15 = 0;
7629 } else {
7630 var15 = var_passignopnode5->type->type_table[cltype16] == idtype17;
7631 }
7632 }
7633 if (!var15) {
7634 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27110);
7635 exit(1);
7636 }
7637 var_pexprnode6 = var_nodearraylist7;
7638 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
7639 cltype19 = type_nullable_parser_nodes__AExpr.color;
7640 idtype20 = type_nullable_parser_nodes__AExpr.id;
7641 if(var_pexprnode6 == NULL) {
7642 var18 = 1;
7643 } else {
7644 if(cltype19 >= var_pexprnode6->type->table_size) {
7645 var18 = 0;
7646 } else {
7647 var18 = var_pexprnode6->type->type_table[cltype19] == idtype20;
7648 }
7649 }
7650 if (!var18) {
7651 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27112);
7652 exit(1);
7653 }
7654 var21 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr);
7655 ((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>*/;
7656 CHECK_NEW_parser_nodes__ACallReassignExpr(var21);
7657 var_pexprnode1 = var21;
7658 var_node_list = var_pexprnode1;
7659 var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction721> */
7660 var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
7661 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
7662 RET_LABEL:;
7663 }
7664 /* method parser#ReduceAction721#action for (self: Object, Parser) */
7665 void VIRTUAL_parser__ReduceAction721__action(val* self, val* p0) {
7666 parser__ReduceAction721__action(self, p0);
7667 RET_LABEL:;
7668 }
7669 /* method parser#ReduceAction722#action for (self: ReduceAction722, Parser) */
7670 void parser__ReduceAction722__action(val* self, val* p0) {
7671 val* var_p /* var p: Parser */;
7672 val* var /* : null */;
7673 val* var_node_list /* var node_list: nullable Object */;
7674 val* var1 /* : nullable Object */;
7675 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7676 val* var2 /* : nullable Object */;
7677 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7678 val* var3 /* : nullable Object */;
7679 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7680 val* var4 /* : nullable Object */;
7681 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7682 val* var5 /* : AImplicitSelfExpr */;
7683 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
7684 val* var_tidnode3 /* var tidnode3: nullable Object */;
7685 short int var6 /* : Bool */;
7686 int cltype;
7687 int idtype;
7688 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
7689 short int var7 /* : Bool */;
7690 int cltype8;
7691 int idtype9;
7692 val* var_passignopnode5 /* var passignopnode5: nullable Object */;
7693 short int var10 /* : Bool */;
7694 int cltype11;
7695 int idtype12;
7696 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
7697 short int var13 /* : Bool */;
7698 int cltype14;
7699 int idtype15;
7700 val* var16 /* : ACallReassignExpr */;
7701 val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */;
7702 long var17 /* : Int */;
7703 long var18 /* : Int */;
7704 var_p = p0;
7705 var = NULL;
7706 var_node_list = var;
7707 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7708 var_nodearraylist4 = var1;
7709 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7710 var_nodearraylist3 = var2;
7711 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7712 var_nodearraylist2 = var3;
7713 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7714 var_nodearraylist1 = var4;
7715 var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
7716 ((void (*)(val*))(var5->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var5) /* init_aimplicitselfexpr on <var5:AImplicitSelfExpr>*/;
7717 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var5);
7718 var_pexprnode2 = var5;
7719 var_tidnode3 = var_nodearraylist1;
7720 /* <var_tidnode3:nullable Object> isa nullable TId */
7721 cltype = type_nullable_parser_nodes__TId.color;
7722 idtype = type_nullable_parser_nodes__TId.id;
7723 if(var_tidnode3 == NULL) {
7724 var6 = 1;
7725 } else {
7726 if(cltype >= var_tidnode3->type->table_size) {
7727 var6 = 0;
7728 } else {
7729 var6 = var_tidnode3->type->type_table[cltype] == idtype;
7730 }
7731 }
7732 if (!var6) {
7733 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27135);
7734 exit(1);
7735 }
7736 var_pexprsnode4 = var_nodearraylist2;
7737 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
7738 cltype8 = type_nullable_parser_nodes__AExprs.color;
7739 idtype9 = type_nullable_parser_nodes__AExprs.id;
7740 if(var_pexprsnode4 == NULL) {
7741 var7 = 1;
7742 } else {
7743 if(cltype8 >= var_pexprsnode4->type->table_size) {
7744 var7 = 0;
7745 } else {
7746 var7 = var_pexprsnode4->type->type_table[cltype8] == idtype9;
7747 }
7748 }
7749 if (!var7) {
7750 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27137);
7751 exit(1);
7752 }
7753 var_passignopnode5 = var_nodearraylist3;
7754 /* <var_passignopnode5:nullable Object> isa nullable AAssignOp */
7755 cltype11 = type_nullable_parser_nodes__AAssignOp.color;
7756 idtype12 = type_nullable_parser_nodes__AAssignOp.id;
7757 if(var_passignopnode5 == NULL) {
7758 var10 = 1;
7759 } else {
7760 if(cltype11 >= var_passignopnode5->type->table_size) {
7761 var10 = 0;
7762 } else {
7763 var10 = var_passignopnode5->type->type_table[cltype11] == idtype12;
7764 }
7765 }
7766 if (!var10) {
7767 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27139);
7768 exit(1);
7769 }
7770 var_pexprnode6 = var_nodearraylist4;
7771 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
7772 cltype14 = type_nullable_parser_nodes__AExpr.color;
7773 idtype15 = type_nullable_parser_nodes__AExpr.id;
7774 if(var_pexprnode6 == NULL) {
7775 var13 = 1;
7776 } else {
7777 if(cltype14 >= var_pexprnode6->type->table_size) {
7778 var13 = 0;
7779 } else {
7780 var13 = var_pexprnode6->type->type_table[cltype14] == idtype15;
7781 }
7782 }
7783 if (!var13) {
7784 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27141);
7785 exit(1);
7786 }
7787 var16 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr);
7788 ((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>*/;
7789 CHECK_NEW_parser_nodes__ACallReassignExpr(var16);
7790 var_pexprnode1 = var16;
7791 var_node_list = var_pexprnode1;
7792 var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction722> */
7793 var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
7794 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
7795 RET_LABEL:;
7796 }
7797 /* method parser#ReduceAction722#action for (self: Object, Parser) */
7798 void VIRTUAL_parser__ReduceAction722__action(val* self, val* p0) {
7799 parser__ReduceAction722__action(self, p0);
7800 RET_LABEL:;
7801 }
7802 /* method parser#ReduceAction723#action for (self: ReduceAction723, Parser) */
7803 void parser__ReduceAction723__action(val* self, val* p0) {
7804 val* var_p /* var p: Parser */;
7805 val* var /* : null */;
7806 val* var_node_list /* var node_list: nullable Object */;
7807 val* var1 /* : nullable Object */;
7808 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
7809 val* var2 /* : nullable Object */;
7810 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
7811 val* var3 /* : nullable Object */;
7812 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7813 val* var4 /* : nullable Object */;
7814 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7815 val* var5 /* : nullable Object */;
7816 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7817 val* var6 /* : nullable Object */;
7818 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7819 val* var7 /* : nullable Object */;
7820 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7821 val* var8 /* : nullable Object */;
7822 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7823 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7824 short int var9 /* : Bool */;
7825 int cltype;
7826 int idtype;
7827 val* var_tidnode3 /* var tidnode3: nullable Object */;
7828 short int var10 /* : Bool */;
7829 int cltype11;
7830 int idtype12;
7831 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
7832 short int var13 /* : Bool */;
7833 int cltype14;
7834 int idtype15;
7835 val* var_passignopnode5 /* var passignopnode5: nullable Object */;
7836 short int var16 /* : Bool */;
7837 int cltype17;
7838 int idtype18;
7839 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
7840 short int var19 /* : Bool */;
7841 int cltype20;
7842 int idtype21;
7843 val* var22 /* : ACallReassignExpr */;
7844 val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */;
7845 long var23 /* : Int */;
7846 long var24 /* : Int */;
7847 var_p = p0;
7848 var = NULL;
7849 var_node_list = var;
7850 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7851 var_nodearraylist8 = var1;
7852 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7853 var_nodearraylist7 = var2;
7854 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7855 var_nodearraylist6 = var3;
7856 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7857 var_nodearraylist5 = var4;
7858 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7859 var_nodearraylist4 = var5;
7860 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7861 var_nodearraylist3 = var6;
7862 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7863 var_nodearraylist2 = var7;
7864 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7865 var_nodearraylist1 = var8;
7866 var_pexprnode2 = var_nodearraylist1;
7867 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7868 cltype = type_nullable_parser_nodes__AExpr.color;
7869 idtype = type_nullable_parser_nodes__AExpr.id;
7870 if(var_pexprnode2 == NULL) {
7871 var9 = 1;
7872 } else {
7873 if(cltype >= var_pexprnode2->type->table_size) {
7874 var9 = 0;
7875 } else {
7876 var9 = var_pexprnode2->type->type_table[cltype] == idtype;
7877 }
7878 }
7879 if (!var9) {
7880 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27167);
7881 exit(1);
7882 }
7883 var_tidnode3 = var_nodearraylist5;
7884 /* <var_tidnode3:nullable Object> isa nullable TId */
7885 cltype11 = type_nullable_parser_nodes__TId.color;
7886 idtype12 = type_nullable_parser_nodes__TId.id;
7887 if(var_tidnode3 == NULL) {
7888 var10 = 1;
7889 } else {
7890 if(cltype11 >= var_tidnode3->type->table_size) {
7891 var10 = 0;
7892 } else {
7893 var10 = var_tidnode3->type->type_table[cltype11] == idtype12;
7894 }
7895 }
7896 if (!var10) {
7897 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27169);
7898 exit(1);
7899 }
7900 var_pexprsnode4 = var_nodearraylist6;
7901 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
7902 cltype14 = type_nullable_parser_nodes__AExprs.color;
7903 idtype15 = type_nullable_parser_nodes__AExprs.id;
7904 if(var_pexprsnode4 == NULL) {
7905 var13 = 1;
7906 } else {
7907 if(cltype14 >= var_pexprsnode4->type->table_size) {
7908 var13 = 0;
7909 } else {
7910 var13 = var_pexprsnode4->type->type_table[cltype14] == idtype15;
7911 }
7912 }
7913 if (!var13) {
7914 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27171);
7915 exit(1);
7916 }
7917 var_passignopnode5 = var_nodearraylist7;
7918 /* <var_passignopnode5:nullable Object> isa nullable AAssignOp */
7919 cltype17 = type_nullable_parser_nodes__AAssignOp.color;
7920 idtype18 = type_nullable_parser_nodes__AAssignOp.id;
7921 if(var_passignopnode5 == NULL) {
7922 var16 = 1;
7923 } else {
7924 if(cltype17 >= var_passignopnode5->type->table_size) {
7925 var16 = 0;
7926 } else {
7927 var16 = var_passignopnode5->type->type_table[cltype17] == idtype18;
7928 }
7929 }
7930 if (!var16) {
7931 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27173);
7932 exit(1);
7933 }
7934 var_pexprnode6 = var_nodearraylist8;
7935 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
7936 cltype20 = type_nullable_parser_nodes__AExpr.color;
7937 idtype21 = type_nullable_parser_nodes__AExpr.id;
7938 if(var_pexprnode6 == NULL) {
7939 var19 = 1;
7940 } else {
7941 if(cltype20 >= var_pexprnode6->type->table_size) {
7942 var19 = 0;
7943 } else {
7944 var19 = var_pexprnode6->type->type_table[cltype20] == idtype21;
7945 }
7946 }
7947 if (!var19) {
7948 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27175);
7949 exit(1);
7950 }
7951 var22 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr);
7952 ((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>*/;
7953 CHECK_NEW_parser_nodes__ACallReassignExpr(var22);
7954 var_pexprnode1 = var22;
7955 var_node_list = var_pexprnode1;
7956 var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction723> */
7957 var24 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var23) /* go_to on <var_p:Parser>*/;
7958 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var24, var_node_list) /* push on <var_p:Parser>*/;
7959 RET_LABEL:;
7960 }
7961 /* method parser#ReduceAction723#action for (self: Object, Parser) */
7962 void VIRTUAL_parser__ReduceAction723__action(val* self, val* p0) {
7963 parser__ReduceAction723__action(self, p0);
7964 RET_LABEL:;
7965 }
7966 /* method parser#ReduceAction724#action for (self: ReduceAction724, Parser) */
7967 void parser__ReduceAction724__action(val* self, val* p0) {
7968 val* var_p /* var p: Parser */;
7969 val* var /* : null */;
7970 val* var_node_list /* var node_list: nullable Object */;
7971 val* var1 /* : nullable Object */;
7972 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
7973 val* var2 /* : nullable Object */;
7974 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
7975 val* var3 /* : nullable Object */;
7976 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
7977 val* var4 /* : nullable Object */;
7978 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7979 val* var5 /* : nullable Object */;
7980 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7981 val* var6 /* : nullable Object */;
7982 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7983 val* var7 /* : nullable Object */;
7984 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7985 val* var8 /* : nullable Object */;
7986 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7987 val* var9 /* : nullable Object */;
7988 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7989 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7990 short int var10 /* : Bool */;
7991 int cltype;
7992 int idtype;
7993 val* var_tidnode3 /* var tidnode3: nullable Object */;
7994 short int var11 /* : Bool */;
7995 int cltype12;
7996 int idtype13;
7997 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
7998 short int var14 /* : Bool */;
7999 int cltype15;
8000 int idtype16;
8001 val* var_passignopnode5 /* var passignopnode5: nullable Object */;
8002 short int var17 /* : Bool */;
8003 int cltype18;
8004 int idtype19;
8005 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
8006 short int var20 /* : Bool */;
8007 int cltype21;
8008 int idtype22;
8009 val* var23 /* : ACallReassignExpr */;
8010 val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */;
8011 long var24 /* : Int */;
8012 long var25 /* : Int */;
8013 var_p = p0;
8014 var = NULL;
8015 var_node_list = var;
8016 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8017 var_nodearraylist9 = var1;
8018 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8019 var_nodearraylist8 = var2;
8020 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8021 var_nodearraylist7 = var3;
8022 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8023 var_nodearraylist6 = var4;
8024 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8025 var_nodearraylist5 = var5;
8026 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8027 var_nodearraylist4 = var6;
8028 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8029 var_nodearraylist3 = var7;
8030 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8031 var_nodearraylist2 = var8;
8032 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8033 var_nodearraylist1 = var9;
8034 var_pexprnode2 = var_nodearraylist1;
8035 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
8036 cltype = type_nullable_parser_nodes__AExpr.color;
8037 idtype = type_nullable_parser_nodes__AExpr.id;
8038 if(var_pexprnode2 == NULL) {
8039 var10 = 1;
8040 } else {
8041 if(cltype >= var_pexprnode2->type->table_size) {
8042 var10 = 0;
8043 } else {
8044 var10 = var_pexprnode2->type->type_table[cltype] == idtype;
8045 }
8046 }
8047 if (!var10) {
8048 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27202);
8049 exit(1);
8050 }
8051 var_tidnode3 = var_nodearraylist6;
8052 /* <var_tidnode3:nullable Object> isa nullable TId */
8053 cltype12 = type_nullable_parser_nodes__TId.color;
8054 idtype13 = type_nullable_parser_nodes__TId.id;
8055 if(var_tidnode3 == NULL) {
8056 var11 = 1;
8057 } else {
8058 if(cltype12 >= var_tidnode3->type->table_size) {
8059 var11 = 0;
8060 } else {
8061 var11 = var_tidnode3->type->type_table[cltype12] == idtype13;
8062 }
8063 }
8064 if (!var11) {
8065 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27204);
8066 exit(1);
8067 }
8068 var_pexprsnode4 = var_nodearraylist7;
8069 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
8070 cltype15 = type_nullable_parser_nodes__AExprs.color;
8071 idtype16 = type_nullable_parser_nodes__AExprs.id;
8072 if(var_pexprsnode4 == NULL) {
8073 var14 = 1;
8074 } else {
8075 if(cltype15 >= var_pexprsnode4->type->table_size) {
8076 var14 = 0;
8077 } else {
8078 var14 = var_pexprsnode4->type->type_table[cltype15] == idtype16;
8079 }
8080 }
8081 if (!var14) {
8082 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27206);
8083 exit(1);
8084 }
8085 var_passignopnode5 = var_nodearraylist8;
8086 /* <var_passignopnode5:nullable Object> isa nullable AAssignOp */
8087 cltype18 = type_nullable_parser_nodes__AAssignOp.color;
8088 idtype19 = type_nullable_parser_nodes__AAssignOp.id;
8089 if(var_passignopnode5 == NULL) {
8090 var17 = 1;
8091 } else {
8092 if(cltype18 >= var_passignopnode5->type->table_size) {
8093 var17 = 0;
8094 } else {
8095 var17 = var_passignopnode5->type->type_table[cltype18] == idtype19;
8096 }
8097 }
8098 if (!var17) {
8099 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27208);
8100 exit(1);
8101 }
8102 var_pexprnode6 = var_nodearraylist9;
8103 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
8104 cltype21 = type_nullable_parser_nodes__AExpr.color;
8105 idtype22 = type_nullable_parser_nodes__AExpr.id;
8106 if(var_pexprnode6 == NULL) {
8107 var20 = 1;
8108 } else {
8109 if(cltype21 >= var_pexprnode6->type->table_size) {
8110 var20 = 0;
8111 } else {
8112 var20 = var_pexprnode6->type->type_table[cltype21] == idtype22;
8113 }
8114 }
8115 if (!var20) {
8116 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27210);
8117 exit(1);
8118 }
8119 var23 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr);
8120 ((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>*/;
8121 CHECK_NEW_parser_nodes__ACallReassignExpr(var23);
8122 var_pexprnode1 = var23;
8123 var_node_list = var_pexprnode1;
8124 var24 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction724> */
8125 var25 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var24) /* go_to on <var_p:Parser>*/;
8126 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var25, var_node_list) /* push on <var_p:Parser>*/;
8127 RET_LABEL:;
8128 }
8129 /* method parser#ReduceAction724#action for (self: Object, Parser) */
8130 void VIRTUAL_parser__ReduceAction724__action(val* self, val* p0) {
8131 parser__ReduceAction724__action(self, p0);
8132 RET_LABEL:;
8133 }
8134 /* method parser#ReduceAction726#action for (self: ReduceAction726, Parser) */
8135 void parser__ReduceAction726__action(val* self, val* p0) {
8136 val* var_p /* var p: Parser */;
8137 val* var /* : null */;
8138 val* var_node_list /* var node_list: nullable Object */;
8139 val* var1 /* : nullable Object */;
8140 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
8141 val* var2 /* : nullable Object */;
8142 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8143 val* var3 /* : nullable Object */;
8144 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8145 val* var4 /* : nullable Object */;
8146 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8147 val* var5 /* : nullable Object */;
8148 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8149 val* var6 /* : AImplicitSelfExpr */;
8150 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
8151 val* var_tidnode3 /* var tidnode3: nullable Object */;
8152 short int var7 /* : Bool */;
8153 int cltype;
8154 int idtype;
8155 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
8156 short int var8 /* : Bool */;
8157 int cltype9;
8158 int idtype10;
8159 val* var_passignopnode5 /* var passignopnode5: nullable Object */;
8160 short int var11 /* : Bool */;
8161 int cltype12;
8162 int idtype13;
8163 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
8164 short int var14 /* : Bool */;
8165 int cltype15;
8166 int idtype16;
8167 val* var17 /* : ACallReassignExpr */;
8168 val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */;
8169 long var18 /* : Int */;
8170 long var19 /* : Int */;
8171 var_p = p0;
8172 var = NULL;
8173 var_node_list = var;
8174 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8175 var_nodearraylist5 = var1;
8176 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8177 var_nodearraylist4 = var2;
8178 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8179 var_nodearraylist3 = var3;
8180 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8181 var_nodearraylist2 = var4;
8182 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8183 var_nodearraylist1 = var5;
8184 var6 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
8185 ((void (*)(val*))(var6->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var6) /* init_aimplicitselfexpr on <var6:AImplicitSelfExpr>*/;
8186 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var6);
8187 var_pexprnode2 = var6;
8188 var_tidnode3 = var_nodearraylist2;
8189 /* <var_tidnode3:nullable Object> isa nullable TId */
8190 cltype = type_nullable_parser_nodes__TId.color;
8191 idtype = type_nullable_parser_nodes__TId.id;
8192 if(var_tidnode3 == NULL) {
8193 var7 = 1;
8194 } else {
8195 if(cltype >= var_tidnode3->type->table_size) {
8196 var7 = 0;
8197 } else {
8198 var7 = var_tidnode3->type->type_table[cltype] == idtype;
8199 }
8200 }
8201 if (!var7) {
8202 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27234);
8203 exit(1);
8204 }
8205 var_pexprsnode4 = var_nodearraylist3;
8206 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
8207 cltype9 = type_nullable_parser_nodes__AExprs.color;
8208 idtype10 = type_nullable_parser_nodes__AExprs.id;
8209 if(var_pexprsnode4 == NULL) {
8210 var8 = 1;
8211 } else {
8212 if(cltype9 >= var_pexprsnode4->type->table_size) {
8213 var8 = 0;
8214 } else {
8215 var8 = var_pexprsnode4->type->type_table[cltype9] == idtype10;
8216 }
8217 }
8218 if (!var8) {
8219 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27236);
8220 exit(1);
8221 }
8222 var_passignopnode5 = var_nodearraylist4;
8223 /* <var_passignopnode5:nullable Object> isa nullable AAssignOp */
8224 cltype12 = type_nullable_parser_nodes__AAssignOp.color;
8225 idtype13 = type_nullable_parser_nodes__AAssignOp.id;
8226 if(var_passignopnode5 == NULL) {
8227 var11 = 1;
8228 } else {
8229 if(cltype12 >= var_passignopnode5->type->table_size) {
8230 var11 = 0;
8231 } else {
8232 var11 = var_passignopnode5->type->type_table[cltype12] == idtype13;
8233 }
8234 }
8235 if (!var11) {
8236 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27238);
8237 exit(1);
8238 }
8239 var_pexprnode6 = var_nodearraylist5;
8240 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
8241 cltype15 = type_nullable_parser_nodes__AExpr.color;
8242 idtype16 = type_nullable_parser_nodes__AExpr.id;
8243 if(var_pexprnode6 == NULL) {
8244 var14 = 1;
8245 } else {
8246 if(cltype15 >= var_pexprnode6->type->table_size) {
8247 var14 = 0;
8248 } else {
8249 var14 = var_pexprnode6->type->type_table[cltype15] == idtype16;
8250 }
8251 }
8252 if (!var14) {
8253 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27240);
8254 exit(1);
8255 }
8256 var17 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr);
8257 ((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>*/;
8258 CHECK_NEW_parser_nodes__ACallReassignExpr(var17);
8259 var_pexprnode1 = var17;
8260 var_node_list = var_pexprnode1;
8261 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction726> */
8262 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
8263 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
8264 RET_LABEL:;
8265 }
8266 /* method parser#ReduceAction726#action for (self: Object, Parser) */
8267 void VIRTUAL_parser__ReduceAction726__action(val* self, val* p0) {
8268 parser__ReduceAction726__action(self, p0);
8269 RET_LABEL:;
8270 }
8271 /* method parser#ReduceAction727#action for (self: ReduceAction727, Parser) */
8272 void parser__ReduceAction727__action(val* self, val* p0) {
8273 val* var_p /* var p: Parser */;
8274 val* var /* : null */;
8275 val* var_node_list /* var node_list: nullable Object */;
8276 val* var1 /* : nullable Object */;
8277 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
8278 val* var2 /* : nullable Object */;
8279 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
8280 val* var3 /* : nullable Object */;
8281 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8282 val* var4 /* : nullable Object */;
8283 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8284 val* var5 /* : nullable Object */;
8285 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8286 val* var6 /* : nullable Object */;
8287 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8288 val* var7 /* : AImplicitSelfExpr */;
8289 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
8290 val* var_tidnode3 /* var tidnode3: nullable Object */;
8291 short int var8 /* : Bool */;
8292 int cltype;
8293 int idtype;
8294 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
8295 short int var9 /* : Bool */;
8296 int cltype10;
8297 int idtype11;
8298 val* var_passignopnode5 /* var passignopnode5: nullable Object */;
8299 short int var12 /* : Bool */;
8300 int cltype13;
8301 int idtype14;
8302 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
8303 short int var15 /* : Bool */;
8304 int cltype16;
8305 int idtype17;
8306 val* var18 /* : ACallReassignExpr */;
8307 val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */;
8308 long var19 /* : Int */;
8309 long var20 /* : Int */;
8310 var_p = p0;
8311 var = NULL;
8312 var_node_list = var;
8313 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8314 var_nodearraylist6 = var1;
8315 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8316 var_nodearraylist5 = var2;
8317 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8318 var_nodearraylist4 = var3;
8319 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8320 var_nodearraylist3 = var4;
8321 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8322 var_nodearraylist2 = var5;
8323 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8324 var_nodearraylist1 = var6;
8325 var7 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
8326 ((void (*)(val*))(var7->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var7) /* init_aimplicitselfexpr on <var7:AImplicitSelfExpr>*/;
8327 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var7);
8328 var_pexprnode2 = var7;
8329 var_tidnode3 = var_nodearraylist3;
8330 /* <var_tidnode3:nullable Object> isa nullable TId */
8331 cltype = type_nullable_parser_nodes__TId.color;
8332 idtype = type_nullable_parser_nodes__TId.id;
8333 if(var_tidnode3 == NULL) {
8334 var8 = 1;
8335 } else {
8336 if(cltype >= var_tidnode3->type->table_size) {
8337 var8 = 0;
8338 } else {
8339 var8 = var_tidnode3->type->type_table[cltype] == idtype;
8340 }
8341 }
8342 if (!var8) {
8343 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27265);
8344 exit(1);
8345 }
8346 var_pexprsnode4 = var_nodearraylist4;
8347 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
8348 cltype10 = type_nullable_parser_nodes__AExprs.color;
8349 idtype11 = type_nullable_parser_nodes__AExprs.id;
8350 if(var_pexprsnode4 == NULL) {
8351 var9 = 1;
8352 } else {
8353 if(cltype10 >= var_pexprsnode4->type->table_size) {
8354 var9 = 0;
8355 } else {
8356 var9 = var_pexprsnode4->type->type_table[cltype10] == idtype11;
8357 }
8358 }
8359 if (!var9) {
8360 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27267);
8361 exit(1);
8362 }
8363 var_passignopnode5 = var_nodearraylist5;
8364 /* <var_passignopnode5:nullable Object> isa nullable AAssignOp */
8365 cltype13 = type_nullable_parser_nodes__AAssignOp.color;
8366 idtype14 = type_nullable_parser_nodes__AAssignOp.id;
8367 if(var_passignopnode5 == NULL) {
8368 var12 = 1;
8369 } else {
8370 if(cltype13 >= var_passignopnode5->type->table_size) {
8371 var12 = 0;
8372 } else {
8373 var12 = var_passignopnode5->type->type_table[cltype13] == idtype14;
8374 }
8375 }
8376 if (!var12) {
8377 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27269);
8378 exit(1);
8379 }
8380 var_pexprnode6 = var_nodearraylist6;
8381 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
8382 cltype16 = type_nullable_parser_nodes__AExpr.color;
8383 idtype17 = type_nullable_parser_nodes__AExpr.id;
8384 if(var_pexprnode6 == NULL) {
8385 var15 = 1;
8386 } else {
8387 if(cltype16 >= var_pexprnode6->type->table_size) {
8388 var15 = 0;
8389 } else {
8390 var15 = var_pexprnode6->type->type_table[cltype16] == idtype17;
8391 }
8392 }
8393 if (!var15) {
8394 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27271);
8395 exit(1);
8396 }
8397 var18 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr);
8398 ((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>*/;
8399 CHECK_NEW_parser_nodes__ACallReassignExpr(var18);
8400 var_pexprnode1 = var18;
8401 var_node_list = var_pexprnode1;
8402 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction727> */
8403 var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
8404 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
8405 RET_LABEL:;
8406 }
8407 /* method parser#ReduceAction727#action for (self: Object, Parser) */
8408 void VIRTUAL_parser__ReduceAction727__action(val* self, val* p0) {
8409 parser__ReduceAction727__action(self, p0);
8410 RET_LABEL:;
8411 }
8412 /* method parser#ReduceAction729#action for (self: ReduceAction729, Parser) */
8413 void parser__ReduceAction729__action(val* self, val* p0) {
8414 val* var_p /* var p: Parser */;
8415 val* var /* : null */;
8416 val* var_node_list /* var node_list: nullable Object */;
8417 val* var1 /* : nullable Object */;
8418 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8419 val* var2 /* : nullable Object */;
8420 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8421 val* var3 /* : nullable Object */;
8422 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8423 val* var4 /* : nullable Object */;
8424 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8425 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
8426 short int var5 /* : Bool */;
8427 int cltype;
8428 int idtype;
8429 val* var_pexprsnode3 /* var pexprsnode3: nullable Object */;
8430 short int var6 /* : Bool */;
8431 int cltype7;
8432 int idtype8;
8433 val* var_passignopnode4 /* var passignopnode4: nullable Object */;
8434 short int var9 /* : Bool */;
8435 int cltype10;
8436 int idtype11;
8437 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
8438 short int var12 /* : Bool */;
8439 int cltype13;
8440 int idtype14;
8441 val* var15 /* : ABraReassignExpr */;
8442 val* var_pexprnode1 /* var pexprnode1: nullable ABraReassignExpr */;
8443 long var16 /* : Int */;
8444 long var17 /* : Int */;
8445 var_p = p0;
8446 var = NULL;
8447 var_node_list = var;
8448 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8449 var_nodearraylist4 = var1;
8450 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8451 var_nodearraylist3 = var2;
8452 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8453 var_nodearraylist2 = var3;
8454 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8455 var_nodearraylist1 = var4;
8456 var_pexprnode2 = var_nodearraylist1;
8457 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
8458 cltype = type_nullable_parser_nodes__AExpr.color;
8459 idtype = type_nullable_parser_nodes__AExpr.id;
8460 if(var_pexprnode2 == NULL) {
8461 var5 = 1;
8462 } else {
8463 if(cltype >= var_pexprnode2->type->table_size) {
8464 var5 = 0;
8465 } else {
8466 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
8467 }
8468 }
8469 if (!var5) {
8470 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27293);
8471 exit(1);
8472 }
8473 var_pexprsnode3 = var_nodearraylist2;
8474 /* <var_pexprsnode3:nullable Object> isa nullable AExprs */
8475 cltype7 = type_nullable_parser_nodes__AExprs.color;
8476 idtype8 = type_nullable_parser_nodes__AExprs.id;
8477 if(var_pexprsnode3 == NULL) {
8478 var6 = 1;
8479 } else {
8480 if(cltype7 >= var_pexprsnode3->type->table_size) {
8481 var6 = 0;
8482 } else {
8483 var6 = var_pexprsnode3->type->type_table[cltype7] == idtype8;
8484 }
8485 }
8486 if (!var6) {
8487 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27295);
8488 exit(1);
8489 }
8490 var_passignopnode4 = var_nodearraylist3;
8491 /* <var_passignopnode4:nullable Object> isa nullable AAssignOp */
8492 cltype10 = type_nullable_parser_nodes__AAssignOp.color;
8493 idtype11 = type_nullable_parser_nodes__AAssignOp.id;
8494 if(var_passignopnode4 == NULL) {
8495 var9 = 1;
8496 } else {
8497 if(cltype10 >= var_passignopnode4->type->table_size) {
8498 var9 = 0;
8499 } else {
8500 var9 = var_passignopnode4->type->type_table[cltype10] == idtype11;
8501 }
8502 }
8503 if (!var9) {
8504 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27297);
8505 exit(1);
8506 }
8507 var_pexprnode5 = var_nodearraylist4;
8508 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
8509 cltype13 = type_nullable_parser_nodes__AExpr.color;
8510 idtype14 = type_nullable_parser_nodes__AExpr.id;
8511 if(var_pexprnode5 == NULL) {
8512 var12 = 1;
8513 } else {
8514 if(cltype13 >= var_pexprnode5->type->table_size) {
8515 var12 = 0;
8516 } else {
8517 var12 = var_pexprnode5->type->type_table[cltype13] == idtype14;
8518 }
8519 }
8520 if (!var12) {
8521 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27299);
8522 exit(1);
8523 }
8524 var15 = NEW_parser_nodes__ABraReassignExpr(&type_parser_nodes__ABraReassignExpr);
8525 ((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>*/;
8526 CHECK_NEW_parser_nodes__ABraReassignExpr(var15);
8527 var_pexprnode1 = var15;
8528 var_node_list = var_pexprnode1;
8529 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction729> */
8530 var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
8531 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
8532 RET_LABEL:;
8533 }
8534 /* method parser#ReduceAction729#action for (self: Object, Parser) */
8535 void VIRTUAL_parser__ReduceAction729__action(val* self, val* p0) {
8536 parser__ReduceAction729__action(self, p0);
8537 RET_LABEL:;
8538 }
8539 /* method parser#ReduceAction730#action for (self: ReduceAction730, Parser) */
8540 void parser__ReduceAction730__action(val* self, val* p0) {
8541 val* var_p /* var p: Parser */;
8542 val* var /* : null */;
8543 val* var_node_list /* var node_list: nullable Object */;
8544 val* var1 /* : nullable Object */;
8545 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8546 val* var_tpluseqnode2 /* var tpluseqnode2: nullable Object */;
8547 short int var2 /* : Bool */;
8548 int cltype;
8549 int idtype;
8550 val* var3 /* : APlusAssignOp */;
8551 val* var_passignopnode1 /* var passignopnode1: nullable APlusAssignOp */;
8552 long var4 /* : Int */;
8553 long var5 /* : Int */;
8554 var_p = p0;
8555 var = NULL;
8556 var_node_list = var;
8557 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8558 var_nodearraylist1 = var1;
8559 var_tpluseqnode2 = var_nodearraylist1;
8560 /* <var_tpluseqnode2:nullable Object> isa nullable TPluseq */
8561 cltype = type_nullable_parser_nodes__TPluseq.color;
8562 idtype = type_nullable_parser_nodes__TPluseq.id;
8563 if(var_tpluseqnode2 == NULL) {
8564 var2 = 1;
8565 } else {
8566 if(cltype >= var_tpluseqnode2->type->table_size) {
8567 var2 = 0;
8568 } else {
8569 var2 = var_tpluseqnode2->type->type_table[cltype] == idtype;
8570 }
8571 }
8572 if (!var2) {
8573 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27317);
8574 exit(1);
8575 }
8576 var3 = NEW_parser_nodes__APlusAssignOp(&type_parser_nodes__APlusAssignOp);
8577 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__APlusAssignOp__init_aplusassignop]))(var3, var_tpluseqnode2) /* init_aplusassignop on <var3:APlusAssignOp>*/;
8578 CHECK_NEW_parser_nodes__APlusAssignOp(var3);
8579 var_passignopnode1 = var3;
8580 var_node_list = var_passignopnode1;
8581 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction730> */
8582 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
8583 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
8584 RET_LABEL:;
8585 }
8586 /* method parser#ReduceAction730#action for (self: Object, Parser) */
8587 void VIRTUAL_parser__ReduceAction730__action(val* self, val* p0) {
8588 parser__ReduceAction730__action(self, p0);
8589 RET_LABEL:;
8590 }
8591 /* method parser#ReduceAction731#action for (self: ReduceAction731, Parser) */
8592 void parser__ReduceAction731__action(val* self, val* p0) {
8593 val* var_p /* var p: Parser */;
8594 val* var /* : null */;
8595 val* var_node_list /* var node_list: nullable Object */;
8596 val* var1 /* : nullable Object */;
8597 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8598 val* var_tminuseqnode2 /* var tminuseqnode2: nullable Object */;
8599 short int var2 /* : Bool */;
8600 int cltype;
8601 int idtype;
8602 val* var3 /* : AMinusAssignOp */;
8603 val* var_passignopnode1 /* var passignopnode1: nullable AMinusAssignOp */;
8604 long var4 /* : Int */;
8605 long var5 /* : Int */;
8606 var_p = p0;
8607 var = NULL;
8608 var_node_list = var;
8609 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8610 var_nodearraylist1 = var1;
8611 var_tminuseqnode2 = var_nodearraylist1;
8612 /* <var_tminuseqnode2:nullable Object> isa nullable TMinuseq */
8613 cltype = type_nullable_parser_nodes__TMinuseq.color;
8614 idtype = type_nullable_parser_nodes__TMinuseq.id;
8615 if(var_tminuseqnode2 == NULL) {
8616 var2 = 1;
8617 } else {
8618 if(cltype >= var_tminuseqnode2->type->table_size) {
8619 var2 = 0;
8620 } else {
8621 var2 = var_tminuseqnode2->type->type_table[cltype] == idtype;
8622 }
8623 }
8624 if (!var2) {
8625 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27332);
8626 exit(1);
8627 }
8628 var3 = NEW_parser_nodes__AMinusAssignOp(&type_parser_nodes__AMinusAssignOp);
8629 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AMinusAssignOp__init_aminusassignop]))(var3, var_tminuseqnode2) /* init_aminusassignop on <var3:AMinusAssignOp>*/;
8630 CHECK_NEW_parser_nodes__AMinusAssignOp(var3);
8631 var_passignopnode1 = var3;
8632 var_node_list = var_passignopnode1;
8633 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction731> */
8634 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
8635 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
8636 RET_LABEL:;
8637 }
8638 /* method parser#ReduceAction731#action for (self: Object, Parser) */
8639 void VIRTUAL_parser__ReduceAction731__action(val* self, val* p0) {
8640 parser__ReduceAction731__action(self, p0);
8641 RET_LABEL:;
8642 }
8643 /* method parser#ReduceAction732#action for (self: ReduceAction732, Parser) */
8644 void parser__ReduceAction732__action(val* self, val* p0) {
8645 val* var_p /* var p: Parser */;
8646 val* var /* : null */;
8647 val* var_node_list /* var node_list: nullable Object */;
8648 val* var1 /* : nullable Object */;
8649 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8650 val* var2 /* : nullable Object */;
8651 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8652 val* var3 /* : nullable Object */;
8653 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8654 val* var_tkwdonode2 /* var tkwdonode2: nullable Object */;
8655 short int var4 /* : Bool */;
8656 int cltype;
8657 int idtype;
8658 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
8659 short int var5 /* : Bool */;
8660 int cltype6;
8661 int idtype7;
8662 val* var_plabelnode4 /* var plabelnode4: nullable Object */;
8663 short int var8 /* : Bool */;
8664 int cltype9;
8665 int idtype10;
8666 val* var11 /* : ADoExpr */;
8667 val* var_pexprnode1 /* var pexprnode1: nullable ADoExpr */;
8668 long var12 /* : Int */;
8669 long var13 /* : Int */;
8670 var_p = p0;
8671 var = NULL;
8672 var_node_list = var;
8673 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8674 var_nodearraylist3 = var1;
8675 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8676 var_nodearraylist2 = var2;
8677 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8678 var_nodearraylist1 = var3;
8679 var_tkwdonode2 = var_nodearraylist1;
8680 /* <var_tkwdonode2:nullable Object> isa nullable TKwdo */
8681 cltype = type_nullable_parser_nodes__TKwdo.color;
8682 idtype = type_nullable_parser_nodes__TKwdo.id;
8683 if(var_tkwdonode2 == NULL) {
8684 var4 = 1;
8685 } else {
8686 if(cltype >= var_tkwdonode2->type->table_size) {
8687 var4 = 0;
8688 } else {
8689 var4 = var_tkwdonode2->type->type_table[cltype] == idtype;
8690 }
8691 }
8692 if (!var4) {
8693 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27349);
8694 exit(1);
8695 }
8696 var_pexprnode3 = var_nodearraylist2;
8697 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
8698 cltype6 = type_nullable_parser_nodes__AExpr.color;
8699 idtype7 = type_nullable_parser_nodes__AExpr.id;
8700 if(var_pexprnode3 == NULL) {
8701 var5 = 1;
8702 } else {
8703 if(cltype6 >= var_pexprnode3->type->table_size) {
8704 var5 = 0;
8705 } else {
8706 var5 = var_pexprnode3->type->type_table[cltype6] == idtype7;
8707 }
8708 }
8709 if (!var5) {
8710 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27351);
8711 exit(1);
8712 }
8713 var_plabelnode4 = var_nodearraylist3;
8714 /* <var_plabelnode4:nullable Object> isa nullable ALabel */
8715 cltype9 = type_nullable_parser_nodes__ALabel.color;
8716 idtype10 = type_nullable_parser_nodes__ALabel.id;
8717 if(var_plabelnode4 == NULL) {
8718 var8 = 1;
8719 } else {
8720 if(cltype9 >= var_plabelnode4->type->table_size) {
8721 var8 = 0;
8722 } else {
8723 var8 = var_plabelnode4->type->type_table[cltype9] == idtype10;
8724 }
8725 }
8726 if (!var8) {
8727 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27353);
8728 exit(1);
8729 }
8730 var11 = NEW_parser_nodes__ADoExpr(&type_parser_nodes__ADoExpr);
8731 ((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>*/;
8732 CHECK_NEW_parser_nodes__ADoExpr(var11);
8733 var_pexprnode1 = var11;
8734 var_node_list = var_pexprnode1;
8735 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction732> */
8736 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
8737 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
8738 RET_LABEL:;
8739 }
8740 /* method parser#ReduceAction732#action for (self: Object, Parser) */
8741 void VIRTUAL_parser__ReduceAction732__action(val* self, val* p0) {
8742 parser__ReduceAction732__action(self, p0);
8743 RET_LABEL:;
8744 }
8745 /* method parser#ReduceAction733#action for (self: ReduceAction733, Parser) */
8746 void parser__ReduceAction733__action(val* self, val* p0) {
8747 val* var_p /* var p: Parser */;
8748 val* var /* : null */;
8749 val* var_node_list /* var node_list: nullable Object */;
8750 val* var1 /* : nullable Object */;
8751 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8752 val* var2 /* : nullable Object */;
8753 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8754 val* var_tkwdonode2 /* var tkwdonode2: nullable Object */;
8755 short int var3 /* : Bool */;
8756 int cltype;
8757 int idtype;
8758 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
8759 short int var4 /* : Bool */;
8760 int cltype5;
8761 int idtype6;
8762 val* var7 /* : ADoExpr */;
8763 val* var8 /* : null */;
8764 val* var_pexprnode1 /* var pexprnode1: nullable ADoExpr */;
8765 long var9 /* : Int */;
8766 long var10 /* : Int */;
8767 var_p = p0;
8768 var = NULL;
8769 var_node_list = var;
8770 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8771 var_nodearraylist2 = var1;
8772 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8773 var_nodearraylist1 = var2;
8774 var_tkwdonode2 = var_nodearraylist1;
8775 /* <var_tkwdonode2:nullable Object> isa nullable TKwdo */
8776 cltype = type_nullable_parser_nodes__TKwdo.color;
8777 idtype = type_nullable_parser_nodes__TKwdo.id;
8778 if(var_tkwdonode2 == NULL) {
8779 var3 = 1;
8780 } else {
8781 if(cltype >= var_tkwdonode2->type->table_size) {
8782 var3 = 0;
8783 } else {
8784 var3 = var_tkwdonode2->type->type_table[cltype] == idtype;
8785 }
8786 }
8787 if (!var3) {
8788 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27371);
8789 exit(1);
8790 }
8791 var_pexprnode3 = var_nodearraylist2;
8792 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
8793 cltype5 = type_nullable_parser_nodes__AExpr.color;
8794 idtype6 = type_nullable_parser_nodes__AExpr.id;
8795 if(var_pexprnode3 == NULL) {
8796 var4 = 1;
8797 } else {
8798 if(cltype5 >= var_pexprnode3->type->table_size) {
8799 var4 = 0;
8800 } else {
8801 var4 = var_pexprnode3->type->type_table[cltype5] == idtype6;
8802 }
8803 }
8804 if (!var4) {
8805 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27373);
8806 exit(1);
8807 }
8808 var7 = NEW_parser_nodes__ADoExpr(&type_parser_nodes__ADoExpr);
8809 var8 = NULL;
8810 ((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>*/;
8811 CHECK_NEW_parser_nodes__ADoExpr(var7);
8812 var_pexprnode1 = var7;
8813 var_node_list = var_pexprnode1;
8814 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction733> */
8815 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
8816 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
8817 RET_LABEL:;
8818 }
8819 /* method parser#ReduceAction733#action for (self: Object, Parser) */
8820 void VIRTUAL_parser__ReduceAction733__action(val* self, val* p0) {
8821 parser__ReduceAction733__action(self, p0);
8822 RET_LABEL:;
8823 }
8824 /* method parser#ReduceAction734#action for (self: ReduceAction734, Parser) */
8825 void parser__ReduceAction734__action(val* self, val* p0) {
8826 val* var_p /* var p: Parser */;
8827 val* var /* : null */;
8828 val* var_node_list /* var node_list: nullable Object */;
8829 val* var1 /* : nullable Object */;
8830 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
8831 val* var2 /* : nullable Object */;
8832 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
8833 val* var3 /* : nullable Object */;
8834 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
8835 val* var4 /* : nullable Object */;
8836 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
8837 val* var5 /* : nullable Object */;
8838 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8839 val* var6 /* : nullable Object */;
8840 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8841 val* var7 /* : nullable Object */;
8842 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8843 val* var8 /* : nullable Object */;
8844 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8845 val* var_tkwifnode2 /* var tkwifnode2: nullable Object */;
8846 short int var9 /* : Bool */;
8847 int cltype;
8848 int idtype;
8849 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
8850 short int var10 /* : Bool */;
8851 int cltype11;
8852 int idtype12;
8853 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
8854 short int var13 /* : Bool */;
8855 int cltype14;
8856 int idtype15;
8857 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
8858 short int var16 /* : Bool */;
8859 int cltype17;
8860 int idtype18;
8861 val* var19 /* : AIfExpr */;
8862 val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */;
8863 long var20 /* : Int */;
8864 long var21 /* : Int */;
8865 var_p = p0;
8866 var = NULL;
8867 var_node_list = var;
8868 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8869 var_nodearraylist8 = var1;
8870 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8871 var_nodearraylist7 = var2;
8872 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8873 var_nodearraylist6 = var3;
8874 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8875 var_nodearraylist5 = var4;
8876 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8877 var_nodearraylist4 = var5;
8878 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8879 var_nodearraylist3 = var6;
8880 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8881 var_nodearraylist2 = var7;
8882 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8883 var_nodearraylist1 = var8;
8884 var_tkwifnode2 = var_nodearraylist1;
8885 /* <var_tkwifnode2:nullable Object> isa nullable TKwif */
8886 cltype = type_nullable_parser_nodes__TKwif.color;
8887 idtype = type_nullable_parser_nodes__TKwif.id;
8888 if(var_tkwifnode2 == NULL) {
8889 var9 = 1;
8890 } else {
8891 if(cltype >= var_tkwifnode2->type->table_size) {
8892 var9 = 0;
8893 } else {
8894 var9 = var_tkwifnode2->type->type_table[cltype] == idtype;
8895 }
8896 }
8897 if (!var9) {
8898 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27397);
8899 exit(1);
8900 }
8901 var_pexprnode3 = var_nodearraylist3;
8902 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
8903 cltype11 = type_nullable_parser_nodes__AExpr.color;
8904 idtype12 = type_nullable_parser_nodes__AExpr.id;
8905 if(var_pexprnode3 == NULL) {
8906 var10 = 1;
8907 } else {
8908 if(cltype11 >= var_pexprnode3->type->table_size) {
8909 var10 = 0;
8910 } else {
8911 var10 = var_pexprnode3->type->type_table[cltype11] == idtype12;
8912 }
8913 }
8914 if (!var10) {
8915 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27399);
8916 exit(1);
8917 }
8918 var_pexprnode4 = var_nodearraylist6;
8919 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
8920 cltype14 = type_nullable_parser_nodes__AExpr.color;
8921 idtype15 = type_nullable_parser_nodes__AExpr.id;
8922 if(var_pexprnode4 == NULL) {
8923 var13 = 1;
8924 } else {
8925 if(cltype14 >= var_pexprnode4->type->table_size) {
8926 var13 = 0;
8927 } else {
8928 var13 = var_pexprnode4->type->type_table[cltype14] == idtype15;
8929 }
8930 }
8931 if (!var13) {
8932 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27401);
8933 exit(1);
8934 }
8935 var_pexprnode5 = var_nodearraylist8;
8936 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
8937 cltype17 = type_nullable_parser_nodes__AExpr.color;
8938 idtype18 = type_nullable_parser_nodes__AExpr.id;
8939 if(var_pexprnode5 == NULL) {
8940 var16 = 1;
8941 } else {
8942 if(cltype17 >= var_pexprnode5->type->table_size) {
8943 var16 = 0;
8944 } else {
8945 var16 = var_pexprnode5->type->type_table[cltype17] == idtype18;
8946 }
8947 }
8948 if (!var16) {
8949 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27403);
8950 exit(1);
8951 }
8952 var19 = NEW_parser_nodes__AIfExpr(&type_parser_nodes__AIfExpr);
8953 ((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>*/;
8954 CHECK_NEW_parser_nodes__AIfExpr(var19);
8955 var_pexprnode1 = var19;
8956 var_node_list = var_pexprnode1;
8957 var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction734> */
8958 var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on <var_p:Parser>*/;
8959 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on <var_p:Parser>*/;
8960 RET_LABEL:;
8961 }
8962 /* method parser#ReduceAction734#action for (self: Object, Parser) */
8963 void VIRTUAL_parser__ReduceAction734__action(val* self, val* p0) {
8964 parser__ReduceAction734__action(self, p0);
8965 RET_LABEL:;
8966 }
8967 /* method parser#ReduceAction735#action for (self: ReduceAction735, Parser) */
8968 void parser__ReduceAction735__action(val* self, val* p0) {
8969 val* var_p /* var p: Parser */;
8970 val* var /* : null */;
8971 val* var_node_list /* var node_list: nullable Object */;
8972 val* var1 /* : nullable Object */;
8973 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
8974 val* var2 /* : nullable Object */;
8975 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
8976 val* var3 /* : nullable Object */;
8977 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8978 val* var4 /* : nullable Object */;
8979 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8980 val* var5 /* : nullable Object */;
8981 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8982 val* var6 /* : nullable Object */;
8983 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8984 val* var_tkwifnode2 /* var tkwifnode2: nullable Object */;
8985 short int var7 /* : Bool */;
8986 int cltype;
8987 int idtype;
8988 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
8989 short int var8 /* : Bool */;
8990 int cltype9;
8991 int idtype10;
8992 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
8993 short int var11 /* : Bool */;
8994 int cltype12;
8995 int idtype13;
8996 val* var14 /* : AIfExpr */;
8997 val* var15 /* : null */;
8998 val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */;
8999 long var16 /* : Int */;
9000 long var17 /* : Int */;
9001 var_p = p0;
9002 var = NULL;
9003 var_node_list = var;
9004 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9005 var_nodearraylist6 = var1;
9006 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9007 var_nodearraylist5 = var2;
9008 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9009 var_nodearraylist4 = var3;
9010 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9011 var_nodearraylist3 = var4;
9012 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9013 var_nodearraylist2 = var5;
9014 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9015 var_nodearraylist1 = var6;
9016 var_tkwifnode2 = var_nodearraylist1;
9017 /* <var_tkwifnode2:nullable Object> isa nullable TKwif */
9018 cltype = type_nullable_parser_nodes__TKwif.color;
9019 idtype = type_nullable_parser_nodes__TKwif.id;
9020 if(var_tkwifnode2 == NULL) {
9021 var7 = 1;
9022 } else {
9023 if(cltype >= var_tkwifnode2->type->table_size) {
9024 var7 = 0;
9025 } else {
9026 var7 = var_tkwifnode2->type->type_table[cltype] == idtype;
9027 }
9028 }
9029 if (!var7) {
9030 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27426);
9031 exit(1);
9032 }
9033 var_pexprnode3 = var_nodearraylist3;
9034 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
9035 cltype9 = type_nullable_parser_nodes__AExpr.color;
9036 idtype10 = type_nullable_parser_nodes__AExpr.id;
9037 if(var_pexprnode3 == NULL) {
9038 var8 = 1;
9039 } else {
9040 if(cltype9 >= var_pexprnode3->type->table_size) {
9041 var8 = 0;
9042 } else {
9043 var8 = var_pexprnode3->type->type_table[cltype9] == idtype10;
9044 }
9045 }
9046 if (!var8) {
9047 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27428);
9048 exit(1);
9049 }
9050 var_pexprnode4 = var_nodearraylist6;
9051 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
9052 cltype12 = type_nullable_parser_nodes__AExpr.color;
9053 idtype13 = type_nullable_parser_nodes__AExpr.id;
9054 if(var_pexprnode4 == NULL) {
9055 var11 = 1;
9056 } else {
9057 if(cltype12 >= var_pexprnode4->type->table_size) {
9058 var11 = 0;
9059 } else {
9060 var11 = var_pexprnode4->type->type_table[cltype12] == idtype13;
9061 }
9062 }
9063 if (!var11) {
9064 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27430);
9065 exit(1);
9066 }
9067 var14 = NEW_parser_nodes__AIfExpr(&type_parser_nodes__AIfExpr);
9068 var15 = NULL;
9069 ((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>*/;
9070 CHECK_NEW_parser_nodes__AIfExpr(var14);
9071 var_pexprnode1 = var14;
9072 var_node_list = var_pexprnode1;
9073 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction735> */
9074 var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
9075 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
9076 RET_LABEL:;
9077 }
9078 /* method parser#ReduceAction735#action for (self: Object, Parser) */
9079 void VIRTUAL_parser__ReduceAction735__action(val* self, val* p0) {
9080 parser__ReduceAction735__action(self, p0);
9081 RET_LABEL:;
9082 }
9083 /* method parser#ReduceAction736#action for (self: ReduceAction736, Parser) */
9084 void parser__ReduceAction736__action(val* self, val* p0) {
9085 val* var_p /* var p: Parser */;
9086 val* var /* : null */;
9087 val* var_node_list /* var node_list: nullable Object */;
9088 val* var1 /* : nullable Object */;
9089 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
9090 val* var2 /* : nullable Object */;
9091 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
9092 val* var3 /* : nullable Object */;
9093 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
9094 val* var4 /* : nullable Object */;
9095 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9096 val* var5 /* : nullable Object */;
9097 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9098 val* var6 /* : nullable Object */;
9099 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9100 val* var7 /* : nullable Object */;
9101 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9102 val* var8 /* : nullable Object */;
9103 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9104 val* var_tkwifnode2 /* var tkwifnode2: nullable Object */;
9105 short int var9 /* : Bool */;
9106 int cltype;
9107 int idtype;
9108 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
9109 short int var10 /* : Bool */;
9110 int cltype11;
9111 int idtype12;
9112 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
9113 short int var13 /* : Bool */;
9114 int cltype14;
9115 int idtype15;
9116 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
9117 short int var16 /* : Bool */;
9118 int cltype17;
9119 int idtype18;
9120 val* var19 /* : AIfExpr */;
9121 val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */;
9122 long var20 /* : Int */;
9123 long var21 /* : Int */;
9124 var_p = p0;
9125 var = NULL;
9126 var_node_list = var;
9127 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9128 var_nodearraylist8 = var1;
9129 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9130 var_nodearraylist7 = var2;
9131 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9132 var_nodearraylist6 = var3;
9133 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9134 var_nodearraylist5 = var4;
9135 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9136 var_nodearraylist4 = var5;
9137 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9138 var_nodearraylist3 = var6;
9139 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9140 var_nodearraylist2 = var7;
9141 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9142 var_nodearraylist1 = var8;
9143 var_tkwifnode2 = var_nodearraylist1;
9144 /* <var_tkwifnode2:nullable Object> isa nullable TKwif */
9145 cltype = type_nullable_parser_nodes__TKwif.color;
9146 idtype = type_nullable_parser_nodes__TKwif.id;
9147 if(var_tkwifnode2 == NULL) {
9148 var9 = 1;
9149 } else {
9150 if(cltype >= var_tkwifnode2->type->table_size) {
9151 var9 = 0;
9152 } else {
9153 var9 = var_tkwifnode2->type->type_table[cltype] == idtype;
9154 }
9155 }
9156 if (!var9) {
9157 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27455);
9158 exit(1);
9159 }
9160 var_pexprnode3 = var_nodearraylist3;
9161 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
9162 cltype11 = type_nullable_parser_nodes__AExpr.color;
9163 idtype12 = type_nullable_parser_nodes__AExpr.id;
9164 if(var_pexprnode3 == NULL) {
9165 var10 = 1;
9166 } else {
9167 if(cltype11 >= var_pexprnode3->type->table_size) {
9168 var10 = 0;
9169 } else {
9170 var10 = var_pexprnode3->type->type_table[cltype11] == idtype12;
9171 }
9172 }
9173 if (!var10) {
9174 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27457);
9175 exit(1);
9176 }
9177 var_pexprnode4 = var_nodearraylist7;
9178 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
9179 cltype14 = type_nullable_parser_nodes__AExpr.color;
9180 idtype15 = type_nullable_parser_nodes__AExpr.id;
9181 if(var_pexprnode4 == NULL) {
9182 var13 = 1;
9183 } else {
9184 if(cltype14 >= var_pexprnode4->type->table_size) {
9185 var13 = 0;
9186 } else {
9187 var13 = var_pexprnode4->type->type_table[cltype14] == idtype15;
9188 }
9189 }
9190 if (!var13) {
9191 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27459);
9192 exit(1);
9193 }
9194 var_pexprnode5 = var_nodearraylist8;
9195 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
9196 cltype17 = type_nullable_parser_nodes__AExpr.color;
9197 idtype18 = type_nullable_parser_nodes__AExpr.id;
9198 if(var_pexprnode5 == NULL) {
9199 var16 = 1;
9200 } else {
9201 if(cltype17 >= var_pexprnode5->type->table_size) {
9202 var16 = 0;
9203 } else {
9204 var16 = var_pexprnode5->type->type_table[cltype17] == idtype18;
9205 }
9206 }
9207 if (!var16) {
9208 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27461);
9209 exit(1);
9210 }
9211 var19 = NEW_parser_nodes__AIfExpr(&type_parser_nodes__AIfExpr);
9212 ((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>*/;
9213 CHECK_NEW_parser_nodes__AIfExpr(var19);
9214 var_pexprnode1 = var19;
9215 var_node_list = var_pexprnode1;
9216 var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction736> */
9217 var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on <var_p:Parser>*/;
9218 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on <var_p:Parser>*/;
9219 RET_LABEL:;
9220 }
9221 /* method parser#ReduceAction736#action for (self: Object, Parser) */
9222 void VIRTUAL_parser__ReduceAction736__action(val* self, val* p0) {
9223 parser__ReduceAction736__action(self, p0);
9224 RET_LABEL:;
9225 }
9226 /* method parser#ReduceAction737#action for (self: ReduceAction737, Parser) */
9227 void parser__ReduceAction737__action(val* self, val* p0) {
9228 val* var_p /* var p: Parser */;
9229 val* var /* : null */;
9230 val* var_node_list /* var node_list: nullable Object */;
9231 val* var1 /* : nullable Object */;
9232 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
9233 val* var2 /* : nullable Object */;
9234 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9235 val* var3 /* : nullable Object */;
9236 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9237 val* var4 /* : nullable Object */;
9238 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9239 val* var5 /* : nullable Object */;
9240 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9241 val* var6 /* : nullable Object */;
9242 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9243 val* var_tkwifnode2 /* var tkwifnode2: nullable Object */;
9244 short int var7 /* : Bool */;
9245 int cltype;
9246 int idtype;
9247 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
9248 short int var8 /* : Bool */;
9249 int cltype9;
9250 int idtype10;
9251 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
9252 short int var11 /* : Bool */;
9253 int cltype12;
9254 int idtype13;
9255 val* var14 /* : AIfExpr */;
9256 val* var15 /* : null */;
9257 val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */;
9258 long var16 /* : Int */;
9259 long var17 /* : Int */;
9260 var_p = p0;
9261 var = NULL;
9262 var_node_list = var;
9263 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9264 var_nodearraylist6 = var1;
9265 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9266 var_nodearraylist5 = var2;
9267 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9268 var_nodearraylist4 = var3;
9269 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9270 var_nodearraylist3 = var4;
9271 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9272 var_nodearraylist2 = var5;
9273 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9274 var_nodearraylist1 = var6;
9275 var_tkwifnode2 = var_nodearraylist1;
9276 /* <var_tkwifnode2:nullable Object> isa nullable TKwif */
9277 cltype = type_nullable_parser_nodes__TKwif.color;
9278 idtype = type_nullable_parser_nodes__TKwif.id;
9279 if(var_tkwifnode2 == NULL) {
9280 var7 = 1;
9281 } else {
9282 if(cltype >= var_tkwifnode2->type->table_size) {
9283 var7 = 0;
9284 } else {
9285 var7 = var_tkwifnode2->type->type_table[cltype] == idtype;
9286 }
9287 }
9288 if (!var7) {
9289 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27484);
9290 exit(1);
9291 }
9292 var_pexprnode3 = var_nodearraylist3;
9293 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
9294 cltype9 = type_nullable_parser_nodes__AExpr.color;
9295 idtype10 = type_nullable_parser_nodes__AExpr.id;
9296 if(var_pexprnode3 == NULL) {
9297 var8 = 1;
9298 } else {
9299 if(cltype9 >= var_pexprnode3->type->table_size) {
9300 var8 = 0;
9301 } else {
9302 var8 = var_pexprnode3->type->type_table[cltype9] == idtype10;
9303 }
9304 }
9305 if (!var8) {
9306 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27486);
9307 exit(1);
9308 }
9309 var_pexprnode5 = var_nodearraylist6;
9310 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
9311 cltype12 = type_nullable_parser_nodes__AExpr.color;
9312 idtype13 = type_nullable_parser_nodes__AExpr.id;
9313 if(var_pexprnode5 == NULL) {
9314 var11 = 1;
9315 } else {
9316 if(cltype12 >= var_pexprnode5->type->table_size) {
9317 var11 = 0;
9318 } else {
9319 var11 = var_pexprnode5->type->type_table[cltype12] == idtype13;
9320 }
9321 }
9322 if (!var11) {
9323 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27488);
9324 exit(1);
9325 }
9326 var14 = NEW_parser_nodes__AIfExpr(&type_parser_nodes__AIfExpr);
9327 var15 = NULL;
9328 ((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>*/;
9329 CHECK_NEW_parser_nodes__AIfExpr(var14);
9330 var_pexprnode1 = var14;
9331 var_node_list = var_pexprnode1;
9332 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction737> */
9333 var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
9334 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
9335 RET_LABEL:;
9336 }
9337 /* method parser#ReduceAction737#action for (self: Object, Parser) */
9338 void VIRTUAL_parser__ReduceAction737__action(val* self, val* p0) {
9339 parser__ReduceAction737__action(self, p0);
9340 RET_LABEL:;
9341 }
9342 /* method parser#ReduceAction738#action for (self: ReduceAction738, Parser) */
9343 void parser__ReduceAction738__action(val* self, val* p0) {
9344 val* var_p /* var p: Parser */;
9345 val* var /* : null */;
9346 val* var_node_list /* var node_list: nullable Object */;
9347 val* var1 /* : nullable Object */;
9348 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
9349 val* var2 /* : nullable Object */;
9350 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
9351 val* var3 /* : nullable Object */;
9352 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9353 val* var4 /* : nullable Object */;
9354 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9355 val* var5 /* : nullable Object */;
9356 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9357 val* var6 /* : nullable Object */;
9358 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9359 val* var7 /* : nullable Object */;
9360 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9361 val* var_tkwifnode2 /* var tkwifnode2: nullable Object */;
9362 short int var8 /* : Bool */;
9363 int cltype;
9364 int idtype;
9365 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
9366 short int var9 /* : Bool */;
9367 int cltype10;
9368 int idtype11;
9369 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
9370 short int var12 /* : Bool */;
9371 int cltype13;
9372 int idtype14;
9373 val* var15 /* : AIfExpr */;
9374 val* var16 /* : null */;
9375 val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */;
9376 long var17 /* : Int */;
9377 long var18 /* : Int */;
9378 var_p = p0;
9379 var = NULL;
9380 var_node_list = var;
9381 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9382 var_nodearraylist7 = var1;
9383 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9384 var_nodearraylist6 = var2;
9385 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9386 var_nodearraylist5 = var3;
9387 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9388 var_nodearraylist4 = var4;
9389 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9390 var_nodearraylist3 = var5;
9391 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9392 var_nodearraylist2 = var6;
9393 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9394 var_nodearraylist1 = var7;
9395 var_tkwifnode2 = var_nodearraylist1;
9396 /* <var_tkwifnode2:nullable Object> isa nullable TKwif */
9397 cltype = type_nullable_parser_nodes__TKwif.color;
9398 idtype = type_nullable_parser_nodes__TKwif.id;
9399 if(var_tkwifnode2 == NULL) {
9400 var8 = 1;
9401 } else {
9402 if(cltype >= var_tkwifnode2->type->table_size) {
9403 var8 = 0;
9404 } else {
9405 var8 = var_tkwifnode2->type->type_table[cltype] == idtype;
9406 }
9407 }
9408 if (!var8) {
9409 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27512);
9410 exit(1);
9411 }
9412 var_pexprnode3 = var_nodearraylist3;
9413 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
9414 cltype10 = type_nullable_parser_nodes__AExpr.color;
9415 idtype11 = type_nullable_parser_nodes__AExpr.id;
9416 if(var_pexprnode3 == NULL) {
9417 var9 = 1;
9418 } else {
9419 if(cltype10 >= var_pexprnode3->type->table_size) {
9420 var9 = 0;
9421 } else {
9422 var9 = var_pexprnode3->type->type_table[cltype10] == idtype11;
9423 }
9424 }
9425 if (!var9) {
9426 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27514);
9427 exit(1);
9428 }
9429 var_pexprnode5 = var_nodearraylist7;
9430 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
9431 cltype13 = type_nullable_parser_nodes__AExpr.color;
9432 idtype14 = type_nullable_parser_nodes__AExpr.id;
9433 if(var_pexprnode5 == NULL) {
9434 var12 = 1;
9435 } else {
9436 if(cltype13 >= var_pexprnode5->type->table_size) {
9437 var12 = 0;
9438 } else {
9439 var12 = var_pexprnode5->type->type_table[cltype13] == idtype14;
9440 }
9441 }
9442 if (!var12) {
9443 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27516);
9444 exit(1);
9445 }
9446 var15 = NEW_parser_nodes__AIfExpr(&type_parser_nodes__AIfExpr);
9447 var16 = NULL;
9448 ((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>*/;
9449 CHECK_NEW_parser_nodes__AIfExpr(var15);
9450 var_pexprnode1 = var15;
9451 var_node_list = var_pexprnode1;
9452 var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction738> */
9453 var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
9454 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
9455 RET_LABEL:;
9456 }
9457 /* method parser#ReduceAction738#action for (self: Object, Parser) */
9458 void VIRTUAL_parser__ReduceAction738__action(val* self, val* p0) {
9459 parser__ReduceAction738__action(self, p0);
9460 RET_LABEL:;
9461 }
9462 /* method parser#ReduceAction741#action for (self: ReduceAction741, Parser) */
9463 void parser__ReduceAction741__action(val* self, val* p0) {
9464 val* var_p /* var p: Parser */;
9465 val* var /* : null */;
9466 val* var_node_list /* var node_list: nullable Object */;
9467 val* var1 /* : nullable Object */;
9468 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9469 val* var2 /* : nullable Object */;
9470 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9471 val* var3 /* : nullable Object */;
9472 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9473 val* var_tkwloopnode2 /* var tkwloopnode2: nullable Object */;
9474 short int var4 /* : Bool */;
9475 int cltype;
9476 int idtype;
9477 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
9478 short int var5 /* : Bool */;
9479 int cltype6;
9480 int idtype7;
9481 val* var_plabelnode4 /* var plabelnode4: nullable Object */;
9482 short int var8 /* : Bool */;
9483 int cltype9;
9484 int idtype10;
9485 val* var11 /* : ALoopExpr */;
9486 val* var_pexprnode1 /* var pexprnode1: nullable ALoopExpr */;
9487 long var12 /* : Int */;
9488 long var13 /* : Int */;
9489 var_p = p0;
9490 var = NULL;
9491 var_node_list = var;
9492 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9493 var_nodearraylist3 = var1;
9494 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9495 var_nodearraylist2 = var2;
9496 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9497 var_nodearraylist1 = var3;
9498 var_tkwloopnode2 = var_nodearraylist1;
9499 /* <var_tkwloopnode2:nullable Object> isa nullable TKwloop */
9500 cltype = type_nullable_parser_nodes__TKwloop.color;
9501 idtype = type_nullable_parser_nodes__TKwloop.id;
9502 if(var_tkwloopnode2 == NULL) {
9503 var4 = 1;
9504 } else {
9505 if(cltype >= var_tkwloopnode2->type->table_size) {
9506 var4 = 0;
9507 } else {
9508 var4 = var_tkwloopnode2->type->type_table[cltype] == idtype;
9509 }
9510 }
9511 if (!var4) {
9512 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27536);
9513 exit(1);
9514 }
9515 var_pexprnode3 = var_nodearraylist2;
9516 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
9517 cltype6 = type_nullable_parser_nodes__AExpr.color;
9518 idtype7 = type_nullable_parser_nodes__AExpr.id;
9519 if(var_pexprnode3 == NULL) {
9520 var5 = 1;
9521 } else {
9522 if(cltype6 >= var_pexprnode3->type->table_size) {
9523 var5 = 0;
9524 } else {
9525 var5 = var_pexprnode3->type->type_table[cltype6] == idtype7;
9526 }
9527 }
9528 if (!var5) {
9529 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27538);
9530 exit(1);
9531 }
9532 var_plabelnode4 = var_nodearraylist3;
9533 /* <var_plabelnode4:nullable Object> isa nullable ALabel */
9534 cltype9 = type_nullable_parser_nodes__ALabel.color;
9535 idtype10 = type_nullable_parser_nodes__ALabel.id;
9536 if(var_plabelnode4 == NULL) {
9537 var8 = 1;
9538 } else {
9539 if(cltype9 >= var_plabelnode4->type->table_size) {
9540 var8 = 0;
9541 } else {
9542 var8 = var_plabelnode4->type->type_table[cltype9] == idtype10;
9543 }
9544 }
9545 if (!var8) {
9546 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27540);
9547 exit(1);
9548 }
9549 var11 = NEW_parser_nodes__ALoopExpr(&type_parser_nodes__ALoopExpr);
9550 ((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>*/;
9551 CHECK_NEW_parser_nodes__ALoopExpr(var11);
9552 var_pexprnode1 = var11;
9553 var_node_list = var_pexprnode1;
9554 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction741> */
9555 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
9556 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
9557 RET_LABEL:;
9558 }
9559 /* method parser#ReduceAction741#action for (self: Object, Parser) */
9560 void VIRTUAL_parser__ReduceAction741__action(val* self, val* p0) {
9561 parser__ReduceAction741__action(self, p0);
9562 RET_LABEL:;
9563 }
9564 /* method parser#ReduceAction742#action for (self: ReduceAction742, Parser) */
9565 void parser__ReduceAction742__action(val* self, val* p0) {
9566 val* var_p /* var p: Parser */;
9567 val* var /* : null */;
9568 val* var_node_list /* var node_list: nullable Object */;
9569 val* var1 /* : nullable Object */;
9570 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9571 val* var2 /* : nullable Object */;
9572 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9573 val* var_tkwloopnode2 /* var tkwloopnode2: nullable Object */;
9574 short int var3 /* : Bool */;
9575 int cltype;
9576 int idtype;
9577 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
9578 short int var4 /* : Bool */;
9579 int cltype5;
9580 int idtype6;
9581 val* var7 /* : ALoopExpr */;
9582 val* var8 /* : null */;
9583 val* var_pexprnode1 /* var pexprnode1: nullable ALoopExpr */;
9584 long var9 /* : Int */;
9585 long var10 /* : Int */;
9586 var_p = p0;
9587 var = NULL;
9588 var_node_list = var;
9589 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9590 var_nodearraylist2 = var1;
9591 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9592 var_nodearraylist1 = var2;
9593 var_tkwloopnode2 = var_nodearraylist1;
9594 /* <var_tkwloopnode2:nullable Object> isa nullable TKwloop */
9595 cltype = type_nullable_parser_nodes__TKwloop.color;
9596 idtype = type_nullable_parser_nodes__TKwloop.id;
9597 if(var_tkwloopnode2 == NULL) {
9598 var3 = 1;
9599 } else {
9600 if(cltype >= var_tkwloopnode2->type->table_size) {
9601 var3 = 0;
9602 } else {
9603 var3 = var_tkwloopnode2->type->type_table[cltype] == idtype;
9604 }
9605 }
9606 if (!var3) {
9607 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27558);
9608 exit(1);
9609 }
9610 var_pexprnode3 = var_nodearraylist2;
9611 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
9612 cltype5 = type_nullable_parser_nodes__AExpr.color;
9613 idtype6 = type_nullable_parser_nodes__AExpr.id;
9614 if(var_pexprnode3 == NULL) {
9615 var4 = 1;
9616 } else {
9617 if(cltype5 >= var_pexprnode3->type->table_size) {
9618 var4 = 0;
9619 } else {
9620 var4 = var_pexprnode3->type->type_table[cltype5] == idtype6;
9621 }
9622 }
9623 if (!var4) {
9624 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27560);
9625 exit(1);
9626 }
9627 var7 = NEW_parser_nodes__ALoopExpr(&type_parser_nodes__ALoopExpr);
9628 var8 = NULL;
9629 ((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>*/;
9630 CHECK_NEW_parser_nodes__ALoopExpr(var7);
9631 var_pexprnode1 = var7;
9632 var_node_list = var_pexprnode1;
9633 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction742> */
9634 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
9635 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
9636 RET_LABEL:;
9637 }
9638 /* method parser#ReduceAction742#action for (self: Object, Parser) */
9639 void VIRTUAL_parser__ReduceAction742__action(val* self, val* p0) {
9640 parser__ReduceAction742__action(self, p0);
9641 RET_LABEL:;
9642 }
9643 /* method parser#ReduceAction743#action for (self: ReduceAction743, Parser) */
9644 void parser__ReduceAction743__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_nodearraylist7 /* var nodearraylist7: nullable Object */;
9650 val* var2 /* : nullable Object */;
9651 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
9652 val* var3 /* : nullable Object */;
9653 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9654 val* var4 /* : nullable Object */;
9655 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9656 val* var5 /* : nullable Object */;
9657 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9658 val* var6 /* : nullable Object */;
9659 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9660 val* var7 /* : nullable Object */;
9661 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9662 val* var_tkwwhilenode2 /* var tkwwhilenode2: nullable Object */;
9663 short int var8 /* : Bool */;
9664 int cltype;
9665 int idtype;
9666 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
9667 short int var9 /* : Bool */;
9668 int cltype10;
9669 int idtype11;
9670 val* var_tkwdonode4 /* var tkwdonode4: nullable Object */;
9671 short int var12 /* : Bool */;
9672 int cltype13;
9673 int idtype14;
9674 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
9675 short int var15 /* : Bool */;
9676 int cltype16;
9677 int idtype17;
9678 val* var_plabelnode6 /* var plabelnode6: nullable Object */;
9679 short int var18 /* : Bool */;
9680 int cltype19;
9681 int idtype20;
9682 val* var21 /* : AWhileExpr */;
9683 val* var_pexprnode1 /* var pexprnode1: nullable AWhileExpr */;
9684 long var22 /* : Int */;
9685 long var23 /* : Int */;
9686 var_p = p0;
9687 var = NULL;
9688 var_node_list = var;
9689 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9690 var_nodearraylist7 = var1;
9691 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9692 var_nodearraylist6 = var2;
9693 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9694 var_nodearraylist5 = var3;
9695 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9696 var_nodearraylist4 = var4;
9697 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9698 var_nodearraylist3 = var5;
9699 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9700 var_nodearraylist2 = var6;
9701 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9702 var_nodearraylist1 = var7;
9703 var_tkwwhilenode2 = var_nodearraylist1;
9704 /* <var_tkwwhilenode2:nullable Object> isa nullable TKwwhile */
9705 cltype = type_nullable_parser_nodes__TKwwhile.color;
9706 idtype = type_nullable_parser_nodes__TKwwhile.id;
9707 if(var_tkwwhilenode2 == NULL) {
9708 var8 = 1;
9709 } else {
9710 if(cltype >= var_tkwwhilenode2->type->table_size) {
9711 var8 = 0;
9712 } else {
9713 var8 = var_tkwwhilenode2->type->type_table[cltype] == idtype;
9714 }
9715 }
9716 if (!var8) {
9717 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27583);
9718 exit(1);
9719 }
9720 var_pexprnode3 = var_nodearraylist3;
9721 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
9722 cltype10 = type_nullable_parser_nodes__AExpr.color;
9723 idtype11 = type_nullable_parser_nodes__AExpr.id;
9724 if(var_pexprnode3 == NULL) {
9725 var9 = 1;
9726 } else {
9727 if(cltype10 >= var_pexprnode3->type->table_size) {
9728 var9 = 0;
9729 } else {
9730 var9 = var_pexprnode3->type->type_table[cltype10] == idtype11;
9731 }
9732 }
9733 if (!var9) {
9734 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27585);
9735 exit(1);
9736 }
9737 var_tkwdonode4 = var_nodearraylist5;
9738 /* <var_tkwdonode4:nullable Object> isa nullable TKwdo */
9739 cltype13 = type_nullable_parser_nodes__TKwdo.color;
9740 idtype14 = type_nullable_parser_nodes__TKwdo.id;
9741 if(var_tkwdonode4 == NULL) {
9742 var12 = 1;
9743 } else {
9744 if(cltype13 >= var_tkwdonode4->type->table_size) {
9745 var12 = 0;
9746 } else {
9747 var12 = var_tkwdonode4->type->type_table[cltype13] == idtype14;
9748 }
9749 }
9750 if (!var12) {
9751 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27587);
9752 exit(1);
9753 }
9754 var_pexprnode5 = var_nodearraylist6;
9755 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
9756 cltype16 = type_nullable_parser_nodes__AExpr.color;
9757 idtype17 = type_nullable_parser_nodes__AExpr.id;
9758 if(var_pexprnode5 == NULL) {
9759 var15 = 1;
9760 } else {
9761 if(cltype16 >= var_pexprnode5->type->table_size) {
9762 var15 = 0;
9763 } else {
9764 var15 = var_pexprnode5->type->type_table[cltype16] == idtype17;
9765 }
9766 }
9767 if (!var15) {
9768 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27589);
9769 exit(1);
9770 }
9771 var_plabelnode6 = var_nodearraylist7;
9772 /* <var_plabelnode6:nullable Object> isa nullable ALabel */
9773 cltype19 = type_nullable_parser_nodes__ALabel.color;
9774 idtype20 = type_nullable_parser_nodes__ALabel.id;
9775 if(var_plabelnode6 == NULL) {
9776 var18 = 1;
9777 } else {
9778 if(cltype19 >= var_plabelnode6->type->table_size) {
9779 var18 = 0;
9780 } else {
9781 var18 = var_plabelnode6->type->type_table[cltype19] == idtype20;
9782 }
9783 }
9784 if (!var18) {
9785 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27591);
9786 exit(1);
9787 }
9788 var21 = NEW_parser_nodes__AWhileExpr(&type_parser_nodes__AWhileExpr);
9789 ((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>*/;
9790 CHECK_NEW_parser_nodes__AWhileExpr(var21);
9791 var_pexprnode1 = var21;
9792 var_node_list = var_pexprnode1;
9793 var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction743> */
9794 var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
9795 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
9796 RET_LABEL:;
9797 }
9798 /* method parser#ReduceAction743#action for (self: Object, Parser) */
9799 void VIRTUAL_parser__ReduceAction743__action(val* self, val* p0) {
9800 parser__ReduceAction743__action(self, p0);
9801 RET_LABEL:;
9802 }
9803 /* method parser#ReduceAction744#action for (self: ReduceAction744, Parser) */
9804 void parser__ReduceAction744__action(val* self, val* p0) {
9805 val* var_p /* var p: Parser */;
9806 val* var /* : null */;
9807 val* var_node_list /* var node_list: nullable Object */;
9808 val* var1 /* : nullable Object */;
9809 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
9810 val* var2 /* : nullable Object */;
9811 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9812 val* var3 /* : nullable Object */;
9813 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9814 val* var4 /* : nullable Object */;
9815 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9816 val* var5 /* : nullable Object */;
9817 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9818 val* var6 /* : nullable Object */;
9819 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9820 val* var_tkwwhilenode2 /* var tkwwhilenode2: nullable Object */;
9821 short int var7 /* : Bool */;
9822 int cltype;
9823 int idtype;
9824 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
9825 short int var8 /* : Bool */;
9826 int cltype9;
9827 int idtype10;
9828 val* var_tkwdonode4 /* var tkwdonode4: nullable Object */;
9829 short int var11 /* : Bool */;
9830 int cltype12;
9831 int idtype13;
9832 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
9833 short int var14 /* : Bool */;
9834 int cltype15;
9835 int idtype16;
9836 val* var17 /* : AWhileExpr */;
9837 val* var18 /* : null */;
9838 val* var_pexprnode1 /* var pexprnode1: nullable AWhileExpr */;
9839 long var19 /* : Int */;
9840 long var20 /* : Int */;
9841 var_p = p0;
9842 var = NULL;
9843 var_node_list = var;
9844 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9845 var_nodearraylist6 = var1;
9846 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9847 var_nodearraylist5 = var2;
9848 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9849 var_nodearraylist4 = var3;
9850 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9851 var_nodearraylist3 = var4;
9852 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9853 var_nodearraylist2 = var5;
9854 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9855 var_nodearraylist1 = var6;
9856 var_tkwwhilenode2 = var_nodearraylist1;
9857 /* <var_tkwwhilenode2:nullable Object> isa nullable TKwwhile */
9858 cltype = type_nullable_parser_nodes__TKwwhile.color;
9859 idtype = type_nullable_parser_nodes__TKwwhile.id;
9860 if(var_tkwwhilenode2 == NULL) {
9861 var7 = 1;
9862 } else {
9863 if(cltype >= var_tkwwhilenode2->type->table_size) {
9864 var7 = 0;
9865 } else {
9866 var7 = var_tkwwhilenode2->type->type_table[cltype] == idtype;
9867 }
9868 }
9869 if (!var7) {
9870 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27615);
9871 exit(1);
9872 }
9873 var_pexprnode3 = var_nodearraylist3;
9874 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
9875 cltype9 = type_nullable_parser_nodes__AExpr.color;
9876 idtype10 = type_nullable_parser_nodes__AExpr.id;
9877 if(var_pexprnode3 == NULL) {
9878 var8 = 1;
9879 } else {
9880 if(cltype9 >= var_pexprnode3->type->table_size) {
9881 var8 = 0;
9882 } else {
9883 var8 = var_pexprnode3->type->type_table[cltype9] == idtype10;
9884 }
9885 }
9886 if (!var8) {
9887 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27617);
9888 exit(1);
9889 }
9890 var_tkwdonode4 = var_nodearraylist5;
9891 /* <var_tkwdonode4:nullable Object> isa nullable TKwdo */
9892 cltype12 = type_nullable_parser_nodes__TKwdo.color;
9893 idtype13 = type_nullable_parser_nodes__TKwdo.id;
9894 if(var_tkwdonode4 == NULL) {
9895 var11 = 1;
9896 } else {
9897 if(cltype12 >= var_tkwdonode4->type->table_size) {
9898 var11 = 0;
9899 } else {
9900 var11 = var_tkwdonode4->type->type_table[cltype12] == idtype13;
9901 }
9902 }
9903 if (!var11) {
9904 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27619);
9905 exit(1);
9906 }
9907 var_pexprnode5 = var_nodearraylist6;
9908 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
9909 cltype15 = type_nullable_parser_nodes__AExpr.color;
9910 idtype16 = type_nullable_parser_nodes__AExpr.id;
9911 if(var_pexprnode5 == NULL) {
9912 var14 = 1;
9913 } else {
9914 if(cltype15 >= var_pexprnode5->type->table_size) {
9915 var14 = 0;
9916 } else {
9917 var14 = var_pexprnode5->type->type_table[cltype15] == idtype16;
9918 }
9919 }
9920 if (!var14) {
9921 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27621);
9922 exit(1);
9923 }
9924 var17 = NEW_parser_nodes__AWhileExpr(&type_parser_nodes__AWhileExpr);
9925 var18 = NULL;
9926 ((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>*/;
9927 CHECK_NEW_parser_nodes__AWhileExpr(var17);
9928 var_pexprnode1 = var17;
9929 var_node_list = var_pexprnode1;
9930 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction744> */
9931 var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
9932 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
9933 RET_LABEL:;
9934 }
9935 /* method parser#ReduceAction744#action for (self: Object, Parser) */
9936 void VIRTUAL_parser__ReduceAction744__action(val* self, val* p0) {
9937 parser__ReduceAction744__action(self, p0);
9938 RET_LABEL:;
9939 }