nitg: move adding gc_chooser out of the makefile generation
[nit.git] / c_src / parser.sep.14.c
1 #include "parser.sep.0.h"
2 /* method parser#ReduceAction629#action for (self: ReduceAction629, Parser) */
3 void parser__ReduceAction629__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_nodearraylist4 /* var nodearraylist4: nullable Object */;
9 val* var2 /* : nullable Object */;
10 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
11 val* var3 /* : nullable Object */;
12 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
13 val* var4 /* : nullable Object */;
14 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
15 val* var5 /* : Array[Object] */;
16 val* var_listnode4 /* var listnode4: Array[Object] */;
17 val* var_listnode3 /* var listnode3: nullable Object */;
18 short int var6 /* : Bool */;
19 int cltype;
20 int idtype;
21 val* var7 /* : Array[Object] */;
22 val* var_tclassidnode5 /* var tclassidnode5: nullable Object */;
23 short int var8 /* : Bool */;
24 int cltype9;
25 int idtype10;
26 val* var11 /* : AQualified */;
27 val* var_pqualifiednode2 /* var pqualifiednode2: nullable AQualified */;
28 val* var_tkwsupernode6 /* var tkwsupernode6: nullable Object */;
29 short int var12 /* : Bool */;
30 int cltype13;
31 int idtype14;
32 val* var_pexprsnode7 /* var pexprsnode7: nullable Object */;
33 short int var15 /* : Bool */;
34 int cltype16;
35 int idtype17;
36 val* var18 /* : ASuperExpr */;
37 val* var_pexprnode1 /* var pexprnode1: nullable ASuperExpr */;
38 long var19 /* : Int */;
39 long var20 /* : Int */;
40 var_p = p0;
41 var = NULL;
42 var_node_list = var;
43 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
44 var_nodearraylist4 = var1;
45 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
46 var_nodearraylist3 = var2;
47 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
48 var_nodearraylist2 = var3;
49 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
50 var_nodearraylist1 = var4;
51 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
52 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
53 CHECK_NEW_array__Array(var5);
54 var_listnode4 = var5;
55 var_listnode3 = var_nodearraylist1;
56 /* <var_listnode3:nullable Object> isa Array[Object] */
57 cltype = type_array__Arraykernel__Object.color;
58 idtype = type_array__Arraykernel__Object.id;
59 if(var_listnode3 == NULL) {
60 var6 = 0;
61 } else {
62 if(cltype >= var_listnode3->type->table_size) {
63 var6 = 0;
64 } else {
65 var6 = var_listnode3->type->type_table[cltype] == idtype;
66 }
67 }
68 if (!var6) {
69 fprintf(stderr, "Runtime error: %s", "Assert failed");
70 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24492);
71 exit(1);
72 }
73 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction629>*/;
74 var_listnode4 = var7;
75 var_tclassidnode5 = var_nodearraylist2;
76 /* <var_tclassidnode5:nullable Object> isa nullable TClassid */
77 cltype9 = type_nullable_parser_nodes__TClassid.color;
78 idtype10 = type_nullable_parser_nodes__TClassid.id;
79 if(var_tclassidnode5 == NULL) {
80 var8 = 1;
81 } else {
82 if(cltype9 >= var_tclassidnode5->type->table_size) {
83 var8 = 0;
84 } else {
85 var8 = var_tclassidnode5->type->type_table[cltype9] == idtype10;
86 }
87 }
88 if (!var8) {
89 fprintf(stderr, "Runtime error: %s", "Assert failed");
90 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24495);
91 exit(1);
92 }
93 var11 = NEW_parser_nodes__AQualified(&type_parser_nodes__AQualified);
94 ((void (*)(val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AQualified__init_aqualified]))(var11, var_listnode4, var_tclassidnode5) /* init_aqualified on <var11:AQualified>*/;
95 CHECK_NEW_parser_nodes__AQualified(var11);
96 var_pqualifiednode2 = var11;
97 var_tkwsupernode6 = var_nodearraylist3;
98 /* <var_tkwsupernode6:nullable Object> isa nullable TKwsuper */
99 cltype13 = type_nullable_parser_nodes__TKwsuper.color;
100 idtype14 = type_nullable_parser_nodes__TKwsuper.id;
101 if(var_tkwsupernode6 == NULL) {
102 var12 = 1;
103 } else {
104 if(cltype13 >= var_tkwsupernode6->type->table_size) {
105 var12 = 0;
106 } else {
107 var12 = var_tkwsupernode6->type->type_table[cltype13] == idtype14;
108 }
109 }
110 if (!var12) {
111 fprintf(stderr, "Runtime error: %s", "Assert failed");
112 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24501);
113 exit(1);
114 }
115 var_pexprsnode7 = var_nodearraylist4;
116 /* <var_pexprsnode7:nullable Object> isa nullable AExprs */
117 cltype16 = type_nullable_parser_nodes__AExprs.color;
118 idtype17 = type_nullable_parser_nodes__AExprs.id;
119 if(var_pexprsnode7 == NULL) {
120 var15 = 1;
121 } else {
122 if(cltype16 >= var_pexprsnode7->type->table_size) {
123 var15 = 0;
124 } else {
125 var15 = var_pexprsnode7->type->type_table[cltype16] == idtype17;
126 }
127 }
128 if (!var15) {
129 fprintf(stderr, "Runtime error: %s", "Assert failed");
130 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24503);
131 exit(1);
132 }
133 var18 = NEW_parser_nodes__ASuperExpr(&type_parser_nodes__ASuperExpr);
134 ((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>*/;
135 CHECK_NEW_parser_nodes__ASuperExpr(var18);
136 var_pexprnode1 = var18;
137 var_node_list = var_pexprnode1;
138 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction629> */
139 var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
140 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
141 RET_LABEL:;
142 }
143 /* method parser#ReduceAction629#action for (self: Object, Parser) */
144 void VIRTUAL_parser__ReduceAction629__action(val* self, val* p0) {
145 parser__ReduceAction629__action(self, p0);
146 RET_LABEL:;
147 }
148 /* method parser#ReduceAction630#action for (self: ReduceAction630, Parser) */
149 void parser__ReduceAction630__action(val* self, val* p0) {
150 val* var_p /* var p: Parser */;
151 val* var /* : null */;
152 val* var_node_list /* var node_list: nullable Object */;
153 val* var1 /* : nullable Object */;
154 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
155 val* var2 /* : nullable Object */;
156 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
157 val* var3 /* : nullable Object */;
158 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
159 val* var4 /* : Array[Object] */;
160 val* var_listnode4 /* var listnode4: Array[Object] */;
161 val* var_listnode3 /* var listnode3: nullable Object */;
162 short int var5 /* : Bool */;
163 int cltype;
164 int idtype;
165 val* var6 /* : Array[Object] */;
166 val* var7 /* : AQualified */;
167 val* var8 /* : null */;
168 val* var_pqualifiednode2 /* var pqualifiednode2: nullable AQualified */;
169 val* var_tkwsupernode6 /* var tkwsupernode6: nullable Object */;
170 short int var9 /* : Bool */;
171 int cltype10;
172 int idtype11;
173 val* var_pexprsnode7 /* var pexprsnode7: nullable Object */;
174 short int var12 /* : Bool */;
175 int cltype13;
176 int idtype14;
177 val* var15 /* : ASuperExpr */;
178 val* var_pexprnode1 /* var pexprnode1: nullable ASuperExpr */;
179 long var16 /* : Int */;
180 long var17 /* : Int */;
181 var_p = p0;
182 var = NULL;
183 var_node_list = var;
184 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
185 var_nodearraylist3 = var1;
186 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
187 var_nodearraylist2 = var2;
188 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
189 var_nodearraylist1 = var3;
190 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
191 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
192 CHECK_NEW_array__Array(var4);
193 var_listnode4 = var4;
194 var_listnode3 = var_nodearraylist1;
195 /* <var_listnode3:nullable Object> isa Array[Object] */
196 cltype = type_array__Arraykernel__Object.color;
197 idtype = type_array__Arraykernel__Object.id;
198 if(var_listnode3 == NULL) {
199 var5 = 0;
200 } else {
201 if(cltype >= var_listnode3->type->table_size) {
202 var5 = 0;
203 } else {
204 var5 = var_listnode3->type->type_table[cltype] == idtype;
205 }
206 }
207 if (!var5) {
208 fprintf(stderr, "Runtime error: %s", "Assert failed");
209 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24523);
210 exit(1);
211 }
212 var6 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction630>*/;
213 var_listnode4 = var6;
214 var7 = NEW_parser_nodes__AQualified(&type_parser_nodes__AQualified);
215 var8 = NULL;
216 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AQualified__init_aqualified]))(var7, var_listnode4, var8) /* init_aqualified on <var7:AQualified>*/;
217 CHECK_NEW_parser_nodes__AQualified(var7);
218 var_pqualifiednode2 = var7;
219 var_tkwsupernode6 = var_nodearraylist2;
220 /* <var_tkwsupernode6:nullable Object> isa nullable TKwsuper */
221 cltype10 = type_nullable_parser_nodes__TKwsuper.color;
222 idtype11 = type_nullable_parser_nodes__TKwsuper.id;
223 if(var_tkwsupernode6 == NULL) {
224 var9 = 1;
225 } else {
226 if(cltype10 >= var_tkwsupernode6->type->table_size) {
227 var9 = 0;
228 } else {
229 var9 = var_tkwsupernode6->type->type_table[cltype10] == idtype11;
230 }
231 }
232 if (!var9) {
233 fprintf(stderr, "Runtime error: %s", "Assert failed");
234 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24530);
235 exit(1);
236 }
237 var_pexprsnode7 = var_nodearraylist3;
238 /* <var_pexprsnode7:nullable Object> isa nullable AExprs */
239 cltype13 = type_nullable_parser_nodes__AExprs.color;
240 idtype14 = type_nullable_parser_nodes__AExprs.id;
241 if(var_pexprsnode7 == NULL) {
242 var12 = 1;
243 } else {
244 if(cltype13 >= var_pexprsnode7->type->table_size) {
245 var12 = 0;
246 } else {
247 var12 = var_pexprsnode7->type->type_table[cltype13] == idtype14;
248 }
249 }
250 if (!var12) {
251 fprintf(stderr, "Runtime error: %s", "Assert failed");
252 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24532);
253 exit(1);
254 }
255 var15 = NEW_parser_nodes__ASuperExpr(&type_parser_nodes__ASuperExpr);
256 ((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>*/;
257 CHECK_NEW_parser_nodes__ASuperExpr(var15);
258 var_pexprnode1 = var15;
259 var_node_list = var_pexprnode1;
260 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction630> */
261 var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
262 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
263 RET_LABEL:;
264 }
265 /* method parser#ReduceAction630#action for (self: Object, Parser) */
266 void VIRTUAL_parser__ReduceAction630__action(val* self, val* p0) {
267 parser__ReduceAction630__action(self, p0);
268 RET_LABEL:;
269 }
270 /* method parser#ReduceAction631#action for (self: ReduceAction631, Parser) */
271 void parser__ReduceAction631__action(val* self, val* p0) {
272 val* var_p /* var p: Parser */;
273 val* var /* : null */;
274 val* var_node_list /* var node_list: nullable Object */;
275 val* var1 /* : nullable Object */;
276 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
277 val* var2 /* : nullable Object */;
278 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
279 val* var3 /* : nullable Object */;
280 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
281 val* var4 /* : nullable Object */;
282 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
283 val* var5 /* : nullable Object */;
284 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
285 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
286 short int var6 /* : Bool */;
287 int cltype;
288 int idtype;
289 val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */;
290 short int var7 /* : Bool */;
291 int cltype8;
292 int idtype9;
293 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
294 short int var10 /* : Bool */;
295 int cltype11;
296 int idtype12;
297 val* var13 /* : AInitExpr */;
298 val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */;
299 long var14 /* : Int */;
300 long var15 /* : Int */;
301 var_p = p0;
302 var = NULL;
303 var_node_list = var;
304 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
305 var_nodearraylist5 = var1;
306 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
307 var_nodearraylist4 = var2;
308 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
309 var_nodearraylist3 = var3;
310 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
311 var_nodearraylist2 = var4;
312 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
313 var_nodearraylist1 = var5;
314 var_pexprnode2 = var_nodearraylist1;
315 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
316 cltype = type_nullable_parser_nodes__AExpr.color;
317 idtype = type_nullable_parser_nodes__AExpr.id;
318 if(var_pexprnode2 == NULL) {
319 var6 = 1;
320 } else {
321 if(cltype >= var_pexprnode2->type->table_size) {
322 var6 = 0;
323 } else {
324 var6 = var_pexprnode2->type->type_table[cltype] == idtype;
325 }
326 }
327 if (!var6) {
328 fprintf(stderr, "Runtime error: %s", "Assert failed");
329 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24553);
330 exit(1);
331 }
332 var_tkwinitnode3 = var_nodearraylist4;
333 /* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
334 cltype8 = type_nullable_parser_nodes__TKwinit.color;
335 idtype9 = type_nullable_parser_nodes__TKwinit.id;
336 if(var_tkwinitnode3 == NULL) {
337 var7 = 1;
338 } else {
339 if(cltype8 >= var_tkwinitnode3->type->table_size) {
340 var7 = 0;
341 } else {
342 var7 = var_tkwinitnode3->type->type_table[cltype8] == idtype9;
343 }
344 }
345 if (!var7) {
346 fprintf(stderr, "Runtime error: %s", "Assert failed");
347 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24555);
348 exit(1);
349 }
350 var_pexprsnode4 = var_nodearraylist5;
351 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
352 cltype11 = type_nullable_parser_nodes__AExprs.color;
353 idtype12 = type_nullable_parser_nodes__AExprs.id;
354 if(var_pexprsnode4 == NULL) {
355 var10 = 1;
356 } else {
357 if(cltype11 >= var_pexprsnode4->type->table_size) {
358 var10 = 0;
359 } else {
360 var10 = var_pexprsnode4->type->type_table[cltype11] == idtype12;
361 }
362 }
363 if (!var10) {
364 fprintf(stderr, "Runtime error: %s", "Assert failed");
365 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24557);
366 exit(1);
367 }
368 var13 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr);
369 ((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>*/;
370 CHECK_NEW_parser_nodes__AInitExpr(var13);
371 var_pexprnode1 = var13;
372 var_node_list = var_pexprnode1;
373 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction631> */
374 var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
375 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
376 RET_LABEL:;
377 }
378 /* method parser#ReduceAction631#action for (self: Object, Parser) */
379 void VIRTUAL_parser__ReduceAction631__action(val* self, val* p0) {
380 parser__ReduceAction631__action(self, p0);
381 RET_LABEL:;
382 }
383 /* method parser#ReduceAction632#action for (self: ReduceAction632, Parser) */
384 void parser__ReduceAction632__action(val* self, val* p0) {
385 val* var_p /* var p: Parser */;
386 val* var /* : null */;
387 val* var_node_list /* var node_list: nullable Object */;
388 val* var1 /* : nullable Object */;
389 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
390 val* var2 /* : nullable Object */;
391 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
392 val* var3 /* : AImplicitSelfExpr */;
393 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
394 val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */;
395 short int var4 /* : Bool */;
396 int cltype;
397 int idtype;
398 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
399 short int var5 /* : Bool */;
400 int cltype6;
401 int idtype7;
402 val* var8 /* : AInitExpr */;
403 val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */;
404 long var9 /* : Int */;
405 long var10 /* : Int */;
406 var_p = p0;
407 var = NULL;
408 var_node_list = var;
409 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
410 var_nodearraylist2 = var1;
411 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
412 var_nodearraylist1 = var2;
413 var3 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
414 ((void (*)(val*))(var3->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var3) /* init_aimplicitselfexpr on <var3:AImplicitSelfExpr>*/;
415 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var3);
416 var_pexprnode2 = var3;
417 var_tkwinitnode3 = var_nodearraylist1;
418 /* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
419 cltype = type_nullable_parser_nodes__TKwinit.color;
420 idtype = type_nullable_parser_nodes__TKwinit.id;
421 if(var_tkwinitnode3 == NULL) {
422 var4 = 1;
423 } else {
424 if(cltype >= var_tkwinitnode3->type->table_size) {
425 var4 = 0;
426 } else {
427 var4 = var_tkwinitnode3->type->type_table[cltype] == idtype;
428 }
429 }
430 if (!var4) {
431 fprintf(stderr, "Runtime error: %s", "Assert failed");
432 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24576);
433 exit(1);
434 }
435 var_pexprsnode4 = var_nodearraylist2;
436 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
437 cltype6 = type_nullable_parser_nodes__AExprs.color;
438 idtype7 = type_nullable_parser_nodes__AExprs.id;
439 if(var_pexprsnode4 == NULL) {
440 var5 = 1;
441 } else {
442 if(cltype6 >= var_pexprsnode4->type->table_size) {
443 var5 = 0;
444 } else {
445 var5 = var_pexprsnode4->type->type_table[cltype6] == idtype7;
446 }
447 }
448 if (!var5) {
449 fprintf(stderr, "Runtime error: %s", "Assert failed");
450 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24578);
451 exit(1);
452 }
453 var8 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr);
454 ((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>*/;
455 CHECK_NEW_parser_nodes__AInitExpr(var8);
456 var_pexprnode1 = var8;
457 var_node_list = var_pexprnode1;
458 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction632> */
459 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
460 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
461 RET_LABEL:;
462 }
463 /* method parser#ReduceAction632#action for (self: Object, Parser) */
464 void VIRTUAL_parser__ReduceAction632__action(val* self, val* p0) {
465 parser__ReduceAction632__action(self, p0);
466 RET_LABEL:;
467 }
468 /* method parser#ReduceAction633#action for (self: ReduceAction633, Parser) */
469 void parser__ReduceAction633__action(val* self, val* p0) {
470 val* var_p /* var p: Parser */;
471 val* var /* : null */;
472 val* var_node_list /* var node_list: nullable Object */;
473 val* var1 /* : nullable Object */;
474 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
475 val* var2 /* : nullable Object */;
476 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
477 val* var3 /* : nullable Object */;
478 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
479 val* var4 /* : nullable Object */;
480 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
481 val* var5 /* : nullable Object */;
482 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
483 val* var6 /* : nullable Object */;
484 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
485 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
486 short int var7 /* : Bool */;
487 int cltype;
488 int idtype;
489 val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */;
490 short int var8 /* : Bool */;
491 int cltype9;
492 int idtype10;
493 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
494 short int var11 /* : Bool */;
495 int cltype12;
496 int idtype13;
497 val* var14 /* : AInitExpr */;
498 val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */;
499 long var15 /* : Int */;
500 long var16 /* : Int */;
501 var_p = p0;
502 var = NULL;
503 var_node_list = var;
504 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
505 var_nodearraylist6 = var1;
506 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
507 var_nodearraylist5 = var2;
508 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
509 var_nodearraylist4 = var3;
510 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
511 var_nodearraylist3 = var4;
512 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
513 var_nodearraylist2 = var5;
514 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
515 var_nodearraylist1 = var6;
516 var_pexprnode2 = var_nodearraylist1;
517 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
518 cltype = type_nullable_parser_nodes__AExpr.color;
519 idtype = type_nullable_parser_nodes__AExpr.id;
520 if(var_pexprnode2 == NULL) {
521 var7 = 1;
522 } else {
523 if(cltype >= var_pexprnode2->type->table_size) {
524 var7 = 0;
525 } else {
526 var7 = var_pexprnode2->type->type_table[cltype] == idtype;
527 }
528 }
529 if (!var7) {
530 fprintf(stderr, "Runtime error: %s", "Assert failed");
531 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24600);
532 exit(1);
533 }
534 var_tkwinitnode3 = var_nodearraylist5;
535 /* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
536 cltype9 = type_nullable_parser_nodes__TKwinit.color;
537 idtype10 = type_nullable_parser_nodes__TKwinit.id;
538 if(var_tkwinitnode3 == NULL) {
539 var8 = 1;
540 } else {
541 if(cltype9 >= var_tkwinitnode3->type->table_size) {
542 var8 = 0;
543 } else {
544 var8 = var_tkwinitnode3->type->type_table[cltype9] == idtype10;
545 }
546 }
547 if (!var8) {
548 fprintf(stderr, "Runtime error: %s", "Assert failed");
549 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24602);
550 exit(1);
551 }
552 var_pexprsnode4 = var_nodearraylist6;
553 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
554 cltype12 = type_nullable_parser_nodes__AExprs.color;
555 idtype13 = type_nullable_parser_nodes__AExprs.id;
556 if(var_pexprsnode4 == NULL) {
557 var11 = 1;
558 } else {
559 if(cltype12 >= var_pexprsnode4->type->table_size) {
560 var11 = 0;
561 } else {
562 var11 = var_pexprsnode4->type->type_table[cltype12] == idtype13;
563 }
564 }
565 if (!var11) {
566 fprintf(stderr, "Runtime error: %s", "Assert failed");
567 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24604);
568 exit(1);
569 }
570 var14 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr);
571 ((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>*/;
572 CHECK_NEW_parser_nodes__AInitExpr(var14);
573 var_pexprnode1 = var14;
574 var_node_list = var_pexprnode1;
575 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction633> */
576 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
577 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
578 RET_LABEL:;
579 }
580 /* method parser#ReduceAction633#action for (self: Object, Parser) */
581 void VIRTUAL_parser__ReduceAction633__action(val* self, val* p0) {
582 parser__ReduceAction633__action(self, p0);
583 RET_LABEL:;
584 }
585 /* method parser#ReduceAction634#action for (self: ReduceAction634, Parser) */
586 void parser__ReduceAction634__action(val* self, val* p0) {
587 val* var_p /* var p: Parser */;
588 val* var /* : null */;
589 val* var_node_list /* var node_list: nullable Object */;
590 val* var1 /* : nullable Object */;
591 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
592 val* var2 /* : nullable Object */;
593 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
594 val* var3 /* : nullable Object */;
595 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
596 val* var4 /* : nullable Object */;
597 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
598 val* var5 /* : nullable Object */;
599 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
600 val* var6 /* : nullable Object */;
601 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
602 val* var7 /* : nullable Object */;
603 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
604 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
605 short int var8 /* : Bool */;
606 int cltype;
607 int idtype;
608 val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */;
609 short int var9 /* : Bool */;
610 int cltype10;
611 int idtype11;
612 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
613 short int var12 /* : Bool */;
614 int cltype13;
615 int idtype14;
616 val* var15 /* : AInitExpr */;
617 val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */;
618 long var16 /* : Int */;
619 long var17 /* : Int */;
620 var_p = p0;
621 var = NULL;
622 var_node_list = var;
623 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
624 var_nodearraylist7 = var1;
625 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
626 var_nodearraylist6 = var2;
627 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
628 var_nodearraylist5 = var3;
629 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
630 var_nodearraylist4 = var4;
631 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
632 var_nodearraylist3 = var5;
633 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
634 var_nodearraylist2 = var6;
635 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
636 var_nodearraylist1 = var7;
637 var_pexprnode2 = var_nodearraylist1;
638 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
639 cltype = type_nullable_parser_nodes__AExpr.color;
640 idtype = type_nullable_parser_nodes__AExpr.id;
641 if(var_pexprnode2 == NULL) {
642 var8 = 1;
643 } else {
644 if(cltype >= var_pexprnode2->type->table_size) {
645 var8 = 0;
646 } else {
647 var8 = var_pexprnode2->type->type_table[cltype] == idtype;
648 }
649 }
650 if (!var8) {
651 fprintf(stderr, "Runtime error: %s", "Assert failed");
652 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24627);
653 exit(1);
654 }
655 var_tkwinitnode3 = var_nodearraylist6;
656 /* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
657 cltype10 = type_nullable_parser_nodes__TKwinit.color;
658 idtype11 = type_nullable_parser_nodes__TKwinit.id;
659 if(var_tkwinitnode3 == NULL) {
660 var9 = 1;
661 } else {
662 if(cltype10 >= var_tkwinitnode3->type->table_size) {
663 var9 = 0;
664 } else {
665 var9 = var_tkwinitnode3->type->type_table[cltype10] == idtype11;
666 }
667 }
668 if (!var9) {
669 fprintf(stderr, "Runtime error: %s", "Assert failed");
670 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24629);
671 exit(1);
672 }
673 var_pexprsnode4 = var_nodearraylist7;
674 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
675 cltype13 = type_nullable_parser_nodes__AExprs.color;
676 idtype14 = type_nullable_parser_nodes__AExprs.id;
677 if(var_pexprsnode4 == NULL) {
678 var12 = 1;
679 } else {
680 if(cltype13 >= var_pexprsnode4->type->table_size) {
681 var12 = 0;
682 } else {
683 var12 = var_pexprsnode4->type->type_table[cltype13] == idtype14;
684 }
685 }
686 if (!var12) {
687 fprintf(stderr, "Runtime error: %s", "Assert failed");
688 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24631);
689 exit(1);
690 }
691 var15 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr);
692 ((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>*/;
693 CHECK_NEW_parser_nodes__AInitExpr(var15);
694 var_pexprnode1 = var15;
695 var_node_list = var_pexprnode1;
696 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction634> */
697 var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
698 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
699 RET_LABEL:;
700 }
701 /* method parser#ReduceAction634#action for (self: Object, Parser) */
702 void VIRTUAL_parser__ReduceAction634__action(val* self, val* p0) {
703 parser__ReduceAction634__action(self, p0);
704 RET_LABEL:;
705 }
706 /* method parser#ReduceAction636#action for (self: ReduceAction636, Parser) */
707 void parser__ReduceAction636__action(val* self, val* p0) {
708 val* var_p /* var p: Parser */;
709 val* var /* : null */;
710 val* var_node_list /* var node_list: nullable Object */;
711 val* var1 /* : nullable Object */;
712 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
713 val* var2 /* : nullable Object */;
714 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
715 val* var3 /* : nullable Object */;
716 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
717 val* var4 /* : AImplicitSelfExpr */;
718 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
719 val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */;
720 short int var5 /* : Bool */;
721 int cltype;
722 int idtype;
723 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
724 short int var6 /* : Bool */;
725 int cltype7;
726 int idtype8;
727 val* var9 /* : AInitExpr */;
728 val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */;
729 long var10 /* : Int */;
730 long var11 /* : Int */;
731 var_p = p0;
732 var = NULL;
733 var_node_list = var;
734 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
735 var_nodearraylist3 = var1;
736 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
737 var_nodearraylist2 = var2;
738 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
739 var_nodearraylist1 = var3;
740 var4 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
741 ((void (*)(val*))(var4->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var4) /* init_aimplicitselfexpr on <var4:AImplicitSelfExpr>*/;
742 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var4);
743 var_pexprnode2 = var4;
744 var_tkwinitnode3 = var_nodearraylist2;
745 /* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
746 cltype = type_nullable_parser_nodes__TKwinit.color;
747 idtype = type_nullable_parser_nodes__TKwinit.id;
748 if(var_tkwinitnode3 == NULL) {
749 var5 = 1;
750 } else {
751 if(cltype >= var_tkwinitnode3->type->table_size) {
752 var5 = 0;
753 } else {
754 var5 = var_tkwinitnode3->type->type_table[cltype] == idtype;
755 }
756 }
757 if (!var5) {
758 fprintf(stderr, "Runtime error: %s", "Assert failed");
759 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24651);
760 exit(1);
761 }
762 var_pexprsnode4 = var_nodearraylist3;
763 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
764 cltype7 = type_nullable_parser_nodes__AExprs.color;
765 idtype8 = type_nullable_parser_nodes__AExprs.id;
766 if(var_pexprsnode4 == NULL) {
767 var6 = 1;
768 } else {
769 if(cltype7 >= var_pexprsnode4->type->table_size) {
770 var6 = 0;
771 } else {
772 var6 = var_pexprsnode4->type->type_table[cltype7] == idtype8;
773 }
774 }
775 if (!var6) {
776 fprintf(stderr, "Runtime error: %s", "Assert failed");
777 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24653);
778 exit(1);
779 }
780 var9 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr);
781 ((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>*/;
782 CHECK_NEW_parser_nodes__AInitExpr(var9);
783 var_pexprnode1 = var9;
784 var_node_list = var_pexprnode1;
785 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction636> */
786 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
787 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
788 RET_LABEL:;
789 }
790 /* method parser#ReduceAction636#action for (self: Object, Parser) */
791 void VIRTUAL_parser__ReduceAction636__action(val* self, val* p0) {
792 parser__ReduceAction636__action(self, p0);
793 RET_LABEL:;
794 }
795 /* method parser#ReduceAction637#action for (self: ReduceAction637, Parser) */
796 void parser__ReduceAction637__action(val* self, val* p0) {
797 val* var_p /* var p: Parser */;
798 val* var /* : null */;
799 val* var_node_list /* var node_list: nullable Object */;
800 val* var1 /* : nullable Object */;
801 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
802 val* var2 /* : nullable Object */;
803 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
804 val* var3 /* : nullable Object */;
805 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
806 val* var4 /* : nullable Object */;
807 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
808 val* var5 /* : AImplicitSelfExpr */;
809 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
810 val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */;
811 short int var6 /* : Bool */;
812 int cltype;
813 int idtype;
814 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
815 short int var7 /* : Bool */;
816 int cltype8;
817 int idtype9;
818 val* var10 /* : AInitExpr */;
819 val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */;
820 long var11 /* : Int */;
821 long var12 /* : Int */;
822 var_p = p0;
823 var = NULL;
824 var_node_list = var;
825 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
826 var_nodearraylist4 = var1;
827 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
828 var_nodearraylist3 = var2;
829 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
830 var_nodearraylist2 = var3;
831 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
832 var_nodearraylist1 = var4;
833 var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
834 ((void (*)(val*))(var5->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var5) /* init_aimplicitselfexpr on <var5:AImplicitSelfExpr>*/;
835 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var5);
836 var_pexprnode2 = var5;
837 var_tkwinitnode3 = var_nodearraylist3;
838 /* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
839 cltype = type_nullable_parser_nodes__TKwinit.color;
840 idtype = type_nullable_parser_nodes__TKwinit.id;
841 if(var_tkwinitnode3 == NULL) {
842 var6 = 1;
843 } else {
844 if(cltype >= var_tkwinitnode3->type->table_size) {
845 var6 = 0;
846 } else {
847 var6 = var_tkwinitnode3->type->type_table[cltype] == idtype;
848 }
849 }
850 if (!var6) {
851 fprintf(stderr, "Runtime error: %s", "Assert failed");
852 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24674);
853 exit(1);
854 }
855 var_pexprsnode4 = var_nodearraylist4;
856 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
857 cltype8 = type_nullable_parser_nodes__AExprs.color;
858 idtype9 = type_nullable_parser_nodes__AExprs.id;
859 if(var_pexprsnode4 == NULL) {
860 var7 = 1;
861 } else {
862 if(cltype8 >= var_pexprsnode4->type->table_size) {
863 var7 = 0;
864 } else {
865 var7 = var_pexprsnode4->type->type_table[cltype8] == idtype9;
866 }
867 }
868 if (!var7) {
869 fprintf(stderr, "Runtime error: %s", "Assert failed");
870 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24676);
871 exit(1);
872 }
873 var10 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr);
874 ((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>*/;
875 CHECK_NEW_parser_nodes__AInitExpr(var10);
876 var_pexprnode1 = var10;
877 var_node_list = var_pexprnode1;
878 var11 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction637> */
879 var12 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var11) /* go_to on <var_p:Parser>*/;
880 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var12, var_node_list) /* push on <var_p:Parser>*/;
881 RET_LABEL:;
882 }
883 /* method parser#ReduceAction637#action for (self: Object, Parser) */
884 void VIRTUAL_parser__ReduceAction637__action(val* self, val* p0) {
885 parser__ReduceAction637__action(self, p0);
886 RET_LABEL:;
887 }
888 /* method parser#ReduceAction639#action for (self: ReduceAction639, Parser) */
889 void parser__ReduceAction639__action(val* self, val* p0) {
890 val* var_p /* var p: Parser */;
891 val* var /* : null */;
892 val* var_node_list /* var node_list: nullable Object */;
893 val* var1 /* : nullable Object */;
894 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
895 val* var2 /* : nullable Object */;
896 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
897 val* var3 /* : nullable Object */;
898 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
899 val* var4 /* : nullable Object */;
900 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
901 val* var5 /* : nullable Object */;
902 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
903 val* var_tkwdebugnode2 /* var tkwdebugnode2: nullable Object */;
904 short int var6 /* : Bool */;
905 int cltype;
906 int idtype;
907 val* var_tkwtypenode3 /* var tkwtypenode3: nullable Object */;
908 short int var7 /* : Bool */;
909 int cltype8;
910 int idtype9;
911 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
912 short int var10 /* : Bool */;
913 int cltype11;
914 int idtype12;
915 val* var_ptypenode5 /* var ptypenode5: nullable Object */;
916 short int var13 /* : Bool */;
917 int cltype14;
918 int idtype15;
919 val* var16 /* : ADebugTypeExpr */;
920 val* var_pexprnode1 /* var pexprnode1: nullable ADebugTypeExpr */;
921 long var17 /* : Int */;
922 long var18 /* : Int */;
923 var_p = p0;
924 var = NULL;
925 var_node_list = var;
926 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
927 var_nodearraylist5 = var1;
928 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
929 var_nodearraylist4 = var2;
930 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
931 var_nodearraylist3 = var3;
932 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
933 var_nodearraylist2 = var4;
934 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
935 var_nodearraylist1 = var5;
936 var_tkwdebugnode2 = var_nodearraylist1;
937 /* <var_tkwdebugnode2:nullable Object> isa nullable TKwdebug */
938 cltype = type_nullable_parser_nodes__TKwdebug.color;
939 idtype = type_nullable_parser_nodes__TKwdebug.id;
940 if(var_tkwdebugnode2 == NULL) {
941 var6 = 1;
942 } else {
943 if(cltype >= var_tkwdebugnode2->type->table_size) {
944 var6 = 0;
945 } else {
946 var6 = var_tkwdebugnode2->type->type_table[cltype] == idtype;
947 }
948 }
949 if (!var6) {
950 fprintf(stderr, "Runtime error: %s", "Assert failed");
951 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24697);
952 exit(1);
953 }
954 var_tkwtypenode3 = var_nodearraylist2;
955 /* <var_tkwtypenode3:nullable Object> isa nullable TKwtype */
956 cltype8 = type_nullable_parser_nodes__TKwtype.color;
957 idtype9 = type_nullable_parser_nodes__TKwtype.id;
958 if(var_tkwtypenode3 == NULL) {
959 var7 = 1;
960 } else {
961 if(cltype8 >= var_tkwtypenode3->type->table_size) {
962 var7 = 0;
963 } else {
964 var7 = var_tkwtypenode3->type->type_table[cltype8] == idtype9;
965 }
966 }
967 if (!var7) {
968 fprintf(stderr, "Runtime error: %s", "Assert failed");
969 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24699);
970 exit(1);
971 }
972 var_pexprnode4 = var_nodearraylist5;
973 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
974 cltype11 = type_nullable_parser_nodes__AExpr.color;
975 idtype12 = type_nullable_parser_nodes__AExpr.id;
976 if(var_pexprnode4 == NULL) {
977 var10 = 1;
978 } else {
979 if(cltype11 >= var_pexprnode4->type->table_size) {
980 var10 = 0;
981 } else {
982 var10 = var_pexprnode4->type->type_table[cltype11] == idtype12;
983 }
984 }
985 if (!var10) {
986 fprintf(stderr, "Runtime error: %s", "Assert failed");
987 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24701);
988 exit(1);
989 }
990 var_ptypenode5 = var_nodearraylist3;
991 /* <var_ptypenode5:nullable Object> isa nullable AType */
992 cltype14 = type_nullable_parser_nodes__AType.color;
993 idtype15 = type_nullable_parser_nodes__AType.id;
994 if(var_ptypenode5 == NULL) {
995 var13 = 1;
996 } else {
997 if(cltype14 >= var_ptypenode5->type->table_size) {
998 var13 = 0;
999 } else {
1000 var13 = var_ptypenode5->type->type_table[cltype14] == idtype15;
1001 }
1002 }
1003 if (!var13) {
1004 fprintf(stderr, "Runtime error: %s", "Assert failed");
1005 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24703);
1006 exit(1);
1007 }
1008 var16 = NEW_parser_nodes__ADebugTypeExpr(&type_parser_nodes__ADebugTypeExpr);
1009 ((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>*/;
1010 CHECK_NEW_parser_nodes__ADebugTypeExpr(var16);
1011 var_pexprnode1 = var16;
1012 var_node_list = var_pexprnode1;
1013 var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction639> */
1014 var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
1015 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
1016 RET_LABEL:;
1017 }
1018 /* method parser#ReduceAction639#action for (self: Object, Parser) */
1019 void VIRTUAL_parser__ReduceAction639__action(val* self, val* p0) {
1020 parser__ReduceAction639__action(self, p0);
1021 RET_LABEL:;
1022 }
1023 /* method parser#ReduceAction640#action for (self: ReduceAction640, Parser) */
1024 void parser__ReduceAction640__action(val* self, val* p0) {
1025 val* var_p /* var p: Parser */;
1026 val* var /* : null */;
1027 val* var_node_list /* var node_list: nullable Object */;
1028 val* var1 /* : nullable Object */;
1029 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1030 val* var2 /* : nullable Object */;
1031 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1032 val* var_tkwlabelnode2 /* var tkwlabelnode2: nullable Object */;
1033 short int var3 /* : Bool */;
1034 int cltype;
1035 int idtype;
1036 val* var_tidnode3 /* var tidnode3: nullable Object */;
1037 short int var4 /* : Bool */;
1038 int cltype5;
1039 int idtype6;
1040 val* var7 /* : ALabel */;
1041 val* var_plabelnode1 /* var plabelnode1: nullable ALabel */;
1042 long var8 /* : Int */;
1043 long var9 /* : Int */;
1044 var_p = p0;
1045 var = NULL;
1046 var_node_list = var;
1047 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1048 var_nodearraylist2 = var1;
1049 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1050 var_nodearraylist1 = var2;
1051 var_tkwlabelnode2 = var_nodearraylist1;
1052 /* <var_tkwlabelnode2:nullable Object> isa nullable TKwlabel */
1053 cltype = type_nullable_parser_nodes__TKwlabel.color;
1054 idtype = type_nullable_parser_nodes__TKwlabel.id;
1055 if(var_tkwlabelnode2 == NULL) {
1056 var3 = 1;
1057 } else {
1058 if(cltype >= var_tkwlabelnode2->type->table_size) {
1059 var3 = 0;
1060 } else {
1061 var3 = var_tkwlabelnode2->type->type_table[cltype] == idtype;
1062 }
1063 }
1064 if (!var3) {
1065 fprintf(stderr, "Runtime error: %s", "Assert failed");
1066 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24722);
1067 exit(1);
1068 }
1069 var_tidnode3 = var_nodearraylist2;
1070 /* <var_tidnode3:nullable Object> isa nullable TId */
1071 cltype5 = type_nullable_parser_nodes__TId.color;
1072 idtype6 = type_nullable_parser_nodes__TId.id;
1073 if(var_tidnode3 == NULL) {
1074 var4 = 1;
1075 } else {
1076 if(cltype5 >= var_tidnode3->type->table_size) {
1077 var4 = 0;
1078 } else {
1079 var4 = var_tidnode3->type->type_table[cltype5] == idtype6;
1080 }
1081 }
1082 if (!var4) {
1083 fprintf(stderr, "Runtime error: %s", "Assert failed");
1084 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24724);
1085 exit(1);
1086 }
1087 var7 = NEW_parser_nodes__ALabel(&type_parser_nodes__ALabel);
1088 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ALabel__init_alabel]))(var7, var_tkwlabelnode2, var_tidnode3) /* init_alabel on <var7:ALabel>*/;
1089 CHECK_NEW_parser_nodes__ALabel(var7);
1090 var_plabelnode1 = var7;
1091 var_node_list = var_plabelnode1;
1092 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction640> */
1093 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
1094 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
1095 RET_LABEL:;
1096 }
1097 /* method parser#ReduceAction640#action for (self: Object, Parser) */
1098 void VIRTUAL_parser__ReduceAction640__action(val* self, val* p0) {
1099 parser__ReduceAction640__action(self, p0);
1100 RET_LABEL:;
1101 }
1102 /* method parser#ReduceAction641#action for (self: ReduceAction641, Parser) */
1103 void parser__ReduceAction641__action(val* self, val* p0) {
1104 val* var_p /* var p: Parser */;
1105 val* var /* : null */;
1106 val* var_node_list /* var node_list: nullable Object */;
1107 val* var1 /* : nullable Object */;
1108 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1109 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
1110 short int var2 /* : Bool */;
1111 int cltype;
1112 int idtype;
1113 val* var3 /* : AContinueExpr */;
1114 val* var4 /* : null */;
1115 val* var5 /* : null */;
1116 val* var_pexprnode1 /* var pexprnode1: nullable AContinueExpr */;
1117 long var6 /* : Int */;
1118 long var7 /* : Int */;
1119 var_p = p0;
1120 var = NULL;
1121 var_node_list = var;
1122 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1123 var_nodearraylist1 = var1;
1124 var_pexprnode4 = var_nodearraylist1;
1125 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
1126 cltype = type_nullable_parser_nodes__AExpr.color;
1127 idtype = type_nullable_parser_nodes__AExpr.id;
1128 if(var_pexprnode4 == NULL) {
1129 var2 = 1;
1130 } else {
1131 if(cltype >= var_pexprnode4->type->table_size) {
1132 var2 = 0;
1133 } else {
1134 var2 = var_pexprnode4->type->type_table[cltype] == idtype;
1135 }
1136 }
1137 if (!var2) {
1138 fprintf(stderr, "Runtime error: %s", "Assert failed");
1139 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24740);
1140 exit(1);
1141 }
1142 var3 = NEW_parser_nodes__AContinueExpr(&type_parser_nodes__AContinueExpr);
1143 var4 = NULL;
1144 var5 = NULL;
1145 ((void (*)(val*, val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AContinueExpr__init_acontinueexpr]))(var3, var4, var5, var_pexprnode4) /* init_acontinueexpr on <var3:AContinueExpr>*/;
1146 CHECK_NEW_parser_nodes__AContinueExpr(var3);
1147 var_pexprnode1 = var3;
1148 var_node_list = var_pexprnode1;
1149 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction641> */
1150 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
1151 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
1152 RET_LABEL:;
1153 }
1154 /* method parser#ReduceAction641#action for (self: Object, Parser) */
1155 void VIRTUAL_parser__ReduceAction641__action(val* self, val* p0) {
1156 parser__ReduceAction641__action(self, p0);
1157 RET_LABEL:;
1158 }
1159 /* method parser#ReduceAction642#action for (self: ReduceAction642, Parser) */
1160 void parser__ReduceAction642__action(val* self, val* p0) {
1161 val* var_p /* var p: Parser */;
1162 val* var /* : null */;
1163 val* var_node_list /* var node_list: nullable Object */;
1164 val* var1 /* : nullable Object */;
1165 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1166 val* var2 /* : nullable Object */;
1167 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1168 val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */;
1169 short int var3 /* : Bool */;
1170 int cltype;
1171 int idtype;
1172 val* var_tidnode3 /* var tidnode3: nullable Object */;
1173 short int var4 /* : Bool */;
1174 int cltype5;
1175 int idtype6;
1176 val* var7 /* : AVardeclExpr */;
1177 val* var8 /* : null */;
1178 val* var9 /* : null */;
1179 val* var10 /* : null */;
1180 val* var11 /* : null */;
1181 val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */;
1182 long var12 /* : Int */;
1183 long var13 /* : Int */;
1184 var_p = p0;
1185 var = NULL;
1186 var_node_list = var;
1187 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1188 var_nodearraylist2 = var1;
1189 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1190 var_nodearraylist1 = var2;
1191 var_tkwvarnode2 = var_nodearraylist1;
1192 /* <var_tkwvarnode2:nullable Object> isa nullable TKwvar */
1193 cltype = type_nullable_parser_nodes__TKwvar.color;
1194 idtype = type_nullable_parser_nodes__TKwvar.id;
1195 if(var_tkwvarnode2 == NULL) {
1196 var3 = 1;
1197 } else {
1198 if(cltype >= var_tkwvarnode2->type->table_size) {
1199 var3 = 0;
1200 } else {
1201 var3 = var_tkwvarnode2->type->type_table[cltype] == idtype;
1202 }
1203 }
1204 if (!var3) {
1205 fprintf(stderr, "Runtime error: %s", "Assert failed");
1206 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24758);
1207 exit(1);
1208 }
1209 var_tidnode3 = var_nodearraylist2;
1210 /* <var_tidnode3:nullable Object> isa nullable TId */
1211 cltype5 = type_nullable_parser_nodes__TId.color;
1212 idtype6 = type_nullable_parser_nodes__TId.id;
1213 if(var_tidnode3 == NULL) {
1214 var4 = 1;
1215 } else {
1216 if(cltype5 >= var_tidnode3->type->table_size) {
1217 var4 = 0;
1218 } else {
1219 var4 = var_tidnode3->type->type_table[cltype5] == idtype6;
1220 }
1221 }
1222 if (!var4) {
1223 fprintf(stderr, "Runtime error: %s", "Assert failed");
1224 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24760);
1225 exit(1);
1226 }
1227 var7 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr);
1228 var8 = NULL;
1229 var9 = NULL;
1230 var10 = NULL;
1231 var11 = NULL;
1232 ((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>*/;
1233 CHECK_NEW_parser_nodes__AVardeclExpr(var7);
1234 var_pexprnode1 = var7;
1235 var_node_list = var_pexprnode1;
1236 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction642> */
1237 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
1238 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
1239 RET_LABEL:;
1240 }
1241 /* method parser#ReduceAction642#action for (self: Object, Parser) */
1242 void VIRTUAL_parser__ReduceAction642__action(val* self, val* p0) {
1243 parser__ReduceAction642__action(self, p0);
1244 RET_LABEL:;
1245 }
1246 /* method parser#ReduceAction643#action for (self: ReduceAction643, Parser) */
1247 void parser__ReduceAction643__action(val* self, val* p0) {
1248 val* var_p /* var p: Parser */;
1249 val* var /* : null */;
1250 val* var_node_list /* var node_list: nullable Object */;
1251 val* var1 /* : nullable Object */;
1252 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1253 val* var2 /* : nullable Object */;
1254 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1255 val* var3 /* : nullable Object */;
1256 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1257 val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */;
1258 short int var4 /* : Bool */;
1259 int cltype;
1260 int idtype;
1261 val* var_tidnode3 /* var tidnode3: nullable Object */;
1262 short int var5 /* : Bool */;
1263 int cltype6;
1264 int idtype7;
1265 val* var_pannotationsnode7 /* var pannotationsnode7: nullable Object */;
1266 short int var8 /* : Bool */;
1267 int cltype9;
1268 int idtype10;
1269 val* var11 /* : AVardeclExpr */;
1270 val* var12 /* : null */;
1271 val* var13 /* : null */;
1272 val* var14 /* : null */;
1273 val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */;
1274 long var15 /* : Int */;
1275 long var16 /* : Int */;
1276 var_p = p0;
1277 var = NULL;
1278 var_node_list = var;
1279 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1280 var_nodearraylist3 = var1;
1281 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1282 var_nodearraylist2 = var2;
1283 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1284 var_nodearraylist1 = var3;
1285 var_tkwvarnode2 = var_nodearraylist1;
1286 /* <var_tkwvarnode2:nullable Object> isa nullable TKwvar */
1287 cltype = type_nullable_parser_nodes__TKwvar.color;
1288 idtype = type_nullable_parser_nodes__TKwvar.id;
1289 if(var_tkwvarnode2 == NULL) {
1290 var4 = 1;
1291 } else {
1292 if(cltype >= var_tkwvarnode2->type->table_size) {
1293 var4 = 0;
1294 } else {
1295 var4 = var_tkwvarnode2->type->type_table[cltype] == idtype;
1296 }
1297 }
1298 if (!var4) {
1299 fprintf(stderr, "Runtime error: %s", "Assert failed");
1300 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24782);
1301 exit(1);
1302 }
1303 var_tidnode3 = var_nodearraylist2;
1304 /* <var_tidnode3:nullable Object> isa nullable TId */
1305 cltype6 = type_nullable_parser_nodes__TId.color;
1306 idtype7 = type_nullable_parser_nodes__TId.id;
1307 if(var_tidnode3 == NULL) {
1308 var5 = 1;
1309 } else {
1310 if(cltype6 >= var_tidnode3->type->table_size) {
1311 var5 = 0;
1312 } else {
1313 var5 = var_tidnode3->type->type_table[cltype6] == idtype7;
1314 }
1315 }
1316 if (!var5) {
1317 fprintf(stderr, "Runtime error: %s", "Assert failed");
1318 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24784);
1319 exit(1);
1320 }
1321 var_pannotationsnode7 = var_nodearraylist3;
1322 /* <var_pannotationsnode7:nullable Object> isa nullable AAnnotations */
1323 cltype9 = type_nullable_parser_nodes__AAnnotations.color;
1324 idtype10 = type_nullable_parser_nodes__AAnnotations.id;
1325 if(var_pannotationsnode7 == NULL) {
1326 var8 = 1;
1327 } else {
1328 if(cltype9 >= var_pannotationsnode7->type->table_size) {
1329 var8 = 0;
1330 } else {
1331 var8 = var_pannotationsnode7->type->type_table[cltype9] == idtype10;
1332 }
1333 }
1334 if (!var8) {
1335 fprintf(stderr, "Runtime error: %s", "Assert failed");
1336 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24786);
1337 exit(1);
1338 }
1339 var11 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr);
1340 var12 = NULL;
1341 var13 = NULL;
1342 var14 = NULL;
1343 ((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>*/;
1344 CHECK_NEW_parser_nodes__AVardeclExpr(var11);
1345 var_pexprnode1 = var11;
1346 var_node_list = var_pexprnode1;
1347 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction643> */
1348 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
1349 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
1350 RET_LABEL:;
1351 }
1352 /* method parser#ReduceAction643#action for (self: Object, Parser) */
1353 void VIRTUAL_parser__ReduceAction643__action(val* self, val* p0) {
1354 parser__ReduceAction643__action(self, p0);
1355 RET_LABEL:;
1356 }
1357 /* method parser#ReduceAction644#action for (self: ReduceAction644, Parser) */
1358 void parser__ReduceAction644__action(val* self, val* p0) {
1359 val* var_p /* var p: Parser */;
1360 val* var /* : null */;
1361 val* var_node_list /* var node_list: nullable Object */;
1362 val* var1 /* : nullable Object */;
1363 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1364 val* var2 /* : nullable Object */;
1365 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1366 val* var3 /* : nullable Object */;
1367 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1368 val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */;
1369 short int var4 /* : Bool */;
1370 int cltype;
1371 int idtype;
1372 val* var_tidnode3 /* var tidnode3: nullable Object */;
1373 short int var5 /* : Bool */;
1374 int cltype6;
1375 int idtype7;
1376 val* var_ptypenode4 /* var ptypenode4: nullable Object */;
1377 short int var8 /* : Bool */;
1378 int cltype9;
1379 int idtype10;
1380 val* var11 /* : AVardeclExpr */;
1381 val* var12 /* : null */;
1382 val* var13 /* : null */;
1383 val* var14 /* : null */;
1384 val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */;
1385 long var15 /* : Int */;
1386 long var16 /* : Int */;
1387 var_p = p0;
1388 var = NULL;
1389 var_node_list = var;
1390 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1391 var_nodearraylist3 = var1;
1392 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1393 var_nodearraylist2 = var2;
1394 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1395 var_nodearraylist1 = var3;
1396 var_tkwvarnode2 = var_nodearraylist1;
1397 /* <var_tkwvarnode2:nullable Object> isa nullable TKwvar */
1398 cltype = type_nullable_parser_nodes__TKwvar.color;
1399 idtype = type_nullable_parser_nodes__TKwvar.id;
1400 if(var_tkwvarnode2 == NULL) {
1401 var4 = 1;
1402 } else {
1403 if(cltype >= var_tkwvarnode2->type->table_size) {
1404 var4 = 0;
1405 } else {
1406 var4 = var_tkwvarnode2->type->type_table[cltype] == idtype;
1407 }
1408 }
1409 if (!var4) {
1410 fprintf(stderr, "Runtime error: %s", "Assert failed");
1411 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24808);
1412 exit(1);
1413 }
1414 var_tidnode3 = var_nodearraylist2;
1415 /* <var_tidnode3:nullable Object> isa nullable TId */
1416 cltype6 = type_nullable_parser_nodes__TId.color;
1417 idtype7 = type_nullable_parser_nodes__TId.id;
1418 if(var_tidnode3 == NULL) {
1419 var5 = 1;
1420 } else {
1421 if(cltype6 >= var_tidnode3->type->table_size) {
1422 var5 = 0;
1423 } else {
1424 var5 = var_tidnode3->type->type_table[cltype6] == idtype7;
1425 }
1426 }
1427 if (!var5) {
1428 fprintf(stderr, "Runtime error: %s", "Assert failed");
1429 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24810);
1430 exit(1);
1431 }
1432 var_ptypenode4 = var_nodearraylist3;
1433 /* <var_ptypenode4:nullable Object> isa nullable AType */
1434 cltype9 = type_nullable_parser_nodes__AType.color;
1435 idtype10 = type_nullable_parser_nodes__AType.id;
1436 if(var_ptypenode4 == NULL) {
1437 var8 = 1;
1438 } else {
1439 if(cltype9 >= var_ptypenode4->type->table_size) {
1440 var8 = 0;
1441 } else {
1442 var8 = var_ptypenode4->type->type_table[cltype9] == idtype10;
1443 }
1444 }
1445 if (!var8) {
1446 fprintf(stderr, "Runtime error: %s", "Assert failed");
1447 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24812);
1448 exit(1);
1449 }
1450 var11 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr);
1451 var12 = NULL;
1452 var13 = NULL;
1453 var14 = NULL;
1454 ((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>*/;
1455 CHECK_NEW_parser_nodes__AVardeclExpr(var11);
1456 var_pexprnode1 = var11;
1457 var_node_list = var_pexprnode1;
1458 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction644> */
1459 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
1460 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
1461 RET_LABEL:;
1462 }
1463 /* method parser#ReduceAction644#action for (self: Object, Parser) */
1464 void VIRTUAL_parser__ReduceAction644__action(val* self, val* p0) {
1465 parser__ReduceAction644__action(self, p0);
1466 RET_LABEL:;
1467 }
1468 /* method parser#ReduceAction645#action for (self: ReduceAction645, Parser) */
1469 void parser__ReduceAction645__action(val* self, val* p0) {
1470 val* var_p /* var p: Parser */;
1471 val* var /* : null */;
1472 val* var_node_list /* var node_list: nullable Object */;
1473 val* var1 /* : nullable Object */;
1474 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1475 val* var2 /* : nullable Object */;
1476 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1477 val* var3 /* : nullable Object */;
1478 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1479 val* var4 /* : nullable Object */;
1480 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1481 val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */;
1482 short int var5 /* : Bool */;
1483 int cltype;
1484 int idtype;
1485 val* var_tidnode3 /* var tidnode3: nullable Object */;
1486 short int var6 /* : Bool */;
1487 int cltype7;
1488 int idtype8;
1489 val* var_ptypenode4 /* var ptypenode4: nullable Object */;
1490 short int var9 /* : Bool */;
1491 int cltype10;
1492 int idtype11;
1493 val* var_pannotationsnode7 /* var pannotationsnode7: nullable Object */;
1494 short int var12 /* : Bool */;
1495 int cltype13;
1496 int idtype14;
1497 val* var15 /* : AVardeclExpr */;
1498 val* var16 /* : null */;
1499 val* var17 /* : null */;
1500 val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */;
1501 long var18 /* : Int */;
1502 long var19 /* : Int */;
1503 var_p = p0;
1504 var = NULL;
1505 var_node_list = var;
1506 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1507 var_nodearraylist4 = var1;
1508 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1509 var_nodearraylist3 = var2;
1510 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1511 var_nodearraylist2 = var3;
1512 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1513 var_nodearraylist1 = var4;
1514 var_tkwvarnode2 = var_nodearraylist1;
1515 /* <var_tkwvarnode2:nullable Object> isa nullable TKwvar */
1516 cltype = type_nullable_parser_nodes__TKwvar.color;
1517 idtype = type_nullable_parser_nodes__TKwvar.id;
1518 if(var_tkwvarnode2 == NULL) {
1519 var5 = 1;
1520 } else {
1521 if(cltype >= var_tkwvarnode2->type->table_size) {
1522 var5 = 0;
1523 } else {
1524 var5 = var_tkwvarnode2->type->type_table[cltype] == idtype;
1525 }
1526 }
1527 if (!var5) {
1528 fprintf(stderr, "Runtime error: %s", "Assert failed");
1529 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24835);
1530 exit(1);
1531 }
1532 var_tidnode3 = var_nodearraylist2;
1533 /* <var_tidnode3:nullable Object> isa nullable TId */
1534 cltype7 = type_nullable_parser_nodes__TId.color;
1535 idtype8 = type_nullable_parser_nodes__TId.id;
1536 if(var_tidnode3 == NULL) {
1537 var6 = 1;
1538 } else {
1539 if(cltype7 >= var_tidnode3->type->table_size) {
1540 var6 = 0;
1541 } else {
1542 var6 = var_tidnode3->type->type_table[cltype7] == idtype8;
1543 }
1544 }
1545 if (!var6) {
1546 fprintf(stderr, "Runtime error: %s", "Assert failed");
1547 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24837);
1548 exit(1);
1549 }
1550 var_ptypenode4 = var_nodearraylist4;
1551 /* <var_ptypenode4:nullable Object> isa nullable AType */
1552 cltype10 = type_nullable_parser_nodes__AType.color;
1553 idtype11 = type_nullable_parser_nodes__AType.id;
1554 if(var_ptypenode4 == NULL) {
1555 var9 = 1;
1556 } else {
1557 if(cltype10 >= var_ptypenode4->type->table_size) {
1558 var9 = 0;
1559 } else {
1560 var9 = var_ptypenode4->type->type_table[cltype10] == idtype11;
1561 }
1562 }
1563 if (!var9) {
1564 fprintf(stderr, "Runtime error: %s", "Assert failed");
1565 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24839);
1566 exit(1);
1567 }
1568 var_pannotationsnode7 = var_nodearraylist3;
1569 /* <var_pannotationsnode7:nullable Object> isa nullable AAnnotations */
1570 cltype13 = type_nullable_parser_nodes__AAnnotations.color;
1571 idtype14 = type_nullable_parser_nodes__AAnnotations.id;
1572 if(var_pannotationsnode7 == NULL) {
1573 var12 = 1;
1574 } else {
1575 if(cltype13 >= var_pannotationsnode7->type->table_size) {
1576 var12 = 0;
1577 } else {
1578 var12 = var_pannotationsnode7->type->type_table[cltype13] == idtype14;
1579 }
1580 }
1581 if (!var12) {
1582 fprintf(stderr, "Runtime error: %s", "Assert failed");
1583 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24841);
1584 exit(1);
1585 }
1586 var15 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr);
1587 var16 = NULL;
1588 var17 = NULL;
1589 ((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>*/;
1590 CHECK_NEW_parser_nodes__AVardeclExpr(var15);
1591 var_pexprnode1 = var15;
1592 var_node_list = var_pexprnode1;
1593 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction645> */
1594 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
1595 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
1596 RET_LABEL:;
1597 }
1598 /* method parser#ReduceAction645#action for (self: Object, Parser) */
1599 void VIRTUAL_parser__ReduceAction645__action(val* self, val* p0) {
1600 parser__ReduceAction645__action(self, p0);
1601 RET_LABEL:;
1602 }
1603 /* method parser#ReduceAction646#action for (self: ReduceAction646, Parser) */
1604 void parser__ReduceAction646__action(val* self, val* p0) {
1605 val* var_p /* var p: Parser */;
1606 val* var /* : null */;
1607 val* var_node_list /* var node_list: nullable Object */;
1608 val* var1 /* : nullable Object */;
1609 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1610 val* var2 /* : nullable Object */;
1611 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1612 val* var3 /* : nullable Object */;
1613 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1614 val* var4 /* : nullable Object */;
1615 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1616 val* var5 /* : nullable Object */;
1617 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1618 val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */;
1619 short int var6 /* : Bool */;
1620 int cltype;
1621 int idtype;
1622 val* var_tidnode3 /* var tidnode3: nullable Object */;
1623 short int var7 /* : Bool */;
1624 int cltype8;
1625 int idtype9;
1626 val* var_tassignnode5 /* var tassignnode5: nullable Object */;
1627 short int var10 /* : Bool */;
1628 int cltype11;
1629 int idtype12;
1630 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
1631 short int var13 /* : Bool */;
1632 int cltype14;
1633 int idtype15;
1634 val* var16 /* : AVardeclExpr */;
1635 val* var17 /* : null */;
1636 val* var18 /* : null */;
1637 val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */;
1638 long var19 /* : Int */;
1639 long var20 /* : Int */;
1640 var_p = p0;
1641 var = NULL;
1642 var_node_list = var;
1643 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1644 var_nodearraylist5 = var1;
1645 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1646 var_nodearraylist4 = var2;
1647 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1648 var_nodearraylist3 = var3;
1649 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1650 var_nodearraylist2 = var4;
1651 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1652 var_nodearraylist1 = var5;
1653 var_tkwvarnode2 = var_nodearraylist1;
1654 /* <var_tkwvarnode2:nullable Object> isa nullable TKwvar */
1655 cltype = type_nullable_parser_nodes__TKwvar.color;
1656 idtype = type_nullable_parser_nodes__TKwvar.id;
1657 if(var_tkwvarnode2 == NULL) {
1658 var6 = 1;
1659 } else {
1660 if(cltype >= var_tkwvarnode2->type->table_size) {
1661 var6 = 0;
1662 } else {
1663 var6 = var_tkwvarnode2->type->type_table[cltype] == idtype;
1664 }
1665 }
1666 if (!var6) {
1667 fprintf(stderr, "Runtime error: %s", "Assert failed");
1668 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24865);
1669 exit(1);
1670 }
1671 var_tidnode3 = var_nodearraylist2;
1672 /* <var_tidnode3:nullable Object> isa nullable TId */
1673 cltype8 = type_nullable_parser_nodes__TId.color;
1674 idtype9 = type_nullable_parser_nodes__TId.id;
1675 if(var_tidnode3 == NULL) {
1676 var7 = 1;
1677 } else {
1678 if(cltype8 >= var_tidnode3->type->table_size) {
1679 var7 = 0;
1680 } else {
1681 var7 = var_tidnode3->type->type_table[cltype8] == idtype9;
1682 }
1683 }
1684 if (!var7) {
1685 fprintf(stderr, "Runtime error: %s", "Assert failed");
1686 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24867);
1687 exit(1);
1688 }
1689 var_tassignnode5 = var_nodearraylist3;
1690 /* <var_tassignnode5:nullable Object> isa nullable TAssign */
1691 cltype11 = type_nullable_parser_nodes__TAssign.color;
1692 idtype12 = type_nullable_parser_nodes__TAssign.id;
1693 if(var_tassignnode5 == NULL) {
1694 var10 = 1;
1695 } else {
1696 if(cltype11 >= var_tassignnode5->type->table_size) {
1697 var10 = 0;
1698 } else {
1699 var10 = var_tassignnode5->type->type_table[cltype11] == idtype12;
1700 }
1701 }
1702 if (!var10) {
1703 fprintf(stderr, "Runtime error: %s", "Assert failed");
1704 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24869);
1705 exit(1);
1706 }
1707 var_pexprnode6 = var_nodearraylist5;
1708 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
1709 cltype14 = type_nullable_parser_nodes__AExpr.color;
1710 idtype15 = type_nullable_parser_nodes__AExpr.id;
1711 if(var_pexprnode6 == NULL) {
1712 var13 = 1;
1713 } else {
1714 if(cltype14 >= var_pexprnode6->type->table_size) {
1715 var13 = 0;
1716 } else {
1717 var13 = var_pexprnode6->type->type_table[cltype14] == idtype15;
1718 }
1719 }
1720 if (!var13) {
1721 fprintf(stderr, "Runtime error: %s", "Assert failed");
1722 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24871);
1723 exit(1);
1724 }
1725 var16 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr);
1726 var17 = NULL;
1727 var18 = NULL;
1728 ((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>*/;
1729 CHECK_NEW_parser_nodes__AVardeclExpr(var16);
1730 var_pexprnode1 = var16;
1731 var_node_list = var_pexprnode1;
1732 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction646> */
1733 var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
1734 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
1735 RET_LABEL:;
1736 }
1737 /* method parser#ReduceAction646#action for (self: Object, Parser) */
1738 void VIRTUAL_parser__ReduceAction646__action(val* self, val* p0) {
1739 parser__ReduceAction646__action(self, p0);
1740 RET_LABEL:;
1741 }
1742 /* method parser#ReduceAction647#action for (self: ReduceAction647, Parser) */
1743 void parser__ReduceAction647__action(val* self, val* p0) {
1744 val* var_p /* var p: Parser */;
1745 val* var /* : null */;
1746 val* var_node_list /* var node_list: nullable Object */;
1747 val* var1 /* : nullable Object */;
1748 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
1749 val* var2 /* : nullable Object */;
1750 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1751 val* var3 /* : nullable Object */;
1752 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1753 val* var4 /* : nullable Object */;
1754 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1755 val* var5 /* : nullable Object */;
1756 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1757 val* var6 /* : nullable Object */;
1758 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1759 val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */;
1760 short int var7 /* : Bool */;
1761 int cltype;
1762 int idtype;
1763 val* var_tidnode3 /* var tidnode3: nullable Object */;
1764 short int var8 /* : Bool */;
1765 int cltype9;
1766 int idtype10;
1767 val* var_tassignnode5 /* var tassignnode5: nullable Object */;
1768 short int var11 /* : Bool */;
1769 int cltype12;
1770 int idtype13;
1771 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
1772 short int var14 /* : Bool */;
1773 int cltype15;
1774 int idtype16;
1775 val* var_pannotationsnode7 /* var pannotationsnode7: nullable Object */;
1776 short int var17 /* : Bool */;
1777 int cltype18;
1778 int idtype19;
1779 val* var20 /* : AVardeclExpr */;
1780 val* var21 /* : null */;
1781 val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */;
1782 long var22 /* : Int */;
1783 long var23 /* : Int */;
1784 var_p = p0;
1785 var = NULL;
1786 var_node_list = var;
1787 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1788 var_nodearraylist6 = var1;
1789 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1790 var_nodearraylist5 = var2;
1791 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1792 var_nodearraylist4 = var3;
1793 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1794 var_nodearraylist3 = var4;
1795 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1796 var_nodearraylist2 = var5;
1797 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1798 var_nodearraylist1 = var6;
1799 var_tkwvarnode2 = var_nodearraylist1;
1800 /* <var_tkwvarnode2:nullable Object> isa nullable TKwvar */
1801 cltype = type_nullable_parser_nodes__TKwvar.color;
1802 idtype = type_nullable_parser_nodes__TKwvar.id;
1803 if(var_tkwvarnode2 == NULL) {
1804 var7 = 1;
1805 } else {
1806 if(cltype >= var_tkwvarnode2->type->table_size) {
1807 var7 = 0;
1808 } else {
1809 var7 = var_tkwvarnode2->type->type_table[cltype] == idtype;
1810 }
1811 }
1812 if (!var7) {
1813 fprintf(stderr, "Runtime error: %s", "Assert failed");
1814 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24896);
1815 exit(1);
1816 }
1817 var_tidnode3 = var_nodearraylist2;
1818 /* <var_tidnode3:nullable Object> isa nullable TId */
1819 cltype9 = type_nullable_parser_nodes__TId.color;
1820 idtype10 = type_nullable_parser_nodes__TId.id;
1821 if(var_tidnode3 == NULL) {
1822 var8 = 1;
1823 } else {
1824 if(cltype9 >= var_tidnode3->type->table_size) {
1825 var8 = 0;
1826 } else {
1827 var8 = var_tidnode3->type->type_table[cltype9] == idtype10;
1828 }
1829 }
1830 if (!var8) {
1831 fprintf(stderr, "Runtime error: %s", "Assert failed");
1832 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24898);
1833 exit(1);
1834 }
1835 var_tassignnode5 = var_nodearraylist4;
1836 /* <var_tassignnode5:nullable Object> isa nullable TAssign */
1837 cltype12 = type_nullable_parser_nodes__TAssign.color;
1838 idtype13 = type_nullable_parser_nodes__TAssign.id;
1839 if(var_tassignnode5 == NULL) {
1840 var11 = 1;
1841 } else {
1842 if(cltype12 >= var_tassignnode5->type->table_size) {
1843 var11 = 0;
1844 } else {
1845 var11 = var_tassignnode5->type->type_table[cltype12] == idtype13;
1846 }
1847 }
1848 if (!var11) {
1849 fprintf(stderr, "Runtime error: %s", "Assert failed");
1850 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24900);
1851 exit(1);
1852 }
1853 var_pexprnode6 = var_nodearraylist6;
1854 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
1855 cltype15 = type_nullable_parser_nodes__AExpr.color;
1856 idtype16 = type_nullable_parser_nodes__AExpr.id;
1857 if(var_pexprnode6 == NULL) {
1858 var14 = 1;
1859 } else {
1860 if(cltype15 >= var_pexprnode6->type->table_size) {
1861 var14 = 0;
1862 } else {
1863 var14 = var_pexprnode6->type->type_table[cltype15] == idtype16;
1864 }
1865 }
1866 if (!var14) {
1867 fprintf(stderr, "Runtime error: %s", "Assert failed");
1868 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24902);
1869 exit(1);
1870 }
1871 var_pannotationsnode7 = var_nodearraylist3;
1872 /* <var_pannotationsnode7:nullable Object> isa nullable AAnnotations */
1873 cltype18 = type_nullable_parser_nodes__AAnnotations.color;
1874 idtype19 = type_nullable_parser_nodes__AAnnotations.id;
1875 if(var_pannotationsnode7 == NULL) {
1876 var17 = 1;
1877 } else {
1878 if(cltype18 >= var_pannotationsnode7->type->table_size) {
1879 var17 = 0;
1880 } else {
1881 var17 = var_pannotationsnode7->type->type_table[cltype18] == idtype19;
1882 }
1883 }
1884 if (!var17) {
1885 fprintf(stderr, "Runtime error: %s", "Assert failed");
1886 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24904);
1887 exit(1);
1888 }
1889 var20 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr);
1890 var21 = NULL;
1891 ((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>*/;
1892 CHECK_NEW_parser_nodes__AVardeclExpr(var20);
1893 var_pexprnode1 = var20;
1894 var_node_list = var_pexprnode1;
1895 var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction647> */
1896 var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
1897 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
1898 RET_LABEL:;
1899 }
1900 /* method parser#ReduceAction647#action for (self: Object, Parser) */
1901 void VIRTUAL_parser__ReduceAction647__action(val* self, val* p0) {
1902 parser__ReduceAction647__action(self, p0);
1903 RET_LABEL:;
1904 }
1905 /* method parser#ReduceAction648#action for (self: ReduceAction648, Parser) */
1906 void parser__ReduceAction648__action(val* self, val* p0) {
1907 val* var_p /* var p: Parser */;
1908 val* var /* : null */;
1909 val* var_node_list /* var node_list: nullable Object */;
1910 val* var1 /* : nullable Object */;
1911 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
1912 val* var2 /* : nullable Object */;
1913 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1914 val* var3 /* : nullable Object */;
1915 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1916 val* var4 /* : nullable Object */;
1917 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1918 val* var5 /* : nullable Object */;
1919 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1920 val* var6 /* : nullable Object */;
1921 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1922 val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */;
1923 short int var7 /* : Bool */;
1924 int cltype;
1925 int idtype;
1926 val* var_tidnode3 /* var tidnode3: nullable Object */;
1927 short int var8 /* : Bool */;
1928 int cltype9;
1929 int idtype10;
1930 val* var_ptypenode4 /* var ptypenode4: nullable Object */;
1931 short int var11 /* : Bool */;
1932 int cltype12;
1933 int idtype13;
1934 val* var_tassignnode5 /* var tassignnode5: nullable Object */;
1935 short int var14 /* : Bool */;
1936 int cltype15;
1937 int idtype16;
1938 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
1939 short int var17 /* : Bool */;
1940 int cltype18;
1941 int idtype19;
1942 val* var20 /* : AVardeclExpr */;
1943 val* var21 /* : null */;
1944 val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */;
1945 long var22 /* : Int */;
1946 long var23 /* : Int */;
1947 var_p = p0;
1948 var = NULL;
1949 var_node_list = var;
1950 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1951 var_nodearraylist6 = var1;
1952 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1953 var_nodearraylist5 = var2;
1954 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1955 var_nodearraylist4 = var3;
1956 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1957 var_nodearraylist3 = var4;
1958 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1959 var_nodearraylist2 = var5;
1960 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1961 var_nodearraylist1 = var6;
1962 var_tkwvarnode2 = var_nodearraylist1;
1963 /* <var_tkwvarnode2:nullable Object> isa nullable TKwvar */
1964 cltype = type_nullable_parser_nodes__TKwvar.color;
1965 idtype = type_nullable_parser_nodes__TKwvar.id;
1966 if(var_tkwvarnode2 == NULL) {
1967 var7 = 1;
1968 } else {
1969 if(cltype >= var_tkwvarnode2->type->table_size) {
1970 var7 = 0;
1971 } else {
1972 var7 = var_tkwvarnode2->type->type_table[cltype] == idtype;
1973 }
1974 }
1975 if (!var7) {
1976 fprintf(stderr, "Runtime error: %s", "Assert failed");
1977 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24929);
1978 exit(1);
1979 }
1980 var_tidnode3 = var_nodearraylist2;
1981 /* <var_tidnode3:nullable Object> isa nullable TId */
1982 cltype9 = type_nullable_parser_nodes__TId.color;
1983 idtype10 = type_nullable_parser_nodes__TId.id;
1984 if(var_tidnode3 == NULL) {
1985 var8 = 1;
1986 } else {
1987 if(cltype9 >= var_tidnode3->type->table_size) {
1988 var8 = 0;
1989 } else {
1990 var8 = var_tidnode3->type->type_table[cltype9] == idtype10;
1991 }
1992 }
1993 if (!var8) {
1994 fprintf(stderr, "Runtime error: %s", "Assert failed");
1995 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24931);
1996 exit(1);
1997 }
1998 var_ptypenode4 = var_nodearraylist3;
1999 /* <var_ptypenode4:nullable Object> isa nullable AType */
2000 cltype12 = type_nullable_parser_nodes__AType.color;
2001 idtype13 = type_nullable_parser_nodes__AType.id;
2002 if(var_ptypenode4 == NULL) {
2003 var11 = 1;
2004 } else {
2005 if(cltype12 >= var_ptypenode4->type->table_size) {
2006 var11 = 0;
2007 } else {
2008 var11 = var_ptypenode4->type->type_table[cltype12] == idtype13;
2009 }
2010 }
2011 if (!var11) {
2012 fprintf(stderr, "Runtime error: %s", "Assert failed");
2013 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24933);
2014 exit(1);
2015 }
2016 var_tassignnode5 = var_nodearraylist4;
2017 /* <var_tassignnode5:nullable Object> isa nullable TAssign */
2018 cltype15 = type_nullable_parser_nodes__TAssign.color;
2019 idtype16 = type_nullable_parser_nodes__TAssign.id;
2020 if(var_tassignnode5 == NULL) {
2021 var14 = 1;
2022 } else {
2023 if(cltype15 >= var_tassignnode5->type->table_size) {
2024 var14 = 0;
2025 } else {
2026 var14 = var_tassignnode5->type->type_table[cltype15] == idtype16;
2027 }
2028 }
2029 if (!var14) {
2030 fprintf(stderr, "Runtime error: %s", "Assert failed");
2031 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24935);
2032 exit(1);
2033 }
2034 var_pexprnode6 = var_nodearraylist6;
2035 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
2036 cltype18 = type_nullable_parser_nodes__AExpr.color;
2037 idtype19 = type_nullable_parser_nodes__AExpr.id;
2038 if(var_pexprnode6 == NULL) {
2039 var17 = 1;
2040 } else {
2041 if(cltype18 >= var_pexprnode6->type->table_size) {
2042 var17 = 0;
2043 } else {
2044 var17 = var_pexprnode6->type->type_table[cltype18] == idtype19;
2045 }
2046 }
2047 if (!var17) {
2048 fprintf(stderr, "Runtime error: %s", "Assert failed");
2049 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24937);
2050 exit(1);
2051 }
2052 var20 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr);
2053 var21 = NULL;
2054 ((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>*/;
2055 CHECK_NEW_parser_nodes__AVardeclExpr(var20);
2056 var_pexprnode1 = var20;
2057 var_node_list = var_pexprnode1;
2058 var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction648> */
2059 var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
2060 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
2061 RET_LABEL:;
2062 }
2063 /* method parser#ReduceAction648#action for (self: Object, Parser) */
2064 void VIRTUAL_parser__ReduceAction648__action(val* self, val* p0) {
2065 parser__ReduceAction648__action(self, p0);
2066 RET_LABEL:;
2067 }
2068 /* method parser#ReduceAction649#action for (self: ReduceAction649, Parser) */
2069 void parser__ReduceAction649__action(val* self, val* p0) {
2070 val* var_p /* var p: Parser */;
2071 val* var /* : null */;
2072 val* var_node_list /* var node_list: nullable Object */;
2073 val* var1 /* : nullable Object */;
2074 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
2075 val* var2 /* : nullable Object */;
2076 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
2077 val* var3 /* : nullable Object */;
2078 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2079 val* var4 /* : nullable Object */;
2080 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2081 val* var5 /* : nullable Object */;
2082 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2083 val* var6 /* : nullable Object */;
2084 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2085 val* var7 /* : nullable Object */;
2086 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2087 val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */;
2088 short int var8 /* : Bool */;
2089 int cltype;
2090 int idtype;
2091 val* var_tidnode3 /* var tidnode3: nullable Object */;
2092 short int var9 /* : Bool */;
2093 int cltype10;
2094 int idtype11;
2095 val* var_ptypenode4 /* var ptypenode4: nullable Object */;
2096 short int var12 /* : Bool */;
2097 int cltype13;
2098 int idtype14;
2099 val* var_tassignnode5 /* var tassignnode5: nullable Object */;
2100 short int var15 /* : Bool */;
2101 int cltype16;
2102 int idtype17;
2103 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
2104 short int var18 /* : Bool */;
2105 int cltype19;
2106 int idtype20;
2107 val* var_pannotationsnode7 /* var pannotationsnode7: nullable Object */;
2108 short int var21 /* : Bool */;
2109 int cltype22;
2110 int idtype23;
2111 val* var24 /* : AVardeclExpr */;
2112 val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */;
2113 long var25 /* : Int */;
2114 long var26 /* : Int */;
2115 var_p = p0;
2116 var = NULL;
2117 var_node_list = var;
2118 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2119 var_nodearraylist7 = var1;
2120 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2121 var_nodearraylist6 = var2;
2122 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2123 var_nodearraylist5 = var3;
2124 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2125 var_nodearraylist4 = var4;
2126 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2127 var_nodearraylist3 = var5;
2128 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2129 var_nodearraylist2 = var6;
2130 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2131 var_nodearraylist1 = var7;
2132 var_tkwvarnode2 = var_nodearraylist1;
2133 /* <var_tkwvarnode2:nullable Object> isa nullable TKwvar */
2134 cltype = type_nullable_parser_nodes__TKwvar.color;
2135 idtype = type_nullable_parser_nodes__TKwvar.id;
2136 if(var_tkwvarnode2 == NULL) {
2137 var8 = 1;
2138 } else {
2139 if(cltype >= var_tkwvarnode2->type->table_size) {
2140 var8 = 0;
2141 } else {
2142 var8 = var_tkwvarnode2->type->type_table[cltype] == idtype;
2143 }
2144 }
2145 if (!var8) {
2146 fprintf(stderr, "Runtime error: %s", "Assert failed");
2147 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24963);
2148 exit(1);
2149 }
2150 var_tidnode3 = var_nodearraylist2;
2151 /* <var_tidnode3:nullable Object> isa nullable TId */
2152 cltype10 = type_nullable_parser_nodes__TId.color;
2153 idtype11 = type_nullable_parser_nodes__TId.id;
2154 if(var_tidnode3 == NULL) {
2155 var9 = 1;
2156 } else {
2157 if(cltype10 >= var_tidnode3->type->table_size) {
2158 var9 = 0;
2159 } else {
2160 var9 = var_tidnode3->type->type_table[cltype10] == idtype11;
2161 }
2162 }
2163 if (!var9) {
2164 fprintf(stderr, "Runtime error: %s", "Assert failed");
2165 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24965);
2166 exit(1);
2167 }
2168 var_ptypenode4 = var_nodearraylist4;
2169 /* <var_ptypenode4:nullable Object> isa nullable AType */
2170 cltype13 = type_nullable_parser_nodes__AType.color;
2171 idtype14 = type_nullable_parser_nodes__AType.id;
2172 if(var_ptypenode4 == NULL) {
2173 var12 = 1;
2174 } else {
2175 if(cltype13 >= var_ptypenode4->type->table_size) {
2176 var12 = 0;
2177 } else {
2178 var12 = var_ptypenode4->type->type_table[cltype13] == idtype14;
2179 }
2180 }
2181 if (!var12) {
2182 fprintf(stderr, "Runtime error: %s", "Assert failed");
2183 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24967);
2184 exit(1);
2185 }
2186 var_tassignnode5 = var_nodearraylist5;
2187 /* <var_tassignnode5:nullable Object> isa nullable TAssign */
2188 cltype16 = type_nullable_parser_nodes__TAssign.color;
2189 idtype17 = type_nullable_parser_nodes__TAssign.id;
2190 if(var_tassignnode5 == NULL) {
2191 var15 = 1;
2192 } else {
2193 if(cltype16 >= var_tassignnode5->type->table_size) {
2194 var15 = 0;
2195 } else {
2196 var15 = var_tassignnode5->type->type_table[cltype16] == idtype17;
2197 }
2198 }
2199 if (!var15) {
2200 fprintf(stderr, "Runtime error: %s", "Assert failed");
2201 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24969);
2202 exit(1);
2203 }
2204 var_pexprnode6 = var_nodearraylist7;
2205 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
2206 cltype19 = type_nullable_parser_nodes__AExpr.color;
2207 idtype20 = type_nullable_parser_nodes__AExpr.id;
2208 if(var_pexprnode6 == NULL) {
2209 var18 = 1;
2210 } else {
2211 if(cltype19 >= var_pexprnode6->type->table_size) {
2212 var18 = 0;
2213 } else {
2214 var18 = var_pexprnode6->type->type_table[cltype19] == idtype20;
2215 }
2216 }
2217 if (!var18) {
2218 fprintf(stderr, "Runtime error: %s", "Assert failed");
2219 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24971);
2220 exit(1);
2221 }
2222 var_pannotationsnode7 = var_nodearraylist3;
2223 /* <var_pannotationsnode7:nullable Object> isa nullable AAnnotations */
2224 cltype22 = type_nullable_parser_nodes__AAnnotations.color;
2225 idtype23 = type_nullable_parser_nodes__AAnnotations.id;
2226 if(var_pannotationsnode7 == NULL) {
2227 var21 = 1;
2228 } else {
2229 if(cltype22 >= var_pannotationsnode7->type->table_size) {
2230 var21 = 0;
2231 } else {
2232 var21 = var_pannotationsnode7->type->type_table[cltype22] == idtype23;
2233 }
2234 }
2235 if (!var21) {
2236 fprintf(stderr, "Runtime error: %s", "Assert failed");
2237 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24973);
2238 exit(1);
2239 }
2240 var24 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr);
2241 ((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>*/;
2242 CHECK_NEW_parser_nodes__AVardeclExpr(var24);
2243 var_pexprnode1 = var24;
2244 var_node_list = var_pexprnode1;
2245 var25 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction649> */
2246 var26 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var25) /* go_to on <var_p:Parser>*/;
2247 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var26, var_node_list) /* push on <var_p:Parser>*/;
2248 RET_LABEL:;
2249 }
2250 /* method parser#ReduceAction649#action for (self: Object, Parser) */
2251 void VIRTUAL_parser__ReduceAction649__action(val* self, val* p0) {
2252 parser__ReduceAction649__action(self, p0);
2253 RET_LABEL:;
2254 }
2255 /* method parser#ReduceAction650#action for (self: ReduceAction650, Parser) */
2256 void parser__ReduceAction650__action(val* self, val* p0) {
2257 val* var_p /* var p: Parser */;
2258 val* var /* : null */;
2259 val* var_node_list /* var node_list: nullable Object */;
2260 val* var1 /* : nullable Object */;
2261 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
2262 val* var2 /* : nullable Object */;
2263 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2264 val* var3 /* : nullable Object */;
2265 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2266 val* var4 /* : nullable Object */;
2267 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2268 val* var5 /* : nullable Object */;
2269 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2270 val* var6 /* : nullable Object */;
2271 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2272 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
2273 short int var7 /* : Bool */;
2274 int cltype;
2275 int idtype;
2276 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
2277 short int var8 /* : Bool */;
2278 int cltype9;
2279 int idtype10;
2280 val* var_tassignnode4 /* var tassignnode4: nullable Object */;
2281 short int var11 /* : Bool */;
2282 int cltype12;
2283 int idtype13;
2284 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
2285 short int var14 /* : Bool */;
2286 int cltype15;
2287 int idtype16;
2288 val* var17 /* : AAttrAssignExpr */;
2289 val* var_pexprnode1 /* var pexprnode1: nullable AAttrAssignExpr */;
2290 long var18 /* : Int */;
2291 long var19 /* : Int */;
2292 var_p = p0;
2293 var = NULL;
2294 var_node_list = var;
2295 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2296 var_nodearraylist6 = var1;
2297 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2298 var_nodearraylist5 = var2;
2299 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2300 var_nodearraylist4 = var3;
2301 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2302 var_nodearraylist3 = var4;
2303 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2304 var_nodearraylist2 = var5;
2305 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2306 var_nodearraylist1 = var6;
2307 var_pexprnode2 = var_nodearraylist1;
2308 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2309 cltype = type_nullable_parser_nodes__AExpr.color;
2310 idtype = type_nullable_parser_nodes__AExpr.id;
2311 if(var_pexprnode2 == NULL) {
2312 var7 = 1;
2313 } else {
2314 if(cltype >= var_pexprnode2->type->table_size) {
2315 var7 = 0;
2316 } else {
2317 var7 = var_pexprnode2->type->type_table[cltype] == idtype;
2318 }
2319 }
2320 if (!var7) {
2321 fprintf(stderr, "Runtime error: %s", "Assert failed");
2322 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24998);
2323 exit(1);
2324 }
2325 var_tattridnode3 = var_nodearraylist4;
2326 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
2327 cltype9 = type_nullable_parser_nodes__TAttrid.color;
2328 idtype10 = type_nullable_parser_nodes__TAttrid.id;
2329 if(var_tattridnode3 == NULL) {
2330 var8 = 1;
2331 } else {
2332 if(cltype9 >= var_tattridnode3->type->table_size) {
2333 var8 = 0;
2334 } else {
2335 var8 = var_tattridnode3->type->type_table[cltype9] == idtype10;
2336 }
2337 }
2338 if (!var8) {
2339 fprintf(stderr, "Runtime error: %s", "Assert failed");
2340 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25000);
2341 exit(1);
2342 }
2343 var_tassignnode4 = var_nodearraylist5;
2344 /* <var_tassignnode4:nullable Object> isa nullable TAssign */
2345 cltype12 = type_nullable_parser_nodes__TAssign.color;
2346 idtype13 = type_nullable_parser_nodes__TAssign.id;
2347 if(var_tassignnode4 == NULL) {
2348 var11 = 1;
2349 } else {
2350 if(cltype12 >= var_tassignnode4->type->table_size) {
2351 var11 = 0;
2352 } else {
2353 var11 = var_tassignnode4->type->type_table[cltype12] == idtype13;
2354 }
2355 }
2356 if (!var11) {
2357 fprintf(stderr, "Runtime error: %s", "Assert failed");
2358 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25002);
2359 exit(1);
2360 }
2361 var_pexprnode5 = var_nodearraylist6;
2362 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
2363 cltype15 = type_nullable_parser_nodes__AExpr.color;
2364 idtype16 = type_nullable_parser_nodes__AExpr.id;
2365 if(var_pexprnode5 == NULL) {
2366 var14 = 1;
2367 } else {
2368 if(cltype15 >= var_pexprnode5->type->table_size) {
2369 var14 = 0;
2370 } else {
2371 var14 = var_pexprnode5->type->type_table[cltype15] == idtype16;
2372 }
2373 }
2374 if (!var14) {
2375 fprintf(stderr, "Runtime error: %s", "Assert failed");
2376 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25004);
2377 exit(1);
2378 }
2379 var17 = NEW_parser_nodes__AAttrAssignExpr(&type_parser_nodes__AAttrAssignExpr);
2380 ((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>*/;
2381 CHECK_NEW_parser_nodes__AAttrAssignExpr(var17);
2382 var_pexprnode1 = var17;
2383 var_node_list = var_pexprnode1;
2384 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction650> */
2385 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
2386 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
2387 RET_LABEL:;
2388 }
2389 /* method parser#ReduceAction650#action for (self: Object, Parser) */
2390 void VIRTUAL_parser__ReduceAction650__action(val* self, val* p0) {
2391 parser__ReduceAction650__action(self, p0);
2392 RET_LABEL:;
2393 }
2394 /* method parser#ReduceAction651#action for (self: ReduceAction651, Parser) */
2395 void parser__ReduceAction651__action(val* self, val* p0) {
2396 val* var_p /* var p: Parser */;
2397 val* var /* : null */;
2398 val* var_node_list /* var node_list: nullable Object */;
2399 val* var1 /* : nullable Object */;
2400 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2401 val* var2 /* : nullable Object */;
2402 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2403 val* var3 /* : nullable Object */;
2404 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2405 val* var4 /* : AImplicitSelfExpr */;
2406 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
2407 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
2408 short int var5 /* : Bool */;
2409 int cltype;
2410 int idtype;
2411 val* var_tassignnode4 /* var tassignnode4: nullable Object */;
2412 short int var6 /* : Bool */;
2413 int cltype7;
2414 int idtype8;
2415 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
2416 short int var9 /* : Bool */;
2417 int cltype10;
2418 int idtype11;
2419 val* var12 /* : AAttrAssignExpr */;
2420 val* var_pexprnode1 /* var pexprnode1: nullable AAttrAssignExpr */;
2421 long var13 /* : Int */;
2422 long var14 /* : Int */;
2423 var_p = p0;
2424 var = NULL;
2425 var_node_list = var;
2426 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2427 var_nodearraylist3 = var1;
2428 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2429 var_nodearraylist2 = var2;
2430 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2431 var_nodearraylist1 = var3;
2432 var4 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
2433 ((void (*)(val*))(var4->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var4) /* init_aimplicitselfexpr on <var4:AImplicitSelfExpr>*/;
2434 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var4);
2435 var_pexprnode2 = var4;
2436 var_tattridnode3 = var_nodearraylist1;
2437 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
2438 cltype = type_nullable_parser_nodes__TAttrid.color;
2439 idtype = type_nullable_parser_nodes__TAttrid.id;
2440 if(var_tattridnode3 == NULL) {
2441 var5 = 1;
2442 } else {
2443 if(cltype >= var_tattridnode3->type->table_size) {
2444 var5 = 0;
2445 } else {
2446 var5 = var_tattridnode3->type->type_table[cltype] == idtype;
2447 }
2448 }
2449 if (!var5) {
2450 fprintf(stderr, "Runtime error: %s", "Assert failed");
2451 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25025);
2452 exit(1);
2453 }
2454 var_tassignnode4 = var_nodearraylist2;
2455 /* <var_tassignnode4:nullable Object> isa nullable TAssign */
2456 cltype7 = type_nullable_parser_nodes__TAssign.color;
2457 idtype8 = type_nullable_parser_nodes__TAssign.id;
2458 if(var_tassignnode4 == NULL) {
2459 var6 = 1;
2460 } else {
2461 if(cltype7 >= var_tassignnode4->type->table_size) {
2462 var6 = 0;
2463 } else {
2464 var6 = var_tassignnode4->type->type_table[cltype7] == idtype8;
2465 }
2466 }
2467 if (!var6) {
2468 fprintf(stderr, "Runtime error: %s", "Assert failed");
2469 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25027);
2470 exit(1);
2471 }
2472 var_pexprnode5 = var_nodearraylist3;
2473 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
2474 cltype10 = type_nullable_parser_nodes__AExpr.color;
2475 idtype11 = type_nullable_parser_nodes__AExpr.id;
2476 if(var_pexprnode5 == NULL) {
2477 var9 = 1;
2478 } else {
2479 if(cltype10 >= var_pexprnode5->type->table_size) {
2480 var9 = 0;
2481 } else {
2482 var9 = var_pexprnode5->type->type_table[cltype10] == idtype11;
2483 }
2484 }
2485 if (!var9) {
2486 fprintf(stderr, "Runtime error: %s", "Assert failed");
2487 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25029);
2488 exit(1);
2489 }
2490 var12 = NEW_parser_nodes__AAttrAssignExpr(&type_parser_nodes__AAttrAssignExpr);
2491 ((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>*/;
2492 CHECK_NEW_parser_nodes__AAttrAssignExpr(var12);
2493 var_pexprnode1 = var12;
2494 var_node_list = var_pexprnode1;
2495 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction651> */
2496 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
2497 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
2498 RET_LABEL:;
2499 }
2500 /* method parser#ReduceAction651#action for (self: Object, Parser) */
2501 void VIRTUAL_parser__ReduceAction651__action(val* self, val* p0) {
2502 parser__ReduceAction651__action(self, p0);
2503 RET_LABEL:;
2504 }
2505 /* method parser#ReduceAction652#action for (self: ReduceAction652, Parser) */
2506 void parser__ReduceAction652__action(val* self, val* p0) {
2507 val* var_p /* var p: Parser */;
2508 val* var /* : null */;
2509 val* var_node_list /* var node_list: nullable Object */;
2510 val* var1 /* : nullable Object */;
2511 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
2512 val* var2 /* : nullable Object */;
2513 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
2514 val* var3 /* : nullable Object */;
2515 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2516 val* var4 /* : nullable Object */;
2517 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2518 val* var5 /* : nullable Object */;
2519 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2520 val* var6 /* : nullable Object */;
2521 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2522 val* var7 /* : nullable Object */;
2523 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2524 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
2525 short int var8 /* : Bool */;
2526 int cltype;
2527 int idtype;
2528 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
2529 short int var9 /* : Bool */;
2530 int cltype10;
2531 int idtype11;
2532 val* var_tassignnode4 /* var tassignnode4: nullable Object */;
2533 short int var12 /* : Bool */;
2534 int cltype13;
2535 int idtype14;
2536 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
2537 short int var15 /* : Bool */;
2538 int cltype16;
2539 int idtype17;
2540 val* var18 /* : AAttrAssignExpr */;
2541 val* var_pexprnode1 /* var pexprnode1: nullable AAttrAssignExpr */;
2542 long var19 /* : Int */;
2543 long var20 /* : Int */;
2544 var_p = p0;
2545 var = NULL;
2546 var_node_list = var;
2547 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2548 var_nodearraylist7 = var1;
2549 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2550 var_nodearraylist6 = var2;
2551 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2552 var_nodearraylist5 = var3;
2553 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2554 var_nodearraylist4 = var4;
2555 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2556 var_nodearraylist3 = var5;
2557 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2558 var_nodearraylist2 = var6;
2559 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2560 var_nodearraylist1 = var7;
2561 var_pexprnode2 = var_nodearraylist1;
2562 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2563 cltype = type_nullable_parser_nodes__AExpr.color;
2564 idtype = type_nullable_parser_nodes__AExpr.id;
2565 if(var_pexprnode2 == NULL) {
2566 var8 = 1;
2567 } else {
2568 if(cltype >= var_pexprnode2->type->table_size) {
2569 var8 = 0;
2570 } else {
2571 var8 = var_pexprnode2->type->type_table[cltype] == idtype;
2572 }
2573 }
2574 if (!var8) {
2575 fprintf(stderr, "Runtime error: %s", "Assert failed");
2576 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25053);
2577 exit(1);
2578 }
2579 var_tattridnode3 = var_nodearraylist5;
2580 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
2581 cltype10 = type_nullable_parser_nodes__TAttrid.color;
2582 idtype11 = type_nullable_parser_nodes__TAttrid.id;
2583 if(var_tattridnode3 == NULL) {
2584 var9 = 1;
2585 } else {
2586 if(cltype10 >= var_tattridnode3->type->table_size) {
2587 var9 = 0;
2588 } else {
2589 var9 = var_tattridnode3->type->type_table[cltype10] == idtype11;
2590 }
2591 }
2592 if (!var9) {
2593 fprintf(stderr, "Runtime error: %s", "Assert failed");
2594 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25055);
2595 exit(1);
2596 }
2597 var_tassignnode4 = var_nodearraylist6;
2598 /* <var_tassignnode4:nullable Object> isa nullable TAssign */
2599 cltype13 = type_nullable_parser_nodes__TAssign.color;
2600 idtype14 = type_nullable_parser_nodes__TAssign.id;
2601 if(var_tassignnode4 == NULL) {
2602 var12 = 1;
2603 } else {
2604 if(cltype13 >= var_tassignnode4->type->table_size) {
2605 var12 = 0;
2606 } else {
2607 var12 = var_tassignnode4->type->type_table[cltype13] == idtype14;
2608 }
2609 }
2610 if (!var12) {
2611 fprintf(stderr, "Runtime error: %s", "Assert failed");
2612 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25057);
2613 exit(1);
2614 }
2615 var_pexprnode5 = var_nodearraylist7;
2616 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
2617 cltype16 = type_nullable_parser_nodes__AExpr.color;
2618 idtype17 = type_nullable_parser_nodes__AExpr.id;
2619 if(var_pexprnode5 == NULL) {
2620 var15 = 1;
2621 } else {
2622 if(cltype16 >= var_pexprnode5->type->table_size) {
2623 var15 = 0;
2624 } else {
2625 var15 = var_pexprnode5->type->type_table[cltype16] == idtype17;
2626 }
2627 }
2628 if (!var15) {
2629 fprintf(stderr, "Runtime error: %s", "Assert failed");
2630 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25059);
2631 exit(1);
2632 }
2633 var18 = NEW_parser_nodes__AAttrAssignExpr(&type_parser_nodes__AAttrAssignExpr);
2634 ((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>*/;
2635 CHECK_NEW_parser_nodes__AAttrAssignExpr(var18);
2636 var_pexprnode1 = var18;
2637 var_node_list = var_pexprnode1;
2638 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction652> */
2639 var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
2640 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
2641 RET_LABEL:;
2642 }
2643 /* method parser#ReduceAction652#action for (self: Object, Parser) */
2644 void VIRTUAL_parser__ReduceAction652__action(val* self, val* p0) {
2645 parser__ReduceAction652__action(self, p0);
2646 RET_LABEL:;
2647 }
2648 /* method parser#ReduceAction653#action for (self: ReduceAction653, Parser) */
2649 void parser__ReduceAction653__action(val* self, val* p0) {
2650 val* var_p /* var p: Parser */;
2651 val* var /* : null */;
2652 val* var_node_list /* var node_list: nullable Object */;
2653 val* var1 /* : nullable Object */;
2654 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
2655 val* var2 /* : nullable Object */;
2656 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
2657 val* var3 /* : nullable Object */;
2658 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
2659 val* var4 /* : nullable Object */;
2660 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2661 val* var5 /* : nullable Object */;
2662 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2663 val* var6 /* : nullable Object */;
2664 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2665 val* var7 /* : nullable Object */;
2666 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2667 val* var8 /* : nullable Object */;
2668 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2669 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
2670 short int var9 /* : Bool */;
2671 int cltype;
2672 int idtype;
2673 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
2674 short int var10 /* : Bool */;
2675 int cltype11;
2676 int idtype12;
2677 val* var_tassignnode4 /* var tassignnode4: nullable Object */;
2678 short int var13 /* : Bool */;
2679 int cltype14;
2680 int idtype15;
2681 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
2682 short int var16 /* : Bool */;
2683 int cltype17;
2684 int idtype18;
2685 val* var19 /* : AAttrAssignExpr */;
2686 val* var_pexprnode1 /* var pexprnode1: nullable AAttrAssignExpr */;
2687 long var20 /* : Int */;
2688 long var21 /* : Int */;
2689 var_p = p0;
2690 var = NULL;
2691 var_node_list = var;
2692 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2693 var_nodearraylist8 = var1;
2694 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2695 var_nodearraylist7 = var2;
2696 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2697 var_nodearraylist6 = var3;
2698 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2699 var_nodearraylist5 = var4;
2700 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2701 var_nodearraylist4 = var5;
2702 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2703 var_nodearraylist3 = var6;
2704 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2705 var_nodearraylist2 = var7;
2706 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2707 var_nodearraylist1 = var8;
2708 var_pexprnode2 = var_nodearraylist1;
2709 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2710 cltype = type_nullable_parser_nodes__AExpr.color;
2711 idtype = type_nullable_parser_nodes__AExpr.id;
2712 if(var_pexprnode2 == NULL) {
2713 var9 = 1;
2714 } else {
2715 if(cltype >= var_pexprnode2->type->table_size) {
2716 var9 = 0;
2717 } else {
2718 var9 = var_pexprnode2->type->type_table[cltype] == idtype;
2719 }
2720 }
2721 if (!var9) {
2722 fprintf(stderr, "Runtime error: %s", "Assert failed");
2723 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25084);
2724 exit(1);
2725 }
2726 var_tattridnode3 = var_nodearraylist6;
2727 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
2728 cltype11 = type_nullable_parser_nodes__TAttrid.color;
2729 idtype12 = type_nullable_parser_nodes__TAttrid.id;
2730 if(var_tattridnode3 == NULL) {
2731 var10 = 1;
2732 } else {
2733 if(cltype11 >= var_tattridnode3->type->table_size) {
2734 var10 = 0;
2735 } else {
2736 var10 = var_tattridnode3->type->type_table[cltype11] == idtype12;
2737 }
2738 }
2739 if (!var10) {
2740 fprintf(stderr, "Runtime error: %s", "Assert failed");
2741 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25086);
2742 exit(1);
2743 }
2744 var_tassignnode4 = var_nodearraylist7;
2745 /* <var_tassignnode4:nullable Object> isa nullable TAssign */
2746 cltype14 = type_nullable_parser_nodes__TAssign.color;
2747 idtype15 = type_nullable_parser_nodes__TAssign.id;
2748 if(var_tassignnode4 == NULL) {
2749 var13 = 1;
2750 } else {
2751 if(cltype14 >= var_tassignnode4->type->table_size) {
2752 var13 = 0;
2753 } else {
2754 var13 = var_tassignnode4->type->type_table[cltype14] == idtype15;
2755 }
2756 }
2757 if (!var13) {
2758 fprintf(stderr, "Runtime error: %s", "Assert failed");
2759 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25088);
2760 exit(1);
2761 }
2762 var_pexprnode5 = var_nodearraylist8;
2763 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
2764 cltype17 = type_nullable_parser_nodes__AExpr.color;
2765 idtype18 = type_nullable_parser_nodes__AExpr.id;
2766 if(var_pexprnode5 == NULL) {
2767 var16 = 1;
2768 } else {
2769 if(cltype17 >= var_pexprnode5->type->table_size) {
2770 var16 = 0;
2771 } else {
2772 var16 = var_pexprnode5->type->type_table[cltype17] == idtype18;
2773 }
2774 }
2775 if (!var16) {
2776 fprintf(stderr, "Runtime error: %s", "Assert failed");
2777 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25090);
2778 exit(1);
2779 }
2780 var19 = NEW_parser_nodes__AAttrAssignExpr(&type_parser_nodes__AAttrAssignExpr);
2781 ((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>*/;
2782 CHECK_NEW_parser_nodes__AAttrAssignExpr(var19);
2783 var_pexprnode1 = var19;
2784 var_node_list = var_pexprnode1;
2785 var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction653> */
2786 var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on <var_p:Parser>*/;
2787 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on <var_p:Parser>*/;
2788 RET_LABEL:;
2789 }
2790 /* method parser#ReduceAction653#action for (self: Object, Parser) */
2791 void VIRTUAL_parser__ReduceAction653__action(val* self, val* p0) {
2792 parser__ReduceAction653__action(self, p0);
2793 RET_LABEL:;
2794 }
2795 /* method parser#ReduceAction655#action for (self: ReduceAction655, Parser) */
2796 void parser__ReduceAction655__action(val* self, val* p0) {
2797 val* var_p /* var p: Parser */;
2798 val* var /* : null */;
2799 val* var_node_list /* var node_list: nullable Object */;
2800 val* var1 /* : nullable Object */;
2801 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2802 val* var2 /* : nullable Object */;
2803 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2804 val* var3 /* : nullable Object */;
2805 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2806 val* var4 /* : nullable Object */;
2807 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2808 val* var5 /* : AImplicitSelfExpr */;
2809 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
2810 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
2811 short int var6 /* : Bool */;
2812 int cltype;
2813 int idtype;
2814 val* var_tassignnode4 /* var tassignnode4: nullable Object */;
2815 short int var7 /* : Bool */;
2816 int cltype8;
2817 int idtype9;
2818 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
2819 short int var10 /* : Bool */;
2820 int cltype11;
2821 int idtype12;
2822 val* var13 /* : AAttrAssignExpr */;
2823 val* var_pexprnode1 /* var pexprnode1: nullable AAttrAssignExpr */;
2824 long var14 /* : Int */;
2825 long var15 /* : Int */;
2826 var_p = p0;
2827 var = NULL;
2828 var_node_list = var;
2829 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2830 var_nodearraylist4 = var1;
2831 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2832 var_nodearraylist3 = var2;
2833 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2834 var_nodearraylist2 = var3;
2835 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2836 var_nodearraylist1 = var4;
2837 var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
2838 ((void (*)(val*))(var5->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var5) /* init_aimplicitselfexpr on <var5:AImplicitSelfExpr>*/;
2839 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var5);
2840 var_pexprnode2 = var5;
2841 var_tattridnode3 = var_nodearraylist2;
2842 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
2843 cltype = type_nullable_parser_nodes__TAttrid.color;
2844 idtype = type_nullable_parser_nodes__TAttrid.id;
2845 if(var_tattridnode3 == NULL) {
2846 var6 = 1;
2847 } else {
2848 if(cltype >= var_tattridnode3->type->table_size) {
2849 var6 = 0;
2850 } else {
2851 var6 = var_tattridnode3->type->type_table[cltype] == idtype;
2852 }
2853 }
2854 if (!var6) {
2855 fprintf(stderr, "Runtime error: %s", "Assert failed");
2856 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25112);
2857 exit(1);
2858 }
2859 var_tassignnode4 = var_nodearraylist3;
2860 /* <var_tassignnode4:nullable Object> isa nullable TAssign */
2861 cltype8 = type_nullable_parser_nodes__TAssign.color;
2862 idtype9 = type_nullable_parser_nodes__TAssign.id;
2863 if(var_tassignnode4 == NULL) {
2864 var7 = 1;
2865 } else {
2866 if(cltype8 >= var_tassignnode4->type->table_size) {
2867 var7 = 0;
2868 } else {
2869 var7 = var_tassignnode4->type->type_table[cltype8] == idtype9;
2870 }
2871 }
2872 if (!var7) {
2873 fprintf(stderr, "Runtime error: %s", "Assert failed");
2874 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25114);
2875 exit(1);
2876 }
2877 var_pexprnode5 = var_nodearraylist4;
2878 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
2879 cltype11 = type_nullable_parser_nodes__AExpr.color;
2880 idtype12 = type_nullable_parser_nodes__AExpr.id;
2881 if(var_pexprnode5 == NULL) {
2882 var10 = 1;
2883 } else {
2884 if(cltype11 >= var_pexprnode5->type->table_size) {
2885 var10 = 0;
2886 } else {
2887 var10 = var_pexprnode5->type->type_table[cltype11] == idtype12;
2888 }
2889 }
2890 if (!var10) {
2891 fprintf(stderr, "Runtime error: %s", "Assert failed");
2892 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25116);
2893 exit(1);
2894 }
2895 var13 = NEW_parser_nodes__AAttrAssignExpr(&type_parser_nodes__AAttrAssignExpr);
2896 ((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>*/;
2897 CHECK_NEW_parser_nodes__AAttrAssignExpr(var13);
2898 var_pexprnode1 = var13;
2899 var_node_list = var_pexprnode1;
2900 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction655> */
2901 var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
2902 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
2903 RET_LABEL:;
2904 }
2905 /* method parser#ReduceAction655#action for (self: Object, Parser) */
2906 void VIRTUAL_parser__ReduceAction655__action(val* self, val* p0) {
2907 parser__ReduceAction655__action(self, p0);
2908 RET_LABEL:;
2909 }
2910 /* method parser#ReduceAction656#action for (self: ReduceAction656, Parser) */
2911 void parser__ReduceAction656__action(val* self, val* p0) {
2912 val* var_p /* var p: Parser */;
2913 val* var /* : null */;
2914 val* var_node_list /* var node_list: nullable Object */;
2915 val* var1 /* : nullable Object */;
2916 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2917 val* var2 /* : nullable Object */;
2918 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2919 val* var3 /* : nullable Object */;
2920 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2921 val* var4 /* : nullable Object */;
2922 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2923 val* var5 /* : nullable Object */;
2924 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2925 val* var6 /* : AImplicitSelfExpr */;
2926 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
2927 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
2928 short int var7 /* : Bool */;
2929 int cltype;
2930 int idtype;
2931 val* var_tassignnode4 /* var tassignnode4: nullable Object */;
2932 short int var8 /* : Bool */;
2933 int cltype9;
2934 int idtype10;
2935 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
2936 short int var11 /* : Bool */;
2937 int cltype12;
2938 int idtype13;
2939 val* var14 /* : AAttrAssignExpr */;
2940 val* var_pexprnode1 /* var pexprnode1: nullable AAttrAssignExpr */;
2941 long var15 /* : Int */;
2942 long var16 /* : Int */;
2943 var_p = p0;
2944 var = NULL;
2945 var_node_list = var;
2946 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2947 var_nodearraylist5 = var1;
2948 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2949 var_nodearraylist4 = var2;
2950 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2951 var_nodearraylist3 = var3;
2952 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2953 var_nodearraylist2 = var4;
2954 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2955 var_nodearraylist1 = var5;
2956 var6 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
2957 ((void (*)(val*))(var6->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var6) /* init_aimplicitselfexpr on <var6:AImplicitSelfExpr>*/;
2958 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var6);
2959 var_pexprnode2 = var6;
2960 var_tattridnode3 = var_nodearraylist3;
2961 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
2962 cltype = type_nullable_parser_nodes__TAttrid.color;
2963 idtype = type_nullable_parser_nodes__TAttrid.id;
2964 if(var_tattridnode3 == NULL) {
2965 var7 = 1;
2966 } else {
2967 if(cltype >= var_tattridnode3->type->table_size) {
2968 var7 = 0;
2969 } else {
2970 var7 = var_tattridnode3->type->type_table[cltype] == idtype;
2971 }
2972 }
2973 if (!var7) {
2974 fprintf(stderr, "Runtime error: %s", "Assert failed");
2975 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25139);
2976 exit(1);
2977 }
2978 var_tassignnode4 = var_nodearraylist4;
2979 /* <var_tassignnode4:nullable Object> isa nullable TAssign */
2980 cltype9 = type_nullable_parser_nodes__TAssign.color;
2981 idtype10 = type_nullable_parser_nodes__TAssign.id;
2982 if(var_tassignnode4 == NULL) {
2983 var8 = 1;
2984 } else {
2985 if(cltype9 >= var_tassignnode4->type->table_size) {
2986 var8 = 0;
2987 } else {
2988 var8 = var_tassignnode4->type->type_table[cltype9] == idtype10;
2989 }
2990 }
2991 if (!var8) {
2992 fprintf(stderr, "Runtime error: %s", "Assert failed");
2993 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25141);
2994 exit(1);
2995 }
2996 var_pexprnode5 = var_nodearraylist5;
2997 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
2998 cltype12 = type_nullable_parser_nodes__AExpr.color;
2999 idtype13 = type_nullable_parser_nodes__AExpr.id;
3000 if(var_pexprnode5 == NULL) {
3001 var11 = 1;
3002 } else {
3003 if(cltype12 >= var_pexprnode5->type->table_size) {
3004 var11 = 0;
3005 } else {
3006 var11 = var_pexprnode5->type->type_table[cltype12] == idtype13;
3007 }
3008 }
3009 if (!var11) {
3010 fprintf(stderr, "Runtime error: %s", "Assert failed");
3011 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25143);
3012 exit(1);
3013 }
3014 var14 = NEW_parser_nodes__AAttrAssignExpr(&type_parser_nodes__AAttrAssignExpr);
3015 ((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>*/;
3016 CHECK_NEW_parser_nodes__AAttrAssignExpr(var14);
3017 var_pexprnode1 = var14;
3018 var_node_list = var_pexprnode1;
3019 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction656> */
3020 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
3021 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
3022 RET_LABEL:;
3023 }
3024 /* method parser#ReduceAction656#action for (self: Object, Parser) */
3025 void VIRTUAL_parser__ReduceAction656__action(val* self, val* p0) {
3026 parser__ReduceAction656__action(self, p0);
3027 RET_LABEL:;
3028 }
3029 /* method parser#ReduceAction658#action for (self: ReduceAction658, Parser) */
3030 void parser__ReduceAction658__action(val* self, val* p0) {
3031 val* var_p /* var p: Parser */;
3032 val* var /* : null */;
3033 val* var_node_list /* var node_list: nullable Object */;
3034 val* var1 /* : nullable Object */;
3035 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
3036 val* var2 /* : nullable Object */;
3037 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
3038 val* var3 /* : nullable Object */;
3039 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
3040 val* var4 /* : nullable Object */;
3041 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3042 val* var5 /* : nullable Object */;
3043 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3044 val* var6 /* : nullable Object */;
3045 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3046 val* var7 /* : nullable Object */;
3047 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3048 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
3049 short int var8 /* : Bool */;
3050 int cltype;
3051 int idtype;
3052 val* var_tidnode3 /* var tidnode3: nullable Object */;
3053 short int var9 /* : Bool */;
3054 int cltype10;
3055 int idtype11;
3056 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
3057 short int var12 /* : Bool */;
3058 int cltype13;
3059 int idtype14;
3060 val* var_tassignnode5 /* var tassignnode5: nullable Object */;
3061 short int var15 /* : Bool */;
3062 int cltype16;
3063 int idtype17;
3064 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
3065 short int var18 /* : Bool */;
3066 int cltype19;
3067 int idtype20;
3068 val* var21 /* : ACallAssignExpr */;
3069 val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */;
3070 long var22 /* : Int */;
3071 long var23 /* : Int */;
3072 var_p = p0;
3073 var = NULL;
3074 var_node_list = var;
3075 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3076 var_nodearraylist7 = var1;
3077 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3078 var_nodearraylist6 = var2;
3079 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3080 var_nodearraylist5 = var3;
3081 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3082 var_nodearraylist4 = var4;
3083 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3084 var_nodearraylist3 = var5;
3085 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3086 var_nodearraylist2 = var6;
3087 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3088 var_nodearraylist1 = var7;
3089 var_pexprnode2 = var_nodearraylist1;
3090 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
3091 cltype = type_nullable_parser_nodes__AExpr.color;
3092 idtype = type_nullable_parser_nodes__AExpr.id;
3093 if(var_pexprnode2 == NULL) {
3094 var8 = 1;
3095 } else {
3096 if(cltype >= var_pexprnode2->type->table_size) {
3097 var8 = 0;
3098 } else {
3099 var8 = var_pexprnode2->type->type_table[cltype] == idtype;
3100 }
3101 }
3102 if (!var8) {
3103 fprintf(stderr, "Runtime error: %s", "Assert failed");
3104 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25167);
3105 exit(1);
3106 }
3107 var_tidnode3 = var_nodearraylist4;
3108 /* <var_tidnode3:nullable Object> isa nullable TId */
3109 cltype10 = type_nullable_parser_nodes__TId.color;
3110 idtype11 = type_nullable_parser_nodes__TId.id;
3111 if(var_tidnode3 == NULL) {
3112 var9 = 1;
3113 } else {
3114 if(cltype10 >= var_tidnode3->type->table_size) {
3115 var9 = 0;
3116 } else {
3117 var9 = var_tidnode3->type->type_table[cltype10] == idtype11;
3118 }
3119 }
3120 if (!var9) {
3121 fprintf(stderr, "Runtime error: %s", "Assert failed");
3122 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25169);
3123 exit(1);
3124 }
3125 var_pexprsnode4 = var_nodearraylist5;
3126 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
3127 cltype13 = type_nullable_parser_nodes__AExprs.color;
3128 idtype14 = type_nullable_parser_nodes__AExprs.id;
3129 if(var_pexprsnode4 == NULL) {
3130 var12 = 1;
3131 } else {
3132 if(cltype13 >= var_pexprsnode4->type->table_size) {
3133 var12 = 0;
3134 } else {
3135 var12 = var_pexprsnode4->type->type_table[cltype13] == idtype14;
3136 }
3137 }
3138 if (!var12) {
3139 fprintf(stderr, "Runtime error: %s", "Assert failed");
3140 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25171);
3141 exit(1);
3142 }
3143 var_tassignnode5 = var_nodearraylist6;
3144 /* <var_tassignnode5:nullable Object> isa nullable TAssign */
3145 cltype16 = type_nullable_parser_nodes__TAssign.color;
3146 idtype17 = type_nullable_parser_nodes__TAssign.id;
3147 if(var_tassignnode5 == NULL) {
3148 var15 = 1;
3149 } else {
3150 if(cltype16 >= var_tassignnode5->type->table_size) {
3151 var15 = 0;
3152 } else {
3153 var15 = var_tassignnode5->type->type_table[cltype16] == idtype17;
3154 }
3155 }
3156 if (!var15) {
3157 fprintf(stderr, "Runtime error: %s", "Assert failed");
3158 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25173);
3159 exit(1);
3160 }
3161 var_pexprnode6 = var_nodearraylist7;
3162 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
3163 cltype19 = type_nullable_parser_nodes__AExpr.color;
3164 idtype20 = type_nullable_parser_nodes__AExpr.id;
3165 if(var_pexprnode6 == NULL) {
3166 var18 = 1;
3167 } else {
3168 if(cltype19 >= var_pexprnode6->type->table_size) {
3169 var18 = 0;
3170 } else {
3171 var18 = var_pexprnode6->type->type_table[cltype19] == idtype20;
3172 }
3173 }
3174 if (!var18) {
3175 fprintf(stderr, "Runtime error: %s", "Assert failed");
3176 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25175);
3177 exit(1);
3178 }
3179 var21 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr);
3180 ((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>*/;
3181 CHECK_NEW_parser_nodes__ACallAssignExpr(var21);
3182 var_pexprnode1 = var21;
3183 var_node_list = var_pexprnode1;
3184 var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction658> */
3185 var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
3186 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
3187 RET_LABEL:;
3188 }
3189 /* method parser#ReduceAction658#action for (self: Object, Parser) */
3190 void VIRTUAL_parser__ReduceAction658__action(val* self, val* p0) {
3191 parser__ReduceAction658__action(self, p0);
3192 RET_LABEL:;
3193 }
3194 /* method parser#ReduceAction659#action for (self: ReduceAction659, Parser) */
3195 void parser__ReduceAction659__action(val* self, val* p0) {
3196 val* var_p /* var p: Parser */;
3197 val* var /* : null */;
3198 val* var_node_list /* var node_list: nullable Object */;
3199 val* var1 /* : nullable Object */;
3200 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3201 val* var2 /* : nullable Object */;
3202 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3203 val* var3 /* : nullable Object */;
3204 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3205 val* var4 /* : nullable Object */;
3206 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3207 val* var5 /* : AImplicitSelfExpr */;
3208 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
3209 val* var_tidnode3 /* var tidnode3: nullable Object */;
3210 short int var6 /* : Bool */;
3211 int cltype;
3212 int idtype;
3213 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
3214 short int var7 /* : Bool */;
3215 int cltype8;
3216 int idtype9;
3217 val* var_tassignnode5 /* var tassignnode5: nullable Object */;
3218 short int var10 /* : Bool */;
3219 int cltype11;
3220 int idtype12;
3221 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
3222 short int var13 /* : Bool */;
3223 int cltype14;
3224 int idtype15;
3225 val* var16 /* : ACallAssignExpr */;
3226 val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */;
3227 long var17 /* : Int */;
3228 long var18 /* : Int */;
3229 var_p = p0;
3230 var = NULL;
3231 var_node_list = var;
3232 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3233 var_nodearraylist4 = var1;
3234 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3235 var_nodearraylist3 = var2;
3236 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3237 var_nodearraylist2 = var3;
3238 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3239 var_nodearraylist1 = var4;
3240 var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
3241 ((void (*)(val*))(var5->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var5) /* init_aimplicitselfexpr on <var5:AImplicitSelfExpr>*/;
3242 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var5);
3243 var_pexprnode2 = var5;
3244 var_tidnode3 = var_nodearraylist1;
3245 /* <var_tidnode3:nullable Object> isa nullable TId */
3246 cltype = type_nullable_parser_nodes__TId.color;
3247 idtype = type_nullable_parser_nodes__TId.id;
3248 if(var_tidnode3 == NULL) {
3249 var6 = 1;
3250 } else {
3251 if(cltype >= var_tidnode3->type->table_size) {
3252 var6 = 0;
3253 } else {
3254 var6 = var_tidnode3->type->type_table[cltype] == idtype;
3255 }
3256 }
3257 if (!var6) {
3258 fprintf(stderr, "Runtime error: %s", "Assert failed");
3259 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25198);
3260 exit(1);
3261 }
3262 var_pexprsnode4 = var_nodearraylist2;
3263 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
3264 cltype8 = type_nullable_parser_nodes__AExprs.color;
3265 idtype9 = type_nullable_parser_nodes__AExprs.id;
3266 if(var_pexprsnode4 == NULL) {
3267 var7 = 1;
3268 } else {
3269 if(cltype8 >= var_pexprsnode4->type->table_size) {
3270 var7 = 0;
3271 } else {
3272 var7 = var_pexprsnode4->type->type_table[cltype8] == idtype9;
3273 }
3274 }
3275 if (!var7) {
3276 fprintf(stderr, "Runtime error: %s", "Assert failed");
3277 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25200);
3278 exit(1);
3279 }
3280 var_tassignnode5 = var_nodearraylist3;
3281 /* <var_tassignnode5:nullable Object> isa nullable TAssign */
3282 cltype11 = type_nullable_parser_nodes__TAssign.color;
3283 idtype12 = type_nullable_parser_nodes__TAssign.id;
3284 if(var_tassignnode5 == NULL) {
3285 var10 = 1;
3286 } else {
3287 if(cltype11 >= var_tassignnode5->type->table_size) {
3288 var10 = 0;
3289 } else {
3290 var10 = var_tassignnode5->type->type_table[cltype11] == idtype12;
3291 }
3292 }
3293 if (!var10) {
3294 fprintf(stderr, "Runtime error: %s", "Assert failed");
3295 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25202);
3296 exit(1);
3297 }
3298 var_pexprnode6 = var_nodearraylist4;
3299 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
3300 cltype14 = type_nullable_parser_nodes__AExpr.color;
3301 idtype15 = type_nullable_parser_nodes__AExpr.id;
3302 if(var_pexprnode6 == NULL) {
3303 var13 = 1;
3304 } else {
3305 if(cltype14 >= var_pexprnode6->type->table_size) {
3306 var13 = 0;
3307 } else {
3308 var13 = var_pexprnode6->type->type_table[cltype14] == idtype15;
3309 }
3310 }
3311 if (!var13) {
3312 fprintf(stderr, "Runtime error: %s", "Assert failed");
3313 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25204);
3314 exit(1);
3315 }
3316 var16 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr);
3317 ((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>*/;
3318 CHECK_NEW_parser_nodes__ACallAssignExpr(var16);
3319 var_pexprnode1 = var16;
3320 var_node_list = var_pexprnode1;
3321 var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction659> */
3322 var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
3323 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
3324 RET_LABEL:;
3325 }
3326 /* method parser#ReduceAction659#action for (self: Object, Parser) */
3327 void VIRTUAL_parser__ReduceAction659__action(val* self, val* p0) {
3328 parser__ReduceAction659__action(self, p0);
3329 RET_LABEL:;
3330 }
3331 /* method parser#ReduceAction660#action for (self: ReduceAction660, Parser) */
3332 void parser__ReduceAction660__action(val* self, val* p0) {
3333 val* var_p /* var p: Parser */;
3334 val* var /* : null */;
3335 val* var_node_list /* var node_list: nullable Object */;
3336 val* var1 /* : nullable Object */;
3337 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
3338 val* var2 /* : nullable Object */;
3339 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
3340 val* var3 /* : nullable Object */;
3341 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
3342 val* var4 /* : nullable Object */;
3343 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
3344 val* var5 /* : nullable Object */;
3345 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3346 val* var6 /* : nullable Object */;
3347 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3348 val* var7 /* : nullable Object */;
3349 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3350 val* var8 /* : nullable Object */;
3351 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3352 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
3353 short int var9 /* : Bool */;
3354 int cltype;
3355 int idtype;
3356 val* var_tidnode3 /* var tidnode3: nullable Object */;
3357 short int var10 /* : Bool */;
3358 int cltype11;
3359 int idtype12;
3360 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
3361 short int var13 /* : Bool */;
3362 int cltype14;
3363 int idtype15;
3364 val* var_tassignnode5 /* var tassignnode5: nullable Object */;
3365 short int var16 /* : Bool */;
3366 int cltype17;
3367 int idtype18;
3368 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
3369 short int var19 /* : Bool */;
3370 int cltype20;
3371 int idtype21;
3372 val* var22 /* : ACallAssignExpr */;
3373 val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */;
3374 long var23 /* : Int */;
3375 long var24 /* : Int */;
3376 var_p = p0;
3377 var = NULL;
3378 var_node_list = var;
3379 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3380 var_nodearraylist8 = var1;
3381 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3382 var_nodearraylist7 = var2;
3383 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3384 var_nodearraylist6 = var3;
3385 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3386 var_nodearraylist5 = var4;
3387 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3388 var_nodearraylist4 = var5;
3389 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3390 var_nodearraylist3 = var6;
3391 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3392 var_nodearraylist2 = var7;
3393 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3394 var_nodearraylist1 = var8;
3395 var_pexprnode2 = var_nodearraylist1;
3396 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
3397 cltype = type_nullable_parser_nodes__AExpr.color;
3398 idtype = type_nullable_parser_nodes__AExpr.id;
3399 if(var_pexprnode2 == NULL) {
3400 var9 = 1;
3401 } else {
3402 if(cltype >= var_pexprnode2->type->table_size) {
3403 var9 = 0;
3404 } else {
3405 var9 = var_pexprnode2->type->type_table[cltype] == idtype;
3406 }
3407 }
3408 if (!var9) {
3409 fprintf(stderr, "Runtime error: %s", "Assert failed");
3410 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25230);
3411 exit(1);
3412 }
3413 var_tidnode3 = var_nodearraylist5;
3414 /* <var_tidnode3:nullable Object> isa nullable TId */
3415 cltype11 = type_nullable_parser_nodes__TId.color;
3416 idtype12 = type_nullable_parser_nodes__TId.id;
3417 if(var_tidnode3 == NULL) {
3418 var10 = 1;
3419 } else {
3420 if(cltype11 >= var_tidnode3->type->table_size) {
3421 var10 = 0;
3422 } else {
3423 var10 = var_tidnode3->type->type_table[cltype11] == idtype12;
3424 }
3425 }
3426 if (!var10) {
3427 fprintf(stderr, "Runtime error: %s", "Assert failed");
3428 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25232);
3429 exit(1);
3430 }
3431 var_pexprsnode4 = var_nodearraylist6;
3432 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
3433 cltype14 = type_nullable_parser_nodes__AExprs.color;
3434 idtype15 = type_nullable_parser_nodes__AExprs.id;
3435 if(var_pexprsnode4 == NULL) {
3436 var13 = 1;
3437 } else {
3438 if(cltype14 >= var_pexprsnode4->type->table_size) {
3439 var13 = 0;
3440 } else {
3441 var13 = var_pexprsnode4->type->type_table[cltype14] == idtype15;
3442 }
3443 }
3444 if (!var13) {
3445 fprintf(stderr, "Runtime error: %s", "Assert failed");
3446 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25234);
3447 exit(1);
3448 }
3449 var_tassignnode5 = var_nodearraylist7;
3450 /* <var_tassignnode5:nullable Object> isa nullable TAssign */
3451 cltype17 = type_nullable_parser_nodes__TAssign.color;
3452 idtype18 = type_nullable_parser_nodes__TAssign.id;
3453 if(var_tassignnode5 == NULL) {
3454 var16 = 1;
3455 } else {
3456 if(cltype17 >= var_tassignnode5->type->table_size) {
3457 var16 = 0;
3458 } else {
3459 var16 = var_tassignnode5->type->type_table[cltype17] == idtype18;
3460 }
3461 }
3462 if (!var16) {
3463 fprintf(stderr, "Runtime error: %s", "Assert failed");
3464 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25236);
3465 exit(1);
3466 }
3467 var_pexprnode6 = var_nodearraylist8;
3468 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
3469 cltype20 = type_nullable_parser_nodes__AExpr.color;
3470 idtype21 = type_nullable_parser_nodes__AExpr.id;
3471 if(var_pexprnode6 == NULL) {
3472 var19 = 1;
3473 } else {
3474 if(cltype20 >= var_pexprnode6->type->table_size) {
3475 var19 = 0;
3476 } else {
3477 var19 = var_pexprnode6->type->type_table[cltype20] == idtype21;
3478 }
3479 }
3480 if (!var19) {
3481 fprintf(stderr, "Runtime error: %s", "Assert failed");
3482 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25238);
3483 exit(1);
3484 }
3485 var22 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr);
3486 ((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>*/;
3487 CHECK_NEW_parser_nodes__ACallAssignExpr(var22);
3488 var_pexprnode1 = var22;
3489 var_node_list = var_pexprnode1;
3490 var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction660> */
3491 var24 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var23) /* go_to on <var_p:Parser>*/;
3492 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var24, var_node_list) /* push on <var_p:Parser>*/;
3493 RET_LABEL:;
3494 }
3495 /* method parser#ReduceAction660#action for (self: Object, Parser) */
3496 void VIRTUAL_parser__ReduceAction660__action(val* self, val* p0) {
3497 parser__ReduceAction660__action(self, p0);
3498 RET_LABEL:;
3499 }
3500 /* method parser#ReduceAction661#action for (self: ReduceAction661, Parser) */
3501 void parser__ReduceAction661__action(val* self, val* p0) {
3502 val* var_p /* var p: Parser */;
3503 val* var /* : null */;
3504 val* var_node_list /* var node_list: nullable Object */;
3505 val* var1 /* : nullable Object */;
3506 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
3507 val* var2 /* : nullable Object */;
3508 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
3509 val* var3 /* : nullable Object */;
3510 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
3511 val* var4 /* : nullable Object */;
3512 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
3513 val* var5 /* : nullable Object */;
3514 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
3515 val* var6 /* : nullable Object */;
3516 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3517 val* var7 /* : nullable Object */;
3518 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3519 val* var8 /* : nullable Object */;
3520 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3521 val* var9 /* : nullable Object */;
3522 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3523 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
3524 short int var10 /* : Bool */;
3525 int cltype;
3526 int idtype;
3527 val* var_tidnode3 /* var tidnode3: nullable Object */;
3528 short int var11 /* : Bool */;
3529 int cltype12;
3530 int idtype13;
3531 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
3532 short int var14 /* : Bool */;
3533 int cltype15;
3534 int idtype16;
3535 val* var_tassignnode5 /* var tassignnode5: nullable Object */;
3536 short int var17 /* : Bool */;
3537 int cltype18;
3538 int idtype19;
3539 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
3540 short int var20 /* : Bool */;
3541 int cltype21;
3542 int idtype22;
3543 val* var23 /* : ACallAssignExpr */;
3544 val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */;
3545 long var24 /* : Int */;
3546 long var25 /* : Int */;
3547 var_p = p0;
3548 var = NULL;
3549 var_node_list = var;
3550 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3551 var_nodearraylist9 = var1;
3552 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3553 var_nodearraylist8 = var2;
3554 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3555 var_nodearraylist7 = var3;
3556 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3557 var_nodearraylist6 = var4;
3558 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3559 var_nodearraylist5 = var5;
3560 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3561 var_nodearraylist4 = var6;
3562 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3563 var_nodearraylist3 = var7;
3564 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3565 var_nodearraylist2 = var8;
3566 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3567 var_nodearraylist1 = var9;
3568 var_pexprnode2 = var_nodearraylist1;
3569 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
3570 cltype = type_nullable_parser_nodes__AExpr.color;
3571 idtype = type_nullable_parser_nodes__AExpr.id;
3572 if(var_pexprnode2 == NULL) {
3573 var10 = 1;
3574 } else {
3575 if(cltype >= var_pexprnode2->type->table_size) {
3576 var10 = 0;
3577 } else {
3578 var10 = var_pexprnode2->type->type_table[cltype] == idtype;
3579 }
3580 }
3581 if (!var10) {
3582 fprintf(stderr, "Runtime error: %s", "Assert failed");
3583 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25265);
3584 exit(1);
3585 }
3586 var_tidnode3 = var_nodearraylist6;
3587 /* <var_tidnode3:nullable Object> isa nullable TId */
3588 cltype12 = type_nullable_parser_nodes__TId.color;
3589 idtype13 = type_nullable_parser_nodes__TId.id;
3590 if(var_tidnode3 == NULL) {
3591 var11 = 1;
3592 } else {
3593 if(cltype12 >= var_tidnode3->type->table_size) {
3594 var11 = 0;
3595 } else {
3596 var11 = var_tidnode3->type->type_table[cltype12] == idtype13;
3597 }
3598 }
3599 if (!var11) {
3600 fprintf(stderr, "Runtime error: %s", "Assert failed");
3601 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25267);
3602 exit(1);
3603 }
3604 var_pexprsnode4 = var_nodearraylist7;
3605 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
3606 cltype15 = type_nullable_parser_nodes__AExprs.color;
3607 idtype16 = type_nullable_parser_nodes__AExprs.id;
3608 if(var_pexprsnode4 == NULL) {
3609 var14 = 1;
3610 } else {
3611 if(cltype15 >= var_pexprsnode4->type->table_size) {
3612 var14 = 0;
3613 } else {
3614 var14 = var_pexprsnode4->type->type_table[cltype15] == idtype16;
3615 }
3616 }
3617 if (!var14) {
3618 fprintf(stderr, "Runtime error: %s", "Assert failed");
3619 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25269);
3620 exit(1);
3621 }
3622 var_tassignnode5 = var_nodearraylist8;
3623 /* <var_tassignnode5:nullable Object> isa nullable TAssign */
3624 cltype18 = type_nullable_parser_nodes__TAssign.color;
3625 idtype19 = type_nullable_parser_nodes__TAssign.id;
3626 if(var_tassignnode5 == NULL) {
3627 var17 = 1;
3628 } else {
3629 if(cltype18 >= var_tassignnode5->type->table_size) {
3630 var17 = 0;
3631 } else {
3632 var17 = var_tassignnode5->type->type_table[cltype18] == idtype19;
3633 }
3634 }
3635 if (!var17) {
3636 fprintf(stderr, "Runtime error: %s", "Assert failed");
3637 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25271);
3638 exit(1);
3639 }
3640 var_pexprnode6 = var_nodearraylist9;
3641 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
3642 cltype21 = type_nullable_parser_nodes__AExpr.color;
3643 idtype22 = type_nullable_parser_nodes__AExpr.id;
3644 if(var_pexprnode6 == NULL) {
3645 var20 = 1;
3646 } else {
3647 if(cltype21 >= var_pexprnode6->type->table_size) {
3648 var20 = 0;
3649 } else {
3650 var20 = var_pexprnode6->type->type_table[cltype21] == idtype22;
3651 }
3652 }
3653 if (!var20) {
3654 fprintf(stderr, "Runtime error: %s", "Assert failed");
3655 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25273);
3656 exit(1);
3657 }
3658 var23 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr);
3659 ((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>*/;
3660 CHECK_NEW_parser_nodes__ACallAssignExpr(var23);
3661 var_pexprnode1 = var23;
3662 var_node_list = var_pexprnode1;
3663 var24 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction661> */
3664 var25 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var24) /* go_to on <var_p:Parser>*/;
3665 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var25, var_node_list) /* push on <var_p:Parser>*/;
3666 RET_LABEL:;
3667 }
3668 /* method parser#ReduceAction661#action for (self: Object, Parser) */
3669 void VIRTUAL_parser__ReduceAction661__action(val* self, val* p0) {
3670 parser__ReduceAction661__action(self, p0);
3671 RET_LABEL:;
3672 }
3673 /* method parser#ReduceAction663#action for (self: ReduceAction663, Parser) */
3674 void parser__ReduceAction663__action(val* self, val* p0) {
3675 val* var_p /* var p: Parser */;
3676 val* var /* : null */;
3677 val* var_node_list /* var node_list: nullable Object */;
3678 val* var1 /* : nullable Object */;
3679 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
3680 val* var2 /* : nullable Object */;
3681 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3682 val* var3 /* : nullable Object */;
3683 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3684 val* var4 /* : nullable Object */;
3685 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3686 val* var5 /* : nullable Object */;
3687 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3688 val* var6 /* : AImplicitSelfExpr */;
3689 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
3690 val* var_tidnode3 /* var tidnode3: nullable Object */;
3691 short int var7 /* : Bool */;
3692 int cltype;
3693 int idtype;
3694 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
3695 short int var8 /* : Bool */;
3696 int cltype9;
3697 int idtype10;
3698 val* var_tassignnode5 /* var tassignnode5: nullable Object */;
3699 short int var11 /* : Bool */;
3700 int cltype12;
3701 int idtype13;
3702 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
3703 short int var14 /* : Bool */;
3704 int cltype15;
3705 int idtype16;
3706 val* var17 /* : ACallAssignExpr */;
3707 val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */;
3708 long var18 /* : Int */;
3709 long var19 /* : Int */;
3710 var_p = p0;
3711 var = NULL;
3712 var_node_list = var;
3713 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3714 var_nodearraylist5 = var1;
3715 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3716 var_nodearraylist4 = var2;
3717 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3718 var_nodearraylist3 = var3;
3719 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3720 var_nodearraylist2 = var4;
3721 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3722 var_nodearraylist1 = var5;
3723 var6 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
3724 ((void (*)(val*))(var6->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var6) /* init_aimplicitselfexpr on <var6:AImplicitSelfExpr>*/;
3725 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var6);
3726 var_pexprnode2 = var6;
3727 var_tidnode3 = var_nodearraylist2;
3728 /* <var_tidnode3:nullable Object> isa nullable TId */
3729 cltype = type_nullable_parser_nodes__TId.color;
3730 idtype = type_nullable_parser_nodes__TId.id;
3731 if(var_tidnode3 == NULL) {
3732 var7 = 1;
3733 } else {
3734 if(cltype >= var_tidnode3->type->table_size) {
3735 var7 = 0;
3736 } else {
3737 var7 = var_tidnode3->type->type_table[cltype] == idtype;
3738 }
3739 }
3740 if (!var7) {
3741 fprintf(stderr, "Runtime error: %s", "Assert failed");
3742 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25297);
3743 exit(1);
3744 }
3745 var_pexprsnode4 = var_nodearraylist3;
3746 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
3747 cltype9 = type_nullable_parser_nodes__AExprs.color;
3748 idtype10 = type_nullable_parser_nodes__AExprs.id;
3749 if(var_pexprsnode4 == NULL) {
3750 var8 = 1;
3751 } else {
3752 if(cltype9 >= var_pexprsnode4->type->table_size) {
3753 var8 = 0;
3754 } else {
3755 var8 = var_pexprsnode4->type->type_table[cltype9] == idtype10;
3756 }
3757 }
3758 if (!var8) {
3759 fprintf(stderr, "Runtime error: %s", "Assert failed");
3760 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25299);
3761 exit(1);
3762 }
3763 var_tassignnode5 = var_nodearraylist4;
3764 /* <var_tassignnode5:nullable Object> isa nullable TAssign */
3765 cltype12 = type_nullable_parser_nodes__TAssign.color;
3766 idtype13 = type_nullable_parser_nodes__TAssign.id;
3767 if(var_tassignnode5 == NULL) {
3768 var11 = 1;
3769 } else {
3770 if(cltype12 >= var_tassignnode5->type->table_size) {
3771 var11 = 0;
3772 } else {
3773 var11 = var_tassignnode5->type->type_table[cltype12] == idtype13;
3774 }
3775 }
3776 if (!var11) {
3777 fprintf(stderr, "Runtime error: %s", "Assert failed");
3778 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25301);
3779 exit(1);
3780 }
3781 var_pexprnode6 = var_nodearraylist5;
3782 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
3783 cltype15 = type_nullable_parser_nodes__AExpr.color;
3784 idtype16 = type_nullable_parser_nodes__AExpr.id;
3785 if(var_pexprnode6 == NULL) {
3786 var14 = 1;
3787 } else {
3788 if(cltype15 >= var_pexprnode6->type->table_size) {
3789 var14 = 0;
3790 } else {
3791 var14 = var_pexprnode6->type->type_table[cltype15] == idtype16;
3792 }
3793 }
3794 if (!var14) {
3795 fprintf(stderr, "Runtime error: %s", "Assert failed");
3796 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25303);
3797 exit(1);
3798 }
3799 var17 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr);
3800 ((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>*/;
3801 CHECK_NEW_parser_nodes__ACallAssignExpr(var17);
3802 var_pexprnode1 = var17;
3803 var_node_list = var_pexprnode1;
3804 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction663> */
3805 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
3806 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
3807 RET_LABEL:;
3808 }
3809 /* method parser#ReduceAction663#action for (self: Object, Parser) */
3810 void VIRTUAL_parser__ReduceAction663__action(val* self, val* p0) {
3811 parser__ReduceAction663__action(self, p0);
3812 RET_LABEL:;
3813 }
3814 /* method parser#ReduceAction664#action for (self: ReduceAction664, Parser) */
3815 void parser__ReduceAction664__action(val* self, val* p0) {
3816 val* var_p /* var p: Parser */;
3817 val* var /* : null */;
3818 val* var_node_list /* var node_list: nullable Object */;
3819 val* var1 /* : nullable Object */;
3820 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
3821 val* var2 /* : nullable Object */;
3822 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
3823 val* var3 /* : nullable Object */;
3824 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3825 val* var4 /* : nullable Object */;
3826 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3827 val* var5 /* : nullable Object */;
3828 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3829 val* var6 /* : nullable Object */;
3830 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3831 val* var7 /* : AImplicitSelfExpr */;
3832 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
3833 val* var_tidnode3 /* var tidnode3: nullable Object */;
3834 short int var8 /* : Bool */;
3835 int cltype;
3836 int idtype;
3837 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
3838 short int var9 /* : Bool */;
3839 int cltype10;
3840 int idtype11;
3841 val* var_tassignnode5 /* var tassignnode5: nullable Object */;
3842 short int var12 /* : Bool */;
3843 int cltype13;
3844 int idtype14;
3845 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
3846 short int var15 /* : Bool */;
3847 int cltype16;
3848 int idtype17;
3849 val* var18 /* : ACallAssignExpr */;
3850 val* var_pexprnode1 /* var pexprnode1: nullable ACallAssignExpr */;
3851 long var19 /* : Int */;
3852 long var20 /* : Int */;
3853 var_p = p0;
3854 var = NULL;
3855 var_node_list = var;
3856 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3857 var_nodearraylist6 = var1;
3858 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3859 var_nodearraylist5 = var2;
3860 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3861 var_nodearraylist4 = var3;
3862 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3863 var_nodearraylist3 = var4;
3864 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3865 var_nodearraylist2 = var5;
3866 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3867 var_nodearraylist1 = var6;
3868 var7 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
3869 ((void (*)(val*))(var7->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var7) /* init_aimplicitselfexpr on <var7:AImplicitSelfExpr>*/;
3870 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var7);
3871 var_pexprnode2 = var7;
3872 var_tidnode3 = var_nodearraylist3;
3873 /* <var_tidnode3:nullable Object> isa nullable TId */
3874 cltype = type_nullable_parser_nodes__TId.color;
3875 idtype = type_nullable_parser_nodes__TId.id;
3876 if(var_tidnode3 == NULL) {
3877 var8 = 1;
3878 } else {
3879 if(cltype >= var_tidnode3->type->table_size) {
3880 var8 = 0;
3881 } else {
3882 var8 = var_tidnode3->type->type_table[cltype] == idtype;
3883 }
3884 }
3885 if (!var8) {
3886 fprintf(stderr, "Runtime error: %s", "Assert failed");
3887 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25328);
3888 exit(1);
3889 }
3890 var_pexprsnode4 = var_nodearraylist4;
3891 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
3892 cltype10 = type_nullable_parser_nodes__AExprs.color;
3893 idtype11 = type_nullable_parser_nodes__AExprs.id;
3894 if(var_pexprsnode4 == NULL) {
3895 var9 = 1;
3896 } else {
3897 if(cltype10 >= var_pexprsnode4->type->table_size) {
3898 var9 = 0;
3899 } else {
3900 var9 = var_pexprsnode4->type->type_table[cltype10] == idtype11;
3901 }
3902 }
3903 if (!var9) {
3904 fprintf(stderr, "Runtime error: %s", "Assert failed");
3905 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25330);
3906 exit(1);
3907 }
3908 var_tassignnode5 = var_nodearraylist5;
3909 /* <var_tassignnode5:nullable Object> isa nullable TAssign */
3910 cltype13 = type_nullable_parser_nodes__TAssign.color;
3911 idtype14 = type_nullable_parser_nodes__TAssign.id;
3912 if(var_tassignnode5 == NULL) {
3913 var12 = 1;
3914 } else {
3915 if(cltype13 >= var_tassignnode5->type->table_size) {
3916 var12 = 0;
3917 } else {
3918 var12 = var_tassignnode5->type->type_table[cltype13] == idtype14;
3919 }
3920 }
3921 if (!var12) {
3922 fprintf(stderr, "Runtime error: %s", "Assert failed");
3923 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25332);
3924 exit(1);
3925 }
3926 var_pexprnode6 = var_nodearraylist6;
3927 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
3928 cltype16 = type_nullable_parser_nodes__AExpr.color;
3929 idtype17 = type_nullable_parser_nodes__AExpr.id;
3930 if(var_pexprnode6 == NULL) {
3931 var15 = 1;
3932 } else {
3933 if(cltype16 >= var_pexprnode6->type->table_size) {
3934 var15 = 0;
3935 } else {
3936 var15 = var_pexprnode6->type->type_table[cltype16] == idtype17;
3937 }
3938 }
3939 if (!var15) {
3940 fprintf(stderr, "Runtime error: %s", "Assert failed");
3941 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25334);
3942 exit(1);
3943 }
3944 var18 = NEW_parser_nodes__ACallAssignExpr(&type_parser_nodes__ACallAssignExpr);
3945 ((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>*/;
3946 CHECK_NEW_parser_nodes__ACallAssignExpr(var18);
3947 var_pexprnode1 = var18;
3948 var_node_list = var_pexprnode1;
3949 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction664> */
3950 var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
3951 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
3952 RET_LABEL:;
3953 }
3954 /* method parser#ReduceAction664#action for (self: Object, Parser) */
3955 void VIRTUAL_parser__ReduceAction664__action(val* self, val* p0) {
3956 parser__ReduceAction664__action(self, p0);
3957 RET_LABEL:;
3958 }
3959 /* method parser#ReduceAction666#action for (self: ReduceAction666, Parser) */
3960 void parser__ReduceAction666__action(val* self, val* p0) {
3961 val* var_p /* var p: Parser */;
3962 val* var /* : null */;
3963 val* var_node_list /* var node_list: nullable Object */;
3964 val* var1 /* : nullable Object */;
3965 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3966 val* var2 /* : nullable Object */;
3967 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3968 val* var3 /* : nullable Object */;
3969 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3970 val* var4 /* : nullable Object */;
3971 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3972 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
3973 short int var5 /* : Bool */;
3974 int cltype;
3975 int idtype;
3976 val* var_pexprsnode3 /* var pexprsnode3: nullable Object */;
3977 short int var6 /* : Bool */;
3978 int cltype7;
3979 int idtype8;
3980 val* var_tassignnode4 /* var tassignnode4: nullable Object */;
3981 short int var9 /* : Bool */;
3982 int cltype10;
3983 int idtype11;
3984 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
3985 short int var12 /* : Bool */;
3986 int cltype13;
3987 int idtype14;
3988 val* var15 /* : ABraAssignExpr */;
3989 val* var_pexprnode1 /* var pexprnode1: nullable ABraAssignExpr */;
3990 long var16 /* : Int */;
3991 long var17 /* : Int */;
3992 var_p = p0;
3993 var = NULL;
3994 var_node_list = var;
3995 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3996 var_nodearraylist4 = var1;
3997 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3998 var_nodearraylist3 = var2;
3999 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4000 var_nodearraylist2 = var3;
4001 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4002 var_nodearraylist1 = var4;
4003 var_pexprnode2 = var_nodearraylist1;
4004 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
4005 cltype = type_nullable_parser_nodes__AExpr.color;
4006 idtype = type_nullable_parser_nodes__AExpr.id;
4007 if(var_pexprnode2 == NULL) {
4008 var5 = 1;
4009 } else {
4010 if(cltype >= var_pexprnode2->type->table_size) {
4011 var5 = 0;
4012 } else {
4013 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
4014 }
4015 }
4016 if (!var5) {
4017 fprintf(stderr, "Runtime error: %s", "Assert failed");
4018 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25356);
4019 exit(1);
4020 }
4021 var_pexprsnode3 = var_nodearraylist2;
4022 /* <var_pexprsnode3:nullable Object> isa nullable AExprs */
4023 cltype7 = type_nullable_parser_nodes__AExprs.color;
4024 idtype8 = type_nullable_parser_nodes__AExprs.id;
4025 if(var_pexprsnode3 == NULL) {
4026 var6 = 1;
4027 } else {
4028 if(cltype7 >= var_pexprsnode3->type->table_size) {
4029 var6 = 0;
4030 } else {
4031 var6 = var_pexprsnode3->type->type_table[cltype7] == idtype8;
4032 }
4033 }
4034 if (!var6) {
4035 fprintf(stderr, "Runtime error: %s", "Assert failed");
4036 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25358);
4037 exit(1);
4038 }
4039 var_tassignnode4 = var_nodearraylist3;
4040 /* <var_tassignnode4:nullable Object> isa nullable TAssign */
4041 cltype10 = type_nullable_parser_nodes__TAssign.color;
4042 idtype11 = type_nullable_parser_nodes__TAssign.id;
4043 if(var_tassignnode4 == NULL) {
4044 var9 = 1;
4045 } else {
4046 if(cltype10 >= var_tassignnode4->type->table_size) {
4047 var9 = 0;
4048 } else {
4049 var9 = var_tassignnode4->type->type_table[cltype10] == idtype11;
4050 }
4051 }
4052 if (!var9) {
4053 fprintf(stderr, "Runtime error: %s", "Assert failed");
4054 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25360);
4055 exit(1);
4056 }
4057 var_pexprnode5 = var_nodearraylist4;
4058 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
4059 cltype13 = type_nullable_parser_nodes__AExpr.color;
4060 idtype14 = type_nullable_parser_nodes__AExpr.id;
4061 if(var_pexprnode5 == NULL) {
4062 var12 = 1;
4063 } else {
4064 if(cltype13 >= var_pexprnode5->type->table_size) {
4065 var12 = 0;
4066 } else {
4067 var12 = var_pexprnode5->type->type_table[cltype13] == idtype14;
4068 }
4069 }
4070 if (!var12) {
4071 fprintf(stderr, "Runtime error: %s", "Assert failed");
4072 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25362);
4073 exit(1);
4074 }
4075 var15 = NEW_parser_nodes__ABraAssignExpr(&type_parser_nodes__ABraAssignExpr);
4076 ((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>*/;
4077 CHECK_NEW_parser_nodes__ABraAssignExpr(var15);
4078 var_pexprnode1 = var15;
4079 var_node_list = var_pexprnode1;
4080 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction666> */
4081 var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
4082 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
4083 RET_LABEL:;
4084 }
4085 /* method parser#ReduceAction666#action for (self: Object, Parser) */
4086 void VIRTUAL_parser__ReduceAction666__action(val* self, val* p0) {
4087 parser__ReduceAction666__action(self, p0);
4088 RET_LABEL:;
4089 }
4090 /* method parser#ReduceAction667#action for (self: ReduceAction667, Parser) */
4091 void parser__ReduceAction667__action(val* self, val* p0) {
4092 val* var_p /* var p: Parser */;
4093 val* var /* : null */;
4094 val* var_node_list /* var node_list: nullable Object */;
4095 val* var1 /* : nullable Object */;
4096 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4097 val* var2 /* : nullable Object */;
4098 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4099 val* var3 /* : nullable Object */;
4100 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4101 val* var4 /* : nullable Object */;
4102 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4103 val* var5 /* : nullable Object */;
4104 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4105 val* var6 /* : nullable Object */;
4106 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4107 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
4108 short int var7 /* : Bool */;
4109 int cltype;
4110 int idtype;
4111 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
4112 short int var8 /* : Bool */;
4113 int cltype9;
4114 int idtype10;
4115 val* var_passignopnode4 /* var passignopnode4: nullable Object */;
4116 short int var11 /* : Bool */;
4117 int cltype12;
4118 int idtype13;
4119 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
4120 short int var14 /* : Bool */;
4121 int cltype15;
4122 int idtype16;
4123 val* var17 /* : AAttrReassignExpr */;
4124 val* var_pexprnode1 /* var pexprnode1: nullable AAttrReassignExpr */;
4125 long var18 /* : Int */;
4126 long var19 /* : Int */;
4127 var_p = p0;
4128 var = NULL;
4129 var_node_list = var;
4130 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4131 var_nodearraylist6 = var1;
4132 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4133 var_nodearraylist5 = var2;
4134 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4135 var_nodearraylist4 = var3;
4136 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4137 var_nodearraylist3 = var4;
4138 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4139 var_nodearraylist2 = var5;
4140 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4141 var_nodearraylist1 = var6;
4142 var_pexprnode2 = var_nodearraylist1;
4143 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
4144 cltype = type_nullable_parser_nodes__AExpr.color;
4145 idtype = type_nullable_parser_nodes__AExpr.id;
4146 if(var_pexprnode2 == NULL) {
4147 var7 = 1;
4148 } else {
4149 if(cltype >= var_pexprnode2->type->table_size) {
4150 var7 = 0;
4151 } else {
4152 var7 = var_pexprnode2->type->type_table[cltype] == idtype;
4153 }
4154 }
4155 if (!var7) {
4156 fprintf(stderr, "Runtime error: %s", "Assert failed");
4157 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25385);
4158 exit(1);
4159 }
4160 var_tattridnode3 = var_nodearraylist4;
4161 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
4162 cltype9 = type_nullable_parser_nodes__TAttrid.color;
4163 idtype10 = type_nullable_parser_nodes__TAttrid.id;
4164 if(var_tattridnode3 == NULL) {
4165 var8 = 1;
4166 } else {
4167 if(cltype9 >= var_tattridnode3->type->table_size) {
4168 var8 = 0;
4169 } else {
4170 var8 = var_tattridnode3->type->type_table[cltype9] == idtype10;
4171 }
4172 }
4173 if (!var8) {
4174 fprintf(stderr, "Runtime error: %s", "Assert failed");
4175 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25387);
4176 exit(1);
4177 }
4178 var_passignopnode4 = var_nodearraylist5;
4179 /* <var_passignopnode4:nullable Object> isa nullable AAssignOp */
4180 cltype12 = type_nullable_parser_nodes__AAssignOp.color;
4181 idtype13 = type_nullable_parser_nodes__AAssignOp.id;
4182 if(var_passignopnode4 == NULL) {
4183 var11 = 1;
4184 } else {
4185 if(cltype12 >= var_passignopnode4->type->table_size) {
4186 var11 = 0;
4187 } else {
4188 var11 = var_passignopnode4->type->type_table[cltype12] == idtype13;
4189 }
4190 }
4191 if (!var11) {
4192 fprintf(stderr, "Runtime error: %s", "Assert failed");
4193 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25389);
4194 exit(1);
4195 }
4196 var_pexprnode5 = var_nodearraylist6;
4197 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
4198 cltype15 = type_nullable_parser_nodes__AExpr.color;
4199 idtype16 = type_nullable_parser_nodes__AExpr.id;
4200 if(var_pexprnode5 == NULL) {
4201 var14 = 1;
4202 } else {
4203 if(cltype15 >= var_pexprnode5->type->table_size) {
4204 var14 = 0;
4205 } else {
4206 var14 = var_pexprnode5->type->type_table[cltype15] == idtype16;
4207 }
4208 }
4209 if (!var14) {
4210 fprintf(stderr, "Runtime error: %s", "Assert failed");
4211 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25391);
4212 exit(1);
4213 }
4214 var17 = NEW_parser_nodes__AAttrReassignExpr(&type_parser_nodes__AAttrReassignExpr);
4215 ((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>*/;
4216 CHECK_NEW_parser_nodes__AAttrReassignExpr(var17);
4217 var_pexprnode1 = var17;
4218 var_node_list = var_pexprnode1;
4219 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction667> */
4220 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
4221 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
4222 RET_LABEL:;
4223 }
4224 /* method parser#ReduceAction667#action for (self: Object, Parser) */
4225 void VIRTUAL_parser__ReduceAction667__action(val* self, val* p0) {
4226 parser__ReduceAction667__action(self, p0);
4227 RET_LABEL:;
4228 }
4229 /* method parser#ReduceAction668#action for (self: ReduceAction668, Parser) */
4230 void parser__ReduceAction668__action(val* self, val* p0) {
4231 val* var_p /* var p: Parser */;
4232 val* var /* : null */;
4233 val* var_node_list /* var node_list: nullable Object */;
4234 val* var1 /* : nullable Object */;
4235 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4236 val* var2 /* : nullable Object */;
4237 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4238 val* var3 /* : nullable Object */;
4239 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4240 val* var4 /* : AImplicitSelfExpr */;
4241 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
4242 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
4243 short int var5 /* : Bool */;
4244 int cltype;
4245 int idtype;
4246 val* var_passignopnode4 /* var passignopnode4: nullable Object */;
4247 short int var6 /* : Bool */;
4248 int cltype7;
4249 int idtype8;
4250 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
4251 short int var9 /* : Bool */;
4252 int cltype10;
4253 int idtype11;
4254 val* var12 /* : AAttrReassignExpr */;
4255 val* var_pexprnode1 /* var pexprnode1: nullable AAttrReassignExpr */;
4256 long var13 /* : Int */;
4257 long var14 /* : Int */;
4258 var_p = p0;
4259 var = NULL;
4260 var_node_list = var;
4261 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4262 var_nodearraylist3 = var1;
4263 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4264 var_nodearraylist2 = var2;
4265 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4266 var_nodearraylist1 = var3;
4267 var4 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
4268 ((void (*)(val*))(var4->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var4) /* init_aimplicitselfexpr on <var4:AImplicitSelfExpr>*/;
4269 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var4);
4270 var_pexprnode2 = var4;
4271 var_tattridnode3 = var_nodearraylist1;
4272 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
4273 cltype = type_nullable_parser_nodes__TAttrid.color;
4274 idtype = type_nullable_parser_nodes__TAttrid.id;
4275 if(var_tattridnode3 == NULL) {
4276 var5 = 1;
4277 } else {
4278 if(cltype >= var_tattridnode3->type->table_size) {
4279 var5 = 0;
4280 } else {
4281 var5 = var_tattridnode3->type->type_table[cltype] == idtype;
4282 }
4283 }
4284 if (!var5) {
4285 fprintf(stderr, "Runtime error: %s", "Assert failed");
4286 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25412);
4287 exit(1);
4288 }
4289 var_passignopnode4 = var_nodearraylist2;
4290 /* <var_passignopnode4:nullable Object> isa nullable AAssignOp */
4291 cltype7 = type_nullable_parser_nodes__AAssignOp.color;
4292 idtype8 = type_nullable_parser_nodes__AAssignOp.id;
4293 if(var_passignopnode4 == NULL) {
4294 var6 = 1;
4295 } else {
4296 if(cltype7 >= var_passignopnode4->type->table_size) {
4297 var6 = 0;
4298 } else {
4299 var6 = var_passignopnode4->type->type_table[cltype7] == idtype8;
4300 }
4301 }
4302 if (!var6) {
4303 fprintf(stderr, "Runtime error: %s", "Assert failed");
4304 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25414);
4305 exit(1);
4306 }
4307 var_pexprnode5 = var_nodearraylist3;
4308 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
4309 cltype10 = type_nullable_parser_nodes__AExpr.color;
4310 idtype11 = type_nullable_parser_nodes__AExpr.id;
4311 if(var_pexprnode5 == NULL) {
4312 var9 = 1;
4313 } else {
4314 if(cltype10 >= var_pexprnode5->type->table_size) {
4315 var9 = 0;
4316 } else {
4317 var9 = var_pexprnode5->type->type_table[cltype10] == idtype11;
4318 }
4319 }
4320 if (!var9) {
4321 fprintf(stderr, "Runtime error: %s", "Assert failed");
4322 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25416);
4323 exit(1);
4324 }
4325 var12 = NEW_parser_nodes__AAttrReassignExpr(&type_parser_nodes__AAttrReassignExpr);
4326 ((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>*/;
4327 CHECK_NEW_parser_nodes__AAttrReassignExpr(var12);
4328 var_pexprnode1 = var12;
4329 var_node_list = var_pexprnode1;
4330 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction668> */
4331 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
4332 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
4333 RET_LABEL:;
4334 }
4335 /* method parser#ReduceAction668#action for (self: Object, Parser) */
4336 void VIRTUAL_parser__ReduceAction668__action(val* self, val* p0) {
4337 parser__ReduceAction668__action(self, p0);
4338 RET_LABEL:;
4339 }
4340 /* method parser#ReduceAction669#action for (self: ReduceAction669, Parser) */
4341 void parser__ReduceAction669__action(val* self, val* p0) {
4342 val* var_p /* var p: Parser */;
4343 val* var /* : null */;
4344 val* var_node_list /* var node_list: nullable Object */;
4345 val* var1 /* : nullable Object */;
4346 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
4347 val* var2 /* : nullable Object */;
4348 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4349 val* var3 /* : nullable Object */;
4350 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4351 val* var4 /* : nullable Object */;
4352 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4353 val* var5 /* : nullable Object */;
4354 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4355 val* var6 /* : nullable Object */;
4356 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4357 val* var7 /* : nullable Object */;
4358 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4359 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
4360 short int var8 /* : Bool */;
4361 int cltype;
4362 int idtype;
4363 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
4364 short int var9 /* : Bool */;
4365 int cltype10;
4366 int idtype11;
4367 val* var_passignopnode4 /* var passignopnode4: nullable Object */;
4368 short int var12 /* : Bool */;
4369 int cltype13;
4370 int idtype14;
4371 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
4372 short int var15 /* : Bool */;
4373 int cltype16;
4374 int idtype17;
4375 val* var18 /* : AAttrReassignExpr */;
4376 val* var_pexprnode1 /* var pexprnode1: nullable AAttrReassignExpr */;
4377 long var19 /* : Int */;
4378 long var20 /* : Int */;
4379 var_p = p0;
4380 var = NULL;
4381 var_node_list = var;
4382 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4383 var_nodearraylist7 = var1;
4384 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4385 var_nodearraylist6 = var2;
4386 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4387 var_nodearraylist5 = var3;
4388 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4389 var_nodearraylist4 = var4;
4390 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4391 var_nodearraylist3 = var5;
4392 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4393 var_nodearraylist2 = var6;
4394 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4395 var_nodearraylist1 = var7;
4396 var_pexprnode2 = var_nodearraylist1;
4397 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
4398 cltype = type_nullable_parser_nodes__AExpr.color;
4399 idtype = type_nullable_parser_nodes__AExpr.id;
4400 if(var_pexprnode2 == NULL) {
4401 var8 = 1;
4402 } else {
4403 if(cltype >= var_pexprnode2->type->table_size) {
4404 var8 = 0;
4405 } else {
4406 var8 = var_pexprnode2->type->type_table[cltype] == idtype;
4407 }
4408 }
4409 if (!var8) {
4410 fprintf(stderr, "Runtime error: %s", "Assert failed");
4411 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25440);
4412 exit(1);
4413 }
4414 var_tattridnode3 = var_nodearraylist5;
4415 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
4416 cltype10 = type_nullable_parser_nodes__TAttrid.color;
4417 idtype11 = type_nullable_parser_nodes__TAttrid.id;
4418 if(var_tattridnode3 == NULL) {
4419 var9 = 1;
4420 } else {
4421 if(cltype10 >= var_tattridnode3->type->table_size) {
4422 var9 = 0;
4423 } else {
4424 var9 = var_tattridnode3->type->type_table[cltype10] == idtype11;
4425 }
4426 }
4427 if (!var9) {
4428 fprintf(stderr, "Runtime error: %s", "Assert failed");
4429 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25442);
4430 exit(1);
4431 }
4432 var_passignopnode4 = var_nodearraylist6;
4433 /* <var_passignopnode4:nullable Object> isa nullable AAssignOp */
4434 cltype13 = type_nullable_parser_nodes__AAssignOp.color;
4435 idtype14 = type_nullable_parser_nodes__AAssignOp.id;
4436 if(var_passignopnode4 == NULL) {
4437 var12 = 1;
4438 } else {
4439 if(cltype13 >= var_passignopnode4->type->table_size) {
4440 var12 = 0;
4441 } else {
4442 var12 = var_passignopnode4->type->type_table[cltype13] == idtype14;
4443 }
4444 }
4445 if (!var12) {
4446 fprintf(stderr, "Runtime error: %s", "Assert failed");
4447 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25444);
4448 exit(1);
4449 }
4450 var_pexprnode5 = var_nodearraylist7;
4451 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
4452 cltype16 = type_nullable_parser_nodes__AExpr.color;
4453 idtype17 = type_nullable_parser_nodes__AExpr.id;
4454 if(var_pexprnode5 == NULL) {
4455 var15 = 1;
4456 } else {
4457 if(cltype16 >= var_pexprnode5->type->table_size) {
4458 var15 = 0;
4459 } else {
4460 var15 = var_pexprnode5->type->type_table[cltype16] == idtype17;
4461 }
4462 }
4463 if (!var15) {
4464 fprintf(stderr, "Runtime error: %s", "Assert failed");
4465 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25446);
4466 exit(1);
4467 }
4468 var18 = NEW_parser_nodes__AAttrReassignExpr(&type_parser_nodes__AAttrReassignExpr);
4469 ((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>*/;
4470 CHECK_NEW_parser_nodes__AAttrReassignExpr(var18);
4471 var_pexprnode1 = var18;
4472 var_node_list = var_pexprnode1;
4473 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction669> */
4474 var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
4475 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
4476 RET_LABEL:;
4477 }
4478 /* method parser#ReduceAction669#action for (self: Object, Parser) */
4479 void VIRTUAL_parser__ReduceAction669__action(val* self, val* p0) {
4480 parser__ReduceAction669__action(self, p0);
4481 RET_LABEL:;
4482 }
4483 /* method parser#ReduceAction670#action for (self: ReduceAction670, Parser) */
4484 void parser__ReduceAction670__action(val* self, val* p0) {
4485 val* var_p /* var p: Parser */;
4486 val* var /* : null */;
4487 val* var_node_list /* var node_list: nullable Object */;
4488 val* var1 /* : nullable Object */;
4489 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
4490 val* var2 /* : nullable Object */;
4491 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
4492 val* var3 /* : nullable Object */;
4493 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4494 val* var4 /* : nullable Object */;
4495 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4496 val* var5 /* : nullable Object */;
4497 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4498 val* var6 /* : nullable Object */;
4499 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4500 val* var7 /* : nullable Object */;
4501 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4502 val* var8 /* : nullable Object */;
4503 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4504 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
4505 short int var9 /* : Bool */;
4506 int cltype;
4507 int idtype;
4508 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
4509 short int var10 /* : Bool */;
4510 int cltype11;
4511 int idtype12;
4512 val* var_passignopnode4 /* var passignopnode4: nullable Object */;
4513 short int var13 /* : Bool */;
4514 int cltype14;
4515 int idtype15;
4516 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
4517 short int var16 /* : Bool */;
4518 int cltype17;
4519 int idtype18;
4520 val* var19 /* : AAttrReassignExpr */;
4521 val* var_pexprnode1 /* var pexprnode1: nullable AAttrReassignExpr */;
4522 long var20 /* : Int */;
4523 long var21 /* : Int */;
4524 var_p = p0;
4525 var = NULL;
4526 var_node_list = var;
4527 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4528 var_nodearraylist8 = var1;
4529 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4530 var_nodearraylist7 = var2;
4531 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4532 var_nodearraylist6 = var3;
4533 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4534 var_nodearraylist5 = var4;
4535 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4536 var_nodearraylist4 = var5;
4537 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4538 var_nodearraylist3 = var6;
4539 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4540 var_nodearraylist2 = var7;
4541 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4542 var_nodearraylist1 = var8;
4543 var_pexprnode2 = var_nodearraylist1;
4544 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
4545 cltype = type_nullable_parser_nodes__AExpr.color;
4546 idtype = type_nullable_parser_nodes__AExpr.id;
4547 if(var_pexprnode2 == NULL) {
4548 var9 = 1;
4549 } else {
4550 if(cltype >= var_pexprnode2->type->table_size) {
4551 var9 = 0;
4552 } else {
4553 var9 = var_pexprnode2->type->type_table[cltype] == idtype;
4554 }
4555 }
4556 if (!var9) {
4557 fprintf(stderr, "Runtime error: %s", "Assert failed");
4558 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25471);
4559 exit(1);
4560 }
4561 var_tattridnode3 = var_nodearraylist6;
4562 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
4563 cltype11 = type_nullable_parser_nodes__TAttrid.color;
4564 idtype12 = type_nullable_parser_nodes__TAttrid.id;
4565 if(var_tattridnode3 == NULL) {
4566 var10 = 1;
4567 } else {
4568 if(cltype11 >= var_tattridnode3->type->table_size) {
4569 var10 = 0;
4570 } else {
4571 var10 = var_tattridnode3->type->type_table[cltype11] == idtype12;
4572 }
4573 }
4574 if (!var10) {
4575 fprintf(stderr, "Runtime error: %s", "Assert failed");
4576 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25473);
4577 exit(1);
4578 }
4579 var_passignopnode4 = var_nodearraylist7;
4580 /* <var_passignopnode4:nullable Object> isa nullable AAssignOp */
4581 cltype14 = type_nullable_parser_nodes__AAssignOp.color;
4582 idtype15 = type_nullable_parser_nodes__AAssignOp.id;
4583 if(var_passignopnode4 == NULL) {
4584 var13 = 1;
4585 } else {
4586 if(cltype14 >= var_passignopnode4->type->table_size) {
4587 var13 = 0;
4588 } else {
4589 var13 = var_passignopnode4->type->type_table[cltype14] == idtype15;
4590 }
4591 }
4592 if (!var13) {
4593 fprintf(stderr, "Runtime error: %s", "Assert failed");
4594 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25475);
4595 exit(1);
4596 }
4597 var_pexprnode5 = var_nodearraylist8;
4598 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
4599 cltype17 = type_nullable_parser_nodes__AExpr.color;
4600 idtype18 = type_nullable_parser_nodes__AExpr.id;
4601 if(var_pexprnode5 == NULL) {
4602 var16 = 1;
4603 } else {
4604 if(cltype17 >= var_pexprnode5->type->table_size) {
4605 var16 = 0;
4606 } else {
4607 var16 = var_pexprnode5->type->type_table[cltype17] == idtype18;
4608 }
4609 }
4610 if (!var16) {
4611 fprintf(stderr, "Runtime error: %s", "Assert failed");
4612 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25477);
4613 exit(1);
4614 }
4615 var19 = NEW_parser_nodes__AAttrReassignExpr(&type_parser_nodes__AAttrReassignExpr);
4616 ((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>*/;
4617 CHECK_NEW_parser_nodes__AAttrReassignExpr(var19);
4618 var_pexprnode1 = var19;
4619 var_node_list = var_pexprnode1;
4620 var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction670> */
4621 var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on <var_p:Parser>*/;
4622 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on <var_p:Parser>*/;
4623 RET_LABEL:;
4624 }
4625 /* method parser#ReduceAction670#action for (self: Object, Parser) */
4626 void VIRTUAL_parser__ReduceAction670__action(val* self, val* p0) {
4627 parser__ReduceAction670__action(self, p0);
4628 RET_LABEL:;
4629 }
4630 /* method parser#ReduceAction672#action for (self: ReduceAction672, Parser) */
4631 void parser__ReduceAction672__action(val* self, val* p0) {
4632 val* var_p /* var p: Parser */;
4633 val* var /* : null */;
4634 val* var_node_list /* var node_list: nullable Object */;
4635 val* var1 /* : nullable Object */;
4636 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4637 val* var2 /* : nullable Object */;
4638 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4639 val* var3 /* : nullable Object */;
4640 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4641 val* var4 /* : nullable Object */;
4642 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4643 val* var5 /* : AImplicitSelfExpr */;
4644 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
4645 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
4646 short int var6 /* : Bool */;
4647 int cltype;
4648 int idtype;
4649 val* var_passignopnode4 /* var passignopnode4: nullable Object */;
4650 short int var7 /* : Bool */;
4651 int cltype8;
4652 int idtype9;
4653 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
4654 short int var10 /* : Bool */;
4655 int cltype11;
4656 int idtype12;
4657 val* var13 /* : AAttrReassignExpr */;
4658 val* var_pexprnode1 /* var pexprnode1: nullable AAttrReassignExpr */;
4659 long var14 /* : Int */;
4660 long var15 /* : Int */;
4661 var_p = p0;
4662 var = NULL;
4663 var_node_list = var;
4664 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4665 var_nodearraylist4 = var1;
4666 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4667 var_nodearraylist3 = var2;
4668 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4669 var_nodearraylist2 = var3;
4670 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4671 var_nodearraylist1 = var4;
4672 var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
4673 ((void (*)(val*))(var5->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var5) /* init_aimplicitselfexpr on <var5:AImplicitSelfExpr>*/;
4674 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var5);
4675 var_pexprnode2 = var5;
4676 var_tattridnode3 = var_nodearraylist2;
4677 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
4678 cltype = type_nullable_parser_nodes__TAttrid.color;
4679 idtype = type_nullable_parser_nodes__TAttrid.id;
4680 if(var_tattridnode3 == NULL) {
4681 var6 = 1;
4682 } else {
4683 if(cltype >= var_tattridnode3->type->table_size) {
4684 var6 = 0;
4685 } else {
4686 var6 = var_tattridnode3->type->type_table[cltype] == idtype;
4687 }
4688 }
4689 if (!var6) {
4690 fprintf(stderr, "Runtime error: %s", "Assert failed");
4691 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25499);
4692 exit(1);
4693 }
4694 var_passignopnode4 = var_nodearraylist3;
4695 /* <var_passignopnode4:nullable Object> isa nullable AAssignOp */
4696 cltype8 = type_nullable_parser_nodes__AAssignOp.color;
4697 idtype9 = type_nullable_parser_nodes__AAssignOp.id;
4698 if(var_passignopnode4 == NULL) {
4699 var7 = 1;
4700 } else {
4701 if(cltype8 >= var_passignopnode4->type->table_size) {
4702 var7 = 0;
4703 } else {
4704 var7 = var_passignopnode4->type->type_table[cltype8] == idtype9;
4705 }
4706 }
4707 if (!var7) {
4708 fprintf(stderr, "Runtime error: %s", "Assert failed");
4709 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25501);
4710 exit(1);
4711 }
4712 var_pexprnode5 = var_nodearraylist4;
4713 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
4714 cltype11 = type_nullable_parser_nodes__AExpr.color;
4715 idtype12 = type_nullable_parser_nodes__AExpr.id;
4716 if(var_pexprnode5 == NULL) {
4717 var10 = 1;
4718 } else {
4719 if(cltype11 >= var_pexprnode5->type->table_size) {
4720 var10 = 0;
4721 } else {
4722 var10 = var_pexprnode5->type->type_table[cltype11] == idtype12;
4723 }
4724 }
4725 if (!var10) {
4726 fprintf(stderr, "Runtime error: %s", "Assert failed");
4727 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25503);
4728 exit(1);
4729 }
4730 var13 = NEW_parser_nodes__AAttrReassignExpr(&type_parser_nodes__AAttrReassignExpr);
4731 ((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>*/;
4732 CHECK_NEW_parser_nodes__AAttrReassignExpr(var13);
4733 var_pexprnode1 = var13;
4734 var_node_list = var_pexprnode1;
4735 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction672> */
4736 var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
4737 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
4738 RET_LABEL:;
4739 }
4740 /* method parser#ReduceAction672#action for (self: Object, Parser) */
4741 void VIRTUAL_parser__ReduceAction672__action(val* self, val* p0) {
4742 parser__ReduceAction672__action(self, p0);
4743 RET_LABEL:;
4744 }
4745 /* method parser#ReduceAction673#action for (self: ReduceAction673, Parser) */
4746 void parser__ReduceAction673__action(val* self, val* p0) {
4747 val* var_p /* var p: Parser */;
4748 val* var /* : null */;
4749 val* var_node_list /* var node_list: nullable Object */;
4750 val* var1 /* : nullable Object */;
4751 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4752 val* var2 /* : nullable Object */;
4753 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4754 val* var3 /* : nullable Object */;
4755 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4756 val* var4 /* : nullable Object */;
4757 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4758 val* var5 /* : nullable Object */;
4759 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4760 val* var6 /* : AImplicitSelfExpr */;
4761 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
4762 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
4763 short int var7 /* : Bool */;
4764 int cltype;
4765 int idtype;
4766 val* var_passignopnode4 /* var passignopnode4: nullable Object */;
4767 short int var8 /* : Bool */;
4768 int cltype9;
4769 int idtype10;
4770 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
4771 short int var11 /* : Bool */;
4772 int cltype12;
4773 int idtype13;
4774 val* var14 /* : AAttrReassignExpr */;
4775 val* var_pexprnode1 /* var pexprnode1: nullable AAttrReassignExpr */;
4776 long var15 /* : Int */;
4777 long var16 /* : Int */;
4778 var_p = p0;
4779 var = NULL;
4780 var_node_list = var;
4781 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4782 var_nodearraylist5 = var1;
4783 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4784 var_nodearraylist4 = var2;
4785 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4786 var_nodearraylist3 = var3;
4787 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4788 var_nodearraylist2 = var4;
4789 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4790 var_nodearraylist1 = var5;
4791 var6 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
4792 ((void (*)(val*))(var6->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var6) /* init_aimplicitselfexpr on <var6:AImplicitSelfExpr>*/;
4793 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var6);
4794 var_pexprnode2 = var6;
4795 var_tattridnode3 = var_nodearraylist3;
4796 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
4797 cltype = type_nullable_parser_nodes__TAttrid.color;
4798 idtype = type_nullable_parser_nodes__TAttrid.id;
4799 if(var_tattridnode3 == NULL) {
4800 var7 = 1;
4801 } else {
4802 if(cltype >= var_tattridnode3->type->table_size) {
4803 var7 = 0;
4804 } else {
4805 var7 = var_tattridnode3->type->type_table[cltype] == idtype;
4806 }
4807 }
4808 if (!var7) {
4809 fprintf(stderr, "Runtime error: %s", "Assert failed");
4810 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25526);
4811 exit(1);
4812 }
4813 var_passignopnode4 = var_nodearraylist4;
4814 /* <var_passignopnode4:nullable Object> isa nullable AAssignOp */
4815 cltype9 = type_nullable_parser_nodes__AAssignOp.color;
4816 idtype10 = type_nullable_parser_nodes__AAssignOp.id;
4817 if(var_passignopnode4 == NULL) {
4818 var8 = 1;
4819 } else {
4820 if(cltype9 >= var_passignopnode4->type->table_size) {
4821 var8 = 0;
4822 } else {
4823 var8 = var_passignopnode4->type->type_table[cltype9] == idtype10;
4824 }
4825 }
4826 if (!var8) {
4827 fprintf(stderr, "Runtime error: %s", "Assert failed");
4828 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25528);
4829 exit(1);
4830 }
4831 var_pexprnode5 = var_nodearraylist5;
4832 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
4833 cltype12 = type_nullable_parser_nodes__AExpr.color;
4834 idtype13 = type_nullable_parser_nodes__AExpr.id;
4835 if(var_pexprnode5 == NULL) {
4836 var11 = 1;
4837 } else {
4838 if(cltype12 >= var_pexprnode5->type->table_size) {
4839 var11 = 0;
4840 } else {
4841 var11 = var_pexprnode5->type->type_table[cltype12] == idtype13;
4842 }
4843 }
4844 if (!var11) {
4845 fprintf(stderr, "Runtime error: %s", "Assert failed");
4846 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25530);
4847 exit(1);
4848 }
4849 var14 = NEW_parser_nodes__AAttrReassignExpr(&type_parser_nodes__AAttrReassignExpr);
4850 ((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>*/;
4851 CHECK_NEW_parser_nodes__AAttrReassignExpr(var14);
4852 var_pexprnode1 = var14;
4853 var_node_list = var_pexprnode1;
4854 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction673> */
4855 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
4856 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
4857 RET_LABEL:;
4858 }
4859 /* method parser#ReduceAction673#action for (self: Object, Parser) */
4860 void VIRTUAL_parser__ReduceAction673__action(val* self, val* p0) {
4861 parser__ReduceAction673__action(self, p0);
4862 RET_LABEL:;
4863 }
4864 /* method parser#ReduceAction675#action for (self: ReduceAction675, Parser) */
4865 void parser__ReduceAction675__action(val* self, val* p0) {
4866 val* var_p /* var p: Parser */;
4867 val* var /* : null */;
4868 val* var_node_list /* var node_list: nullable Object */;
4869 val* var1 /* : nullable Object */;
4870 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
4871 val* var2 /* : nullable Object */;
4872 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4873 val* var3 /* : nullable Object */;
4874 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4875 val* var4 /* : nullable Object */;
4876 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4877 val* var5 /* : nullable Object */;
4878 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4879 val* var6 /* : nullable Object */;
4880 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4881 val* var7 /* : nullable Object */;
4882 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4883 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
4884 short int var8 /* : Bool */;
4885 int cltype;
4886 int idtype;
4887 val* var_tidnode3 /* var tidnode3: nullable Object */;
4888 short int var9 /* : Bool */;
4889 int cltype10;
4890 int idtype11;
4891 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
4892 short int var12 /* : Bool */;
4893 int cltype13;
4894 int idtype14;
4895 val* var_passignopnode5 /* var passignopnode5: nullable Object */;
4896 short int var15 /* : Bool */;
4897 int cltype16;
4898 int idtype17;
4899 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
4900 short int var18 /* : Bool */;
4901 int cltype19;
4902 int idtype20;
4903 val* var21 /* : ACallReassignExpr */;
4904 val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */;
4905 long var22 /* : Int */;
4906 long var23 /* : Int */;
4907 var_p = p0;
4908 var = NULL;
4909 var_node_list = var;
4910 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4911 var_nodearraylist7 = var1;
4912 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4913 var_nodearraylist6 = var2;
4914 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4915 var_nodearraylist5 = var3;
4916 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4917 var_nodearraylist4 = var4;
4918 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4919 var_nodearraylist3 = var5;
4920 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4921 var_nodearraylist2 = var6;
4922 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4923 var_nodearraylist1 = var7;
4924 var_pexprnode2 = var_nodearraylist1;
4925 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
4926 cltype = type_nullable_parser_nodes__AExpr.color;
4927 idtype = type_nullable_parser_nodes__AExpr.id;
4928 if(var_pexprnode2 == NULL) {
4929 var8 = 1;
4930 } else {
4931 if(cltype >= var_pexprnode2->type->table_size) {
4932 var8 = 0;
4933 } else {
4934 var8 = var_pexprnode2->type->type_table[cltype] == idtype;
4935 }
4936 }
4937 if (!var8) {
4938 fprintf(stderr, "Runtime error: %s", "Assert failed");
4939 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25554);
4940 exit(1);
4941 }
4942 var_tidnode3 = var_nodearraylist4;
4943 /* <var_tidnode3:nullable Object> isa nullable TId */
4944 cltype10 = type_nullable_parser_nodes__TId.color;
4945 idtype11 = type_nullable_parser_nodes__TId.id;
4946 if(var_tidnode3 == NULL) {
4947 var9 = 1;
4948 } else {
4949 if(cltype10 >= var_tidnode3->type->table_size) {
4950 var9 = 0;
4951 } else {
4952 var9 = var_tidnode3->type->type_table[cltype10] == idtype11;
4953 }
4954 }
4955 if (!var9) {
4956 fprintf(stderr, "Runtime error: %s", "Assert failed");
4957 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25556);
4958 exit(1);
4959 }
4960 var_pexprsnode4 = var_nodearraylist5;
4961 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
4962 cltype13 = type_nullable_parser_nodes__AExprs.color;
4963 idtype14 = type_nullable_parser_nodes__AExprs.id;
4964 if(var_pexprsnode4 == NULL) {
4965 var12 = 1;
4966 } else {
4967 if(cltype13 >= var_pexprsnode4->type->table_size) {
4968 var12 = 0;
4969 } else {
4970 var12 = var_pexprsnode4->type->type_table[cltype13] == idtype14;
4971 }
4972 }
4973 if (!var12) {
4974 fprintf(stderr, "Runtime error: %s", "Assert failed");
4975 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25558);
4976 exit(1);
4977 }
4978 var_passignopnode5 = var_nodearraylist6;
4979 /* <var_passignopnode5:nullable Object> isa nullable AAssignOp */
4980 cltype16 = type_nullable_parser_nodes__AAssignOp.color;
4981 idtype17 = type_nullable_parser_nodes__AAssignOp.id;
4982 if(var_passignopnode5 == NULL) {
4983 var15 = 1;
4984 } else {
4985 if(cltype16 >= var_passignopnode5->type->table_size) {
4986 var15 = 0;
4987 } else {
4988 var15 = var_passignopnode5->type->type_table[cltype16] == idtype17;
4989 }
4990 }
4991 if (!var15) {
4992 fprintf(stderr, "Runtime error: %s", "Assert failed");
4993 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25560);
4994 exit(1);
4995 }
4996 var_pexprnode6 = var_nodearraylist7;
4997 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
4998 cltype19 = type_nullable_parser_nodes__AExpr.color;
4999 idtype20 = type_nullable_parser_nodes__AExpr.id;
5000 if(var_pexprnode6 == NULL) {
5001 var18 = 1;
5002 } else {
5003 if(cltype19 >= var_pexprnode6->type->table_size) {
5004 var18 = 0;
5005 } else {
5006 var18 = var_pexprnode6->type->type_table[cltype19] == idtype20;
5007 }
5008 }
5009 if (!var18) {
5010 fprintf(stderr, "Runtime error: %s", "Assert failed");
5011 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25562);
5012 exit(1);
5013 }
5014 var21 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr);
5015 ((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>*/;
5016 CHECK_NEW_parser_nodes__ACallReassignExpr(var21);
5017 var_pexprnode1 = var21;
5018 var_node_list = var_pexprnode1;
5019 var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction675> */
5020 var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
5021 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
5022 RET_LABEL:;
5023 }
5024 /* method parser#ReduceAction675#action for (self: Object, Parser) */
5025 void VIRTUAL_parser__ReduceAction675__action(val* self, val* p0) {
5026 parser__ReduceAction675__action(self, p0);
5027 RET_LABEL:;
5028 }
5029 /* method parser#ReduceAction676#action for (self: ReduceAction676, Parser) */
5030 void parser__ReduceAction676__action(val* self, val* p0) {
5031 val* var_p /* var p: Parser */;
5032 val* var /* : null */;
5033 val* var_node_list /* var node_list: nullable Object */;
5034 val* var1 /* : nullable Object */;
5035 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5036 val* var2 /* : nullable Object */;
5037 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5038 val* var3 /* : nullable Object */;
5039 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5040 val* var4 /* : nullable Object */;
5041 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5042 val* var5 /* : AImplicitSelfExpr */;
5043 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
5044 val* var_tidnode3 /* var tidnode3: nullable Object */;
5045 short int var6 /* : Bool */;
5046 int cltype;
5047 int idtype;
5048 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
5049 short int var7 /* : Bool */;
5050 int cltype8;
5051 int idtype9;
5052 val* var_passignopnode5 /* var passignopnode5: nullable Object */;
5053 short int var10 /* : Bool */;
5054 int cltype11;
5055 int idtype12;
5056 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
5057 short int var13 /* : Bool */;
5058 int cltype14;
5059 int idtype15;
5060 val* var16 /* : ACallReassignExpr */;
5061 val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */;
5062 long var17 /* : Int */;
5063 long var18 /* : Int */;
5064 var_p = p0;
5065 var = NULL;
5066 var_node_list = var;
5067 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5068 var_nodearraylist4 = var1;
5069 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5070 var_nodearraylist3 = var2;
5071 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5072 var_nodearraylist2 = var3;
5073 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5074 var_nodearraylist1 = var4;
5075 var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
5076 ((void (*)(val*))(var5->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var5) /* init_aimplicitselfexpr on <var5:AImplicitSelfExpr>*/;
5077 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var5);
5078 var_pexprnode2 = var5;
5079 var_tidnode3 = var_nodearraylist1;
5080 /* <var_tidnode3:nullable Object> isa nullable TId */
5081 cltype = type_nullable_parser_nodes__TId.color;
5082 idtype = type_nullable_parser_nodes__TId.id;
5083 if(var_tidnode3 == NULL) {
5084 var6 = 1;
5085 } else {
5086 if(cltype >= var_tidnode3->type->table_size) {
5087 var6 = 0;
5088 } else {
5089 var6 = var_tidnode3->type->type_table[cltype] == idtype;
5090 }
5091 }
5092 if (!var6) {
5093 fprintf(stderr, "Runtime error: %s", "Assert failed");
5094 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25585);
5095 exit(1);
5096 }
5097 var_pexprsnode4 = var_nodearraylist2;
5098 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
5099 cltype8 = type_nullable_parser_nodes__AExprs.color;
5100 idtype9 = type_nullable_parser_nodes__AExprs.id;
5101 if(var_pexprsnode4 == NULL) {
5102 var7 = 1;
5103 } else {
5104 if(cltype8 >= var_pexprsnode4->type->table_size) {
5105 var7 = 0;
5106 } else {
5107 var7 = var_pexprsnode4->type->type_table[cltype8] == idtype9;
5108 }
5109 }
5110 if (!var7) {
5111 fprintf(stderr, "Runtime error: %s", "Assert failed");
5112 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25587);
5113 exit(1);
5114 }
5115 var_passignopnode5 = var_nodearraylist3;
5116 /* <var_passignopnode5:nullable Object> isa nullable AAssignOp */
5117 cltype11 = type_nullable_parser_nodes__AAssignOp.color;
5118 idtype12 = type_nullable_parser_nodes__AAssignOp.id;
5119 if(var_passignopnode5 == NULL) {
5120 var10 = 1;
5121 } else {
5122 if(cltype11 >= var_passignopnode5->type->table_size) {
5123 var10 = 0;
5124 } else {
5125 var10 = var_passignopnode5->type->type_table[cltype11] == idtype12;
5126 }
5127 }
5128 if (!var10) {
5129 fprintf(stderr, "Runtime error: %s", "Assert failed");
5130 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25589);
5131 exit(1);
5132 }
5133 var_pexprnode6 = var_nodearraylist4;
5134 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
5135 cltype14 = type_nullable_parser_nodes__AExpr.color;
5136 idtype15 = type_nullable_parser_nodes__AExpr.id;
5137 if(var_pexprnode6 == NULL) {
5138 var13 = 1;
5139 } else {
5140 if(cltype14 >= var_pexprnode6->type->table_size) {
5141 var13 = 0;
5142 } else {
5143 var13 = var_pexprnode6->type->type_table[cltype14] == idtype15;
5144 }
5145 }
5146 if (!var13) {
5147 fprintf(stderr, "Runtime error: %s", "Assert failed");
5148 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25591);
5149 exit(1);
5150 }
5151 var16 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr);
5152 ((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>*/;
5153 CHECK_NEW_parser_nodes__ACallReassignExpr(var16);
5154 var_pexprnode1 = var16;
5155 var_node_list = var_pexprnode1;
5156 var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction676> */
5157 var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
5158 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
5159 RET_LABEL:;
5160 }
5161 /* method parser#ReduceAction676#action for (self: Object, Parser) */
5162 void VIRTUAL_parser__ReduceAction676__action(val* self, val* p0) {
5163 parser__ReduceAction676__action(self, p0);
5164 RET_LABEL:;
5165 }
5166 /* method parser#ReduceAction677#action for (self: ReduceAction677, Parser) */
5167 void parser__ReduceAction677__action(val* self, val* p0) {
5168 val* var_p /* var p: Parser */;
5169 val* var /* : null */;
5170 val* var_node_list /* var node_list: nullable Object */;
5171 val* var1 /* : nullable Object */;
5172 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
5173 val* var2 /* : nullable Object */;
5174 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
5175 val* var3 /* : nullable Object */;
5176 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5177 val* var4 /* : nullable Object */;
5178 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5179 val* var5 /* : nullable Object */;
5180 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5181 val* var6 /* : nullable Object */;
5182 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5183 val* var7 /* : nullable Object */;
5184 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5185 val* var8 /* : nullable Object */;
5186 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5187 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
5188 short int var9 /* : Bool */;
5189 int cltype;
5190 int idtype;
5191 val* var_tidnode3 /* var tidnode3: nullable Object */;
5192 short int var10 /* : Bool */;
5193 int cltype11;
5194 int idtype12;
5195 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
5196 short int var13 /* : Bool */;
5197 int cltype14;
5198 int idtype15;
5199 val* var_passignopnode5 /* var passignopnode5: nullable Object */;
5200 short int var16 /* : Bool */;
5201 int cltype17;
5202 int idtype18;
5203 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
5204 short int var19 /* : Bool */;
5205 int cltype20;
5206 int idtype21;
5207 val* var22 /* : ACallReassignExpr */;
5208 val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */;
5209 long var23 /* : Int */;
5210 long var24 /* : Int */;
5211 var_p = p0;
5212 var = NULL;
5213 var_node_list = var;
5214 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5215 var_nodearraylist8 = var1;
5216 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5217 var_nodearraylist7 = var2;
5218 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5219 var_nodearraylist6 = var3;
5220 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5221 var_nodearraylist5 = var4;
5222 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5223 var_nodearraylist4 = var5;
5224 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5225 var_nodearraylist3 = var6;
5226 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5227 var_nodearraylist2 = var7;
5228 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5229 var_nodearraylist1 = var8;
5230 var_pexprnode2 = var_nodearraylist1;
5231 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
5232 cltype = type_nullable_parser_nodes__AExpr.color;
5233 idtype = type_nullable_parser_nodes__AExpr.id;
5234 if(var_pexprnode2 == NULL) {
5235 var9 = 1;
5236 } else {
5237 if(cltype >= var_pexprnode2->type->table_size) {
5238 var9 = 0;
5239 } else {
5240 var9 = var_pexprnode2->type->type_table[cltype] == idtype;
5241 }
5242 }
5243 if (!var9) {
5244 fprintf(stderr, "Runtime error: %s", "Assert failed");
5245 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25617);
5246 exit(1);
5247 }
5248 var_tidnode3 = var_nodearraylist5;
5249 /* <var_tidnode3:nullable Object> isa nullable TId */
5250 cltype11 = type_nullable_parser_nodes__TId.color;
5251 idtype12 = type_nullable_parser_nodes__TId.id;
5252 if(var_tidnode3 == NULL) {
5253 var10 = 1;
5254 } else {
5255 if(cltype11 >= var_tidnode3->type->table_size) {
5256 var10 = 0;
5257 } else {
5258 var10 = var_tidnode3->type->type_table[cltype11] == idtype12;
5259 }
5260 }
5261 if (!var10) {
5262 fprintf(stderr, "Runtime error: %s", "Assert failed");
5263 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25619);
5264 exit(1);
5265 }
5266 var_pexprsnode4 = var_nodearraylist6;
5267 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
5268 cltype14 = type_nullable_parser_nodes__AExprs.color;
5269 idtype15 = type_nullable_parser_nodes__AExprs.id;
5270 if(var_pexprsnode4 == NULL) {
5271 var13 = 1;
5272 } else {
5273 if(cltype14 >= var_pexprsnode4->type->table_size) {
5274 var13 = 0;
5275 } else {
5276 var13 = var_pexprsnode4->type->type_table[cltype14] == idtype15;
5277 }
5278 }
5279 if (!var13) {
5280 fprintf(stderr, "Runtime error: %s", "Assert failed");
5281 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25621);
5282 exit(1);
5283 }
5284 var_passignopnode5 = var_nodearraylist7;
5285 /* <var_passignopnode5:nullable Object> isa nullable AAssignOp */
5286 cltype17 = type_nullable_parser_nodes__AAssignOp.color;
5287 idtype18 = type_nullable_parser_nodes__AAssignOp.id;
5288 if(var_passignopnode5 == NULL) {
5289 var16 = 1;
5290 } else {
5291 if(cltype17 >= var_passignopnode5->type->table_size) {
5292 var16 = 0;
5293 } else {
5294 var16 = var_passignopnode5->type->type_table[cltype17] == idtype18;
5295 }
5296 }
5297 if (!var16) {
5298 fprintf(stderr, "Runtime error: %s", "Assert failed");
5299 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25623);
5300 exit(1);
5301 }
5302 var_pexprnode6 = var_nodearraylist8;
5303 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
5304 cltype20 = type_nullable_parser_nodes__AExpr.color;
5305 idtype21 = type_nullable_parser_nodes__AExpr.id;
5306 if(var_pexprnode6 == NULL) {
5307 var19 = 1;
5308 } else {
5309 if(cltype20 >= var_pexprnode6->type->table_size) {
5310 var19 = 0;
5311 } else {
5312 var19 = var_pexprnode6->type->type_table[cltype20] == idtype21;
5313 }
5314 }
5315 if (!var19) {
5316 fprintf(stderr, "Runtime error: %s", "Assert failed");
5317 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25625);
5318 exit(1);
5319 }
5320 var22 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr);
5321 ((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>*/;
5322 CHECK_NEW_parser_nodes__ACallReassignExpr(var22);
5323 var_pexprnode1 = var22;
5324 var_node_list = var_pexprnode1;
5325 var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction677> */
5326 var24 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var23) /* go_to on <var_p:Parser>*/;
5327 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var24, var_node_list) /* push on <var_p:Parser>*/;
5328 RET_LABEL:;
5329 }
5330 /* method parser#ReduceAction677#action for (self: Object, Parser) */
5331 void VIRTUAL_parser__ReduceAction677__action(val* self, val* p0) {
5332 parser__ReduceAction677__action(self, p0);
5333 RET_LABEL:;
5334 }
5335 /* method parser#ReduceAction678#action for (self: ReduceAction678, Parser) */
5336 void parser__ReduceAction678__action(val* self, val* p0) {
5337 val* var_p /* var p: Parser */;
5338 val* var /* : null */;
5339 val* var_node_list /* var node_list: nullable Object */;
5340 val* var1 /* : nullable Object */;
5341 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
5342 val* var2 /* : nullable Object */;
5343 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
5344 val* var3 /* : nullable Object */;
5345 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
5346 val* var4 /* : nullable Object */;
5347 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5348 val* var5 /* : nullable Object */;
5349 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5350 val* var6 /* : nullable Object */;
5351 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5352 val* var7 /* : nullable Object */;
5353 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5354 val* var8 /* : nullable Object */;
5355 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5356 val* var9 /* : nullable Object */;
5357 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5358 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
5359 short int var10 /* : Bool */;
5360 int cltype;
5361 int idtype;
5362 val* var_tidnode3 /* var tidnode3: nullable Object */;
5363 short int var11 /* : Bool */;
5364 int cltype12;
5365 int idtype13;
5366 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
5367 short int var14 /* : Bool */;
5368 int cltype15;
5369 int idtype16;
5370 val* var_passignopnode5 /* var passignopnode5: nullable Object */;
5371 short int var17 /* : Bool */;
5372 int cltype18;
5373 int idtype19;
5374 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
5375 short int var20 /* : Bool */;
5376 int cltype21;
5377 int idtype22;
5378 val* var23 /* : ACallReassignExpr */;
5379 val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */;
5380 long var24 /* : Int */;
5381 long var25 /* : Int */;
5382 var_p = p0;
5383 var = NULL;
5384 var_node_list = var;
5385 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5386 var_nodearraylist9 = var1;
5387 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5388 var_nodearraylist8 = var2;
5389 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5390 var_nodearraylist7 = var3;
5391 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5392 var_nodearraylist6 = var4;
5393 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5394 var_nodearraylist5 = var5;
5395 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5396 var_nodearraylist4 = var6;
5397 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5398 var_nodearraylist3 = var7;
5399 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5400 var_nodearraylist2 = var8;
5401 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5402 var_nodearraylist1 = var9;
5403 var_pexprnode2 = var_nodearraylist1;
5404 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
5405 cltype = type_nullable_parser_nodes__AExpr.color;
5406 idtype = type_nullable_parser_nodes__AExpr.id;
5407 if(var_pexprnode2 == NULL) {
5408 var10 = 1;
5409 } else {
5410 if(cltype >= var_pexprnode2->type->table_size) {
5411 var10 = 0;
5412 } else {
5413 var10 = var_pexprnode2->type->type_table[cltype] == idtype;
5414 }
5415 }
5416 if (!var10) {
5417 fprintf(stderr, "Runtime error: %s", "Assert failed");
5418 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25652);
5419 exit(1);
5420 }
5421 var_tidnode3 = var_nodearraylist6;
5422 /* <var_tidnode3:nullable Object> isa nullable TId */
5423 cltype12 = type_nullable_parser_nodes__TId.color;
5424 idtype13 = type_nullable_parser_nodes__TId.id;
5425 if(var_tidnode3 == NULL) {
5426 var11 = 1;
5427 } else {
5428 if(cltype12 >= var_tidnode3->type->table_size) {
5429 var11 = 0;
5430 } else {
5431 var11 = var_tidnode3->type->type_table[cltype12] == idtype13;
5432 }
5433 }
5434 if (!var11) {
5435 fprintf(stderr, "Runtime error: %s", "Assert failed");
5436 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25654);
5437 exit(1);
5438 }
5439 var_pexprsnode4 = var_nodearraylist7;
5440 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
5441 cltype15 = type_nullable_parser_nodes__AExprs.color;
5442 idtype16 = type_nullable_parser_nodes__AExprs.id;
5443 if(var_pexprsnode4 == NULL) {
5444 var14 = 1;
5445 } else {
5446 if(cltype15 >= var_pexprsnode4->type->table_size) {
5447 var14 = 0;
5448 } else {
5449 var14 = var_pexprsnode4->type->type_table[cltype15] == idtype16;
5450 }
5451 }
5452 if (!var14) {
5453 fprintf(stderr, "Runtime error: %s", "Assert failed");
5454 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25656);
5455 exit(1);
5456 }
5457 var_passignopnode5 = var_nodearraylist8;
5458 /* <var_passignopnode5:nullable Object> isa nullable AAssignOp */
5459 cltype18 = type_nullable_parser_nodes__AAssignOp.color;
5460 idtype19 = type_nullable_parser_nodes__AAssignOp.id;
5461 if(var_passignopnode5 == NULL) {
5462 var17 = 1;
5463 } else {
5464 if(cltype18 >= var_passignopnode5->type->table_size) {
5465 var17 = 0;
5466 } else {
5467 var17 = var_passignopnode5->type->type_table[cltype18] == idtype19;
5468 }
5469 }
5470 if (!var17) {
5471 fprintf(stderr, "Runtime error: %s", "Assert failed");
5472 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25658);
5473 exit(1);
5474 }
5475 var_pexprnode6 = var_nodearraylist9;
5476 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
5477 cltype21 = type_nullable_parser_nodes__AExpr.color;
5478 idtype22 = type_nullable_parser_nodes__AExpr.id;
5479 if(var_pexprnode6 == NULL) {
5480 var20 = 1;
5481 } else {
5482 if(cltype21 >= var_pexprnode6->type->table_size) {
5483 var20 = 0;
5484 } else {
5485 var20 = var_pexprnode6->type->type_table[cltype21] == idtype22;
5486 }
5487 }
5488 if (!var20) {
5489 fprintf(stderr, "Runtime error: %s", "Assert failed");
5490 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25660);
5491 exit(1);
5492 }
5493 var23 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr);
5494 ((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>*/;
5495 CHECK_NEW_parser_nodes__ACallReassignExpr(var23);
5496 var_pexprnode1 = var23;
5497 var_node_list = var_pexprnode1;
5498 var24 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction678> */
5499 var25 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var24) /* go_to on <var_p:Parser>*/;
5500 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var25, var_node_list) /* push on <var_p:Parser>*/;
5501 RET_LABEL:;
5502 }
5503 /* method parser#ReduceAction678#action for (self: Object, Parser) */
5504 void VIRTUAL_parser__ReduceAction678__action(val* self, val* p0) {
5505 parser__ReduceAction678__action(self, p0);
5506 RET_LABEL:;
5507 }
5508 /* method parser#ReduceAction680#action for (self: ReduceAction680, Parser) */
5509 void parser__ReduceAction680__action(val* self, val* p0) {
5510 val* var_p /* var p: Parser */;
5511 val* var /* : null */;
5512 val* var_node_list /* var node_list: nullable Object */;
5513 val* var1 /* : nullable Object */;
5514 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5515 val* var2 /* : nullable Object */;
5516 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5517 val* var3 /* : nullable Object */;
5518 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5519 val* var4 /* : nullable Object */;
5520 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5521 val* var5 /* : nullable Object */;
5522 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5523 val* var6 /* : AImplicitSelfExpr */;
5524 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
5525 val* var_tidnode3 /* var tidnode3: nullable Object */;
5526 short int var7 /* : Bool */;
5527 int cltype;
5528 int idtype;
5529 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
5530 short int var8 /* : Bool */;
5531 int cltype9;
5532 int idtype10;
5533 val* var_passignopnode5 /* var passignopnode5: nullable Object */;
5534 short int var11 /* : Bool */;
5535 int cltype12;
5536 int idtype13;
5537 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
5538 short int var14 /* : Bool */;
5539 int cltype15;
5540 int idtype16;
5541 val* var17 /* : ACallReassignExpr */;
5542 val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */;
5543 long var18 /* : Int */;
5544 long var19 /* : Int */;
5545 var_p = p0;
5546 var = NULL;
5547 var_node_list = var;
5548 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5549 var_nodearraylist5 = var1;
5550 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5551 var_nodearraylist4 = var2;
5552 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5553 var_nodearraylist3 = var3;
5554 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5555 var_nodearraylist2 = var4;
5556 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5557 var_nodearraylist1 = var5;
5558 var6 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
5559 ((void (*)(val*))(var6->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var6) /* init_aimplicitselfexpr on <var6:AImplicitSelfExpr>*/;
5560 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var6);
5561 var_pexprnode2 = var6;
5562 var_tidnode3 = var_nodearraylist2;
5563 /* <var_tidnode3:nullable Object> isa nullable TId */
5564 cltype = type_nullable_parser_nodes__TId.color;
5565 idtype = type_nullable_parser_nodes__TId.id;
5566 if(var_tidnode3 == NULL) {
5567 var7 = 1;
5568 } else {
5569 if(cltype >= var_tidnode3->type->table_size) {
5570 var7 = 0;
5571 } else {
5572 var7 = var_tidnode3->type->type_table[cltype] == idtype;
5573 }
5574 }
5575 if (!var7) {
5576 fprintf(stderr, "Runtime error: %s", "Assert failed");
5577 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25684);
5578 exit(1);
5579 }
5580 var_pexprsnode4 = var_nodearraylist3;
5581 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
5582 cltype9 = type_nullable_parser_nodes__AExprs.color;
5583 idtype10 = type_nullable_parser_nodes__AExprs.id;
5584 if(var_pexprsnode4 == NULL) {
5585 var8 = 1;
5586 } else {
5587 if(cltype9 >= var_pexprsnode4->type->table_size) {
5588 var8 = 0;
5589 } else {
5590 var8 = var_pexprsnode4->type->type_table[cltype9] == idtype10;
5591 }
5592 }
5593 if (!var8) {
5594 fprintf(stderr, "Runtime error: %s", "Assert failed");
5595 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25686);
5596 exit(1);
5597 }
5598 var_passignopnode5 = var_nodearraylist4;
5599 /* <var_passignopnode5:nullable Object> isa nullable AAssignOp */
5600 cltype12 = type_nullable_parser_nodes__AAssignOp.color;
5601 idtype13 = type_nullable_parser_nodes__AAssignOp.id;
5602 if(var_passignopnode5 == NULL) {
5603 var11 = 1;
5604 } else {
5605 if(cltype12 >= var_passignopnode5->type->table_size) {
5606 var11 = 0;
5607 } else {
5608 var11 = var_passignopnode5->type->type_table[cltype12] == idtype13;
5609 }
5610 }
5611 if (!var11) {
5612 fprintf(stderr, "Runtime error: %s", "Assert failed");
5613 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25688);
5614 exit(1);
5615 }
5616 var_pexprnode6 = var_nodearraylist5;
5617 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
5618 cltype15 = type_nullable_parser_nodes__AExpr.color;
5619 idtype16 = type_nullable_parser_nodes__AExpr.id;
5620 if(var_pexprnode6 == NULL) {
5621 var14 = 1;
5622 } else {
5623 if(cltype15 >= var_pexprnode6->type->table_size) {
5624 var14 = 0;
5625 } else {
5626 var14 = var_pexprnode6->type->type_table[cltype15] == idtype16;
5627 }
5628 }
5629 if (!var14) {
5630 fprintf(stderr, "Runtime error: %s", "Assert failed");
5631 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25690);
5632 exit(1);
5633 }
5634 var17 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr);
5635 ((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>*/;
5636 CHECK_NEW_parser_nodes__ACallReassignExpr(var17);
5637 var_pexprnode1 = var17;
5638 var_node_list = var_pexprnode1;
5639 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction680> */
5640 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
5641 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
5642 RET_LABEL:;
5643 }
5644 /* method parser#ReduceAction680#action for (self: Object, Parser) */
5645 void VIRTUAL_parser__ReduceAction680__action(val* self, val* p0) {
5646 parser__ReduceAction680__action(self, p0);
5647 RET_LABEL:;
5648 }
5649 /* method parser#ReduceAction681#action for (self: ReduceAction681, Parser) */
5650 void parser__ReduceAction681__action(val* self, val* p0) {
5651 val* var_p /* var p: Parser */;
5652 val* var /* : null */;
5653 val* var_node_list /* var node_list: nullable Object */;
5654 val* var1 /* : nullable Object */;
5655 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5656 val* var2 /* : nullable Object */;
5657 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5658 val* var3 /* : nullable Object */;
5659 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5660 val* var4 /* : nullable Object */;
5661 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5662 val* var5 /* : nullable Object */;
5663 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5664 val* var6 /* : nullable Object */;
5665 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5666 val* var7 /* : AImplicitSelfExpr */;
5667 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
5668 val* var_tidnode3 /* var tidnode3: nullable Object */;
5669 short int var8 /* : Bool */;
5670 int cltype;
5671 int idtype;
5672 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
5673 short int var9 /* : Bool */;
5674 int cltype10;
5675 int idtype11;
5676 val* var_passignopnode5 /* var passignopnode5: nullable Object */;
5677 short int var12 /* : Bool */;
5678 int cltype13;
5679 int idtype14;
5680 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
5681 short int var15 /* : Bool */;
5682 int cltype16;
5683 int idtype17;
5684 val* var18 /* : ACallReassignExpr */;
5685 val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */;
5686 long var19 /* : Int */;
5687 long var20 /* : Int */;
5688 var_p = p0;
5689 var = NULL;
5690 var_node_list = var;
5691 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5692 var_nodearraylist6 = var1;
5693 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5694 var_nodearraylist5 = var2;
5695 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5696 var_nodearraylist4 = var3;
5697 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5698 var_nodearraylist3 = var4;
5699 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5700 var_nodearraylist2 = var5;
5701 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5702 var_nodearraylist1 = var6;
5703 var7 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
5704 ((void (*)(val*))(var7->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var7) /* init_aimplicitselfexpr on <var7:AImplicitSelfExpr>*/;
5705 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var7);
5706 var_pexprnode2 = var7;
5707 var_tidnode3 = var_nodearraylist3;
5708 /* <var_tidnode3:nullable Object> isa nullable TId */
5709 cltype = type_nullable_parser_nodes__TId.color;
5710 idtype = type_nullable_parser_nodes__TId.id;
5711 if(var_tidnode3 == NULL) {
5712 var8 = 1;
5713 } else {
5714 if(cltype >= var_tidnode3->type->table_size) {
5715 var8 = 0;
5716 } else {
5717 var8 = var_tidnode3->type->type_table[cltype] == idtype;
5718 }
5719 }
5720 if (!var8) {
5721 fprintf(stderr, "Runtime error: %s", "Assert failed");
5722 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25715);
5723 exit(1);
5724 }
5725 var_pexprsnode4 = var_nodearraylist4;
5726 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
5727 cltype10 = type_nullable_parser_nodes__AExprs.color;
5728 idtype11 = type_nullable_parser_nodes__AExprs.id;
5729 if(var_pexprsnode4 == NULL) {
5730 var9 = 1;
5731 } else {
5732 if(cltype10 >= var_pexprsnode4->type->table_size) {
5733 var9 = 0;
5734 } else {
5735 var9 = var_pexprsnode4->type->type_table[cltype10] == idtype11;
5736 }
5737 }
5738 if (!var9) {
5739 fprintf(stderr, "Runtime error: %s", "Assert failed");
5740 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25717);
5741 exit(1);
5742 }
5743 var_passignopnode5 = var_nodearraylist5;
5744 /* <var_passignopnode5:nullable Object> isa nullable AAssignOp */
5745 cltype13 = type_nullable_parser_nodes__AAssignOp.color;
5746 idtype14 = type_nullable_parser_nodes__AAssignOp.id;
5747 if(var_passignopnode5 == NULL) {
5748 var12 = 1;
5749 } else {
5750 if(cltype13 >= var_passignopnode5->type->table_size) {
5751 var12 = 0;
5752 } else {
5753 var12 = var_passignopnode5->type->type_table[cltype13] == idtype14;
5754 }
5755 }
5756 if (!var12) {
5757 fprintf(stderr, "Runtime error: %s", "Assert failed");
5758 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25719);
5759 exit(1);
5760 }
5761 var_pexprnode6 = var_nodearraylist6;
5762 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
5763 cltype16 = type_nullable_parser_nodes__AExpr.color;
5764 idtype17 = type_nullable_parser_nodes__AExpr.id;
5765 if(var_pexprnode6 == NULL) {
5766 var15 = 1;
5767 } else {
5768 if(cltype16 >= var_pexprnode6->type->table_size) {
5769 var15 = 0;
5770 } else {
5771 var15 = var_pexprnode6->type->type_table[cltype16] == idtype17;
5772 }
5773 }
5774 if (!var15) {
5775 fprintf(stderr, "Runtime error: %s", "Assert failed");
5776 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25721);
5777 exit(1);
5778 }
5779 var18 = NEW_parser_nodes__ACallReassignExpr(&type_parser_nodes__ACallReassignExpr);
5780 ((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>*/;
5781 CHECK_NEW_parser_nodes__ACallReassignExpr(var18);
5782 var_pexprnode1 = var18;
5783 var_node_list = var_pexprnode1;
5784 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction681> */
5785 var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
5786 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
5787 RET_LABEL:;
5788 }
5789 /* method parser#ReduceAction681#action for (self: Object, Parser) */
5790 void VIRTUAL_parser__ReduceAction681__action(val* self, val* p0) {
5791 parser__ReduceAction681__action(self, p0);
5792 RET_LABEL:;
5793 }
5794 /* method parser#ReduceAction683#action for (self: ReduceAction683, Parser) */
5795 void parser__ReduceAction683__action(val* self, val* p0) {
5796 val* var_p /* var p: Parser */;
5797 val* var /* : null */;
5798 val* var_node_list /* var node_list: nullable Object */;
5799 val* var1 /* : nullable Object */;
5800 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5801 val* var2 /* : nullable Object */;
5802 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5803 val* var3 /* : nullable Object */;
5804 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5805 val* var4 /* : nullable Object */;
5806 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5807 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
5808 short int var5 /* : Bool */;
5809 int cltype;
5810 int idtype;
5811 val* var_pexprsnode3 /* var pexprsnode3: nullable Object */;
5812 short int var6 /* : Bool */;
5813 int cltype7;
5814 int idtype8;
5815 val* var_passignopnode4 /* var passignopnode4: nullable Object */;
5816 short int var9 /* : Bool */;
5817 int cltype10;
5818 int idtype11;
5819 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
5820 short int var12 /* : Bool */;
5821 int cltype13;
5822 int idtype14;
5823 val* var15 /* : ABraReassignExpr */;
5824 val* var_pexprnode1 /* var pexprnode1: nullable ABraReassignExpr */;
5825 long var16 /* : Int */;
5826 long var17 /* : Int */;
5827 var_p = p0;
5828 var = NULL;
5829 var_node_list = var;
5830 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5831 var_nodearraylist4 = var1;
5832 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5833 var_nodearraylist3 = var2;
5834 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5835 var_nodearraylist2 = var3;
5836 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5837 var_nodearraylist1 = var4;
5838 var_pexprnode2 = var_nodearraylist1;
5839 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
5840 cltype = type_nullable_parser_nodes__AExpr.color;
5841 idtype = type_nullable_parser_nodes__AExpr.id;
5842 if(var_pexprnode2 == NULL) {
5843 var5 = 1;
5844 } else {
5845 if(cltype >= var_pexprnode2->type->table_size) {
5846 var5 = 0;
5847 } else {
5848 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
5849 }
5850 }
5851 if (!var5) {
5852 fprintf(stderr, "Runtime error: %s", "Assert failed");
5853 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25743);
5854 exit(1);
5855 }
5856 var_pexprsnode3 = var_nodearraylist2;
5857 /* <var_pexprsnode3:nullable Object> isa nullable AExprs */
5858 cltype7 = type_nullable_parser_nodes__AExprs.color;
5859 idtype8 = type_nullable_parser_nodes__AExprs.id;
5860 if(var_pexprsnode3 == NULL) {
5861 var6 = 1;
5862 } else {
5863 if(cltype7 >= var_pexprsnode3->type->table_size) {
5864 var6 = 0;
5865 } else {
5866 var6 = var_pexprsnode3->type->type_table[cltype7] == idtype8;
5867 }
5868 }
5869 if (!var6) {
5870 fprintf(stderr, "Runtime error: %s", "Assert failed");
5871 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25745);
5872 exit(1);
5873 }
5874 var_passignopnode4 = var_nodearraylist3;
5875 /* <var_passignopnode4:nullable Object> isa nullable AAssignOp */
5876 cltype10 = type_nullable_parser_nodes__AAssignOp.color;
5877 idtype11 = type_nullable_parser_nodes__AAssignOp.id;
5878 if(var_passignopnode4 == NULL) {
5879 var9 = 1;
5880 } else {
5881 if(cltype10 >= var_passignopnode4->type->table_size) {
5882 var9 = 0;
5883 } else {
5884 var9 = var_passignopnode4->type->type_table[cltype10] == idtype11;
5885 }
5886 }
5887 if (!var9) {
5888 fprintf(stderr, "Runtime error: %s", "Assert failed");
5889 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25747);
5890 exit(1);
5891 }
5892 var_pexprnode5 = var_nodearraylist4;
5893 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
5894 cltype13 = type_nullable_parser_nodes__AExpr.color;
5895 idtype14 = type_nullable_parser_nodes__AExpr.id;
5896 if(var_pexprnode5 == NULL) {
5897 var12 = 1;
5898 } else {
5899 if(cltype13 >= var_pexprnode5->type->table_size) {
5900 var12 = 0;
5901 } else {
5902 var12 = var_pexprnode5->type->type_table[cltype13] == idtype14;
5903 }
5904 }
5905 if (!var12) {
5906 fprintf(stderr, "Runtime error: %s", "Assert failed");
5907 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25749);
5908 exit(1);
5909 }
5910 var15 = NEW_parser_nodes__ABraReassignExpr(&type_parser_nodes__ABraReassignExpr);
5911 ((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>*/;
5912 CHECK_NEW_parser_nodes__ABraReassignExpr(var15);
5913 var_pexprnode1 = var15;
5914 var_node_list = var_pexprnode1;
5915 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction683> */
5916 var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
5917 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
5918 RET_LABEL:;
5919 }
5920 /* method parser#ReduceAction683#action for (self: Object, Parser) */
5921 void VIRTUAL_parser__ReduceAction683__action(val* self, val* p0) {
5922 parser__ReduceAction683__action(self, p0);
5923 RET_LABEL:;
5924 }
5925 /* method parser#ReduceAction684#action for (self: ReduceAction684, Parser) */
5926 void parser__ReduceAction684__action(val* self, val* p0) {
5927 val* var_p /* var p: Parser */;
5928 val* var /* : null */;
5929 val* var_node_list /* var node_list: nullable Object */;
5930 val* var1 /* : nullable Object */;
5931 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5932 val* var_tpluseqnode2 /* var tpluseqnode2: nullable Object */;
5933 short int var2 /* : Bool */;
5934 int cltype;
5935 int idtype;
5936 val* var3 /* : APlusAssignOp */;
5937 val* var_passignopnode1 /* var passignopnode1: nullable APlusAssignOp */;
5938 long var4 /* : Int */;
5939 long var5 /* : Int */;
5940 var_p = p0;
5941 var = NULL;
5942 var_node_list = var;
5943 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5944 var_nodearraylist1 = var1;
5945 var_tpluseqnode2 = var_nodearraylist1;
5946 /* <var_tpluseqnode2:nullable Object> isa nullable TPluseq */
5947 cltype = type_nullable_parser_nodes__TPluseq.color;
5948 idtype = type_nullable_parser_nodes__TPluseq.id;
5949 if(var_tpluseqnode2 == NULL) {
5950 var2 = 1;
5951 } else {
5952 if(cltype >= var_tpluseqnode2->type->table_size) {
5953 var2 = 0;
5954 } else {
5955 var2 = var_tpluseqnode2->type->type_table[cltype] == idtype;
5956 }
5957 }
5958 if (!var2) {
5959 fprintf(stderr, "Runtime error: %s", "Assert failed");
5960 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25767);
5961 exit(1);
5962 }
5963 var3 = NEW_parser_nodes__APlusAssignOp(&type_parser_nodes__APlusAssignOp);
5964 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__APlusAssignOp__init_aplusassignop]))(var3, var_tpluseqnode2) /* init_aplusassignop on <var3:APlusAssignOp>*/;
5965 CHECK_NEW_parser_nodes__APlusAssignOp(var3);
5966 var_passignopnode1 = var3;
5967 var_node_list = var_passignopnode1;
5968 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction684> */
5969 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
5970 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
5971 RET_LABEL:;
5972 }
5973 /* method parser#ReduceAction684#action for (self: Object, Parser) */
5974 void VIRTUAL_parser__ReduceAction684__action(val* self, val* p0) {
5975 parser__ReduceAction684__action(self, p0);
5976 RET_LABEL:;
5977 }
5978 /* method parser#ReduceAction685#action for (self: ReduceAction685, Parser) */
5979 void parser__ReduceAction685__action(val* self, val* p0) {
5980 val* var_p /* var p: Parser */;
5981 val* var /* : null */;
5982 val* var_node_list /* var node_list: nullable Object */;
5983 val* var1 /* : nullable Object */;
5984 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5985 val* var_tminuseqnode2 /* var tminuseqnode2: nullable Object */;
5986 short int var2 /* : Bool */;
5987 int cltype;
5988 int idtype;
5989 val* var3 /* : AMinusAssignOp */;
5990 val* var_passignopnode1 /* var passignopnode1: nullable AMinusAssignOp */;
5991 long var4 /* : Int */;
5992 long var5 /* : Int */;
5993 var_p = p0;
5994 var = NULL;
5995 var_node_list = var;
5996 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5997 var_nodearraylist1 = var1;
5998 var_tminuseqnode2 = var_nodearraylist1;
5999 /* <var_tminuseqnode2:nullable Object> isa nullable TMinuseq */
6000 cltype = type_nullable_parser_nodes__TMinuseq.color;
6001 idtype = type_nullable_parser_nodes__TMinuseq.id;
6002 if(var_tminuseqnode2 == NULL) {
6003 var2 = 1;
6004 } else {
6005 if(cltype >= var_tminuseqnode2->type->table_size) {
6006 var2 = 0;
6007 } else {
6008 var2 = var_tminuseqnode2->type->type_table[cltype] == idtype;
6009 }
6010 }
6011 if (!var2) {
6012 fprintf(stderr, "Runtime error: %s", "Assert failed");
6013 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25782);
6014 exit(1);
6015 }
6016 var3 = NEW_parser_nodes__AMinusAssignOp(&type_parser_nodes__AMinusAssignOp);
6017 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AMinusAssignOp__init_aminusassignop]))(var3, var_tminuseqnode2) /* init_aminusassignop on <var3:AMinusAssignOp>*/;
6018 CHECK_NEW_parser_nodes__AMinusAssignOp(var3);
6019 var_passignopnode1 = var3;
6020 var_node_list = var_passignopnode1;
6021 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction685> */
6022 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
6023 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
6024 RET_LABEL:;
6025 }
6026 /* method parser#ReduceAction685#action for (self: Object, Parser) */
6027 void VIRTUAL_parser__ReduceAction685__action(val* self, val* p0) {
6028 parser__ReduceAction685__action(self, p0);
6029 RET_LABEL:;
6030 }
6031 /* method parser#ReduceAction686#action for (self: ReduceAction686, Parser) */
6032 void parser__ReduceAction686__action(val* self, val* p0) {
6033 val* var_p /* var p: Parser */;
6034 val* var /* : null */;
6035 val* var_node_list /* var node_list: nullable Object */;
6036 val* var1 /* : nullable Object */;
6037 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6038 val* var2 /* : nullable Object */;
6039 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6040 val* var3 /* : nullable Object */;
6041 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6042 val* var_tkwdonode2 /* var tkwdonode2: nullable Object */;
6043 short int var4 /* : Bool */;
6044 int cltype;
6045 int idtype;
6046 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
6047 short int var5 /* : Bool */;
6048 int cltype6;
6049 int idtype7;
6050 val* var_plabelnode4 /* var plabelnode4: nullable Object */;
6051 short int var8 /* : Bool */;
6052 int cltype9;
6053 int idtype10;
6054 val* var11 /* : ADoExpr */;
6055 val* var_pexprnode1 /* var pexprnode1: nullable ADoExpr */;
6056 long var12 /* : Int */;
6057 long var13 /* : Int */;
6058 var_p = p0;
6059 var = NULL;
6060 var_node_list = var;
6061 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6062 var_nodearraylist3 = var1;
6063 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6064 var_nodearraylist2 = var2;
6065 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6066 var_nodearraylist1 = var3;
6067 var_tkwdonode2 = var_nodearraylist1;
6068 /* <var_tkwdonode2:nullable Object> isa nullable TKwdo */
6069 cltype = type_nullable_parser_nodes__TKwdo.color;
6070 idtype = type_nullable_parser_nodes__TKwdo.id;
6071 if(var_tkwdonode2 == NULL) {
6072 var4 = 1;
6073 } else {
6074 if(cltype >= var_tkwdonode2->type->table_size) {
6075 var4 = 0;
6076 } else {
6077 var4 = var_tkwdonode2->type->type_table[cltype] == idtype;
6078 }
6079 }
6080 if (!var4) {
6081 fprintf(stderr, "Runtime error: %s", "Assert failed");
6082 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25799);
6083 exit(1);
6084 }
6085 var_pexprnode3 = var_nodearraylist2;
6086 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
6087 cltype6 = type_nullable_parser_nodes__AExpr.color;
6088 idtype7 = type_nullable_parser_nodes__AExpr.id;
6089 if(var_pexprnode3 == NULL) {
6090 var5 = 1;
6091 } else {
6092 if(cltype6 >= var_pexprnode3->type->table_size) {
6093 var5 = 0;
6094 } else {
6095 var5 = var_pexprnode3->type->type_table[cltype6] == idtype7;
6096 }
6097 }
6098 if (!var5) {
6099 fprintf(stderr, "Runtime error: %s", "Assert failed");
6100 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25801);
6101 exit(1);
6102 }
6103 var_plabelnode4 = var_nodearraylist3;
6104 /* <var_plabelnode4:nullable Object> isa nullable ALabel */
6105 cltype9 = type_nullable_parser_nodes__ALabel.color;
6106 idtype10 = type_nullable_parser_nodes__ALabel.id;
6107 if(var_plabelnode4 == NULL) {
6108 var8 = 1;
6109 } else {
6110 if(cltype9 >= var_plabelnode4->type->table_size) {
6111 var8 = 0;
6112 } else {
6113 var8 = var_plabelnode4->type->type_table[cltype9] == idtype10;
6114 }
6115 }
6116 if (!var8) {
6117 fprintf(stderr, "Runtime error: %s", "Assert failed");
6118 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25803);
6119 exit(1);
6120 }
6121 var11 = NEW_parser_nodes__ADoExpr(&type_parser_nodes__ADoExpr);
6122 ((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>*/;
6123 CHECK_NEW_parser_nodes__ADoExpr(var11);
6124 var_pexprnode1 = var11;
6125 var_node_list = var_pexprnode1;
6126 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction686> */
6127 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
6128 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
6129 RET_LABEL:;
6130 }
6131 /* method parser#ReduceAction686#action for (self: Object, Parser) */
6132 void VIRTUAL_parser__ReduceAction686__action(val* self, val* p0) {
6133 parser__ReduceAction686__action(self, p0);
6134 RET_LABEL:;
6135 }
6136 /* method parser#ReduceAction687#action for (self: ReduceAction687, Parser) */
6137 void parser__ReduceAction687__action(val* self, val* p0) {
6138 val* var_p /* var p: Parser */;
6139 val* var /* : null */;
6140 val* var_node_list /* var node_list: nullable Object */;
6141 val* var1 /* : nullable Object */;
6142 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6143 val* var2 /* : nullable Object */;
6144 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6145 val* var_tkwdonode2 /* var tkwdonode2: nullable Object */;
6146 short int var3 /* : Bool */;
6147 int cltype;
6148 int idtype;
6149 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
6150 short int var4 /* : Bool */;
6151 int cltype5;
6152 int idtype6;
6153 val* var7 /* : ADoExpr */;
6154 val* var8 /* : null */;
6155 val* var_pexprnode1 /* var pexprnode1: nullable ADoExpr */;
6156 long var9 /* : Int */;
6157 long var10 /* : Int */;
6158 var_p = p0;
6159 var = NULL;
6160 var_node_list = var;
6161 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6162 var_nodearraylist2 = var1;
6163 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6164 var_nodearraylist1 = var2;
6165 var_tkwdonode2 = var_nodearraylist1;
6166 /* <var_tkwdonode2:nullable Object> isa nullable TKwdo */
6167 cltype = type_nullable_parser_nodes__TKwdo.color;
6168 idtype = type_nullable_parser_nodes__TKwdo.id;
6169 if(var_tkwdonode2 == NULL) {
6170 var3 = 1;
6171 } else {
6172 if(cltype >= var_tkwdonode2->type->table_size) {
6173 var3 = 0;
6174 } else {
6175 var3 = var_tkwdonode2->type->type_table[cltype] == idtype;
6176 }
6177 }
6178 if (!var3) {
6179 fprintf(stderr, "Runtime error: %s", "Assert failed");
6180 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25821);
6181 exit(1);
6182 }
6183 var_pexprnode3 = var_nodearraylist2;
6184 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
6185 cltype5 = type_nullable_parser_nodes__AExpr.color;
6186 idtype6 = type_nullable_parser_nodes__AExpr.id;
6187 if(var_pexprnode3 == NULL) {
6188 var4 = 1;
6189 } else {
6190 if(cltype5 >= var_pexprnode3->type->table_size) {
6191 var4 = 0;
6192 } else {
6193 var4 = var_pexprnode3->type->type_table[cltype5] == idtype6;
6194 }
6195 }
6196 if (!var4) {
6197 fprintf(stderr, "Runtime error: %s", "Assert failed");
6198 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25823);
6199 exit(1);
6200 }
6201 var7 = NEW_parser_nodes__ADoExpr(&type_parser_nodes__ADoExpr);
6202 var8 = NULL;
6203 ((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>*/;
6204 CHECK_NEW_parser_nodes__ADoExpr(var7);
6205 var_pexprnode1 = var7;
6206 var_node_list = var_pexprnode1;
6207 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction687> */
6208 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
6209 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
6210 RET_LABEL:;
6211 }
6212 /* method parser#ReduceAction687#action for (self: Object, Parser) */
6213 void VIRTUAL_parser__ReduceAction687__action(val* self, val* p0) {
6214 parser__ReduceAction687__action(self, p0);
6215 RET_LABEL:;
6216 }
6217 /* method parser#ReduceAction688#action for (self: ReduceAction688, Parser) */
6218 void parser__ReduceAction688__action(val* self, val* p0) {
6219 val* var_p /* var p: Parser */;
6220 val* var /* : null */;
6221 val* var_node_list /* var node_list: nullable Object */;
6222 val* var1 /* : nullable Object */;
6223 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
6224 val* var2 /* : nullable Object */;
6225 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
6226 val* var3 /* : nullable Object */;
6227 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6228 val* var4 /* : nullable Object */;
6229 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6230 val* var5 /* : nullable Object */;
6231 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6232 val* var6 /* : nullable Object */;
6233 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6234 val* var7 /* : nullable Object */;
6235 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6236 val* var8 /* : nullable Object */;
6237 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6238 val* var_tkwifnode2 /* var tkwifnode2: nullable Object */;
6239 short int var9 /* : Bool */;
6240 int cltype;
6241 int idtype;
6242 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
6243 short int var10 /* : Bool */;
6244 int cltype11;
6245 int idtype12;
6246 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
6247 short int var13 /* : Bool */;
6248 int cltype14;
6249 int idtype15;
6250 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
6251 short int var16 /* : Bool */;
6252 int cltype17;
6253 int idtype18;
6254 val* var19 /* : AIfExpr */;
6255 val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */;
6256 long var20 /* : Int */;
6257 long var21 /* : Int */;
6258 var_p = p0;
6259 var = NULL;
6260 var_node_list = var;
6261 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6262 var_nodearraylist8 = var1;
6263 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6264 var_nodearraylist7 = var2;
6265 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6266 var_nodearraylist6 = var3;
6267 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6268 var_nodearraylist5 = var4;
6269 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6270 var_nodearraylist4 = var5;
6271 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6272 var_nodearraylist3 = var6;
6273 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6274 var_nodearraylist2 = var7;
6275 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6276 var_nodearraylist1 = var8;
6277 var_tkwifnode2 = var_nodearraylist1;
6278 /* <var_tkwifnode2:nullable Object> isa nullable TKwif */
6279 cltype = type_nullable_parser_nodes__TKwif.color;
6280 idtype = type_nullable_parser_nodes__TKwif.id;
6281 if(var_tkwifnode2 == NULL) {
6282 var9 = 1;
6283 } else {
6284 if(cltype >= var_tkwifnode2->type->table_size) {
6285 var9 = 0;
6286 } else {
6287 var9 = var_tkwifnode2->type->type_table[cltype] == idtype;
6288 }
6289 }
6290 if (!var9) {
6291 fprintf(stderr, "Runtime error: %s", "Assert failed");
6292 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25847);
6293 exit(1);
6294 }
6295 var_pexprnode3 = var_nodearraylist3;
6296 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
6297 cltype11 = type_nullable_parser_nodes__AExpr.color;
6298 idtype12 = type_nullable_parser_nodes__AExpr.id;
6299 if(var_pexprnode3 == NULL) {
6300 var10 = 1;
6301 } else {
6302 if(cltype11 >= var_pexprnode3->type->table_size) {
6303 var10 = 0;
6304 } else {
6305 var10 = var_pexprnode3->type->type_table[cltype11] == idtype12;
6306 }
6307 }
6308 if (!var10) {
6309 fprintf(stderr, "Runtime error: %s", "Assert failed");
6310 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25849);
6311 exit(1);
6312 }
6313 var_pexprnode4 = var_nodearraylist6;
6314 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
6315 cltype14 = type_nullable_parser_nodes__AExpr.color;
6316 idtype15 = type_nullable_parser_nodes__AExpr.id;
6317 if(var_pexprnode4 == NULL) {
6318 var13 = 1;
6319 } else {
6320 if(cltype14 >= var_pexprnode4->type->table_size) {
6321 var13 = 0;
6322 } else {
6323 var13 = var_pexprnode4->type->type_table[cltype14] == idtype15;
6324 }
6325 }
6326 if (!var13) {
6327 fprintf(stderr, "Runtime error: %s", "Assert failed");
6328 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25851);
6329 exit(1);
6330 }
6331 var_pexprnode5 = var_nodearraylist8;
6332 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
6333 cltype17 = type_nullable_parser_nodes__AExpr.color;
6334 idtype18 = type_nullable_parser_nodes__AExpr.id;
6335 if(var_pexprnode5 == NULL) {
6336 var16 = 1;
6337 } else {
6338 if(cltype17 >= var_pexprnode5->type->table_size) {
6339 var16 = 0;
6340 } else {
6341 var16 = var_pexprnode5->type->type_table[cltype17] == idtype18;
6342 }
6343 }
6344 if (!var16) {
6345 fprintf(stderr, "Runtime error: %s", "Assert failed");
6346 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25853);
6347 exit(1);
6348 }
6349 var19 = NEW_parser_nodes__AIfExpr(&type_parser_nodes__AIfExpr);
6350 ((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>*/;
6351 CHECK_NEW_parser_nodes__AIfExpr(var19);
6352 var_pexprnode1 = var19;
6353 var_node_list = var_pexprnode1;
6354 var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction688> */
6355 var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on <var_p:Parser>*/;
6356 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on <var_p:Parser>*/;
6357 RET_LABEL:;
6358 }
6359 /* method parser#ReduceAction688#action for (self: Object, Parser) */
6360 void VIRTUAL_parser__ReduceAction688__action(val* self, val* p0) {
6361 parser__ReduceAction688__action(self, p0);
6362 RET_LABEL:;
6363 }
6364 /* method parser#ReduceAction689#action for (self: ReduceAction689, Parser) */
6365 void parser__ReduceAction689__action(val* self, val* p0) {
6366 val* var_p /* var p: Parser */;
6367 val* var /* : null */;
6368 val* var_node_list /* var node_list: nullable Object */;
6369 val* var1 /* : nullable Object */;
6370 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6371 val* var2 /* : nullable Object */;
6372 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6373 val* var3 /* : nullable Object */;
6374 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6375 val* var4 /* : nullable Object */;
6376 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6377 val* var5 /* : nullable Object */;
6378 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6379 val* var6 /* : nullable Object */;
6380 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6381 val* var_tkwifnode2 /* var tkwifnode2: nullable Object */;
6382 short int var7 /* : Bool */;
6383 int cltype;
6384 int idtype;
6385 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
6386 short int var8 /* : Bool */;
6387 int cltype9;
6388 int idtype10;
6389 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
6390 short int var11 /* : Bool */;
6391 int cltype12;
6392 int idtype13;
6393 val* var14 /* : AIfExpr */;
6394 val* var15 /* : null */;
6395 val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */;
6396 long var16 /* : Int */;
6397 long var17 /* : Int */;
6398 var_p = p0;
6399 var = NULL;
6400 var_node_list = var;
6401 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6402 var_nodearraylist6 = var1;
6403 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6404 var_nodearraylist5 = var2;
6405 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6406 var_nodearraylist4 = var3;
6407 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6408 var_nodearraylist3 = var4;
6409 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6410 var_nodearraylist2 = var5;
6411 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6412 var_nodearraylist1 = var6;
6413 var_tkwifnode2 = var_nodearraylist1;
6414 /* <var_tkwifnode2:nullable Object> isa nullable TKwif */
6415 cltype = type_nullable_parser_nodes__TKwif.color;
6416 idtype = type_nullable_parser_nodes__TKwif.id;
6417 if(var_tkwifnode2 == NULL) {
6418 var7 = 1;
6419 } else {
6420 if(cltype >= var_tkwifnode2->type->table_size) {
6421 var7 = 0;
6422 } else {
6423 var7 = var_tkwifnode2->type->type_table[cltype] == idtype;
6424 }
6425 }
6426 if (!var7) {
6427 fprintf(stderr, "Runtime error: %s", "Assert failed");
6428 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25876);
6429 exit(1);
6430 }
6431 var_pexprnode3 = var_nodearraylist3;
6432 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
6433 cltype9 = type_nullable_parser_nodes__AExpr.color;
6434 idtype10 = type_nullable_parser_nodes__AExpr.id;
6435 if(var_pexprnode3 == NULL) {
6436 var8 = 1;
6437 } else {
6438 if(cltype9 >= var_pexprnode3->type->table_size) {
6439 var8 = 0;
6440 } else {
6441 var8 = var_pexprnode3->type->type_table[cltype9] == idtype10;
6442 }
6443 }
6444 if (!var8) {
6445 fprintf(stderr, "Runtime error: %s", "Assert failed");
6446 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25878);
6447 exit(1);
6448 }
6449 var_pexprnode4 = var_nodearraylist6;
6450 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
6451 cltype12 = type_nullable_parser_nodes__AExpr.color;
6452 idtype13 = type_nullable_parser_nodes__AExpr.id;
6453 if(var_pexprnode4 == NULL) {
6454 var11 = 1;
6455 } else {
6456 if(cltype12 >= var_pexprnode4->type->table_size) {
6457 var11 = 0;
6458 } else {
6459 var11 = var_pexprnode4->type->type_table[cltype12] == idtype13;
6460 }
6461 }
6462 if (!var11) {
6463 fprintf(stderr, "Runtime error: %s", "Assert failed");
6464 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25880);
6465 exit(1);
6466 }
6467 var14 = NEW_parser_nodes__AIfExpr(&type_parser_nodes__AIfExpr);
6468 var15 = NULL;
6469 ((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>*/;
6470 CHECK_NEW_parser_nodes__AIfExpr(var14);
6471 var_pexprnode1 = var14;
6472 var_node_list = var_pexprnode1;
6473 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction689> */
6474 var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
6475 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
6476 RET_LABEL:;
6477 }
6478 /* method parser#ReduceAction689#action for (self: Object, Parser) */
6479 void VIRTUAL_parser__ReduceAction689__action(val* self, val* p0) {
6480 parser__ReduceAction689__action(self, p0);
6481 RET_LABEL:;
6482 }
6483 /* method parser#ReduceAction690#action for (self: ReduceAction690, Parser) */
6484 void parser__ReduceAction690__action(val* self, val* p0) {
6485 val* var_p /* var p: Parser */;
6486 val* var /* : null */;
6487 val* var_node_list /* var node_list: nullable Object */;
6488 val* var1 /* : nullable Object */;
6489 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
6490 val* var2 /* : nullable Object */;
6491 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
6492 val* var3 /* : nullable Object */;
6493 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6494 val* var4 /* : nullable Object */;
6495 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6496 val* var5 /* : nullable Object */;
6497 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6498 val* var6 /* : nullable Object */;
6499 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6500 val* var7 /* : nullable Object */;
6501 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6502 val* var8 /* : nullable Object */;
6503 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6504 val* var_tkwifnode2 /* var tkwifnode2: nullable Object */;
6505 short int var9 /* : Bool */;
6506 int cltype;
6507 int idtype;
6508 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
6509 short int var10 /* : Bool */;
6510 int cltype11;
6511 int idtype12;
6512 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
6513 short int var13 /* : Bool */;
6514 int cltype14;
6515 int idtype15;
6516 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
6517 short int var16 /* : Bool */;
6518 int cltype17;
6519 int idtype18;
6520 val* var19 /* : AIfExpr */;
6521 val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */;
6522 long var20 /* : Int */;
6523 long var21 /* : Int */;
6524 var_p = p0;
6525 var = NULL;
6526 var_node_list = var;
6527 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6528 var_nodearraylist8 = var1;
6529 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6530 var_nodearraylist7 = var2;
6531 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6532 var_nodearraylist6 = var3;
6533 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6534 var_nodearraylist5 = var4;
6535 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6536 var_nodearraylist4 = var5;
6537 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6538 var_nodearraylist3 = var6;
6539 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6540 var_nodearraylist2 = var7;
6541 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6542 var_nodearraylist1 = var8;
6543 var_tkwifnode2 = var_nodearraylist1;
6544 /* <var_tkwifnode2:nullable Object> isa nullable TKwif */
6545 cltype = type_nullable_parser_nodes__TKwif.color;
6546 idtype = type_nullable_parser_nodes__TKwif.id;
6547 if(var_tkwifnode2 == NULL) {
6548 var9 = 1;
6549 } else {
6550 if(cltype >= var_tkwifnode2->type->table_size) {
6551 var9 = 0;
6552 } else {
6553 var9 = var_tkwifnode2->type->type_table[cltype] == idtype;
6554 }
6555 }
6556 if (!var9) {
6557 fprintf(stderr, "Runtime error: %s", "Assert failed");
6558 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25905);
6559 exit(1);
6560 }
6561 var_pexprnode3 = var_nodearraylist3;
6562 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
6563 cltype11 = type_nullable_parser_nodes__AExpr.color;
6564 idtype12 = type_nullable_parser_nodes__AExpr.id;
6565 if(var_pexprnode3 == NULL) {
6566 var10 = 1;
6567 } else {
6568 if(cltype11 >= var_pexprnode3->type->table_size) {
6569 var10 = 0;
6570 } else {
6571 var10 = var_pexprnode3->type->type_table[cltype11] == idtype12;
6572 }
6573 }
6574 if (!var10) {
6575 fprintf(stderr, "Runtime error: %s", "Assert failed");
6576 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25907);
6577 exit(1);
6578 }
6579 var_pexprnode4 = var_nodearraylist7;
6580 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
6581 cltype14 = type_nullable_parser_nodes__AExpr.color;
6582 idtype15 = type_nullable_parser_nodes__AExpr.id;
6583 if(var_pexprnode4 == NULL) {
6584 var13 = 1;
6585 } else {
6586 if(cltype14 >= var_pexprnode4->type->table_size) {
6587 var13 = 0;
6588 } else {
6589 var13 = var_pexprnode4->type->type_table[cltype14] == idtype15;
6590 }
6591 }
6592 if (!var13) {
6593 fprintf(stderr, "Runtime error: %s", "Assert failed");
6594 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25909);
6595 exit(1);
6596 }
6597 var_pexprnode5 = var_nodearraylist8;
6598 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
6599 cltype17 = type_nullable_parser_nodes__AExpr.color;
6600 idtype18 = type_nullable_parser_nodes__AExpr.id;
6601 if(var_pexprnode5 == NULL) {
6602 var16 = 1;
6603 } else {
6604 if(cltype17 >= var_pexprnode5->type->table_size) {
6605 var16 = 0;
6606 } else {
6607 var16 = var_pexprnode5->type->type_table[cltype17] == idtype18;
6608 }
6609 }
6610 if (!var16) {
6611 fprintf(stderr, "Runtime error: %s", "Assert failed");
6612 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25911);
6613 exit(1);
6614 }
6615 var19 = NEW_parser_nodes__AIfExpr(&type_parser_nodes__AIfExpr);
6616 ((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>*/;
6617 CHECK_NEW_parser_nodes__AIfExpr(var19);
6618 var_pexprnode1 = var19;
6619 var_node_list = var_pexprnode1;
6620 var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction690> */
6621 var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on <var_p:Parser>*/;
6622 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on <var_p:Parser>*/;
6623 RET_LABEL:;
6624 }
6625 /* method parser#ReduceAction690#action for (self: Object, Parser) */
6626 void VIRTUAL_parser__ReduceAction690__action(val* self, val* p0) {
6627 parser__ReduceAction690__action(self, p0);
6628 RET_LABEL:;
6629 }
6630 /* method parser#ReduceAction691#action for (self: ReduceAction691, Parser) */
6631 void parser__ReduceAction691__action(val* self, val* p0) {
6632 val* var_p /* var p: Parser */;
6633 val* var /* : null */;
6634 val* var_node_list /* var node_list: nullable Object */;
6635 val* var1 /* : nullable Object */;
6636 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6637 val* var2 /* : nullable Object */;
6638 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6639 val* var3 /* : nullable Object */;
6640 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6641 val* var4 /* : nullable Object */;
6642 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6643 val* var5 /* : nullable Object */;
6644 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6645 val* var6 /* : nullable Object */;
6646 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6647 val* var_tkwifnode2 /* var tkwifnode2: nullable Object */;
6648 short int var7 /* : Bool */;
6649 int cltype;
6650 int idtype;
6651 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
6652 short int var8 /* : Bool */;
6653 int cltype9;
6654 int idtype10;
6655 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
6656 short int var11 /* : Bool */;
6657 int cltype12;
6658 int idtype13;
6659 val* var14 /* : AIfExpr */;
6660 val* var15 /* : null */;
6661 val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */;
6662 long var16 /* : Int */;
6663 long var17 /* : Int */;
6664 var_p = p0;
6665 var = NULL;
6666 var_node_list = var;
6667 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6668 var_nodearraylist6 = var1;
6669 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6670 var_nodearraylist5 = var2;
6671 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6672 var_nodearraylist4 = var3;
6673 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6674 var_nodearraylist3 = var4;
6675 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6676 var_nodearraylist2 = var5;
6677 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6678 var_nodearraylist1 = var6;
6679 var_tkwifnode2 = var_nodearraylist1;
6680 /* <var_tkwifnode2:nullable Object> isa nullable TKwif */
6681 cltype = type_nullable_parser_nodes__TKwif.color;
6682 idtype = type_nullable_parser_nodes__TKwif.id;
6683 if(var_tkwifnode2 == NULL) {
6684 var7 = 1;
6685 } else {
6686 if(cltype >= var_tkwifnode2->type->table_size) {
6687 var7 = 0;
6688 } else {
6689 var7 = var_tkwifnode2->type->type_table[cltype] == idtype;
6690 }
6691 }
6692 if (!var7) {
6693 fprintf(stderr, "Runtime error: %s", "Assert failed");
6694 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25934);
6695 exit(1);
6696 }
6697 var_pexprnode3 = var_nodearraylist3;
6698 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
6699 cltype9 = type_nullable_parser_nodes__AExpr.color;
6700 idtype10 = type_nullable_parser_nodes__AExpr.id;
6701 if(var_pexprnode3 == NULL) {
6702 var8 = 1;
6703 } else {
6704 if(cltype9 >= var_pexprnode3->type->table_size) {
6705 var8 = 0;
6706 } else {
6707 var8 = var_pexprnode3->type->type_table[cltype9] == idtype10;
6708 }
6709 }
6710 if (!var8) {
6711 fprintf(stderr, "Runtime error: %s", "Assert failed");
6712 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25936);
6713 exit(1);
6714 }
6715 var_pexprnode5 = var_nodearraylist6;
6716 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
6717 cltype12 = type_nullable_parser_nodes__AExpr.color;
6718 idtype13 = type_nullable_parser_nodes__AExpr.id;
6719 if(var_pexprnode5 == NULL) {
6720 var11 = 1;
6721 } else {
6722 if(cltype12 >= var_pexprnode5->type->table_size) {
6723 var11 = 0;
6724 } else {
6725 var11 = var_pexprnode5->type->type_table[cltype12] == idtype13;
6726 }
6727 }
6728 if (!var11) {
6729 fprintf(stderr, "Runtime error: %s", "Assert failed");
6730 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25938);
6731 exit(1);
6732 }
6733 var14 = NEW_parser_nodes__AIfExpr(&type_parser_nodes__AIfExpr);
6734 var15 = NULL;
6735 ((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>*/;
6736 CHECK_NEW_parser_nodes__AIfExpr(var14);
6737 var_pexprnode1 = var14;
6738 var_node_list = var_pexprnode1;
6739 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction691> */
6740 var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
6741 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
6742 RET_LABEL:;
6743 }
6744 /* method parser#ReduceAction691#action for (self: Object, Parser) */
6745 void VIRTUAL_parser__ReduceAction691__action(val* self, val* p0) {
6746 parser__ReduceAction691__action(self, p0);
6747 RET_LABEL:;
6748 }
6749 /* method parser#ReduceAction692#action for (self: ReduceAction692, Parser) */
6750 void parser__ReduceAction692__action(val* self, val* p0) {
6751 val* var_p /* var p: Parser */;
6752 val* var /* : null */;
6753 val* var_node_list /* var node_list: nullable Object */;
6754 val* var1 /* : nullable Object */;
6755 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
6756 val* var2 /* : nullable Object */;
6757 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6758 val* var3 /* : nullable Object */;
6759 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6760 val* var4 /* : nullable Object */;
6761 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6762 val* var5 /* : nullable Object */;
6763 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6764 val* var6 /* : nullable Object */;
6765 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6766 val* var7 /* : nullable Object */;
6767 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6768 val* var_tkwifnode2 /* var tkwifnode2: nullable Object */;
6769 short int var8 /* : Bool */;
6770 int cltype;
6771 int idtype;
6772 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
6773 short int var9 /* : Bool */;
6774 int cltype10;
6775 int idtype11;
6776 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
6777 short int var12 /* : Bool */;
6778 int cltype13;
6779 int idtype14;
6780 val* var15 /* : AIfExpr */;
6781 val* var16 /* : null */;
6782 val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */;
6783 long var17 /* : Int */;
6784 long var18 /* : Int */;
6785 var_p = p0;
6786 var = NULL;
6787 var_node_list = var;
6788 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6789 var_nodearraylist7 = var1;
6790 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6791 var_nodearraylist6 = var2;
6792 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6793 var_nodearraylist5 = var3;
6794 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6795 var_nodearraylist4 = var4;
6796 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6797 var_nodearraylist3 = var5;
6798 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6799 var_nodearraylist2 = var6;
6800 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6801 var_nodearraylist1 = var7;
6802 var_tkwifnode2 = var_nodearraylist1;
6803 /* <var_tkwifnode2:nullable Object> isa nullable TKwif */
6804 cltype = type_nullable_parser_nodes__TKwif.color;
6805 idtype = type_nullable_parser_nodes__TKwif.id;
6806 if(var_tkwifnode2 == NULL) {
6807 var8 = 1;
6808 } else {
6809 if(cltype >= var_tkwifnode2->type->table_size) {
6810 var8 = 0;
6811 } else {
6812 var8 = var_tkwifnode2->type->type_table[cltype] == idtype;
6813 }
6814 }
6815 if (!var8) {
6816 fprintf(stderr, "Runtime error: %s", "Assert failed");
6817 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25962);
6818 exit(1);
6819 }
6820 var_pexprnode3 = var_nodearraylist3;
6821 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
6822 cltype10 = type_nullable_parser_nodes__AExpr.color;
6823 idtype11 = type_nullable_parser_nodes__AExpr.id;
6824 if(var_pexprnode3 == NULL) {
6825 var9 = 1;
6826 } else {
6827 if(cltype10 >= var_pexprnode3->type->table_size) {
6828 var9 = 0;
6829 } else {
6830 var9 = var_pexprnode3->type->type_table[cltype10] == idtype11;
6831 }
6832 }
6833 if (!var9) {
6834 fprintf(stderr, "Runtime error: %s", "Assert failed");
6835 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25964);
6836 exit(1);
6837 }
6838 var_pexprnode5 = var_nodearraylist7;
6839 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
6840 cltype13 = type_nullable_parser_nodes__AExpr.color;
6841 idtype14 = type_nullable_parser_nodes__AExpr.id;
6842 if(var_pexprnode5 == NULL) {
6843 var12 = 1;
6844 } else {
6845 if(cltype13 >= var_pexprnode5->type->table_size) {
6846 var12 = 0;
6847 } else {
6848 var12 = var_pexprnode5->type->type_table[cltype13] == idtype14;
6849 }
6850 }
6851 if (!var12) {
6852 fprintf(stderr, "Runtime error: %s", "Assert failed");
6853 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25966);
6854 exit(1);
6855 }
6856 var15 = NEW_parser_nodes__AIfExpr(&type_parser_nodes__AIfExpr);
6857 var16 = NULL;
6858 ((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>*/;
6859 CHECK_NEW_parser_nodes__AIfExpr(var15);
6860 var_pexprnode1 = var15;
6861 var_node_list = var_pexprnode1;
6862 var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction692> */
6863 var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
6864 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
6865 RET_LABEL:;
6866 }
6867 /* method parser#ReduceAction692#action for (self: Object, Parser) */
6868 void VIRTUAL_parser__ReduceAction692__action(val* self, val* p0) {
6869 parser__ReduceAction692__action(self, p0);
6870 RET_LABEL:;
6871 }
6872 /* method parser#ReduceAction695#action for (self: ReduceAction695, Parser) */
6873 void parser__ReduceAction695__action(val* self, val* p0) {
6874 val* var_p /* var p: Parser */;
6875 val* var /* : null */;
6876 val* var_node_list /* var node_list: nullable Object */;
6877 val* var1 /* : nullable Object */;
6878 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6879 val* var2 /* : nullable Object */;
6880 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6881 val* var3 /* : nullable Object */;
6882 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6883 val* var_tkwloopnode2 /* var tkwloopnode2: nullable Object */;
6884 short int var4 /* : Bool */;
6885 int cltype;
6886 int idtype;
6887 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
6888 short int var5 /* : Bool */;
6889 int cltype6;
6890 int idtype7;
6891 val* var_plabelnode4 /* var plabelnode4: nullable Object */;
6892 short int var8 /* : Bool */;
6893 int cltype9;
6894 int idtype10;
6895 val* var11 /* : ALoopExpr */;
6896 val* var_pexprnode1 /* var pexprnode1: nullable ALoopExpr */;
6897 long var12 /* : Int */;
6898 long var13 /* : Int */;
6899 var_p = p0;
6900 var = NULL;
6901 var_node_list = var;
6902 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6903 var_nodearraylist3 = var1;
6904 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6905 var_nodearraylist2 = var2;
6906 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6907 var_nodearraylist1 = var3;
6908 var_tkwloopnode2 = var_nodearraylist1;
6909 /* <var_tkwloopnode2:nullable Object> isa nullable TKwloop */
6910 cltype = type_nullable_parser_nodes__TKwloop.color;
6911 idtype = type_nullable_parser_nodes__TKwloop.id;
6912 if(var_tkwloopnode2 == NULL) {
6913 var4 = 1;
6914 } else {
6915 if(cltype >= var_tkwloopnode2->type->table_size) {
6916 var4 = 0;
6917 } else {
6918 var4 = var_tkwloopnode2->type->type_table[cltype] == idtype;
6919 }
6920 }
6921 if (!var4) {
6922 fprintf(stderr, "Runtime error: %s", "Assert failed");
6923 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25986);
6924 exit(1);
6925 }
6926 var_pexprnode3 = var_nodearraylist2;
6927 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
6928 cltype6 = type_nullable_parser_nodes__AExpr.color;
6929 idtype7 = type_nullable_parser_nodes__AExpr.id;
6930 if(var_pexprnode3 == NULL) {
6931 var5 = 1;
6932 } else {
6933 if(cltype6 >= var_pexprnode3->type->table_size) {
6934 var5 = 0;
6935 } else {
6936 var5 = var_pexprnode3->type->type_table[cltype6] == idtype7;
6937 }
6938 }
6939 if (!var5) {
6940 fprintf(stderr, "Runtime error: %s", "Assert failed");
6941 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25988);
6942 exit(1);
6943 }
6944 var_plabelnode4 = var_nodearraylist3;
6945 /* <var_plabelnode4:nullable Object> isa nullable ALabel */
6946 cltype9 = type_nullable_parser_nodes__ALabel.color;
6947 idtype10 = type_nullable_parser_nodes__ALabel.id;
6948 if(var_plabelnode4 == NULL) {
6949 var8 = 1;
6950 } else {
6951 if(cltype9 >= var_plabelnode4->type->table_size) {
6952 var8 = 0;
6953 } else {
6954 var8 = var_plabelnode4->type->type_table[cltype9] == idtype10;
6955 }
6956 }
6957 if (!var8) {
6958 fprintf(stderr, "Runtime error: %s", "Assert failed");
6959 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25990);
6960 exit(1);
6961 }
6962 var11 = NEW_parser_nodes__ALoopExpr(&type_parser_nodes__ALoopExpr);
6963 ((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>*/;
6964 CHECK_NEW_parser_nodes__ALoopExpr(var11);
6965 var_pexprnode1 = var11;
6966 var_node_list = var_pexprnode1;
6967 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction695> */
6968 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
6969 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
6970 RET_LABEL:;
6971 }
6972 /* method parser#ReduceAction695#action for (self: Object, Parser) */
6973 void VIRTUAL_parser__ReduceAction695__action(val* self, val* p0) {
6974 parser__ReduceAction695__action(self, p0);
6975 RET_LABEL:;
6976 }
6977 /* method parser#ReduceAction696#action for (self: ReduceAction696, Parser) */
6978 void parser__ReduceAction696__action(val* self, val* p0) {
6979 val* var_p /* var p: Parser */;
6980 val* var /* : null */;
6981 val* var_node_list /* var node_list: nullable Object */;
6982 val* var1 /* : nullable Object */;
6983 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6984 val* var2 /* : nullable Object */;
6985 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6986 val* var_tkwloopnode2 /* var tkwloopnode2: nullable Object */;
6987 short int var3 /* : Bool */;
6988 int cltype;
6989 int idtype;
6990 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
6991 short int var4 /* : Bool */;
6992 int cltype5;
6993 int idtype6;
6994 val* var7 /* : ALoopExpr */;
6995 val* var8 /* : null */;
6996 val* var_pexprnode1 /* var pexprnode1: nullable ALoopExpr */;
6997 long var9 /* : Int */;
6998 long var10 /* : Int */;
6999 var_p = p0;
7000 var = NULL;
7001 var_node_list = var;
7002 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7003 var_nodearraylist2 = var1;
7004 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7005 var_nodearraylist1 = var2;
7006 var_tkwloopnode2 = var_nodearraylist1;
7007 /* <var_tkwloopnode2:nullable Object> isa nullable TKwloop */
7008 cltype = type_nullable_parser_nodes__TKwloop.color;
7009 idtype = type_nullable_parser_nodes__TKwloop.id;
7010 if(var_tkwloopnode2 == NULL) {
7011 var3 = 1;
7012 } else {
7013 if(cltype >= var_tkwloopnode2->type->table_size) {
7014 var3 = 0;
7015 } else {
7016 var3 = var_tkwloopnode2->type->type_table[cltype] == idtype;
7017 }
7018 }
7019 if (!var3) {
7020 fprintf(stderr, "Runtime error: %s", "Assert failed");
7021 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26008);
7022 exit(1);
7023 }
7024 var_pexprnode3 = var_nodearraylist2;
7025 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
7026 cltype5 = type_nullable_parser_nodes__AExpr.color;
7027 idtype6 = type_nullable_parser_nodes__AExpr.id;
7028 if(var_pexprnode3 == NULL) {
7029 var4 = 1;
7030 } else {
7031 if(cltype5 >= var_pexprnode3->type->table_size) {
7032 var4 = 0;
7033 } else {
7034 var4 = var_pexprnode3->type->type_table[cltype5] == idtype6;
7035 }
7036 }
7037 if (!var4) {
7038 fprintf(stderr, "Runtime error: %s", "Assert failed");
7039 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26010);
7040 exit(1);
7041 }
7042 var7 = NEW_parser_nodes__ALoopExpr(&type_parser_nodes__ALoopExpr);
7043 var8 = NULL;
7044 ((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>*/;
7045 CHECK_NEW_parser_nodes__ALoopExpr(var7);
7046 var_pexprnode1 = var7;
7047 var_node_list = var_pexprnode1;
7048 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction696> */
7049 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
7050 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
7051 RET_LABEL:;
7052 }
7053 /* method parser#ReduceAction696#action for (self: Object, Parser) */
7054 void VIRTUAL_parser__ReduceAction696__action(val* self, val* p0) {
7055 parser__ReduceAction696__action(self, p0);
7056 RET_LABEL:;
7057 }
7058 /* method parser#ReduceAction697#action for (self: ReduceAction697, Parser) */
7059 void parser__ReduceAction697__action(val* self, val* p0) {
7060 val* var_p /* var p: Parser */;
7061 val* var /* : null */;
7062 val* var_node_list /* var node_list: nullable Object */;
7063 val* var1 /* : nullable Object */;
7064 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
7065 val* var2 /* : nullable Object */;
7066 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7067 val* var3 /* : nullable Object */;
7068 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7069 val* var4 /* : nullable Object */;
7070 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7071 val* var5 /* : nullable Object */;
7072 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7073 val* var6 /* : nullable Object */;
7074 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7075 val* var7 /* : nullable Object */;
7076 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7077 val* var_tkwwhilenode2 /* var tkwwhilenode2: nullable Object */;
7078 short int var8 /* : Bool */;
7079 int cltype;
7080 int idtype;
7081 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
7082 short int var9 /* : Bool */;
7083 int cltype10;
7084 int idtype11;
7085 val* var_tkwdonode4 /* var tkwdonode4: nullable Object */;
7086 short int var12 /* : Bool */;
7087 int cltype13;
7088 int idtype14;
7089 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
7090 short int var15 /* : Bool */;
7091 int cltype16;
7092 int idtype17;
7093 val* var_plabelnode6 /* var plabelnode6: nullable Object */;
7094 short int var18 /* : Bool */;
7095 int cltype19;
7096 int idtype20;
7097 val* var21 /* : AWhileExpr */;
7098 val* var_pexprnode1 /* var pexprnode1: nullable AWhileExpr */;
7099 long var22 /* : Int */;
7100 long var23 /* : Int */;
7101 var_p = p0;
7102 var = NULL;
7103 var_node_list = var;
7104 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7105 var_nodearraylist7 = var1;
7106 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7107 var_nodearraylist6 = var2;
7108 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7109 var_nodearraylist5 = var3;
7110 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7111 var_nodearraylist4 = var4;
7112 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7113 var_nodearraylist3 = var5;
7114 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7115 var_nodearraylist2 = var6;
7116 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7117 var_nodearraylist1 = var7;
7118 var_tkwwhilenode2 = var_nodearraylist1;
7119 /* <var_tkwwhilenode2:nullable Object> isa nullable TKwwhile */
7120 cltype = type_nullable_parser_nodes__TKwwhile.color;
7121 idtype = type_nullable_parser_nodes__TKwwhile.id;
7122 if(var_tkwwhilenode2 == NULL) {
7123 var8 = 1;
7124 } else {
7125 if(cltype >= var_tkwwhilenode2->type->table_size) {
7126 var8 = 0;
7127 } else {
7128 var8 = var_tkwwhilenode2->type->type_table[cltype] == idtype;
7129 }
7130 }
7131 if (!var8) {
7132 fprintf(stderr, "Runtime error: %s", "Assert failed");
7133 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26033);
7134 exit(1);
7135 }
7136 var_pexprnode3 = var_nodearraylist3;
7137 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
7138 cltype10 = type_nullable_parser_nodes__AExpr.color;
7139 idtype11 = type_nullable_parser_nodes__AExpr.id;
7140 if(var_pexprnode3 == NULL) {
7141 var9 = 1;
7142 } else {
7143 if(cltype10 >= var_pexprnode3->type->table_size) {
7144 var9 = 0;
7145 } else {
7146 var9 = var_pexprnode3->type->type_table[cltype10] == idtype11;
7147 }
7148 }
7149 if (!var9) {
7150 fprintf(stderr, "Runtime error: %s", "Assert failed");
7151 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26035);
7152 exit(1);
7153 }
7154 var_tkwdonode4 = var_nodearraylist5;
7155 /* <var_tkwdonode4:nullable Object> isa nullable TKwdo */
7156 cltype13 = type_nullable_parser_nodes__TKwdo.color;
7157 idtype14 = type_nullable_parser_nodes__TKwdo.id;
7158 if(var_tkwdonode4 == NULL) {
7159 var12 = 1;
7160 } else {
7161 if(cltype13 >= var_tkwdonode4->type->table_size) {
7162 var12 = 0;
7163 } else {
7164 var12 = var_tkwdonode4->type->type_table[cltype13] == idtype14;
7165 }
7166 }
7167 if (!var12) {
7168 fprintf(stderr, "Runtime error: %s", "Assert failed");
7169 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26037);
7170 exit(1);
7171 }
7172 var_pexprnode5 = var_nodearraylist6;
7173 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
7174 cltype16 = type_nullable_parser_nodes__AExpr.color;
7175 idtype17 = type_nullable_parser_nodes__AExpr.id;
7176 if(var_pexprnode5 == NULL) {
7177 var15 = 1;
7178 } else {
7179 if(cltype16 >= var_pexprnode5->type->table_size) {
7180 var15 = 0;
7181 } else {
7182 var15 = var_pexprnode5->type->type_table[cltype16] == idtype17;
7183 }
7184 }
7185 if (!var15) {
7186 fprintf(stderr, "Runtime error: %s", "Assert failed");
7187 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26039);
7188 exit(1);
7189 }
7190 var_plabelnode6 = var_nodearraylist7;
7191 /* <var_plabelnode6:nullable Object> isa nullable ALabel */
7192 cltype19 = type_nullable_parser_nodes__ALabel.color;
7193 idtype20 = type_nullable_parser_nodes__ALabel.id;
7194 if(var_plabelnode6 == NULL) {
7195 var18 = 1;
7196 } else {
7197 if(cltype19 >= var_plabelnode6->type->table_size) {
7198 var18 = 0;
7199 } else {
7200 var18 = var_plabelnode6->type->type_table[cltype19] == idtype20;
7201 }
7202 }
7203 if (!var18) {
7204 fprintf(stderr, "Runtime error: %s", "Assert failed");
7205 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26041);
7206 exit(1);
7207 }
7208 var21 = NEW_parser_nodes__AWhileExpr(&type_parser_nodes__AWhileExpr);
7209 ((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>*/;
7210 CHECK_NEW_parser_nodes__AWhileExpr(var21);
7211 var_pexprnode1 = var21;
7212 var_node_list = var_pexprnode1;
7213 var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction697> */
7214 var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
7215 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
7216 RET_LABEL:;
7217 }
7218 /* method parser#ReduceAction697#action for (self: Object, Parser) */
7219 void VIRTUAL_parser__ReduceAction697__action(val* self, val* p0) {
7220 parser__ReduceAction697__action(self, p0);
7221 RET_LABEL:;
7222 }
7223 /* method parser#ReduceAction698#action for (self: ReduceAction698, Parser) */
7224 void parser__ReduceAction698__action(val* self, val* p0) {
7225 val* var_p /* var p: Parser */;
7226 val* var /* : null */;
7227 val* var_node_list /* var node_list: nullable Object */;
7228 val* var1 /* : nullable Object */;
7229 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7230 val* var2 /* : nullable Object */;
7231 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7232 val* var3 /* : nullable Object */;
7233 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7234 val* var4 /* : nullable Object */;
7235 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7236 val* var5 /* : nullable Object */;
7237 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7238 val* var6 /* : nullable Object */;
7239 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7240 val* var_tkwwhilenode2 /* var tkwwhilenode2: nullable Object */;
7241 short int var7 /* : Bool */;
7242 int cltype;
7243 int idtype;
7244 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
7245 short int var8 /* : Bool */;
7246 int cltype9;
7247 int idtype10;
7248 val* var_tkwdonode4 /* var tkwdonode4: nullable Object */;
7249 short int var11 /* : Bool */;
7250 int cltype12;
7251 int idtype13;
7252 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
7253 short int var14 /* : Bool */;
7254 int cltype15;
7255 int idtype16;
7256 val* var17 /* : AWhileExpr */;
7257 val* var18 /* : null */;
7258 val* var_pexprnode1 /* var pexprnode1: nullable AWhileExpr */;
7259 long var19 /* : Int */;
7260 long var20 /* : Int */;
7261 var_p = p0;
7262 var = NULL;
7263 var_node_list = var;
7264 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7265 var_nodearraylist6 = var1;
7266 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7267 var_nodearraylist5 = var2;
7268 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7269 var_nodearraylist4 = var3;
7270 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7271 var_nodearraylist3 = var4;
7272 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7273 var_nodearraylist2 = var5;
7274 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7275 var_nodearraylist1 = var6;
7276 var_tkwwhilenode2 = var_nodearraylist1;
7277 /* <var_tkwwhilenode2:nullable Object> isa nullable TKwwhile */
7278 cltype = type_nullable_parser_nodes__TKwwhile.color;
7279 idtype = type_nullable_parser_nodes__TKwwhile.id;
7280 if(var_tkwwhilenode2 == NULL) {
7281 var7 = 1;
7282 } else {
7283 if(cltype >= var_tkwwhilenode2->type->table_size) {
7284 var7 = 0;
7285 } else {
7286 var7 = var_tkwwhilenode2->type->type_table[cltype] == idtype;
7287 }
7288 }
7289 if (!var7) {
7290 fprintf(stderr, "Runtime error: %s", "Assert failed");
7291 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26065);
7292 exit(1);
7293 }
7294 var_pexprnode3 = var_nodearraylist3;
7295 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
7296 cltype9 = type_nullable_parser_nodes__AExpr.color;
7297 idtype10 = type_nullable_parser_nodes__AExpr.id;
7298 if(var_pexprnode3 == NULL) {
7299 var8 = 1;
7300 } else {
7301 if(cltype9 >= var_pexprnode3->type->table_size) {
7302 var8 = 0;
7303 } else {
7304 var8 = var_pexprnode3->type->type_table[cltype9] == idtype10;
7305 }
7306 }
7307 if (!var8) {
7308 fprintf(stderr, "Runtime error: %s", "Assert failed");
7309 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26067);
7310 exit(1);
7311 }
7312 var_tkwdonode4 = var_nodearraylist5;
7313 /* <var_tkwdonode4:nullable Object> isa nullable TKwdo */
7314 cltype12 = type_nullable_parser_nodes__TKwdo.color;
7315 idtype13 = type_nullable_parser_nodes__TKwdo.id;
7316 if(var_tkwdonode4 == NULL) {
7317 var11 = 1;
7318 } else {
7319 if(cltype12 >= var_tkwdonode4->type->table_size) {
7320 var11 = 0;
7321 } else {
7322 var11 = var_tkwdonode4->type->type_table[cltype12] == idtype13;
7323 }
7324 }
7325 if (!var11) {
7326 fprintf(stderr, "Runtime error: %s", "Assert failed");
7327 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26069);
7328 exit(1);
7329 }
7330 var_pexprnode5 = var_nodearraylist6;
7331 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
7332 cltype15 = type_nullable_parser_nodes__AExpr.color;
7333 idtype16 = type_nullable_parser_nodes__AExpr.id;
7334 if(var_pexprnode5 == NULL) {
7335 var14 = 1;
7336 } else {
7337 if(cltype15 >= var_pexprnode5->type->table_size) {
7338 var14 = 0;
7339 } else {
7340 var14 = var_pexprnode5->type->type_table[cltype15] == idtype16;
7341 }
7342 }
7343 if (!var14) {
7344 fprintf(stderr, "Runtime error: %s", "Assert failed");
7345 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26071);
7346 exit(1);
7347 }
7348 var17 = NEW_parser_nodes__AWhileExpr(&type_parser_nodes__AWhileExpr);
7349 var18 = NULL;
7350 ((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>*/;
7351 CHECK_NEW_parser_nodes__AWhileExpr(var17);
7352 var_pexprnode1 = var17;
7353 var_node_list = var_pexprnode1;
7354 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction698> */
7355 var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
7356 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
7357 RET_LABEL:;
7358 }
7359 /* method parser#ReduceAction698#action for (self: Object, Parser) */
7360 void VIRTUAL_parser__ReduceAction698__action(val* self, val* p0) {
7361 parser__ReduceAction698__action(self, p0);
7362 RET_LABEL:;
7363 }
7364 /* method parser#ReduceAction699#action for (self: ReduceAction699, Parser) */
7365 void parser__ReduceAction699__action(val* self, val* p0) {
7366 val* var_p /* var p: Parser */;
7367 val* var /* : null */;
7368 val* var_node_list /* var node_list: nullable Object */;
7369 val* var1 /* : nullable Object */;
7370 val* var_nodearraylist15 /* var nodearraylist15: nullable Object */;
7371 val* var2 /* : nullable Object */;
7372 val* var_nodearraylist14 /* var nodearraylist14: nullable Object */;
7373 val* var3 /* : nullable Object */;
7374 val* var_nodearraylist13 /* var nodearraylist13: nullable Object */;
7375 val* var4 /* : nullable Object */;
7376 val* var_nodearraylist12 /* var nodearraylist12: nullable Object */;
7377 val* var5 /* : nullable Object */;
7378 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
7379 val* var6 /* : nullable Object */;
7380 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
7381 val* var7 /* : nullable Object */;
7382 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
7383 val* var8 /* : nullable Object */;
7384 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
7385 val* var9 /* : nullable Object */;
7386 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
7387 val* var10 /* : nullable Object */;
7388 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7389 val* var11 /* : nullable Object */;
7390 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7391 val* var12 /* : nullable Object */;
7392 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7393 val* var13 /* : nullable Object */;
7394 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7395 val* var14 /* : nullable Object */;
7396 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7397 val* var15 /* : nullable Object */;
7398 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7399 val* var16 /* : Array[Object] */;
7400 val* var_listnode4 /* var listnode4: Array[Object] */;
7401 val* var_tkwfornode2 /* var tkwfornode2: nullable Object */;
7402 short int var17 /* : Bool */;
7403 int cltype;
7404 int idtype;
7405 val* var_listnode3 /* var listnode3: nullable Object */;
7406 short int var18 /* : Bool */;
7407 int cltype19;
7408 int idtype20;
7409 val* var21 /* : Array[Object] */;
7410 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
7411 short int var22 /* : Bool */;
7412 int cltype23;
7413 int idtype24;
7414 val* var_tkwdonode6 /* var tkwdonode6: nullable Object */;
7415 short int var25 /* : Bool */;
7416 int cltype26;
7417 int idtype27;
7418 val* var_pexprnode7 /* var pexprnode7: nullable Object */;
7419 short int var28 /* : Bool */;
7420 int cltype29;
7421 int idtype30;
7422 val* var_plabelnode8 /* var plabelnode8: nullable Object */;
7423 short int var31 /* : Bool */;
7424 int cltype32;
7425 int idtype33;
7426 val* var34 /* : AForExpr */;
7427 val* var_pexprnode1 /* var pexprnode1: nullable AForExpr */;
7428 long var35 /* : Int */;
7429 long var36 /* : Int */;
7430 var_p = p0;
7431 var = NULL;
7432 var_node_list = var;
7433 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7434 var_nodearraylist15 = var1;
7435 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7436 var_nodearraylist14 = var2;
7437 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7438 var_nodearraylist13 = var3;
7439 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7440 var_nodearraylist12 = var4;
7441 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7442 var_nodearraylist11 = var5;
7443 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7444 var_nodearraylist10 = var6;
7445 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7446 var_nodearraylist9 = var7;
7447 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7448 var_nodearraylist8 = var8;
7449 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7450 var_nodearraylist7 = var9;
7451 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7452 var_nodearraylist6 = var10;
7453 var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7454 var_nodearraylist5 = var11;
7455 var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7456 var_nodearraylist4 = var12;
7457 var13 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7458 var_nodearraylist3 = var13;
7459 var14 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7460 var_nodearraylist2 = var14;
7461 var15 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7462 var_nodearraylist1 = var15;
7463 var16 = NEW_array__Array(&type_array__Arraykernel__Object);
7464 ((void (*)(val*))(var16->class->vft[COLOR_array__Array__init]))(var16) /* init on <var16:Array[Object]>*/;
7465 CHECK_NEW_array__Array(var16);
7466 var_listnode4 = var16;
7467 var_tkwfornode2 = var_nodearraylist1;
7468 /* <var_tkwfornode2:nullable Object> isa nullable TKwfor */
7469 cltype = type_nullable_parser_nodes__TKwfor.color;
7470 idtype = type_nullable_parser_nodes__TKwfor.id;
7471 if(var_tkwfornode2 == NULL) {
7472 var17 = 1;
7473 } else {
7474 if(cltype >= var_tkwfornode2->type->table_size) {
7475 var17 = 0;
7476 } else {
7477 var17 = var_tkwfornode2->type->type_table[cltype] == idtype;
7478 }
7479 }
7480 if (!var17) {
7481 fprintf(stderr, "Runtime error: %s", "Assert failed");
7482 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26105);
7483 exit(1);
7484 }
7485 var_listnode3 = var_nodearraylist5;
7486 /* <var_listnode3:nullable Object> isa Array[Object] */
7487 cltype19 = type_array__Arraykernel__Object.color;
7488 idtype20 = type_array__Arraykernel__Object.id;
7489 if(var_listnode3 == NULL) {
7490 var18 = 0;
7491 } else {
7492 if(cltype19 >= var_listnode3->type->table_size) {
7493 var18 = 0;
7494 } else {
7495 var18 = var_listnode3->type->type_table[cltype19] == idtype20;
7496 }
7497 }
7498 if (!var18) {
7499 fprintf(stderr, "Runtime error: %s", "Assert failed");
7500 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26107);
7501 exit(1);
7502 }
7503 var21 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction699>*/;
7504 var_listnode4 = var21;
7505 var_pexprnode5 = var_nodearraylist11;
7506 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
7507 cltype23 = type_nullable_parser_nodes__AExpr.color;
7508 idtype24 = type_nullable_parser_nodes__AExpr.id;
7509 if(var_pexprnode5 == NULL) {
7510 var22 = 1;
7511 } else {
7512 if(cltype23 >= var_pexprnode5->type->table_size) {
7513 var22 = 0;
7514 } else {
7515 var22 = var_pexprnode5->type->type_table[cltype23] == idtype24;
7516 }
7517 }
7518 if (!var22) {
7519 fprintf(stderr, "Runtime error: %s", "Assert failed");
7520 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26110);
7521 exit(1);
7522 }
7523 var_tkwdonode6 = var_nodearraylist13;
7524 /* <var_tkwdonode6:nullable Object> isa nullable TKwdo */
7525 cltype26 = type_nullable_parser_nodes__TKwdo.color;
7526 idtype27 = type_nullable_parser_nodes__TKwdo.id;
7527 if(var_tkwdonode6 == NULL) {
7528 var25 = 1;
7529 } else {
7530 if(cltype26 >= var_tkwdonode6->type->table_size) {
7531 var25 = 0;
7532 } else {
7533 var25 = var_tkwdonode6->type->type_table[cltype26] == idtype27;
7534 }
7535 }
7536 if (!var25) {
7537 fprintf(stderr, "Runtime error: %s", "Assert failed");
7538 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26112);
7539 exit(1);
7540 }
7541 var_pexprnode7 = var_nodearraylist14;
7542 /* <var_pexprnode7:nullable Object> isa nullable AExpr */
7543 cltype29 = type_nullable_parser_nodes__AExpr.color;
7544 idtype30 = type_nullable_parser_nodes__AExpr.id;
7545 if(var_pexprnode7 == NULL) {
7546 var28 = 1;
7547 } else {
7548 if(cltype29 >= var_pexprnode7->type->table_size) {
7549 var28 = 0;
7550 } else {
7551 var28 = var_pexprnode7->type->type_table[cltype29] == idtype30;
7552 }
7553 }
7554 if (!var28) {
7555 fprintf(stderr, "Runtime error: %s", "Assert failed");
7556 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26114);
7557 exit(1);
7558 }
7559 var_plabelnode8 = var_nodearraylist15;
7560 /* <var_plabelnode8:nullable Object> isa nullable ALabel */
7561 cltype32 = type_nullable_parser_nodes__ALabel.color;
7562 idtype33 = type_nullable_parser_nodes__ALabel.id;
7563 if(var_plabelnode8 == NULL) {
7564 var31 = 1;
7565 } else {
7566 if(cltype32 >= var_plabelnode8->type->table_size) {
7567 var31 = 0;
7568 } else {
7569 var31 = var_plabelnode8->type->type_table[cltype32] == idtype33;
7570 }
7571 }
7572 if (!var31) {
7573 fprintf(stderr, "Runtime error: %s", "Assert failed");
7574 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26116);
7575 exit(1);
7576 }
7577 var34 = NEW_parser_nodes__AForExpr(&type_parser_nodes__AForExpr);
7578 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var34->class->vft[COLOR_parser_prod__AForExpr__init_aforexpr]))(var34, var_tkwfornode2, var_listnode4, var_pexprnode5, var_tkwdonode6, var_pexprnode7, var_plabelnode8) /* init_aforexpr on <var34:AForExpr>*/;
7579 CHECK_NEW_parser_nodes__AForExpr(var34);
7580 var_pexprnode1 = var34;
7581 var_node_list = var_pexprnode1;
7582 var35 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction699> */
7583 var36 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var35) /* go_to on <var_p:Parser>*/;
7584 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var36, var_node_list) /* push on <var_p:Parser>*/;
7585 RET_LABEL:;
7586 }
7587 /* method parser#ReduceAction699#action for (self: Object, Parser) */
7588 void VIRTUAL_parser__ReduceAction699__action(val* self, val* p0) {
7589 parser__ReduceAction699__action(self, p0);
7590 RET_LABEL:;
7591 }
7592 /* method parser#ReduceAction700#action for (self: ReduceAction700, Parser) */
7593 void parser__ReduceAction700__action(val* self, val* p0) {
7594 val* var_p /* var p: Parser */;
7595 val* var /* : null */;
7596 val* var_node_list /* var node_list: nullable Object */;
7597 val* var1 /* : nullable Object */;
7598 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
7599 val* var2 /* : nullable Object */;
7600 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
7601 val* var3 /* : nullable Object */;
7602 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
7603 val* var4 /* : nullable Object */;
7604 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
7605 val* var5 /* : nullable Object */;
7606 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
7607 val* var6 /* : nullable Object */;
7608 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7609 val* var7 /* : nullable Object */;
7610 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7611 val* var8 /* : nullable Object */;
7612 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7613 val* var9 /* : nullable Object */;
7614 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7615 val* var10 /* : nullable Object */;
7616 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7617 val* var11 /* : nullable Object */;
7618 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7619 val* var12 /* : Array[Object] */;
7620 val* var_listnode4 /* var listnode4: Array[Object] */;
7621 val* var_tkwfornode2 /* var tkwfornode2: nullable Object */;
7622 short int var13 /* : Bool */;
7623 int cltype;
7624 int idtype;
7625 val* var_listnode3 /* var listnode3: nullable Object */;
7626 short int var14 /* : Bool */;
7627 int cltype15;
7628 int idtype16;
7629 val* var17 /* : Array[Object] */;
7630 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
7631 short int var18 /* : Bool */;
7632 int cltype19;
7633 int idtype20;
7634 val* var_tkwdonode6 /* var tkwdonode6: nullable Object */;
7635 short int var21 /* : Bool */;
7636 int cltype22;
7637 int idtype23;
7638 val* var_pexprnode7 /* var pexprnode7: nullable Object */;
7639 short int var24 /* : Bool */;
7640 int cltype25;
7641 int idtype26;
7642 val* var_plabelnode8 /* var plabelnode8: nullable Object */;
7643 short int var27 /* : Bool */;
7644 int cltype28;
7645 int idtype29;
7646 val* var30 /* : AForExpr */;
7647 val* var_pexprnode1 /* var pexprnode1: nullable AForExpr */;
7648 long var31 /* : Int */;
7649 long var32 /* : Int */;
7650 var_p = p0;
7651 var = NULL;
7652 var_node_list = var;
7653 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7654 var_nodearraylist11 = var1;
7655 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7656 var_nodearraylist10 = var2;
7657 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7658 var_nodearraylist9 = var3;
7659 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7660 var_nodearraylist8 = var4;
7661 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7662 var_nodearraylist7 = var5;
7663 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7664 var_nodearraylist6 = var6;
7665 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7666 var_nodearraylist5 = var7;
7667 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7668 var_nodearraylist4 = var8;
7669 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7670 var_nodearraylist3 = var9;
7671 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7672 var_nodearraylist2 = var10;
7673 var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7674 var_nodearraylist1 = var11;
7675 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
7676 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
7677 CHECK_NEW_array__Array(var12);
7678 var_listnode4 = var12;
7679 var_tkwfornode2 = var_nodearraylist1;
7680 /* <var_tkwfornode2:nullable Object> isa nullable TKwfor */
7681 cltype = type_nullable_parser_nodes__TKwfor.color;
7682 idtype = type_nullable_parser_nodes__TKwfor.id;
7683 if(var_tkwfornode2 == NULL) {
7684 var13 = 1;
7685 } else {
7686 if(cltype >= var_tkwfornode2->type->table_size) {
7687 var13 = 0;
7688 } else {
7689 var13 = var_tkwfornode2->type->type_table[cltype] == idtype;
7690 }
7691 }
7692 if (!var13) {
7693 fprintf(stderr, "Runtime error: %s", "Assert failed");
7694 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26147);
7695 exit(1);
7696 }
7697 var_listnode3 = var_nodearraylist3;
7698 /* <var_listnode3:nullable Object> isa Array[Object] */
7699 cltype15 = type_array__Arraykernel__Object.color;
7700 idtype16 = type_array__Arraykernel__Object.id;
7701 if(var_listnode3 == NULL) {
7702 var14 = 0;
7703 } else {
7704 if(cltype15 >= var_listnode3->type->table_size) {
7705 var14 = 0;
7706 } else {
7707 var14 = var_listnode3->type->type_table[cltype15] == idtype16;
7708 }
7709 }
7710 if (!var14) {
7711 fprintf(stderr, "Runtime error: %s", "Assert failed");
7712 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26149);
7713 exit(1);
7714 }
7715 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction700>*/;
7716 var_listnode4 = var17;
7717 var_pexprnode5 = var_nodearraylist7;
7718 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
7719 cltype19 = type_nullable_parser_nodes__AExpr.color;
7720 idtype20 = type_nullable_parser_nodes__AExpr.id;
7721 if(var_pexprnode5 == NULL) {
7722 var18 = 1;
7723 } else {
7724 if(cltype19 >= var_pexprnode5->type->table_size) {
7725 var18 = 0;
7726 } else {
7727 var18 = var_pexprnode5->type->type_table[cltype19] == idtype20;
7728 }
7729 }
7730 if (!var18) {
7731 fprintf(stderr, "Runtime error: %s", "Assert failed");
7732 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26152);
7733 exit(1);
7734 }
7735 var_tkwdonode6 = var_nodearraylist9;
7736 /* <var_tkwdonode6:nullable Object> isa nullable TKwdo */
7737 cltype22 = type_nullable_parser_nodes__TKwdo.color;
7738 idtype23 = type_nullable_parser_nodes__TKwdo.id;
7739 if(var_tkwdonode6 == NULL) {
7740 var21 = 1;
7741 } else {
7742 if(cltype22 >= var_tkwdonode6->type->table_size) {
7743 var21 = 0;
7744 } else {
7745 var21 = var_tkwdonode6->type->type_table[cltype22] == idtype23;
7746 }
7747 }
7748 if (!var21) {
7749 fprintf(stderr, "Runtime error: %s", "Assert failed");
7750 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26154);
7751 exit(1);
7752 }
7753 var_pexprnode7 = var_nodearraylist10;
7754 /* <var_pexprnode7:nullable Object> isa nullable AExpr */
7755 cltype25 = type_nullable_parser_nodes__AExpr.color;
7756 idtype26 = type_nullable_parser_nodes__AExpr.id;
7757 if(var_pexprnode7 == NULL) {
7758 var24 = 1;
7759 } else {
7760 if(cltype25 >= var_pexprnode7->type->table_size) {
7761 var24 = 0;
7762 } else {
7763 var24 = var_pexprnode7->type->type_table[cltype25] == idtype26;
7764 }
7765 }
7766 if (!var24) {
7767 fprintf(stderr, "Runtime error: %s", "Assert failed");
7768 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26156);
7769 exit(1);
7770 }
7771 var_plabelnode8 = var_nodearraylist11;
7772 /* <var_plabelnode8:nullable Object> isa nullable ALabel */
7773 cltype28 = type_nullable_parser_nodes__ALabel.color;
7774 idtype29 = type_nullable_parser_nodes__ALabel.id;
7775 if(var_plabelnode8 == NULL) {
7776 var27 = 1;
7777 } else {
7778 if(cltype28 >= var_plabelnode8->type->table_size) {
7779 var27 = 0;
7780 } else {
7781 var27 = var_plabelnode8->type->type_table[cltype28] == idtype29;
7782 }
7783 }
7784 if (!var27) {
7785 fprintf(stderr, "Runtime error: %s", "Assert failed");
7786 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26158);
7787 exit(1);
7788 }
7789 var30 = NEW_parser_nodes__AForExpr(&type_parser_nodes__AForExpr);
7790 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var30->class->vft[COLOR_parser_prod__AForExpr__init_aforexpr]))(var30, var_tkwfornode2, var_listnode4, var_pexprnode5, var_tkwdonode6, var_pexprnode7, var_plabelnode8) /* init_aforexpr on <var30:AForExpr>*/;
7791 CHECK_NEW_parser_nodes__AForExpr(var30);
7792 var_pexprnode1 = var30;
7793 var_node_list = var_pexprnode1;
7794 var31 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction700> */
7795 var32 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var31) /* go_to on <var_p:Parser>*/;
7796 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var32, var_node_list) /* push on <var_p:Parser>*/;
7797 RET_LABEL:;
7798 }
7799 /* method parser#ReduceAction700#action for (self: Object, Parser) */
7800 void VIRTUAL_parser__ReduceAction700__action(val* self, val* p0) {
7801 parser__ReduceAction700__action(self, p0);
7802 RET_LABEL:;
7803 }
7804 /* method parser#ReduceAction701#action for (self: ReduceAction701, Parser) */
7805 void parser__ReduceAction701__action(val* self, val* p0) {
7806 val* var_p /* var p: Parser */;
7807 val* var /* : null */;
7808 val* var_node_list /* var node_list: nullable Object */;
7809 val* var1 /* : nullable Object */;
7810 val* var_nodearraylist14 /* var nodearraylist14: nullable Object */;
7811 val* var2 /* : nullable Object */;
7812 val* var_nodearraylist13 /* var nodearraylist13: nullable Object */;
7813 val* var3 /* : nullable Object */;
7814 val* var_nodearraylist12 /* var nodearraylist12: nullable Object */;
7815 val* var4 /* : nullable Object */;
7816 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
7817 val* var5 /* : nullable Object */;
7818 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
7819 val* var6 /* : nullable Object */;
7820 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
7821 val* var7 /* : nullable Object */;
7822 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
7823 val* var8 /* : nullable Object */;
7824 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
7825 val* var9 /* : nullable Object */;
7826 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7827 val* var10 /* : nullable Object */;
7828 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7829 val* var11 /* : nullable Object */;
7830 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7831 val* var12 /* : nullable Object */;
7832 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7833 val* var13 /* : nullable Object */;
7834 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7835 val* var14 /* : nullable Object */;
7836 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7837 val* var15 /* : Array[Object] */;
7838 val* var_listnode4 /* var listnode4: Array[Object] */;
7839 val* var_tkwfornode2 /* var tkwfornode2: nullable Object */;
7840 short int var16 /* : Bool */;
7841 int cltype;
7842 int idtype;
7843 val* var_listnode3 /* var listnode3: nullable Object */;
7844 short int var17 /* : Bool */;
7845 int cltype18;
7846 int idtype19;
7847 val* var20 /* : Array[Object] */;
7848 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
7849 short int var21 /* : Bool */;
7850 int cltype22;
7851 int idtype23;
7852 val* var_tkwdonode6 /* var tkwdonode6: nullable Object */;
7853 short int var24 /* : Bool */;
7854 int cltype25;
7855 int idtype26;
7856 val* var_pexprnode7 /* var pexprnode7: nullable Object */;
7857 short int var27 /* : Bool */;
7858 int cltype28;
7859 int idtype29;
7860 val* var30 /* : AForExpr */;
7861 val* var31 /* : null */;
7862 val* var_pexprnode1 /* var pexprnode1: nullable AForExpr */;
7863 long var32 /* : Int */;
7864 long var33 /* : Int */;
7865 var_p = p0;
7866 var = NULL;
7867 var_node_list = var;
7868 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7869 var_nodearraylist14 = var1;
7870 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7871 var_nodearraylist13 = var2;
7872 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7873 var_nodearraylist12 = var3;
7874 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7875 var_nodearraylist11 = var4;
7876 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7877 var_nodearraylist10 = var5;
7878 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7879 var_nodearraylist9 = var6;
7880 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7881 var_nodearraylist8 = var7;
7882 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7883 var_nodearraylist7 = var8;
7884 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7885 var_nodearraylist6 = var9;
7886 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7887 var_nodearraylist5 = var10;
7888 var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7889 var_nodearraylist4 = var11;
7890 var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7891 var_nodearraylist3 = var12;
7892 var13 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7893 var_nodearraylist2 = var13;
7894 var14 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7895 var_nodearraylist1 = var14;
7896 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
7897 ((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
7898 CHECK_NEW_array__Array(var15);
7899 var_listnode4 = var15;
7900 var_tkwfornode2 = var_nodearraylist1;
7901 /* <var_tkwfornode2:nullable Object> isa nullable TKwfor */
7902 cltype = type_nullable_parser_nodes__TKwfor.color;
7903 idtype = type_nullable_parser_nodes__TKwfor.id;
7904 if(var_tkwfornode2 == NULL) {
7905 var16 = 1;
7906 } else {
7907 if(cltype >= var_tkwfornode2->type->table_size) {
7908 var16 = 0;
7909 } else {
7910 var16 = var_tkwfornode2->type->type_table[cltype] == idtype;
7911 }
7912 }
7913 if (!var16) {
7914 fprintf(stderr, "Runtime error: %s", "Assert failed");
7915 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26192);
7916 exit(1);
7917 }
7918 var_listnode3 = var_nodearraylist5;
7919 /* <var_listnode3:nullable Object> isa Array[Object] */
7920 cltype18 = type_array__Arraykernel__Object.color;
7921 idtype19 = type_array__Arraykernel__Object.id;
7922 if(var_listnode3 == NULL) {
7923 var17 = 0;
7924 } else {
7925 if(cltype18 >= var_listnode3->type->table_size) {
7926 var17 = 0;
7927 } else {
7928 var17 = var_listnode3->type->type_table[cltype18] == idtype19;
7929 }
7930 }
7931 if (!var17) {
7932 fprintf(stderr, "Runtime error: %s", "Assert failed");
7933 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26194);
7934 exit(1);
7935 }
7936 var20 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction701>*/;
7937 var_listnode4 = var20;
7938 var_pexprnode5 = var_nodearraylist11;
7939 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
7940 cltype22 = type_nullable_parser_nodes__AExpr.color;
7941 idtype23 = type_nullable_parser_nodes__AExpr.id;
7942 if(var_pexprnode5 == NULL) {
7943 var21 = 1;
7944 } else {
7945 if(cltype22 >= var_pexprnode5->type->table_size) {
7946 var21 = 0;
7947 } else {
7948 var21 = var_pexprnode5->type->type_table[cltype22] == idtype23;
7949 }
7950 }
7951 if (!var21) {
7952 fprintf(stderr, "Runtime error: %s", "Assert failed");
7953 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26197);
7954 exit(1);
7955 }
7956 var_tkwdonode6 = var_nodearraylist13;
7957 /* <var_tkwdonode6:nullable Object> isa nullable TKwdo */
7958 cltype25 = type_nullable_parser_nodes__TKwdo.color;
7959 idtype26 = type_nullable_parser_nodes__TKwdo.id;
7960 if(var_tkwdonode6 == NULL) {
7961 var24 = 1;
7962 } else {
7963 if(cltype25 >= var_tkwdonode6->type->table_size) {
7964 var24 = 0;
7965 } else {
7966 var24 = var_tkwdonode6->type->type_table[cltype25] == idtype26;
7967 }
7968 }
7969 if (!var24) {
7970 fprintf(stderr, "Runtime error: %s", "Assert failed");
7971 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26199);
7972 exit(1);
7973 }
7974 var_pexprnode7 = var_nodearraylist14;
7975 /* <var_pexprnode7:nullable Object> isa nullable AExpr */
7976 cltype28 = type_nullable_parser_nodes__AExpr.color;
7977 idtype29 = type_nullable_parser_nodes__AExpr.id;
7978 if(var_pexprnode7 == NULL) {
7979 var27 = 1;
7980 } else {
7981 if(cltype28 >= var_pexprnode7->type->table_size) {
7982 var27 = 0;
7983 } else {
7984 var27 = var_pexprnode7->type->type_table[cltype28] == idtype29;
7985 }
7986 }
7987 if (!var27) {
7988 fprintf(stderr, "Runtime error: %s", "Assert failed");
7989 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26201);
7990 exit(1);
7991 }
7992 var30 = NEW_parser_nodes__AForExpr(&type_parser_nodes__AForExpr);
7993 var31 = NULL;
7994 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var30->class->vft[COLOR_parser_prod__AForExpr__init_aforexpr]))(var30, var_tkwfornode2, var_listnode4, var_pexprnode5, var_tkwdonode6, var_pexprnode7, var31) /* init_aforexpr on <var30:AForExpr>*/;
7995 CHECK_NEW_parser_nodes__AForExpr(var30);
7996 var_pexprnode1 = var30;
7997 var_node_list = var_pexprnode1;
7998 var32 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction701> */
7999 var33 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var32) /* go_to on <var_p:Parser>*/;
8000 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var33, var_node_list) /* push on <var_p:Parser>*/;
8001 RET_LABEL:;
8002 }
8003 /* method parser#ReduceAction701#action for (self: Object, Parser) */
8004 void VIRTUAL_parser__ReduceAction701__action(val* self, val* p0) {
8005 parser__ReduceAction701__action(self, p0);
8006 RET_LABEL:;
8007 }
8008 /* method parser#ReduceAction702#action for (self: ReduceAction702, Parser) */
8009 void parser__ReduceAction702__action(val* self, val* p0) {
8010 val* var_p /* var p: Parser */;
8011 val* var /* : null */;
8012 val* var_node_list /* var node_list: nullable Object */;
8013 val* var1 /* : nullable Object */;
8014 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
8015 val* var2 /* : nullable Object */;
8016 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
8017 val* var3 /* : nullable Object */;
8018 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
8019 val* var4 /* : nullable Object */;
8020 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
8021 val* var5 /* : nullable Object */;
8022 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
8023 val* var6 /* : nullable Object */;
8024 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
8025 val* var7 /* : nullable Object */;
8026 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8027 val* var8 /* : nullable Object */;
8028 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8029 val* var9 /* : nullable Object */;
8030 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8031 val* var10 /* : nullable Object */;
8032 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8033 val* var11 /* : Array[Object] */;
8034 val* var_listnode4 /* var listnode4: Array[Object] */;
8035 val* var_tkwfornode2 /* var tkwfornode2: nullable Object */;
8036 short int var12 /* : Bool */;
8037 int cltype;
8038 int idtype;
8039 val* var_listnode3 /* var listnode3: nullable Object */;
8040 short int var13 /* : Bool */;
8041 int cltype14;
8042 int idtype15;
8043 val* var16 /* : Array[Object] */;
8044 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
8045 short int var17 /* : Bool */;
8046 int cltype18;
8047 int idtype19;
8048 val* var_tkwdonode6 /* var tkwdonode6: nullable Object */;
8049 short int var20 /* : Bool */;
8050 int cltype21;
8051 int idtype22;
8052 val* var_pexprnode7 /* var pexprnode7: nullable Object */;
8053 short int var23 /* : Bool */;
8054 int cltype24;
8055 int idtype25;
8056 val* var26 /* : AForExpr */;
8057 val* var27 /* : null */;
8058 val* var_pexprnode1 /* var pexprnode1: nullable AForExpr */;
8059 long var28 /* : Int */;
8060 long var29 /* : Int */;
8061 var_p = p0;
8062 var = NULL;
8063 var_node_list = var;
8064 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8065 var_nodearraylist10 = var1;
8066 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8067 var_nodearraylist9 = var2;
8068 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8069 var_nodearraylist8 = var3;
8070 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8071 var_nodearraylist7 = var4;
8072 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8073 var_nodearraylist6 = var5;
8074 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8075 var_nodearraylist5 = var6;
8076 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8077 var_nodearraylist4 = var7;
8078 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8079 var_nodearraylist3 = var8;
8080 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8081 var_nodearraylist2 = var9;
8082 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8083 var_nodearraylist1 = var10;
8084 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
8085 ((void (*)(val*))(var11->class->vft[COLOR_array__Array__init]))(var11) /* init on <var11:Array[Object]>*/;
8086 CHECK_NEW_array__Array(var11);
8087 var_listnode4 = var11;
8088 var_tkwfornode2 = var_nodearraylist1;
8089 /* <var_tkwfornode2:nullable Object> isa nullable TKwfor */
8090 cltype = type_nullable_parser_nodes__TKwfor.color;
8091 idtype = type_nullable_parser_nodes__TKwfor.id;
8092 if(var_tkwfornode2 == NULL) {
8093 var12 = 1;
8094 } else {
8095 if(cltype >= var_tkwfornode2->type->table_size) {
8096 var12 = 0;
8097 } else {
8098 var12 = var_tkwfornode2->type->type_table[cltype] == idtype;
8099 }
8100 }
8101 if (!var12) {
8102 fprintf(stderr, "Runtime error: %s", "Assert failed");
8103 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26231);
8104 exit(1);
8105 }
8106 var_listnode3 = var_nodearraylist3;
8107 /* <var_listnode3:nullable Object> isa Array[Object] */
8108 cltype14 = type_array__Arraykernel__Object.color;
8109 idtype15 = type_array__Arraykernel__Object.id;
8110 if(var_listnode3 == NULL) {
8111 var13 = 0;
8112 } else {
8113 if(cltype14 >= var_listnode3->type->table_size) {
8114 var13 = 0;
8115 } else {
8116 var13 = var_listnode3->type->type_table[cltype14] == idtype15;
8117 }
8118 }
8119 if (!var13) {
8120 fprintf(stderr, "Runtime error: %s", "Assert failed");
8121 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26233);
8122 exit(1);
8123 }
8124 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction702>*/;
8125 var_listnode4 = var16;
8126 var_pexprnode5 = var_nodearraylist7;
8127 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
8128 cltype18 = type_nullable_parser_nodes__AExpr.color;
8129 idtype19 = type_nullable_parser_nodes__AExpr.id;
8130 if(var_pexprnode5 == NULL) {
8131 var17 = 1;
8132 } else {
8133 if(cltype18 >= var_pexprnode5->type->table_size) {
8134 var17 = 0;
8135 } else {
8136 var17 = var_pexprnode5->type->type_table[cltype18] == idtype19;
8137 }
8138 }
8139 if (!var17) {
8140 fprintf(stderr, "Runtime error: %s", "Assert failed");
8141 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26236);
8142 exit(1);
8143 }
8144 var_tkwdonode6 = var_nodearraylist9;
8145 /* <var_tkwdonode6:nullable Object> isa nullable TKwdo */
8146 cltype21 = type_nullable_parser_nodes__TKwdo.color;
8147 idtype22 = type_nullable_parser_nodes__TKwdo.id;
8148 if(var_tkwdonode6 == NULL) {
8149 var20 = 1;
8150 } else {
8151 if(cltype21 >= var_tkwdonode6->type->table_size) {
8152 var20 = 0;
8153 } else {
8154 var20 = var_tkwdonode6->type->type_table[cltype21] == idtype22;
8155 }
8156 }
8157 if (!var20) {
8158 fprintf(stderr, "Runtime error: %s", "Assert failed");
8159 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26238);
8160 exit(1);
8161 }
8162 var_pexprnode7 = var_nodearraylist10;
8163 /* <var_pexprnode7:nullable Object> isa nullable AExpr */
8164 cltype24 = type_nullable_parser_nodes__AExpr.color;
8165 idtype25 = type_nullable_parser_nodes__AExpr.id;
8166 if(var_pexprnode7 == NULL) {
8167 var23 = 1;
8168 } else {
8169 if(cltype24 >= var_pexprnode7->type->table_size) {
8170 var23 = 0;
8171 } else {
8172 var23 = var_pexprnode7->type->type_table[cltype24] == idtype25;
8173 }
8174 }
8175 if (!var23) {
8176 fprintf(stderr, "Runtime error: %s", "Assert failed");
8177 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26240);
8178 exit(1);
8179 }
8180 var26 = NEW_parser_nodes__AForExpr(&type_parser_nodes__AForExpr);
8181 var27 = NULL;
8182 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var26->class->vft[COLOR_parser_prod__AForExpr__init_aforexpr]))(var26, var_tkwfornode2, var_listnode4, var_pexprnode5, var_tkwdonode6, var_pexprnode7, var27) /* init_aforexpr on <var26:AForExpr>*/;
8183 CHECK_NEW_parser_nodes__AForExpr(var26);
8184 var_pexprnode1 = var26;
8185 var_node_list = var_pexprnode1;
8186 var28 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction702> */
8187 var29 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var28) /* go_to on <var_p:Parser>*/;
8188 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var29, var_node_list) /* push on <var_p:Parser>*/;
8189 RET_LABEL:;
8190 }
8191 /* method parser#ReduceAction702#action for (self: Object, Parser) */
8192 void VIRTUAL_parser__ReduceAction702__action(val* self, val* p0) {
8193 parser__ReduceAction702__action(self, p0);
8194 RET_LABEL:;
8195 }
8196 /* method parser#ReduceAction703#action for (self: ReduceAction703, Parser) */
8197 void parser__ReduceAction703__action(val* self, val* p0) {
8198 val* var_p /* var p: Parser */;
8199 val* var /* : null */;
8200 val* var_node_list /* var node_list: nullable Object */;
8201 val* var1 /* : nullable Object */;
8202 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8203 val* var2 /* : nullable Object */;
8204 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8205 val* var3 /* : nullable Object */;
8206 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8207 val* var4 /* : nullable Object */;
8208 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8209 val* var_tkwassertnode2 /* var tkwassertnode2: nullable Object */;
8210 short int var5 /* : Bool */;
8211 int cltype;
8212 int idtype;
8213 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
8214 short int var6 /* : Bool */;
8215 int cltype7;
8216 int idtype8;
8217 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
8218 short int var9 /* : Bool */;
8219 int cltype10;
8220 int idtype11;
8221 val* var12 /* : AAssertExpr */;
8222 val* var13 /* : null */;
8223 val* var_pexprnode1 /* var pexprnode1: nullable AAssertExpr */;
8224 long var14 /* : Int */;
8225 long var15 /* : Int */;
8226 var_p = p0;
8227 var = NULL;
8228 var_node_list = var;
8229 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8230 var_nodearraylist4 = var1;
8231 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8232 var_nodearraylist3 = var2;
8233 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8234 var_nodearraylist2 = var3;
8235 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8236 var_nodearraylist1 = var4;
8237 var_tkwassertnode2 = var_nodearraylist1;
8238 /* <var_tkwassertnode2:nullable Object> isa nullable TKwassert */
8239 cltype = type_nullable_parser_nodes__TKwassert.color;
8240 idtype = type_nullable_parser_nodes__TKwassert.id;
8241 if(var_tkwassertnode2 == NULL) {
8242 var5 = 1;
8243 } else {
8244 if(cltype >= var_tkwassertnode2->type->table_size) {
8245 var5 = 0;
8246 } else {
8247 var5 = var_tkwassertnode2->type->type_table[cltype] == idtype;
8248 }
8249 }
8250 if (!var5) {
8251 fprintf(stderr, "Runtime error: %s", "Assert failed");
8252 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26263);
8253 exit(1);
8254 }
8255 var_pexprnode4 = var_nodearraylist2;
8256 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
8257 cltype7 = type_nullable_parser_nodes__AExpr.color;
8258 idtype8 = type_nullable_parser_nodes__AExpr.id;
8259 if(var_pexprnode4 == NULL) {
8260 var6 = 1;
8261 } else {
8262 if(cltype7 >= var_pexprnode4->type->table_size) {
8263 var6 = 0;
8264 } else {
8265 var6 = var_pexprnode4->type->type_table[cltype7] == idtype8;
8266 }
8267 }
8268 if (!var6) {
8269 fprintf(stderr, "Runtime error: %s", "Assert failed");
8270 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26265);
8271 exit(1);
8272 }
8273 var_pexprnode5 = var_nodearraylist4;
8274 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
8275 cltype10 = type_nullable_parser_nodes__AExpr.color;
8276 idtype11 = type_nullable_parser_nodes__AExpr.id;
8277 if(var_pexprnode5 == NULL) {
8278 var9 = 1;
8279 } else {
8280 if(cltype10 >= var_pexprnode5->type->table_size) {
8281 var9 = 0;
8282 } else {
8283 var9 = var_pexprnode5->type->type_table[cltype10] == idtype11;
8284 }
8285 }
8286 if (!var9) {
8287 fprintf(stderr, "Runtime error: %s", "Assert failed");
8288 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26267);
8289 exit(1);
8290 }
8291 var12 = NEW_parser_nodes__AAssertExpr(&type_parser_nodes__AAssertExpr);
8292 var13 = NULL;
8293 ((void (*)(val*, val*, val*, val*, val*))(var12->class->vft[COLOR_parser_prod__AAssertExpr__init_aassertexpr]))(var12, var_tkwassertnode2, var13, var_pexprnode4, var_pexprnode5) /* init_aassertexpr on <var12:AAssertExpr>*/;
8294 CHECK_NEW_parser_nodes__AAssertExpr(var12);
8295 var_pexprnode1 = var12;
8296 var_node_list = var_pexprnode1;
8297 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction703> */
8298 var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
8299 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
8300 RET_LABEL:;
8301 }
8302 /* method parser#ReduceAction703#action for (self: Object, Parser) */
8303 void VIRTUAL_parser__ReduceAction703__action(val* self, val* p0) {
8304 parser__ReduceAction703__action(self, p0);
8305 RET_LABEL:;
8306 }
8307 /* method parser#ReduceAction704#action for (self: ReduceAction704, Parser) */
8308 void parser__ReduceAction704__action(val* self, val* p0) {
8309 val* var_p /* var p: Parser */;
8310 val* var /* : null */;
8311 val* var_node_list /* var node_list: nullable Object */;
8312 val* var1 /* : nullable Object */;
8313 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
8314 val* var2 /* : nullable Object */;
8315 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8316 val* var3 /* : nullable Object */;
8317 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8318 val* var4 /* : nullable Object */;
8319 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8320 val* var5 /* : nullable Object */;
8321 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8322 val* var_tkwassertnode2 /* var tkwassertnode2: nullable Object */;
8323 short int var6 /* : Bool */;
8324 int cltype;
8325 int idtype;
8326 val* var_tidnode3 /* var tidnode3: nullable Object */;
8327 short int var7 /* : Bool */;
8328 int cltype8;
8329 int idtype9;
8330 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
8331 short int var10 /* : Bool */;
8332 int cltype11;
8333 int idtype12;
8334 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
8335 short int var13 /* : Bool */;
8336 int cltype14;
8337 int idtype15;
8338 val* var16 /* : AAssertExpr */;
8339 val* var_pexprnode1 /* var pexprnode1: nullable AAssertExpr */;
8340 long var17 /* : Int */;
8341 long var18 /* : Int */;
8342 var_p = p0;
8343 var = NULL;
8344 var_node_list = var;
8345 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8346 var_nodearraylist5 = var1;
8347 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8348 var_nodearraylist4 = var2;
8349 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8350 var_nodearraylist3 = var3;
8351 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8352 var_nodearraylist2 = var4;
8353 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8354 var_nodearraylist1 = var5;
8355 var_tkwassertnode2 = var_nodearraylist1;
8356 /* <var_tkwassertnode2:nullable Object> isa nullable TKwassert */
8357 cltype = type_nullable_parser_nodes__TKwassert.color;
8358 idtype = type_nullable_parser_nodes__TKwassert.id;
8359 if(var_tkwassertnode2 == NULL) {
8360 var6 = 1;
8361 } else {
8362 if(cltype >= var_tkwassertnode2->type->table_size) {
8363 var6 = 0;
8364 } else {
8365 var6 = var_tkwassertnode2->type->type_table[cltype] == idtype;
8366 }
8367 }
8368 if (!var6) {
8369 fprintf(stderr, "Runtime error: %s", "Assert failed");
8370 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26289);
8371 exit(1);
8372 }
8373 var_tidnode3 = var_nodearraylist2;
8374 /* <var_tidnode3:nullable Object> isa nullable TId */
8375 cltype8 = type_nullable_parser_nodes__TId.color;
8376 idtype9 = type_nullable_parser_nodes__TId.id;
8377 if(var_tidnode3 == NULL) {
8378 var7 = 1;
8379 } else {
8380 if(cltype8 >= var_tidnode3->type->table_size) {
8381 var7 = 0;
8382 } else {
8383 var7 = var_tidnode3->type->type_table[cltype8] == idtype9;
8384 }
8385 }
8386 if (!var7) {
8387 fprintf(stderr, "Runtime error: %s", "Assert failed");
8388 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26291);
8389 exit(1);
8390 }
8391 var_pexprnode4 = var_nodearraylist3;
8392 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
8393 cltype11 = type_nullable_parser_nodes__AExpr.color;
8394 idtype12 = type_nullable_parser_nodes__AExpr.id;
8395 if(var_pexprnode4 == NULL) {
8396 var10 = 1;
8397 } else {
8398 if(cltype11 >= var_pexprnode4->type->table_size) {
8399 var10 = 0;
8400 } else {
8401 var10 = var_pexprnode4->type->type_table[cltype11] == idtype12;
8402 }
8403 }
8404 if (!var10) {
8405 fprintf(stderr, "Runtime error: %s", "Assert failed");
8406 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26293);
8407 exit(1);
8408 }
8409 var_pexprnode5 = var_nodearraylist5;
8410 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
8411 cltype14 = type_nullable_parser_nodes__AExpr.color;
8412 idtype15 = type_nullable_parser_nodes__AExpr.id;
8413 if(var_pexprnode5 == NULL) {
8414 var13 = 1;
8415 } else {
8416 if(cltype14 >= var_pexprnode5->type->table_size) {
8417 var13 = 0;
8418 } else {
8419 var13 = var_pexprnode5->type->type_table[cltype14] == idtype15;
8420 }
8421 }
8422 if (!var13) {
8423 fprintf(stderr, "Runtime error: %s", "Assert failed");
8424 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26295);
8425 exit(1);
8426 }
8427 var16 = NEW_parser_nodes__AAssertExpr(&type_parser_nodes__AAssertExpr);
8428 ((void (*)(val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__AAssertExpr__init_aassertexpr]))(var16, var_tkwassertnode2, var_tidnode3, var_pexprnode4, var_pexprnode5) /* init_aassertexpr on <var16:AAssertExpr>*/;
8429 CHECK_NEW_parser_nodes__AAssertExpr(var16);
8430 var_pexprnode1 = var16;
8431 var_node_list = var_pexprnode1;
8432 var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction704> */
8433 var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
8434 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
8435 RET_LABEL:;
8436 }
8437 /* method parser#ReduceAction704#action for (self: Object, Parser) */
8438 void VIRTUAL_parser__ReduceAction704__action(val* self, val* p0) {
8439 parser__ReduceAction704__action(self, p0);
8440 RET_LABEL:;
8441 }
8442 /* method parser#ReduceAction705#action for (self: ReduceAction705, Parser) */
8443 void parser__ReduceAction705__action(val* self, val* p0) {
8444 val* var_p /* var p: Parser */;
8445 val* var /* : null */;
8446 val* var_node_list /* var node_list: nullable Object */;
8447 val* var1 /* : nullable Object */;
8448 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8449 val* var2 /* : nullable Object */;
8450 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8451 val* var_tkwassertnode2 /* var tkwassertnode2: nullable Object */;
8452 short int var3 /* : Bool */;
8453 int cltype;
8454 int idtype;
8455 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
8456 short int var4 /* : Bool */;
8457 int cltype5;
8458 int idtype6;
8459 val* var7 /* : AAssertExpr */;
8460 val* var8 /* : null */;
8461 val* var9 /* : null */;
8462 val* var_pexprnode1 /* var pexprnode1: nullable AAssertExpr */;
8463 long var10 /* : Int */;
8464 long var11 /* : Int */;
8465 var_p = p0;
8466 var = NULL;
8467 var_node_list = var;
8468 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8469 var_nodearraylist2 = var1;
8470 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8471 var_nodearraylist1 = var2;
8472 var_tkwassertnode2 = var_nodearraylist1;
8473 /* <var_tkwassertnode2:nullable Object> isa nullable TKwassert */
8474 cltype = type_nullable_parser_nodes__TKwassert.color;
8475 idtype = type_nullable_parser_nodes__TKwassert.id;
8476 if(var_tkwassertnode2 == NULL) {
8477 var3 = 1;
8478 } else {
8479 if(cltype >= var_tkwassertnode2->type->table_size) {
8480 var3 = 0;
8481 } else {
8482 var3 = var_tkwassertnode2->type->type_table[cltype] == idtype;
8483 }
8484 }
8485 if (!var3) {
8486 fprintf(stderr, "Runtime error: %s", "Assert failed");
8487 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26314);
8488 exit(1);
8489 }
8490 var_pexprnode4 = var_nodearraylist2;
8491 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
8492 cltype5 = type_nullable_parser_nodes__AExpr.color;
8493 idtype6 = type_nullable_parser_nodes__AExpr.id;
8494 if(var_pexprnode4 == NULL) {
8495 var4 = 1;
8496 } else {
8497 if(cltype5 >= var_pexprnode4->type->table_size) {
8498 var4 = 0;
8499 } else {
8500 var4 = var_pexprnode4->type->type_table[cltype5] == idtype6;
8501 }
8502 }
8503 if (!var4) {
8504 fprintf(stderr, "Runtime error: %s", "Assert failed");
8505 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26316);
8506 exit(1);
8507 }
8508 var7 = NEW_parser_nodes__AAssertExpr(&type_parser_nodes__AAssertExpr);
8509 var8 = NULL;
8510 var9 = NULL;
8511 ((void (*)(val*, val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AAssertExpr__init_aassertexpr]))(var7, var_tkwassertnode2, var8, var_pexprnode4, var9) /* init_aassertexpr on <var7:AAssertExpr>*/;
8512 CHECK_NEW_parser_nodes__AAssertExpr(var7);
8513 var_pexprnode1 = var7;
8514 var_node_list = var_pexprnode1;
8515 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction705> */
8516 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
8517 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
8518 RET_LABEL:;
8519 }
8520 /* method parser#ReduceAction705#action for (self: Object, Parser) */
8521 void VIRTUAL_parser__ReduceAction705__action(val* self, val* p0) {
8522 parser__ReduceAction705__action(self, p0);
8523 RET_LABEL:;
8524 }
8525 /* method parser#ReduceAction706#action for (self: ReduceAction706, Parser) */
8526 void parser__ReduceAction706__action(val* self, val* p0) {
8527 val* var_p /* var p: Parser */;
8528 val* var /* : null */;
8529 val* var_node_list /* var node_list: nullable Object */;
8530 val* var1 /* : nullable Object */;
8531 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8532 val* var2 /* : nullable Object */;
8533 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8534 val* var3 /* : nullable Object */;
8535 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8536 val* var_tkwassertnode2 /* var tkwassertnode2: nullable Object */;
8537 short int var4 /* : Bool */;
8538 int cltype;
8539 int idtype;
8540 val* var_tidnode3 /* var tidnode3: nullable Object */;
8541 short int var5 /* : Bool */;
8542 int cltype6;
8543 int idtype7;
8544 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
8545 short int var8 /* : Bool */;
8546 int cltype9;
8547 int idtype10;
8548 val* var11 /* : AAssertExpr */;
8549 val* var12 /* : null */;
8550 val* var_pexprnode1 /* var pexprnode1: nullable AAssertExpr */;
8551 long var13 /* : Int */;
8552 long var14 /* : Int */;
8553 var_p = p0;
8554 var = NULL;
8555 var_node_list = var;
8556 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8557 var_nodearraylist3 = var1;
8558 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8559 var_nodearraylist2 = var2;
8560 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8561 var_nodearraylist1 = var3;
8562 var_tkwassertnode2 = var_nodearraylist1;
8563 /* <var_tkwassertnode2:nullable Object> isa nullable TKwassert */
8564 cltype = type_nullable_parser_nodes__TKwassert.color;
8565 idtype = type_nullable_parser_nodes__TKwassert.id;
8566 if(var_tkwassertnode2 == NULL) {
8567 var4 = 1;
8568 } else {
8569 if(cltype >= var_tkwassertnode2->type->table_size) {
8570 var4 = 0;
8571 } else {
8572 var4 = var_tkwassertnode2->type->type_table[cltype] == idtype;
8573 }
8574 }
8575 if (!var4) {
8576 fprintf(stderr, "Runtime error: %s", "Assert failed");
8577 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26336);
8578 exit(1);
8579 }
8580 var_tidnode3 = var_nodearraylist2;
8581 /* <var_tidnode3:nullable Object> isa nullable TId */
8582 cltype6 = type_nullable_parser_nodes__TId.color;
8583 idtype7 = type_nullable_parser_nodes__TId.id;
8584 if(var_tidnode3 == NULL) {
8585 var5 = 1;
8586 } else {
8587 if(cltype6 >= var_tidnode3->type->table_size) {
8588 var5 = 0;
8589 } else {
8590 var5 = var_tidnode3->type->type_table[cltype6] == idtype7;
8591 }
8592 }
8593 if (!var5) {
8594 fprintf(stderr, "Runtime error: %s", "Assert failed");
8595 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26338);
8596 exit(1);
8597 }
8598 var_pexprnode4 = var_nodearraylist3;
8599 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
8600 cltype9 = type_nullable_parser_nodes__AExpr.color;
8601 idtype10 = type_nullable_parser_nodes__AExpr.id;
8602 if(var_pexprnode4 == NULL) {
8603 var8 = 1;
8604 } else {
8605 if(cltype9 >= var_pexprnode4->type->table_size) {
8606 var8 = 0;
8607 } else {
8608 var8 = var_pexprnode4->type->type_table[cltype9] == idtype10;
8609 }
8610 }
8611 if (!var8) {
8612 fprintf(stderr, "Runtime error: %s", "Assert failed");
8613 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26340);
8614 exit(1);
8615 }
8616 var11 = NEW_parser_nodes__AAssertExpr(&type_parser_nodes__AAssertExpr);
8617 var12 = NULL;
8618 ((void (*)(val*, val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AAssertExpr__init_aassertexpr]))(var11, var_tkwassertnode2, var_tidnode3, var_pexprnode4, var12) /* init_aassertexpr on <var11:AAssertExpr>*/;
8619 CHECK_NEW_parser_nodes__AAssertExpr(var11);
8620 var_pexprnode1 = var11;
8621 var_node_list = var_pexprnode1;
8622 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction706> */
8623 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
8624 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
8625 RET_LABEL:;
8626 }
8627 /* method parser#ReduceAction706#action for (self: Object, Parser) */
8628 void VIRTUAL_parser__ReduceAction706__action(val* self, val* p0) {
8629 parser__ReduceAction706__action(self, p0);
8630 RET_LABEL:;
8631 }
8632 /* method parser#ReduceAction707#action for (self: ReduceAction707, Parser) */
8633 void parser__ReduceAction707__action(val* self, val* p0) {
8634 val* var_p /* var p: Parser */;
8635 val* var /* : null */;
8636 val* var_node_list /* var node_list: nullable Object */;
8637 val* var1 /* : nullable Object */;
8638 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8639 val* var2 /* : nullable Object */;
8640 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8641 val* var_tidnode1 /* var tidnode1: nullable Object */;
8642 long var3 /* : Int */;
8643 long var4 /* : Int */;
8644 var_p = p0;
8645 var = NULL;
8646 var_node_list = var;
8647 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8648 var_nodearraylist2 = var1;
8649 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8650 var_nodearraylist1 = var2;
8651 var_tidnode1 = var_nodearraylist1;
8652 var_node_list = var_tidnode1;
8653 var3 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction707> */
8654 var4 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var3) /* go_to on <var_p:Parser>*/;
8655 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var4, var_node_list) /* push on <var_p:Parser>*/;
8656 RET_LABEL:;
8657 }
8658 /* method parser#ReduceAction707#action for (self: Object, Parser) */
8659 void VIRTUAL_parser__ReduceAction707__action(val* self, val* p0) {
8660 parser__ReduceAction707__action(self, p0);
8661 RET_LABEL:;
8662 }
8663 /* method parser#ReduceAction710#action for (self: ReduceAction710, Parser) */
8664 void parser__ReduceAction710__action(val* self, val* p0) {
8665 val* var_p /* var p: Parser */;
8666 val* var /* : null */;
8667 val* var_node_list /* var node_list: nullable Object */;
8668 val* var1 /* : nullable Object */;
8669 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
8670 val* var2 /* : nullable Object */;
8671 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
8672 val* var3 /* : nullable Object */;
8673 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
8674 val* var4 /* : nullable Object */;
8675 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
8676 val* var5 /* : nullable Object */;
8677 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
8678 val* var6 /* : nullable Object */;
8679 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
8680 val* var7 /* : nullable Object */;
8681 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
8682 val* var8 /* : nullable Object */;
8683 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8684 val* var9 /* : nullable Object */;
8685 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8686 val* var10 /* : nullable Object */;
8687 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8688 val* var11 /* : nullable Object */;
8689 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8690 val* var_tkwifnode2 /* var tkwifnode2: nullable Object */;
8691 short int var12 /* : Bool */;
8692 int cltype;
8693 int idtype;
8694 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
8695 short int var13 /* : Bool */;
8696 int cltype14;
8697 int idtype15;
8698 val* var_tkwthennode4 /* var tkwthennode4: nullable Object */;
8699 short int var16 /* : Bool */;
8700 int cltype17;
8701 int idtype18;
8702 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
8703 short int var19 /* : Bool */;
8704 int cltype20;
8705 int idtype21;
8706 val* var_tkwelsenode6 /* var tkwelsenode6: nullable Object */;
8707 short int var22 /* : Bool */;
8708 int cltype23;
8709 int idtype24;
8710 val* var_pexprnode7 /* var pexprnode7: nullable Object */;
8711 short int var25 /* : Bool */;
8712 int cltype26;
8713 int idtype27;
8714 val* var28 /* : AIfexprExpr */;
8715 val* var_pexprnode1 /* var pexprnode1: nullable AIfexprExpr */;
8716 long var29 /* : Int */;
8717 long var30 /* : Int */;
8718 var_p = p0;
8719 var = NULL;
8720 var_node_list = var;
8721 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8722 var_nodearraylist11 = var1;
8723 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8724 var_nodearraylist10 = var2;
8725 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8726 var_nodearraylist9 = var3;
8727 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8728 var_nodearraylist8 = var4;
8729 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8730 var_nodearraylist7 = var5;
8731 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8732 var_nodearraylist6 = var6;
8733 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8734 var_nodearraylist5 = var7;
8735 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8736 var_nodearraylist4 = var8;
8737 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8738 var_nodearraylist3 = var9;
8739 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8740 var_nodearraylist2 = var10;
8741 var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8742 var_nodearraylist1 = var11;
8743 var_tkwifnode2 = var_nodearraylist1;
8744 /* <var_tkwifnode2:nullable Object> isa nullable TKwif */
8745 cltype = type_nullable_parser_nodes__TKwif.color;
8746 idtype = type_nullable_parser_nodes__TKwif.id;
8747 if(var_tkwifnode2 == NULL) {
8748 var12 = 1;
8749 } else {
8750 if(cltype >= var_tkwifnode2->type->table_size) {
8751 var12 = 0;
8752 } else {
8753 var12 = var_tkwifnode2->type->type_table[cltype] == idtype;
8754 }
8755 }
8756 if (!var12) {
8757 fprintf(stderr, "Runtime error: %s", "Assert failed");
8758 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26380);
8759 exit(1);
8760 }
8761 var_pexprnode3 = var_nodearraylist3;
8762 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
8763 cltype14 = type_nullable_parser_nodes__AExpr.color;
8764 idtype15 = type_nullable_parser_nodes__AExpr.id;
8765 if(var_pexprnode3 == NULL) {
8766 var13 = 1;
8767 } else {
8768 if(cltype14 >= var_pexprnode3->type->table_size) {
8769 var13 = 0;
8770 } else {
8771 var13 = var_pexprnode3->type->type_table[cltype14] == idtype15;
8772 }
8773 }
8774 if (!var13) {
8775 fprintf(stderr, "Runtime error: %s", "Assert failed");
8776 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26382);
8777 exit(1);
8778 }
8779 var_tkwthennode4 = var_nodearraylist5;
8780 /* <var_tkwthennode4:nullable Object> isa nullable TKwthen */
8781 cltype17 = type_nullable_parser_nodes__TKwthen.color;
8782 idtype18 = type_nullable_parser_nodes__TKwthen.id;
8783 if(var_tkwthennode4 == NULL) {
8784 var16 = 1;
8785 } else {
8786 if(cltype17 >= var_tkwthennode4->type->table_size) {
8787 var16 = 0;
8788 } else {
8789 var16 = var_tkwthennode4->type->type_table[cltype17] == idtype18;
8790 }
8791 }
8792 if (!var16) {
8793 fprintf(stderr, "Runtime error: %s", "Assert failed");
8794 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26384);
8795 exit(1);
8796 }
8797 var_pexprnode5 = var_nodearraylist7;
8798 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
8799 cltype20 = type_nullable_parser_nodes__AExpr.color;
8800 idtype21 = type_nullable_parser_nodes__AExpr.id;
8801 if(var_pexprnode5 == NULL) {
8802 var19 = 1;
8803 } else {
8804 if(cltype20 >= var_pexprnode5->type->table_size) {
8805 var19 = 0;
8806 } else {
8807 var19 = var_pexprnode5->type->type_table[cltype20] == idtype21;
8808 }
8809 }
8810 if (!var19) {
8811 fprintf(stderr, "Runtime error: %s", "Assert failed");
8812 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26386);
8813 exit(1);
8814 }
8815 var_tkwelsenode6 = var_nodearraylist9;
8816 /* <var_tkwelsenode6:nullable Object> isa nullable TKwelse */
8817 cltype23 = type_nullable_parser_nodes__TKwelse.color;
8818 idtype24 = type_nullable_parser_nodes__TKwelse.id;
8819 if(var_tkwelsenode6 == NULL) {
8820 var22 = 1;
8821 } else {
8822 if(cltype23 >= var_tkwelsenode6->type->table_size) {
8823 var22 = 0;
8824 } else {
8825 var22 = var_tkwelsenode6->type->type_table[cltype23] == idtype24;
8826 }
8827 }
8828 if (!var22) {
8829 fprintf(stderr, "Runtime error: %s", "Assert failed");
8830 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26388);
8831 exit(1);
8832 }
8833 var_pexprnode7 = var_nodearraylist11;
8834 /* <var_pexprnode7:nullable Object> isa nullable AExpr */
8835 cltype26 = type_nullable_parser_nodes__AExpr.color;
8836 idtype27 = type_nullable_parser_nodes__AExpr.id;
8837 if(var_pexprnode7 == NULL) {
8838 var25 = 1;
8839 } else {
8840 if(cltype26 >= var_pexprnode7->type->table_size) {
8841 var25 = 0;
8842 } else {
8843 var25 = var_pexprnode7->type->type_table[cltype26] == idtype27;
8844 }
8845 }
8846 if (!var25) {
8847 fprintf(stderr, "Runtime error: %s", "Assert failed");
8848 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26390);
8849 exit(1);
8850 }
8851 var28 = NEW_parser_nodes__AIfexprExpr(&type_parser_nodes__AIfexprExpr);
8852 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var28->class->vft[COLOR_parser_prod__AIfexprExpr__init_aifexprexpr]))(var28, var_tkwifnode2, var_pexprnode3, var_tkwthennode4, var_pexprnode5, var_tkwelsenode6, var_pexprnode7) /* init_aifexprexpr on <var28:AIfexprExpr>*/;
8853 CHECK_NEW_parser_nodes__AIfexprExpr(var28);
8854 var_pexprnode1 = var28;
8855 var_node_list = var_pexprnode1;
8856 var29 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction710> */
8857 var30 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var29) /* go_to on <var_p:Parser>*/;
8858 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var30, var_node_list) /* push on <var_p:Parser>*/;
8859 RET_LABEL:;
8860 }
8861 /* method parser#ReduceAction710#action for (self: Object, Parser) */
8862 void VIRTUAL_parser__ReduceAction710__action(val* self, val* p0) {
8863 parser__ReduceAction710__action(self, p0);
8864 RET_LABEL:;
8865 }
8866 /* method parser#ReduceAction712#action for (self: ReduceAction712, Parser) */
8867 void parser__ReduceAction712__action(val* self, val* p0) {
8868 val* var_p /* var p: Parser */;
8869 val* var /* : null */;
8870 val* var_node_list /* var node_list: nullable Object */;
8871 val* var1 /* : nullable Object */;
8872 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8873 val* var2 /* : nullable Object */;
8874 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8875 val* var3 /* : nullable Object */;
8876 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8877 val* var4 /* : nullable Object */;
8878 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8879 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
8880 short int var5 /* : Bool */;
8881 int cltype;
8882 int idtype;
8883 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
8884 short int var6 /* : Bool */;
8885 int cltype7;
8886 int idtype8;
8887 val* var9 /* : AOrExpr */;
8888 val* var_pexprnode1 /* var pexprnode1: nullable AOrExpr */;
8889 long var10 /* : Int */;
8890 long var11 /* : Int */;
8891 var_p = p0;
8892 var = NULL;
8893 var_node_list = var;
8894 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8895 var_nodearraylist4 = var1;
8896 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8897 var_nodearraylist3 = var2;
8898 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8899 var_nodearraylist2 = var3;
8900 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8901 var_nodearraylist1 = var4;
8902 var_pexprnode2 = var_nodearraylist1;
8903 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
8904 cltype = type_nullable_parser_nodes__AExpr.color;
8905 idtype = type_nullable_parser_nodes__AExpr.id;
8906 if(var_pexprnode2 == NULL) {
8907 var5 = 1;
8908 } else {
8909 if(cltype >= var_pexprnode2->type->table_size) {
8910 var5 = 0;
8911 } else {
8912 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
8913 }
8914 }
8915 if (!var5) {
8916 fprintf(stderr, "Runtime error: %s", "Assert failed");
8917 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26413);
8918 exit(1);
8919 }
8920 var_pexprnode3 = var_nodearraylist4;
8921 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
8922 cltype7 = type_nullable_parser_nodes__AExpr.color;
8923 idtype8 = type_nullable_parser_nodes__AExpr.id;
8924 if(var_pexprnode3 == NULL) {
8925 var6 = 1;
8926 } else {
8927 if(cltype7 >= var_pexprnode3->type->table_size) {
8928 var6 = 0;
8929 } else {
8930 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
8931 }
8932 }
8933 if (!var6) {
8934 fprintf(stderr, "Runtime error: %s", "Assert failed");
8935 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26415);
8936 exit(1);
8937 }
8938 var9 = NEW_parser_nodes__AOrExpr(&type_parser_nodes__AOrExpr);
8939 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AOrExpr__init_aorexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aorexpr on <var9:AOrExpr>*/;
8940 CHECK_NEW_parser_nodes__AOrExpr(var9);
8941 var_pexprnode1 = var9;
8942 var_node_list = var_pexprnode1;
8943 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction712> */
8944 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
8945 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
8946 RET_LABEL:;
8947 }
8948 /* method parser#ReduceAction712#action for (self: Object, Parser) */
8949 void VIRTUAL_parser__ReduceAction712__action(val* self, val* p0) {
8950 parser__ReduceAction712__action(self, p0);
8951 RET_LABEL:;
8952 }
8953 /* method parser#ReduceAction713#action for (self: ReduceAction713, Parser) */
8954 void parser__ReduceAction713__action(val* self, val* p0) {
8955 val* var_p /* var p: Parser */;
8956 val* var /* : null */;
8957 val* var_node_list /* var node_list: nullable Object */;
8958 val* var1 /* : nullable Object */;
8959 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8960 val* var2 /* : nullable Object */;
8961 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8962 val* var3 /* : nullable Object */;
8963 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8964 val* var4 /* : nullable Object */;
8965 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8966 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
8967 short int var5 /* : Bool */;
8968 int cltype;
8969 int idtype;
8970 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
8971 short int var6 /* : Bool */;
8972 int cltype7;
8973 int idtype8;
8974 val* var9 /* : AAndExpr */;
8975 val* var_pexprnode1 /* var pexprnode1: nullable AAndExpr */;
8976 long var10 /* : Int */;
8977 long var11 /* : Int */;
8978 var_p = p0;
8979 var = NULL;
8980 var_node_list = var;
8981 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8982 var_nodearraylist4 = var1;
8983 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8984 var_nodearraylist3 = var2;
8985 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8986 var_nodearraylist2 = var3;
8987 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8988 var_nodearraylist1 = var4;
8989 var_pexprnode2 = var_nodearraylist1;
8990 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
8991 cltype = type_nullable_parser_nodes__AExpr.color;
8992 idtype = type_nullable_parser_nodes__AExpr.id;
8993 if(var_pexprnode2 == NULL) {
8994 var5 = 1;
8995 } else {
8996 if(cltype >= var_pexprnode2->type->table_size) {
8997 var5 = 0;
8998 } else {
8999 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
9000 }
9001 }
9002 if (!var5) {
9003 fprintf(stderr, "Runtime error: %s", "Assert failed");
9004 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26434);
9005 exit(1);
9006 }
9007 var_pexprnode3 = var_nodearraylist4;
9008 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
9009 cltype7 = type_nullable_parser_nodes__AExpr.color;
9010 idtype8 = type_nullable_parser_nodes__AExpr.id;
9011 if(var_pexprnode3 == NULL) {
9012 var6 = 1;
9013 } else {
9014 if(cltype7 >= var_pexprnode3->type->table_size) {
9015 var6 = 0;
9016 } else {
9017 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
9018 }
9019 }
9020 if (!var6) {
9021 fprintf(stderr, "Runtime error: %s", "Assert failed");
9022 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26436);
9023 exit(1);
9024 }
9025 var9 = NEW_parser_nodes__AAndExpr(&type_parser_nodes__AAndExpr);
9026 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AAndExpr__init_aandexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aandexpr on <var9:AAndExpr>*/;
9027 CHECK_NEW_parser_nodes__AAndExpr(var9);
9028 var_pexprnode1 = var9;
9029 var_node_list = var_pexprnode1;
9030 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction713> */
9031 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
9032 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
9033 RET_LABEL:;
9034 }
9035 /* method parser#ReduceAction713#action for (self: Object, Parser) */
9036 void VIRTUAL_parser__ReduceAction713__action(val* self, val* p0) {
9037 parser__ReduceAction713__action(self, p0);
9038 RET_LABEL:;
9039 }
9040 /* method parser#ReduceAction714#action for (self: ReduceAction714, Parser) */
9041 void parser__ReduceAction714__action(val* self, val* p0) {
9042 val* var_p /* var p: Parser */;
9043 val* var /* : null */;
9044 val* var_node_list /* var node_list: nullable Object */;
9045 val* var1 /* : nullable Object */;
9046 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9047 val* var2 /* : nullable Object */;
9048 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9049 val* var3 /* : nullable Object */;
9050 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9051 val* var4 /* : nullable Object */;
9052 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9053 val* var5 /* : nullable Object */;
9054 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9055 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
9056 short int var6 /* : Bool */;
9057 int cltype;
9058 int idtype;
9059 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
9060 short int var7 /* : Bool */;
9061 int cltype8;
9062 int idtype9;
9063 val* var10 /* : AOrElseExpr */;
9064 val* var_pexprnode1 /* var pexprnode1: nullable AOrElseExpr */;
9065 long var11 /* : Int */;
9066 long var12 /* : Int */;
9067 var_p = p0;
9068 var = NULL;
9069 var_node_list = var;
9070 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9071 var_nodearraylist5 = var1;
9072 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9073 var_nodearraylist4 = var2;
9074 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9075 var_nodearraylist3 = var3;
9076 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9077 var_nodearraylist2 = var4;
9078 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9079 var_nodearraylist1 = var5;
9080 var_pexprnode2 = var_nodearraylist1;
9081 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
9082 cltype = type_nullable_parser_nodes__AExpr.color;
9083 idtype = type_nullable_parser_nodes__AExpr.id;
9084 if(var_pexprnode2 == NULL) {
9085 var6 = 1;
9086 } else {
9087 if(cltype >= var_pexprnode2->type->table_size) {
9088 var6 = 0;
9089 } else {
9090 var6 = var_pexprnode2->type->type_table[cltype] == idtype;
9091 }
9092 }
9093 if (!var6) {
9094 fprintf(stderr, "Runtime error: %s", "Assert failed");
9095 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26456);
9096 exit(1);
9097 }
9098 var_pexprnode3 = var_nodearraylist5;
9099 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
9100 cltype8 = type_nullable_parser_nodes__AExpr.color;
9101 idtype9 = type_nullable_parser_nodes__AExpr.id;
9102 if(var_pexprnode3 == NULL) {
9103 var7 = 1;
9104 } else {
9105 if(cltype8 >= var_pexprnode3->type->table_size) {
9106 var7 = 0;
9107 } else {
9108 var7 = var_pexprnode3->type->type_table[cltype8] == idtype9;
9109 }
9110 }
9111 if (!var7) {
9112 fprintf(stderr, "Runtime error: %s", "Assert failed");
9113 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26458);
9114 exit(1);
9115 }
9116 var10 = NEW_parser_nodes__AOrElseExpr(&type_parser_nodes__AOrElseExpr);
9117 ((void (*)(val*, val*, val*))(var10->class->vft[COLOR_parser_prod__AOrElseExpr__init_aorelseexpr]))(var10, var_pexprnode2, var_pexprnode3) /* init_aorelseexpr on <var10:AOrElseExpr>*/;
9118 CHECK_NEW_parser_nodes__AOrElseExpr(var10);
9119 var_pexprnode1 = var10;
9120 var_node_list = var_pexprnode1;
9121 var11 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction714> */
9122 var12 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var11) /* go_to on <var_p:Parser>*/;
9123 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var12, var_node_list) /* push on <var_p:Parser>*/;
9124 RET_LABEL:;
9125 }
9126 /* method parser#ReduceAction714#action for (self: Object, Parser) */
9127 void VIRTUAL_parser__ReduceAction714__action(val* self, val* p0) {
9128 parser__ReduceAction714__action(self, p0);
9129 RET_LABEL:;
9130 }
9131 /* method parser#ReduceAction715#action for (self: ReduceAction715, Parser) */
9132 void parser__ReduceAction715__action(val* self, val* p0) {
9133 val* var_p /* var p: Parser */;
9134 val* var /* : null */;
9135 val* var_node_list /* var node_list: nullable Object */;
9136 val* var1 /* : nullable Object */;
9137 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9138 val* var2 /* : nullable Object */;
9139 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9140 val* var3 /* : nullable Object */;
9141 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9142 val* var4 /* : nullable Object */;
9143 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9144 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
9145 short int var5 /* : Bool */;
9146 int cltype;
9147 int idtype;
9148 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
9149 short int var6 /* : Bool */;
9150 int cltype7;
9151 int idtype8;
9152 val* var9 /* : AImpliesExpr */;
9153 val* var_pexprnode1 /* var pexprnode1: nullable AImpliesExpr */;
9154 long var10 /* : Int */;
9155 long var11 /* : Int */;
9156 var_p = p0;
9157 var = NULL;
9158 var_node_list = var;
9159 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9160 var_nodearraylist4 = var1;
9161 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9162 var_nodearraylist3 = var2;
9163 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9164 var_nodearraylist2 = var3;
9165 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9166 var_nodearraylist1 = var4;
9167 var_pexprnode2 = var_nodearraylist1;
9168 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
9169 cltype = type_nullable_parser_nodes__AExpr.color;
9170 idtype = type_nullable_parser_nodes__AExpr.id;
9171 if(var_pexprnode2 == NULL) {
9172 var5 = 1;
9173 } else {
9174 if(cltype >= var_pexprnode2->type->table_size) {
9175 var5 = 0;
9176 } else {
9177 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
9178 }
9179 }
9180 if (!var5) {
9181 fprintf(stderr, "Runtime error: %s", "Assert failed");
9182 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26477);
9183 exit(1);
9184 }
9185 var_pexprnode3 = var_nodearraylist4;
9186 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
9187 cltype7 = type_nullable_parser_nodes__AExpr.color;
9188 idtype8 = type_nullable_parser_nodes__AExpr.id;
9189 if(var_pexprnode3 == NULL) {
9190 var6 = 1;
9191 } else {
9192 if(cltype7 >= var_pexprnode3->type->table_size) {
9193 var6 = 0;
9194 } else {
9195 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
9196 }
9197 }
9198 if (!var6) {
9199 fprintf(stderr, "Runtime error: %s", "Assert failed");
9200 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26479);
9201 exit(1);
9202 }
9203 var9 = NEW_parser_nodes__AImpliesExpr(&type_parser_nodes__AImpliesExpr);
9204 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AImpliesExpr__init_aimpliesexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aimpliesexpr on <var9:AImpliesExpr>*/;
9205 CHECK_NEW_parser_nodes__AImpliesExpr(var9);
9206 var_pexprnode1 = var9;
9207 var_node_list = var_pexprnode1;
9208 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction715> */
9209 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
9210 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
9211 RET_LABEL:;
9212 }
9213 /* method parser#ReduceAction715#action for (self: Object, Parser) */
9214 void VIRTUAL_parser__ReduceAction715__action(val* self, val* p0) {
9215 parser__ReduceAction715__action(self, p0);
9216 RET_LABEL:;
9217 }
9218 /* method parser#ReduceAction717#action for (self: ReduceAction717, Parser) */
9219 void parser__ReduceAction717__action(val* self, val* p0) {
9220 val* var_p /* var p: Parser */;
9221 val* var /* : null */;
9222 val* var_node_list /* var node_list: nullable Object */;
9223 val* var1 /* : nullable Object */;
9224 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9225 val* var2 /* : nullable Object */;
9226 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9227 val* var3 /* : nullable Object */;
9228 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9229 val* var_tkwnotnode2 /* var tkwnotnode2: nullable Object */;
9230 short int var4 /* : Bool */;
9231 int cltype;
9232 int idtype;
9233 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
9234 short int var5 /* : Bool */;
9235 int cltype6;
9236 int idtype7;
9237 val* var8 /* : ANotExpr */;
9238 val* var_pexprnode1 /* var pexprnode1: nullable ANotExpr */;
9239 long var9 /* : Int */;
9240 long var10 /* : Int */;
9241 var_p = p0;
9242 var = NULL;
9243 var_node_list = var;
9244 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9245 var_nodearraylist3 = var1;
9246 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9247 var_nodearraylist2 = var2;
9248 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9249 var_nodearraylist1 = var3;
9250 var_tkwnotnode2 = var_nodearraylist1;
9251 /* <var_tkwnotnode2:nullable Object> isa nullable TKwnot */
9252 cltype = type_nullable_parser_nodes__TKwnot.color;
9253 idtype = type_nullable_parser_nodes__TKwnot.id;
9254 if(var_tkwnotnode2 == NULL) {
9255 var4 = 1;
9256 } else {
9257 if(cltype >= var_tkwnotnode2->type->table_size) {
9258 var4 = 0;
9259 } else {
9260 var4 = var_tkwnotnode2->type->type_table[cltype] == idtype;
9261 }
9262 }
9263 if (!var4) {
9264 fprintf(stderr, "Runtime error: %s", "Assert failed");
9265 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26497);
9266 exit(1);
9267 }
9268 var_pexprnode3 = var_nodearraylist3;
9269 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
9270 cltype6 = type_nullable_parser_nodes__AExpr.color;
9271 idtype7 = type_nullable_parser_nodes__AExpr.id;
9272 if(var_pexprnode3 == NULL) {
9273 var5 = 1;
9274 } else {
9275 if(cltype6 >= var_pexprnode3->type->table_size) {
9276 var5 = 0;
9277 } else {
9278 var5 = var_pexprnode3->type->type_table[cltype6] == idtype7;
9279 }
9280 }
9281 if (!var5) {
9282 fprintf(stderr, "Runtime error: %s", "Assert failed");
9283 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26499);
9284 exit(1);
9285 }
9286 var8 = NEW_parser_nodes__ANotExpr(&type_parser_nodes__ANotExpr);
9287 ((void (*)(val*, val*, val*))(var8->class->vft[COLOR_parser_prod__ANotExpr__init_anotexpr]))(var8, var_tkwnotnode2, var_pexprnode3) /* init_anotexpr on <var8:ANotExpr>*/;
9288 CHECK_NEW_parser_nodes__ANotExpr(var8);
9289 var_pexprnode1 = var8;
9290 var_node_list = var_pexprnode1;
9291 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction717> */
9292 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
9293 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
9294 RET_LABEL:;
9295 }
9296 /* method parser#ReduceAction717#action for (self: Object, Parser) */
9297 void VIRTUAL_parser__ReduceAction717__action(val* self, val* p0) {
9298 parser__ReduceAction717__action(self, p0);
9299 RET_LABEL:;
9300 }
9301 /* method parser#ReduceAction719#action for (self: ReduceAction719, Parser) */
9302 void parser__ReduceAction719__action(val* self, val* p0) {
9303 val* var_p /* var p: Parser */;
9304 val* var /* : null */;
9305 val* var_node_list /* var node_list: nullable Object */;
9306 val* var1 /* : nullable Object */;
9307 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9308 val* var2 /* : nullable Object */;
9309 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9310 val* var3 /* : nullable Object */;
9311 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9312 val* var4 /* : nullable Object */;
9313 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9314 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
9315 short int var5 /* : Bool */;
9316 int cltype;
9317 int idtype;
9318 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
9319 short int var6 /* : Bool */;
9320 int cltype7;
9321 int idtype8;
9322 val* var9 /* : AEqExpr */;
9323 val* var_pexprnode1 /* var pexprnode1: nullable AEqExpr */;
9324 long var10 /* : Int */;
9325 long var11 /* : Int */;
9326 var_p = p0;
9327 var = NULL;
9328 var_node_list = var;
9329 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9330 var_nodearraylist4 = var1;
9331 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9332 var_nodearraylist3 = var2;
9333 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9334 var_nodearraylist2 = var3;
9335 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9336 var_nodearraylist1 = var4;
9337 var_pexprnode2 = var_nodearraylist1;
9338 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
9339 cltype = type_nullable_parser_nodes__AExpr.color;
9340 idtype = type_nullable_parser_nodes__AExpr.id;
9341 if(var_pexprnode2 == NULL) {
9342 var5 = 1;
9343 } else {
9344 if(cltype >= var_pexprnode2->type->table_size) {
9345 var5 = 0;
9346 } else {
9347 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
9348 }
9349 }
9350 if (!var5) {
9351 fprintf(stderr, "Runtime error: %s", "Assert failed");
9352 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26518);
9353 exit(1);
9354 }
9355 var_pexprnode3 = var_nodearraylist4;
9356 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
9357 cltype7 = type_nullable_parser_nodes__AExpr.color;
9358 idtype8 = type_nullable_parser_nodes__AExpr.id;
9359 if(var_pexprnode3 == NULL) {
9360 var6 = 1;
9361 } else {
9362 if(cltype7 >= var_pexprnode3->type->table_size) {
9363 var6 = 0;
9364 } else {
9365 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
9366 }
9367 }
9368 if (!var6) {
9369 fprintf(stderr, "Runtime error: %s", "Assert failed");
9370 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26520);
9371 exit(1);
9372 }
9373 var9 = NEW_parser_nodes__AEqExpr(&type_parser_nodes__AEqExpr);
9374 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AEqExpr__init_aeqexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aeqexpr on <var9:AEqExpr>*/;
9375 CHECK_NEW_parser_nodes__AEqExpr(var9);
9376 var_pexprnode1 = var9;
9377 var_node_list = var_pexprnode1;
9378 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction719> */
9379 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
9380 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
9381 RET_LABEL:;
9382 }
9383 /* method parser#ReduceAction719#action for (self: Object, Parser) */
9384 void VIRTUAL_parser__ReduceAction719__action(val* self, val* p0) {
9385 parser__ReduceAction719__action(self, p0);
9386 RET_LABEL:;
9387 }
9388 /* method parser#ReduceAction720#action for (self: ReduceAction720, Parser) */
9389 void parser__ReduceAction720__action(val* self, val* p0) {
9390 val* var_p /* var p: Parser */;
9391 val* var /* : null */;
9392 val* var_node_list /* var node_list: nullable Object */;
9393 val* var1 /* : nullable Object */;
9394 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9395 val* var2 /* : nullable Object */;
9396 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9397 val* var3 /* : nullable Object */;
9398 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9399 val* var4 /* : nullable Object */;
9400 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9401 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
9402 short int var5 /* : Bool */;
9403 int cltype;
9404 int idtype;
9405 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
9406 short int var6 /* : Bool */;
9407 int cltype7;
9408 int idtype8;
9409 val* var9 /* : ANeExpr */;
9410 val* var_pexprnode1 /* var pexprnode1: nullable ANeExpr */;
9411 long var10 /* : Int */;
9412 long var11 /* : Int */;
9413 var_p = p0;
9414 var = NULL;
9415 var_node_list = var;
9416 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9417 var_nodearraylist4 = var1;
9418 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9419 var_nodearraylist3 = var2;
9420 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9421 var_nodearraylist2 = var3;
9422 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9423 var_nodearraylist1 = var4;
9424 var_pexprnode2 = var_nodearraylist1;
9425 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
9426 cltype = type_nullable_parser_nodes__AExpr.color;
9427 idtype = type_nullable_parser_nodes__AExpr.id;
9428 if(var_pexprnode2 == NULL) {
9429 var5 = 1;
9430 } else {
9431 if(cltype >= var_pexprnode2->type->table_size) {
9432 var5 = 0;
9433 } else {
9434 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
9435 }
9436 }
9437 if (!var5) {
9438 fprintf(stderr, "Runtime error: %s", "Assert failed");
9439 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26539);
9440 exit(1);
9441 }
9442 var_pexprnode3 = var_nodearraylist4;
9443 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
9444 cltype7 = type_nullable_parser_nodes__AExpr.color;
9445 idtype8 = type_nullable_parser_nodes__AExpr.id;
9446 if(var_pexprnode3 == NULL) {
9447 var6 = 1;
9448 } else {
9449 if(cltype7 >= var_pexprnode3->type->table_size) {
9450 var6 = 0;
9451 } else {
9452 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
9453 }
9454 }
9455 if (!var6) {
9456 fprintf(stderr, "Runtime error: %s", "Assert failed");
9457 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26541);
9458 exit(1);
9459 }
9460 var9 = NEW_parser_nodes__ANeExpr(&type_parser_nodes__ANeExpr);
9461 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__ANeExpr__init_aneexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aneexpr on <var9:ANeExpr>*/;
9462 CHECK_NEW_parser_nodes__ANeExpr(var9);
9463 var_pexprnode1 = var9;
9464 var_node_list = var_pexprnode1;
9465 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction720> */
9466 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
9467 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
9468 RET_LABEL:;
9469 }
9470 /* method parser#ReduceAction720#action for (self: Object, Parser) */
9471 void VIRTUAL_parser__ReduceAction720__action(val* self, val* p0) {
9472 parser__ReduceAction720__action(self, p0);
9473 RET_LABEL:;
9474 }
9475 /* method parser#ReduceAction721#action for (self: ReduceAction721, Parser) */
9476 void parser__ReduceAction721__action(val* self, val* p0) {
9477 val* var_p /* var p: Parser */;
9478 val* var /* : null */;
9479 val* var_node_list /* var node_list: nullable Object */;
9480 val* var1 /* : nullable Object */;
9481 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9482 val* var2 /* : nullable Object */;
9483 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9484 val* var3 /* : nullable Object */;
9485 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9486 val* var4 /* : nullable Object */;
9487 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9488 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
9489 short int var5 /* : Bool */;
9490 int cltype;
9491 int idtype;
9492 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
9493 short int var6 /* : Bool */;
9494 int cltype7;
9495 int idtype8;
9496 val* var9 /* : ALtExpr */;
9497 val* var_pexprnode1 /* var pexprnode1: nullable ALtExpr */;
9498 long var10 /* : Int */;
9499 long var11 /* : Int */;
9500 var_p = p0;
9501 var = NULL;
9502 var_node_list = var;
9503 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9504 var_nodearraylist4 = var1;
9505 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9506 var_nodearraylist3 = var2;
9507 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9508 var_nodearraylist2 = var3;
9509 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9510 var_nodearraylist1 = var4;
9511 var_pexprnode2 = var_nodearraylist1;
9512 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
9513 cltype = type_nullable_parser_nodes__AExpr.color;
9514 idtype = type_nullable_parser_nodes__AExpr.id;
9515 if(var_pexprnode2 == NULL) {
9516 var5 = 1;
9517 } else {
9518 if(cltype >= var_pexprnode2->type->table_size) {
9519 var5 = 0;
9520 } else {
9521 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
9522 }
9523 }
9524 if (!var5) {
9525 fprintf(stderr, "Runtime error: %s", "Assert failed");
9526 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26560);
9527 exit(1);
9528 }
9529 var_pexprnode3 = var_nodearraylist4;
9530 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
9531 cltype7 = type_nullable_parser_nodes__AExpr.color;
9532 idtype8 = type_nullable_parser_nodes__AExpr.id;
9533 if(var_pexprnode3 == NULL) {
9534 var6 = 1;
9535 } else {
9536 if(cltype7 >= var_pexprnode3->type->table_size) {
9537 var6 = 0;
9538 } else {
9539 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
9540 }
9541 }
9542 if (!var6) {
9543 fprintf(stderr, "Runtime error: %s", "Assert failed");
9544 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26562);
9545 exit(1);
9546 }
9547 var9 = NEW_parser_nodes__ALtExpr(&type_parser_nodes__ALtExpr);
9548 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__ALtExpr__init_altexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_altexpr on <var9:ALtExpr>*/;
9549 CHECK_NEW_parser_nodes__ALtExpr(var9);
9550 var_pexprnode1 = var9;
9551 var_node_list = var_pexprnode1;
9552 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction721> */
9553 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
9554 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
9555 RET_LABEL:;
9556 }
9557 /* method parser#ReduceAction721#action for (self: Object, Parser) */
9558 void VIRTUAL_parser__ReduceAction721__action(val* self, val* p0) {
9559 parser__ReduceAction721__action(self, p0);
9560 RET_LABEL:;
9561 }
9562 /* method parser#ReduceAction722#action for (self: ReduceAction722, Parser) */
9563 void parser__ReduceAction722__action(val* self, val* p0) {
9564 val* var_p /* var p: Parser */;
9565 val* var /* : null */;
9566 val* var_node_list /* var node_list: nullable Object */;
9567 val* var1 /* : nullable Object */;
9568 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9569 val* var2 /* : nullable Object */;
9570 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9571 val* var3 /* : nullable Object */;
9572 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9573 val* var4 /* : nullable Object */;
9574 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9575 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
9576 short int var5 /* : Bool */;
9577 int cltype;
9578 int idtype;
9579 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
9580 short int var6 /* : Bool */;
9581 int cltype7;
9582 int idtype8;
9583 val* var9 /* : ALeExpr */;
9584 val* var_pexprnode1 /* var pexprnode1: nullable ALeExpr */;
9585 long var10 /* : Int */;
9586 long var11 /* : Int */;
9587 var_p = p0;
9588 var = NULL;
9589 var_node_list = var;
9590 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9591 var_nodearraylist4 = var1;
9592 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9593 var_nodearraylist3 = var2;
9594 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9595 var_nodearraylist2 = var3;
9596 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9597 var_nodearraylist1 = var4;
9598 var_pexprnode2 = var_nodearraylist1;
9599 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
9600 cltype = type_nullable_parser_nodes__AExpr.color;
9601 idtype = type_nullable_parser_nodes__AExpr.id;
9602 if(var_pexprnode2 == NULL) {
9603 var5 = 1;
9604 } else {
9605 if(cltype >= var_pexprnode2->type->table_size) {
9606 var5 = 0;
9607 } else {
9608 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
9609 }
9610 }
9611 if (!var5) {
9612 fprintf(stderr, "Runtime error: %s", "Assert failed");
9613 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26581);
9614 exit(1);
9615 }
9616 var_pexprnode3 = var_nodearraylist4;
9617 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
9618 cltype7 = type_nullable_parser_nodes__AExpr.color;
9619 idtype8 = type_nullable_parser_nodes__AExpr.id;
9620 if(var_pexprnode3 == NULL) {
9621 var6 = 1;
9622 } else {
9623 if(cltype7 >= var_pexprnode3->type->table_size) {
9624 var6 = 0;
9625 } else {
9626 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
9627 }
9628 }
9629 if (!var6) {
9630 fprintf(stderr, "Runtime error: %s", "Assert failed");
9631 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26583);
9632 exit(1);
9633 }
9634 var9 = NEW_parser_nodes__ALeExpr(&type_parser_nodes__ALeExpr);
9635 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__ALeExpr__init_aleexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aleexpr on <var9:ALeExpr>*/;
9636 CHECK_NEW_parser_nodes__ALeExpr(var9);
9637 var_pexprnode1 = var9;
9638 var_node_list = var_pexprnode1;
9639 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction722> */
9640 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
9641 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
9642 RET_LABEL:;
9643 }
9644 /* method parser#ReduceAction722#action for (self: Object, Parser) */
9645 void VIRTUAL_parser__ReduceAction722__action(val* self, val* p0) {
9646 parser__ReduceAction722__action(self, p0);
9647 RET_LABEL:;
9648 }
9649 /* method parser#ReduceAction723#action for (self: ReduceAction723, Parser) */
9650 void parser__ReduceAction723__action(val* self, val* p0) {
9651 val* var_p /* var p: Parser */;
9652 val* var /* : null */;
9653 val* var_node_list /* var node_list: nullable Object */;
9654 val* var1 /* : nullable Object */;
9655 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9656 val* var2 /* : nullable Object */;
9657 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9658 val* var3 /* : nullable Object */;
9659 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9660 val* var4 /* : nullable Object */;
9661 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9662 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
9663 short int var5 /* : Bool */;
9664 int cltype;
9665 int idtype;
9666 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
9667 short int var6 /* : Bool */;
9668 int cltype7;
9669 int idtype8;
9670 val* var9 /* : ALlExpr */;
9671 val* var_pexprnode1 /* var pexprnode1: nullable ALlExpr */;
9672 long var10 /* : Int */;
9673 long var11 /* : Int */;
9674 var_p = p0;
9675 var = NULL;
9676 var_node_list = var;
9677 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9678 var_nodearraylist4 = var1;
9679 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9680 var_nodearraylist3 = var2;
9681 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9682 var_nodearraylist2 = var3;
9683 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9684 var_nodearraylist1 = var4;
9685 var_pexprnode2 = var_nodearraylist1;
9686 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
9687 cltype = type_nullable_parser_nodes__AExpr.color;
9688 idtype = type_nullable_parser_nodes__AExpr.id;
9689 if(var_pexprnode2 == NULL) {
9690 var5 = 1;
9691 } else {
9692 if(cltype >= var_pexprnode2->type->table_size) {
9693 var5 = 0;
9694 } else {
9695 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
9696 }
9697 }
9698 if (!var5) {
9699 fprintf(stderr, "Runtime error: %s", "Assert failed");
9700 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26602);
9701 exit(1);
9702 }
9703 var_pexprnode3 = var_nodearraylist4;
9704 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
9705 cltype7 = type_nullable_parser_nodes__AExpr.color;
9706 idtype8 = type_nullable_parser_nodes__AExpr.id;
9707 if(var_pexprnode3 == NULL) {
9708 var6 = 1;
9709 } else {
9710 if(cltype7 >= var_pexprnode3->type->table_size) {
9711 var6 = 0;
9712 } else {
9713 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
9714 }
9715 }
9716 if (!var6) {
9717 fprintf(stderr, "Runtime error: %s", "Assert failed");
9718 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26604);
9719 exit(1);
9720 }
9721 var9 = NEW_parser_nodes__ALlExpr(&type_parser_nodes__ALlExpr);
9722 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__ALlExpr__init_allexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_allexpr on <var9:ALlExpr>*/;
9723 CHECK_NEW_parser_nodes__ALlExpr(var9);
9724 var_pexprnode1 = var9;
9725 var_node_list = var_pexprnode1;
9726 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction723> */
9727 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
9728 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
9729 RET_LABEL:;
9730 }
9731 /* method parser#ReduceAction723#action for (self: Object, Parser) */
9732 void VIRTUAL_parser__ReduceAction723__action(val* self, val* p0) {
9733 parser__ReduceAction723__action(self, p0);
9734 RET_LABEL:;
9735 }
9736 /* method parser#ReduceAction724#action for (self: ReduceAction724, Parser) */
9737 void parser__ReduceAction724__action(val* self, val* p0) {
9738 val* var_p /* var p: Parser */;
9739 val* var /* : null */;
9740 val* var_node_list /* var node_list: nullable Object */;
9741 val* var1 /* : nullable Object */;
9742 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9743 val* var2 /* : nullable Object */;
9744 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9745 val* var3 /* : nullable Object */;
9746 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9747 val* var4 /* : nullable Object */;
9748 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9749 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
9750 short int var5 /* : Bool */;
9751 int cltype;
9752 int idtype;
9753 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
9754 short int var6 /* : Bool */;
9755 int cltype7;
9756 int idtype8;
9757 val* var9 /* : AGtExpr */;
9758 val* var_pexprnode1 /* var pexprnode1: nullable AGtExpr */;
9759 long var10 /* : Int */;
9760 long var11 /* : Int */;
9761 var_p = p0;
9762 var = NULL;
9763 var_node_list = var;
9764 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9765 var_nodearraylist4 = var1;
9766 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9767 var_nodearraylist3 = var2;
9768 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9769 var_nodearraylist2 = var3;
9770 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9771 var_nodearraylist1 = var4;
9772 var_pexprnode2 = var_nodearraylist1;
9773 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
9774 cltype = type_nullable_parser_nodes__AExpr.color;
9775 idtype = type_nullable_parser_nodes__AExpr.id;
9776 if(var_pexprnode2 == NULL) {
9777 var5 = 1;
9778 } else {
9779 if(cltype >= var_pexprnode2->type->table_size) {
9780 var5 = 0;
9781 } else {
9782 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
9783 }
9784 }
9785 if (!var5) {
9786 fprintf(stderr, "Runtime error: %s", "Assert failed");
9787 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26623);
9788 exit(1);
9789 }
9790 var_pexprnode3 = var_nodearraylist4;
9791 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
9792 cltype7 = type_nullable_parser_nodes__AExpr.color;
9793 idtype8 = type_nullable_parser_nodes__AExpr.id;
9794 if(var_pexprnode3 == NULL) {
9795 var6 = 1;
9796 } else {
9797 if(cltype7 >= var_pexprnode3->type->table_size) {
9798 var6 = 0;
9799 } else {
9800 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
9801 }
9802 }
9803 if (!var6) {
9804 fprintf(stderr, "Runtime error: %s", "Assert failed");
9805 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26625);
9806 exit(1);
9807 }
9808 var9 = NEW_parser_nodes__AGtExpr(&type_parser_nodes__AGtExpr);
9809 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AGtExpr__init_agtexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_agtexpr on <var9:AGtExpr>*/;
9810 CHECK_NEW_parser_nodes__AGtExpr(var9);
9811 var_pexprnode1 = var9;
9812 var_node_list = var_pexprnode1;
9813 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction724> */
9814 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
9815 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
9816 RET_LABEL:;
9817 }
9818 /* method parser#ReduceAction724#action for (self: Object, Parser) */
9819 void VIRTUAL_parser__ReduceAction724__action(val* self, val* p0) {
9820 parser__ReduceAction724__action(self, p0);
9821 RET_LABEL:;
9822 }
9823 /* method parser#ReduceAction725#action for (self: ReduceAction725, Parser) */
9824 void parser__ReduceAction725__action(val* self, val* p0) {
9825 val* var_p /* var p: Parser */;
9826 val* var /* : null */;
9827 val* var_node_list /* var node_list: nullable Object */;
9828 val* var1 /* : nullable Object */;
9829 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9830 val* var2 /* : nullable Object */;
9831 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9832 val* var3 /* : nullable Object */;
9833 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9834 val* var4 /* : nullable Object */;
9835 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9836 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
9837 short int var5 /* : Bool */;
9838 int cltype;
9839 int idtype;
9840 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
9841 short int var6 /* : Bool */;
9842 int cltype7;
9843 int idtype8;
9844 val* var9 /* : AGeExpr */;
9845 val* var_pexprnode1 /* var pexprnode1: nullable AGeExpr */;
9846 long var10 /* : Int */;
9847 long var11 /* : Int */;
9848 var_p = p0;
9849 var = NULL;
9850 var_node_list = var;
9851 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9852 var_nodearraylist4 = var1;
9853 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9854 var_nodearraylist3 = var2;
9855 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9856 var_nodearraylist2 = var3;
9857 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9858 var_nodearraylist1 = var4;
9859 var_pexprnode2 = var_nodearraylist1;
9860 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
9861 cltype = type_nullable_parser_nodes__AExpr.color;
9862 idtype = type_nullable_parser_nodes__AExpr.id;
9863 if(var_pexprnode2 == NULL) {
9864 var5 = 1;
9865 } else {
9866 if(cltype >= var_pexprnode2->type->table_size) {
9867 var5 = 0;
9868 } else {
9869 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
9870 }
9871 }
9872 if (!var5) {
9873 fprintf(stderr, "Runtime error: %s", "Assert failed");
9874 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26644);
9875 exit(1);
9876 }
9877 var_pexprnode3 = var_nodearraylist4;
9878 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
9879 cltype7 = type_nullable_parser_nodes__AExpr.color;
9880 idtype8 = type_nullable_parser_nodes__AExpr.id;
9881 if(var_pexprnode3 == NULL) {
9882 var6 = 1;
9883 } else {
9884 if(cltype7 >= var_pexprnode3->type->table_size) {
9885 var6 = 0;
9886 } else {
9887 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
9888 }
9889 }
9890 if (!var6) {
9891 fprintf(stderr, "Runtime error: %s", "Assert failed");
9892 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26646);
9893 exit(1);
9894 }
9895 var9 = NEW_parser_nodes__AGeExpr(&type_parser_nodes__AGeExpr);
9896 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AGeExpr__init_ageexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_ageexpr on <var9:AGeExpr>*/;
9897 CHECK_NEW_parser_nodes__AGeExpr(var9);
9898 var_pexprnode1 = var9;
9899 var_node_list = var_pexprnode1;
9900 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction725> */
9901 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
9902 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
9903 RET_LABEL:;
9904 }
9905 /* method parser#ReduceAction725#action for (self: Object, Parser) */
9906 void VIRTUAL_parser__ReduceAction725__action(val* self, val* p0) {
9907 parser__ReduceAction725__action(self, p0);
9908 RET_LABEL:;
9909 }
9910 /* method parser#ReduceAction726#action for (self: ReduceAction726, Parser) */
9911 void parser__ReduceAction726__action(val* self, val* p0) {
9912 val* var_p /* var p: Parser */;
9913 val* var /* : null */;
9914 val* var_node_list /* var node_list: nullable Object */;
9915 val* var1 /* : nullable Object */;
9916 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9917 val* var2 /* : nullable Object */;
9918 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9919 val* var3 /* : nullable Object */;
9920 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9921 val* var4 /* : nullable Object */;
9922 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9923 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
9924 short int var5 /* : Bool */;
9925 int cltype;
9926 int idtype;
9927 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
9928 short int var6 /* : Bool */;
9929 int cltype7;
9930 int idtype8;
9931 val* var9 /* : AGgExpr */;
9932 val* var_pexprnode1 /* var pexprnode1: nullable AGgExpr */;
9933 long var10 /* : Int */;
9934 long var11 /* : Int */;
9935 var_p = p0;
9936 var = NULL;
9937 var_node_list = var;
9938 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9939 var_nodearraylist4 = var1;
9940 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9941 var_nodearraylist3 = var2;
9942 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9943 var_nodearraylist2 = var3;
9944 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9945 var_nodearraylist1 = var4;
9946 var_pexprnode2 = var_nodearraylist1;
9947 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
9948 cltype = type_nullable_parser_nodes__AExpr.color;
9949 idtype = type_nullable_parser_nodes__AExpr.id;
9950 if(var_pexprnode2 == NULL) {
9951 var5 = 1;
9952 } else {
9953 if(cltype >= var_pexprnode2->type->table_size) {
9954 var5 = 0;
9955 } else {
9956 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
9957 }
9958 }
9959 if (!var5) {
9960 fprintf(stderr, "Runtime error: %s", "Assert failed");
9961 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26665);
9962 exit(1);
9963 }
9964 var_pexprnode3 = var_nodearraylist4;
9965 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
9966 cltype7 = type_nullable_parser_nodes__AExpr.color;
9967 idtype8 = type_nullable_parser_nodes__AExpr.id;
9968 if(var_pexprnode3 == NULL) {
9969 var6 = 1;
9970 } else {
9971 if(cltype7 >= var_pexprnode3->type->table_size) {
9972 var6 = 0;
9973 } else {
9974 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
9975 }
9976 }
9977 if (!var6) {
9978 fprintf(stderr, "Runtime error: %s", "Assert failed");
9979 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26667);
9980 exit(1);
9981 }
9982 var9 = NEW_parser_nodes__AGgExpr(&type_parser_nodes__AGgExpr);
9983 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AGgExpr__init_aggexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aggexpr on <var9:AGgExpr>*/;
9984 CHECK_NEW_parser_nodes__AGgExpr(var9);
9985 var_pexprnode1 = var9;
9986 var_node_list = var_pexprnode1;
9987 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction726> */
9988 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
9989 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
9990 RET_LABEL:;
9991 }
9992 /* method parser#ReduceAction726#action for (self: Object, Parser) */
9993 void VIRTUAL_parser__ReduceAction726__action(val* self, val* p0) {
9994 parser__ReduceAction726__action(self, p0);
9995 RET_LABEL:;
9996 }