tests: remove base_virtual_int that is redundant with base_covar_int
[nit.git] / c_src / parser.sep.15.c
1 #include "parser.sep.0.h"
2 /* method parser#ReduceAction745#action for (self: ReduceAction745, Parser) */
3 void parser__ReduceAction745__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_nodearraylist15 /* var nodearraylist15: nullable Object */;
9 val* var2 /* : nullable Object */;
10 val* var_nodearraylist14 /* var nodearraylist14: nullable Object */;
11 val* var3 /* : nullable Object */;
12 val* var_nodearraylist13 /* var nodearraylist13: nullable Object */;
13 val* var4 /* : nullable Object */;
14 val* var_nodearraylist12 /* var nodearraylist12: nullable Object */;
15 val* var5 /* : nullable Object */;
16 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
17 val* var6 /* : nullable Object */;
18 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
19 val* var7 /* : nullable Object */;
20 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
21 val* var8 /* : nullable Object */;
22 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
23 val* var9 /* : nullable Object */;
24 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
25 val* var10 /* : nullable Object */;
26 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
27 val* var11 /* : nullable Object */;
28 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
29 val* var12 /* : nullable Object */;
30 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
31 val* var13 /* : nullable Object */;
32 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
33 val* var14 /* : nullable Object */;
34 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
35 val* var15 /* : nullable Object */;
36 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
37 val* var16 /* : Array[Object] */;
38 val* var_listnode4 /* var listnode4: Array[Object] */;
39 val* var_tkwfornode2 /* var tkwfornode2: nullable Object */;
40 short int var17 /* : Bool */;
41 int cltype;
42 int idtype;
43 val* var_listnode3 /* var listnode3: nullable Object */;
44 short int var18 /* : Bool */;
45 int cltype19;
46 int idtype20;
47 val* var21 /* : Array[Object] */;
48 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
49 short int var22 /* : Bool */;
50 int cltype23;
51 int idtype24;
52 val* var_tkwdonode6 /* var tkwdonode6: nullable Object */;
53 short int var25 /* : Bool */;
54 int cltype26;
55 int idtype27;
56 val* var_pexprnode7 /* var pexprnode7: nullable Object */;
57 short int var28 /* : Bool */;
58 int cltype29;
59 int idtype30;
60 val* var_plabelnode8 /* var plabelnode8: nullable Object */;
61 short int var31 /* : Bool */;
62 int cltype32;
63 int idtype33;
64 val* var34 /* : AForExpr */;
65 val* var_pexprnode1 /* var pexprnode1: nullable AForExpr */;
66 long var35 /* : Int */;
67 long var36 /* : Int */;
68 var_p = p0;
69 var = NULL;
70 var_node_list = var;
71 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
72 var_nodearraylist15 = var1;
73 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
74 var_nodearraylist14 = var2;
75 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
76 var_nodearraylist13 = var3;
77 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
78 var_nodearraylist12 = var4;
79 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
80 var_nodearraylist11 = var5;
81 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
82 var_nodearraylist10 = var6;
83 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
84 var_nodearraylist9 = var7;
85 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
86 var_nodearraylist8 = var8;
87 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
88 var_nodearraylist7 = var9;
89 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
90 var_nodearraylist6 = var10;
91 var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
92 var_nodearraylist5 = var11;
93 var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
94 var_nodearraylist4 = var12;
95 var13 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
96 var_nodearraylist3 = var13;
97 var14 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
98 var_nodearraylist2 = var14;
99 var15 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
100 var_nodearraylist1 = var15;
101 var16 = NEW_array__Array(&type_array__Arraykernel__Object);
102 ((void (*)(val*))(var16->class->vft[COLOR_array__Array__init]))(var16) /* init on <var16:Array[Object]>*/;
103 CHECK_NEW_array__Array(var16);
104 var_listnode4 = var16;
105 var_tkwfornode2 = var_nodearraylist1;
106 /* <var_tkwfornode2:nullable Object> isa nullable TKwfor */
107 cltype = type_nullable_parser_nodes__TKwfor.color;
108 idtype = type_nullable_parser_nodes__TKwfor.id;
109 if(var_tkwfornode2 == NULL) {
110 var17 = 1;
111 } else {
112 if(cltype >= var_tkwfornode2->type->table_size) {
113 var17 = 0;
114 } else {
115 var17 = var_tkwfornode2->type->type_table[cltype] == idtype;
116 }
117 }
118 if (!var17) {
119 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27655);
120 exit(1);
121 }
122 var_listnode3 = var_nodearraylist5;
123 /* <var_listnode3:nullable Object> isa Array[Object] */
124 cltype19 = type_array__Arraykernel__Object.color;
125 idtype20 = type_array__Arraykernel__Object.id;
126 if(var_listnode3 == NULL) {
127 var18 = 0;
128 } else {
129 if(cltype19 >= var_listnode3->type->table_size) {
130 var18 = 0;
131 } else {
132 var18 = var_listnode3->type->type_table[cltype19] == idtype20;
133 }
134 }
135 if (!var18) {
136 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27657);
137 exit(1);
138 }
139 var21 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction745>*/;
140 var_listnode4 = var21;
141 var_pexprnode5 = var_nodearraylist11;
142 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
143 cltype23 = type_nullable_parser_nodes__AExpr.color;
144 idtype24 = type_nullable_parser_nodes__AExpr.id;
145 if(var_pexprnode5 == NULL) {
146 var22 = 1;
147 } else {
148 if(cltype23 >= var_pexprnode5->type->table_size) {
149 var22 = 0;
150 } else {
151 var22 = var_pexprnode5->type->type_table[cltype23] == idtype24;
152 }
153 }
154 if (!var22) {
155 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27660);
156 exit(1);
157 }
158 var_tkwdonode6 = var_nodearraylist13;
159 /* <var_tkwdonode6:nullable Object> isa nullable TKwdo */
160 cltype26 = type_nullable_parser_nodes__TKwdo.color;
161 idtype27 = type_nullable_parser_nodes__TKwdo.id;
162 if(var_tkwdonode6 == NULL) {
163 var25 = 1;
164 } else {
165 if(cltype26 >= var_tkwdonode6->type->table_size) {
166 var25 = 0;
167 } else {
168 var25 = var_tkwdonode6->type->type_table[cltype26] == idtype27;
169 }
170 }
171 if (!var25) {
172 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27662);
173 exit(1);
174 }
175 var_pexprnode7 = var_nodearraylist14;
176 /* <var_pexprnode7:nullable Object> isa nullable AExpr */
177 cltype29 = type_nullable_parser_nodes__AExpr.color;
178 idtype30 = type_nullable_parser_nodes__AExpr.id;
179 if(var_pexprnode7 == NULL) {
180 var28 = 1;
181 } else {
182 if(cltype29 >= var_pexprnode7->type->table_size) {
183 var28 = 0;
184 } else {
185 var28 = var_pexprnode7->type->type_table[cltype29] == idtype30;
186 }
187 }
188 if (!var28) {
189 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27664);
190 exit(1);
191 }
192 var_plabelnode8 = var_nodearraylist15;
193 /* <var_plabelnode8:nullable Object> isa nullable ALabel */
194 cltype32 = type_nullable_parser_nodes__ALabel.color;
195 idtype33 = type_nullable_parser_nodes__ALabel.id;
196 if(var_plabelnode8 == NULL) {
197 var31 = 1;
198 } else {
199 if(cltype32 >= var_plabelnode8->type->table_size) {
200 var31 = 0;
201 } else {
202 var31 = var_plabelnode8->type->type_table[cltype32] == idtype33;
203 }
204 }
205 if (!var31) {
206 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27666);
207 exit(1);
208 }
209 var34 = NEW_parser_nodes__AForExpr(&type_parser_nodes__AForExpr);
210 ((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>*/;
211 CHECK_NEW_parser_nodes__AForExpr(var34);
212 var_pexprnode1 = var34;
213 var_node_list = var_pexprnode1;
214 var35 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction745> */
215 var36 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var35) /* go_to on <var_p:Parser>*/;
216 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var36, var_node_list) /* push on <var_p:Parser>*/;
217 RET_LABEL:;
218 }
219 /* method parser#ReduceAction745#action for (self: Object, Parser) */
220 void VIRTUAL_parser__ReduceAction745__action(val* self, val* p0) {
221 parser__ReduceAction745__action(self, p0);
222 RET_LABEL:;
223 }
224 /* method parser#ReduceAction746#action for (self: ReduceAction746, Parser) */
225 void parser__ReduceAction746__action(val* self, val* p0) {
226 val* var_p /* var p: Parser */;
227 val* var /* : null */;
228 val* var_node_list /* var node_list: nullable Object */;
229 val* var1 /* : nullable Object */;
230 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
231 val* var2 /* : nullable Object */;
232 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
233 val* var3 /* : nullable Object */;
234 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
235 val* var4 /* : nullable Object */;
236 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
237 val* var5 /* : nullable Object */;
238 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
239 val* var6 /* : nullable Object */;
240 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
241 val* var7 /* : nullable Object */;
242 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
243 val* var8 /* : nullable Object */;
244 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
245 val* var9 /* : nullable Object */;
246 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
247 val* var10 /* : nullable Object */;
248 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
249 val* var11 /* : nullable Object */;
250 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
251 val* var12 /* : Array[Object] */;
252 val* var_listnode4 /* var listnode4: Array[Object] */;
253 val* var_tkwfornode2 /* var tkwfornode2: nullable Object */;
254 short int var13 /* : Bool */;
255 int cltype;
256 int idtype;
257 val* var_listnode3 /* var listnode3: nullable Object */;
258 short int var14 /* : Bool */;
259 int cltype15;
260 int idtype16;
261 val* var17 /* : Array[Object] */;
262 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
263 short int var18 /* : Bool */;
264 int cltype19;
265 int idtype20;
266 val* var_tkwdonode6 /* var tkwdonode6: nullable Object */;
267 short int var21 /* : Bool */;
268 int cltype22;
269 int idtype23;
270 val* var_pexprnode7 /* var pexprnode7: nullable Object */;
271 short int var24 /* : Bool */;
272 int cltype25;
273 int idtype26;
274 val* var_plabelnode8 /* var plabelnode8: nullable Object */;
275 short int var27 /* : Bool */;
276 int cltype28;
277 int idtype29;
278 val* var30 /* : AForExpr */;
279 val* var_pexprnode1 /* var pexprnode1: nullable AForExpr */;
280 long var31 /* : Int */;
281 long var32 /* : Int */;
282 var_p = p0;
283 var = NULL;
284 var_node_list = var;
285 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
286 var_nodearraylist11 = var1;
287 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
288 var_nodearraylist10 = var2;
289 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
290 var_nodearraylist9 = var3;
291 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
292 var_nodearraylist8 = var4;
293 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
294 var_nodearraylist7 = var5;
295 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
296 var_nodearraylist6 = var6;
297 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
298 var_nodearraylist5 = var7;
299 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
300 var_nodearraylist4 = var8;
301 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
302 var_nodearraylist3 = var9;
303 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
304 var_nodearraylist2 = var10;
305 var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
306 var_nodearraylist1 = var11;
307 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
308 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
309 CHECK_NEW_array__Array(var12);
310 var_listnode4 = var12;
311 var_tkwfornode2 = var_nodearraylist1;
312 /* <var_tkwfornode2:nullable Object> isa nullable TKwfor */
313 cltype = type_nullable_parser_nodes__TKwfor.color;
314 idtype = type_nullable_parser_nodes__TKwfor.id;
315 if(var_tkwfornode2 == NULL) {
316 var13 = 1;
317 } else {
318 if(cltype >= var_tkwfornode2->type->table_size) {
319 var13 = 0;
320 } else {
321 var13 = var_tkwfornode2->type->type_table[cltype] == idtype;
322 }
323 }
324 if (!var13) {
325 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27697);
326 exit(1);
327 }
328 var_listnode3 = var_nodearraylist3;
329 /* <var_listnode3:nullable Object> isa Array[Object] */
330 cltype15 = type_array__Arraykernel__Object.color;
331 idtype16 = type_array__Arraykernel__Object.id;
332 if(var_listnode3 == NULL) {
333 var14 = 0;
334 } else {
335 if(cltype15 >= var_listnode3->type->table_size) {
336 var14 = 0;
337 } else {
338 var14 = var_listnode3->type->type_table[cltype15] == idtype16;
339 }
340 }
341 if (!var14) {
342 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27699);
343 exit(1);
344 }
345 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction746>*/;
346 var_listnode4 = var17;
347 var_pexprnode5 = var_nodearraylist7;
348 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
349 cltype19 = type_nullable_parser_nodes__AExpr.color;
350 idtype20 = type_nullable_parser_nodes__AExpr.id;
351 if(var_pexprnode5 == NULL) {
352 var18 = 1;
353 } else {
354 if(cltype19 >= var_pexprnode5->type->table_size) {
355 var18 = 0;
356 } else {
357 var18 = var_pexprnode5->type->type_table[cltype19] == idtype20;
358 }
359 }
360 if (!var18) {
361 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27702);
362 exit(1);
363 }
364 var_tkwdonode6 = var_nodearraylist9;
365 /* <var_tkwdonode6:nullable Object> isa nullable TKwdo */
366 cltype22 = type_nullable_parser_nodes__TKwdo.color;
367 idtype23 = type_nullable_parser_nodes__TKwdo.id;
368 if(var_tkwdonode6 == NULL) {
369 var21 = 1;
370 } else {
371 if(cltype22 >= var_tkwdonode6->type->table_size) {
372 var21 = 0;
373 } else {
374 var21 = var_tkwdonode6->type->type_table[cltype22] == idtype23;
375 }
376 }
377 if (!var21) {
378 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27704);
379 exit(1);
380 }
381 var_pexprnode7 = var_nodearraylist10;
382 /* <var_pexprnode7:nullable Object> isa nullable AExpr */
383 cltype25 = type_nullable_parser_nodes__AExpr.color;
384 idtype26 = type_nullable_parser_nodes__AExpr.id;
385 if(var_pexprnode7 == NULL) {
386 var24 = 1;
387 } else {
388 if(cltype25 >= var_pexprnode7->type->table_size) {
389 var24 = 0;
390 } else {
391 var24 = var_pexprnode7->type->type_table[cltype25] == idtype26;
392 }
393 }
394 if (!var24) {
395 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27706);
396 exit(1);
397 }
398 var_plabelnode8 = var_nodearraylist11;
399 /* <var_plabelnode8:nullable Object> isa nullable ALabel */
400 cltype28 = type_nullable_parser_nodes__ALabel.color;
401 idtype29 = type_nullable_parser_nodes__ALabel.id;
402 if(var_plabelnode8 == NULL) {
403 var27 = 1;
404 } else {
405 if(cltype28 >= var_plabelnode8->type->table_size) {
406 var27 = 0;
407 } else {
408 var27 = var_plabelnode8->type->type_table[cltype28] == idtype29;
409 }
410 }
411 if (!var27) {
412 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27708);
413 exit(1);
414 }
415 var30 = NEW_parser_nodes__AForExpr(&type_parser_nodes__AForExpr);
416 ((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>*/;
417 CHECK_NEW_parser_nodes__AForExpr(var30);
418 var_pexprnode1 = var30;
419 var_node_list = var_pexprnode1;
420 var31 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction746> */
421 var32 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var31) /* go_to on <var_p:Parser>*/;
422 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var32, var_node_list) /* push on <var_p:Parser>*/;
423 RET_LABEL:;
424 }
425 /* method parser#ReduceAction746#action for (self: Object, Parser) */
426 void VIRTUAL_parser__ReduceAction746__action(val* self, val* p0) {
427 parser__ReduceAction746__action(self, p0);
428 RET_LABEL:;
429 }
430 /* method parser#ReduceAction747#action for (self: ReduceAction747, Parser) */
431 void parser__ReduceAction747__action(val* self, val* p0) {
432 val* var_p /* var p: Parser */;
433 val* var /* : null */;
434 val* var_node_list /* var node_list: nullable Object */;
435 val* var1 /* : nullable Object */;
436 val* var_nodearraylist14 /* var nodearraylist14: nullable Object */;
437 val* var2 /* : nullable Object */;
438 val* var_nodearraylist13 /* var nodearraylist13: nullable Object */;
439 val* var3 /* : nullable Object */;
440 val* var_nodearraylist12 /* var nodearraylist12: nullable Object */;
441 val* var4 /* : nullable Object */;
442 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
443 val* var5 /* : nullable Object */;
444 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
445 val* var6 /* : nullable Object */;
446 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
447 val* var7 /* : nullable Object */;
448 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
449 val* var8 /* : nullable Object */;
450 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
451 val* var9 /* : nullable Object */;
452 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
453 val* var10 /* : nullable Object */;
454 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
455 val* var11 /* : nullable Object */;
456 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
457 val* var12 /* : nullable Object */;
458 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
459 val* var13 /* : nullable Object */;
460 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
461 val* var14 /* : nullable Object */;
462 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
463 val* var15 /* : Array[Object] */;
464 val* var_listnode4 /* var listnode4: Array[Object] */;
465 val* var_tkwfornode2 /* var tkwfornode2: nullable Object */;
466 short int var16 /* : Bool */;
467 int cltype;
468 int idtype;
469 val* var_listnode3 /* var listnode3: nullable Object */;
470 short int var17 /* : Bool */;
471 int cltype18;
472 int idtype19;
473 val* var20 /* : Array[Object] */;
474 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
475 short int var21 /* : Bool */;
476 int cltype22;
477 int idtype23;
478 val* var_tkwdonode6 /* var tkwdonode6: nullable Object */;
479 short int var24 /* : Bool */;
480 int cltype25;
481 int idtype26;
482 val* var_pexprnode7 /* var pexprnode7: nullable Object */;
483 short int var27 /* : Bool */;
484 int cltype28;
485 int idtype29;
486 val* var30 /* : AForExpr */;
487 val* var31 /* : null */;
488 val* var_pexprnode1 /* var pexprnode1: nullable AForExpr */;
489 long var32 /* : Int */;
490 long var33 /* : Int */;
491 var_p = p0;
492 var = NULL;
493 var_node_list = var;
494 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
495 var_nodearraylist14 = var1;
496 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
497 var_nodearraylist13 = var2;
498 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
499 var_nodearraylist12 = var3;
500 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
501 var_nodearraylist11 = var4;
502 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
503 var_nodearraylist10 = var5;
504 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
505 var_nodearraylist9 = var6;
506 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
507 var_nodearraylist8 = var7;
508 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
509 var_nodearraylist7 = var8;
510 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
511 var_nodearraylist6 = var9;
512 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
513 var_nodearraylist5 = var10;
514 var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
515 var_nodearraylist4 = var11;
516 var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
517 var_nodearraylist3 = var12;
518 var13 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
519 var_nodearraylist2 = var13;
520 var14 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
521 var_nodearraylist1 = var14;
522 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
523 ((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
524 CHECK_NEW_array__Array(var15);
525 var_listnode4 = var15;
526 var_tkwfornode2 = var_nodearraylist1;
527 /* <var_tkwfornode2:nullable Object> isa nullable TKwfor */
528 cltype = type_nullable_parser_nodes__TKwfor.color;
529 idtype = type_nullable_parser_nodes__TKwfor.id;
530 if(var_tkwfornode2 == NULL) {
531 var16 = 1;
532 } else {
533 if(cltype >= var_tkwfornode2->type->table_size) {
534 var16 = 0;
535 } else {
536 var16 = var_tkwfornode2->type->type_table[cltype] == idtype;
537 }
538 }
539 if (!var16) {
540 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27742);
541 exit(1);
542 }
543 var_listnode3 = var_nodearraylist5;
544 /* <var_listnode3:nullable Object> isa Array[Object] */
545 cltype18 = type_array__Arraykernel__Object.color;
546 idtype19 = type_array__Arraykernel__Object.id;
547 if(var_listnode3 == NULL) {
548 var17 = 0;
549 } else {
550 if(cltype18 >= var_listnode3->type->table_size) {
551 var17 = 0;
552 } else {
553 var17 = var_listnode3->type->type_table[cltype18] == idtype19;
554 }
555 }
556 if (!var17) {
557 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27744);
558 exit(1);
559 }
560 var20 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction747>*/;
561 var_listnode4 = var20;
562 var_pexprnode5 = var_nodearraylist11;
563 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
564 cltype22 = type_nullable_parser_nodes__AExpr.color;
565 idtype23 = type_nullable_parser_nodes__AExpr.id;
566 if(var_pexprnode5 == NULL) {
567 var21 = 1;
568 } else {
569 if(cltype22 >= var_pexprnode5->type->table_size) {
570 var21 = 0;
571 } else {
572 var21 = var_pexprnode5->type->type_table[cltype22] == idtype23;
573 }
574 }
575 if (!var21) {
576 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27747);
577 exit(1);
578 }
579 var_tkwdonode6 = var_nodearraylist13;
580 /* <var_tkwdonode6:nullable Object> isa nullable TKwdo */
581 cltype25 = type_nullable_parser_nodes__TKwdo.color;
582 idtype26 = type_nullable_parser_nodes__TKwdo.id;
583 if(var_tkwdonode6 == NULL) {
584 var24 = 1;
585 } else {
586 if(cltype25 >= var_tkwdonode6->type->table_size) {
587 var24 = 0;
588 } else {
589 var24 = var_tkwdonode6->type->type_table[cltype25] == idtype26;
590 }
591 }
592 if (!var24) {
593 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27749);
594 exit(1);
595 }
596 var_pexprnode7 = var_nodearraylist14;
597 /* <var_pexprnode7:nullable Object> isa nullable AExpr */
598 cltype28 = type_nullable_parser_nodes__AExpr.color;
599 idtype29 = type_nullable_parser_nodes__AExpr.id;
600 if(var_pexprnode7 == NULL) {
601 var27 = 1;
602 } else {
603 if(cltype28 >= var_pexprnode7->type->table_size) {
604 var27 = 0;
605 } else {
606 var27 = var_pexprnode7->type->type_table[cltype28] == idtype29;
607 }
608 }
609 if (!var27) {
610 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27751);
611 exit(1);
612 }
613 var30 = NEW_parser_nodes__AForExpr(&type_parser_nodes__AForExpr);
614 var31 = NULL;
615 ((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>*/;
616 CHECK_NEW_parser_nodes__AForExpr(var30);
617 var_pexprnode1 = var30;
618 var_node_list = var_pexprnode1;
619 var32 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction747> */
620 var33 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var32) /* go_to on <var_p:Parser>*/;
621 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var33, var_node_list) /* push on <var_p:Parser>*/;
622 RET_LABEL:;
623 }
624 /* method parser#ReduceAction747#action for (self: Object, Parser) */
625 void VIRTUAL_parser__ReduceAction747__action(val* self, val* p0) {
626 parser__ReduceAction747__action(self, p0);
627 RET_LABEL:;
628 }
629 /* method parser#ReduceAction748#action for (self: ReduceAction748, Parser) */
630 void parser__ReduceAction748__action(val* self, val* p0) {
631 val* var_p /* var p: Parser */;
632 val* var /* : null */;
633 val* var_node_list /* var node_list: nullable Object */;
634 val* var1 /* : nullable Object */;
635 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
636 val* var2 /* : nullable Object */;
637 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
638 val* var3 /* : nullable Object */;
639 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
640 val* var4 /* : nullable Object */;
641 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
642 val* var5 /* : nullable Object */;
643 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
644 val* var6 /* : nullable Object */;
645 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
646 val* var7 /* : nullable Object */;
647 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
648 val* var8 /* : nullable Object */;
649 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
650 val* var9 /* : nullable Object */;
651 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
652 val* var10 /* : nullable Object */;
653 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
654 val* var11 /* : Array[Object] */;
655 val* var_listnode4 /* var listnode4: Array[Object] */;
656 val* var_tkwfornode2 /* var tkwfornode2: nullable Object */;
657 short int var12 /* : Bool */;
658 int cltype;
659 int idtype;
660 val* var_listnode3 /* var listnode3: nullable Object */;
661 short int var13 /* : Bool */;
662 int cltype14;
663 int idtype15;
664 val* var16 /* : Array[Object] */;
665 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
666 short int var17 /* : Bool */;
667 int cltype18;
668 int idtype19;
669 val* var_tkwdonode6 /* var tkwdonode6: nullable Object */;
670 short int var20 /* : Bool */;
671 int cltype21;
672 int idtype22;
673 val* var_pexprnode7 /* var pexprnode7: nullable Object */;
674 short int var23 /* : Bool */;
675 int cltype24;
676 int idtype25;
677 val* var26 /* : AForExpr */;
678 val* var27 /* : null */;
679 val* var_pexprnode1 /* var pexprnode1: nullable AForExpr */;
680 long var28 /* : Int */;
681 long var29 /* : Int */;
682 var_p = p0;
683 var = NULL;
684 var_node_list = var;
685 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
686 var_nodearraylist10 = var1;
687 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
688 var_nodearraylist9 = var2;
689 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
690 var_nodearraylist8 = var3;
691 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
692 var_nodearraylist7 = var4;
693 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
694 var_nodearraylist6 = var5;
695 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
696 var_nodearraylist5 = var6;
697 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
698 var_nodearraylist4 = var7;
699 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
700 var_nodearraylist3 = var8;
701 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
702 var_nodearraylist2 = var9;
703 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
704 var_nodearraylist1 = var10;
705 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
706 ((void (*)(val*))(var11->class->vft[COLOR_array__Array__init]))(var11) /* init on <var11:Array[Object]>*/;
707 CHECK_NEW_array__Array(var11);
708 var_listnode4 = var11;
709 var_tkwfornode2 = var_nodearraylist1;
710 /* <var_tkwfornode2:nullable Object> isa nullable TKwfor */
711 cltype = type_nullable_parser_nodes__TKwfor.color;
712 idtype = type_nullable_parser_nodes__TKwfor.id;
713 if(var_tkwfornode2 == NULL) {
714 var12 = 1;
715 } else {
716 if(cltype >= var_tkwfornode2->type->table_size) {
717 var12 = 0;
718 } else {
719 var12 = var_tkwfornode2->type->type_table[cltype] == idtype;
720 }
721 }
722 if (!var12) {
723 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27781);
724 exit(1);
725 }
726 var_listnode3 = var_nodearraylist3;
727 /* <var_listnode3:nullable Object> isa Array[Object] */
728 cltype14 = type_array__Arraykernel__Object.color;
729 idtype15 = type_array__Arraykernel__Object.id;
730 if(var_listnode3 == NULL) {
731 var13 = 0;
732 } else {
733 if(cltype14 >= var_listnode3->type->table_size) {
734 var13 = 0;
735 } else {
736 var13 = var_listnode3->type->type_table[cltype14] == idtype15;
737 }
738 }
739 if (!var13) {
740 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27783);
741 exit(1);
742 }
743 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction748>*/;
744 var_listnode4 = var16;
745 var_pexprnode5 = var_nodearraylist7;
746 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
747 cltype18 = type_nullable_parser_nodes__AExpr.color;
748 idtype19 = type_nullable_parser_nodes__AExpr.id;
749 if(var_pexprnode5 == NULL) {
750 var17 = 1;
751 } else {
752 if(cltype18 >= var_pexprnode5->type->table_size) {
753 var17 = 0;
754 } else {
755 var17 = var_pexprnode5->type->type_table[cltype18] == idtype19;
756 }
757 }
758 if (!var17) {
759 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27786);
760 exit(1);
761 }
762 var_tkwdonode6 = var_nodearraylist9;
763 /* <var_tkwdonode6:nullable Object> isa nullable TKwdo */
764 cltype21 = type_nullable_parser_nodes__TKwdo.color;
765 idtype22 = type_nullable_parser_nodes__TKwdo.id;
766 if(var_tkwdonode6 == NULL) {
767 var20 = 1;
768 } else {
769 if(cltype21 >= var_tkwdonode6->type->table_size) {
770 var20 = 0;
771 } else {
772 var20 = var_tkwdonode6->type->type_table[cltype21] == idtype22;
773 }
774 }
775 if (!var20) {
776 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27788);
777 exit(1);
778 }
779 var_pexprnode7 = var_nodearraylist10;
780 /* <var_pexprnode7:nullable Object> isa nullable AExpr */
781 cltype24 = type_nullable_parser_nodes__AExpr.color;
782 idtype25 = type_nullable_parser_nodes__AExpr.id;
783 if(var_pexprnode7 == NULL) {
784 var23 = 1;
785 } else {
786 if(cltype24 >= var_pexprnode7->type->table_size) {
787 var23 = 0;
788 } else {
789 var23 = var_pexprnode7->type->type_table[cltype24] == idtype25;
790 }
791 }
792 if (!var23) {
793 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27790);
794 exit(1);
795 }
796 var26 = NEW_parser_nodes__AForExpr(&type_parser_nodes__AForExpr);
797 var27 = NULL;
798 ((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>*/;
799 CHECK_NEW_parser_nodes__AForExpr(var26);
800 var_pexprnode1 = var26;
801 var_node_list = var_pexprnode1;
802 var28 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction748> */
803 var29 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var28) /* go_to on <var_p:Parser>*/;
804 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var29, var_node_list) /* push on <var_p:Parser>*/;
805 RET_LABEL:;
806 }
807 /* method parser#ReduceAction748#action for (self: Object, Parser) */
808 void VIRTUAL_parser__ReduceAction748__action(val* self, val* p0) {
809 parser__ReduceAction748__action(self, p0);
810 RET_LABEL:;
811 }
812 /* method parser#ReduceAction749#action for (self: ReduceAction749, Parser) */
813 void parser__ReduceAction749__action(val* self, val* p0) {
814 val* var_p /* var p: Parser */;
815 val* var /* : null */;
816 val* var_node_list /* var node_list: nullable Object */;
817 val* var1 /* : nullable Object */;
818 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
819 val* var2 /* : nullable Object */;
820 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
821 val* var3 /* : nullable Object */;
822 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
823 val* var4 /* : nullable Object */;
824 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
825 val* var_tkwassertnode2 /* var tkwassertnode2: nullable Object */;
826 short int var5 /* : Bool */;
827 int cltype;
828 int idtype;
829 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
830 short int var6 /* : Bool */;
831 int cltype7;
832 int idtype8;
833 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
834 short int var9 /* : Bool */;
835 int cltype10;
836 int idtype11;
837 val* var12 /* : AAssertExpr */;
838 val* var13 /* : null */;
839 val* var_pexprnode1 /* var pexprnode1: nullable AAssertExpr */;
840 long var14 /* : Int */;
841 long var15 /* : Int */;
842 var_p = p0;
843 var = NULL;
844 var_node_list = var;
845 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
846 var_nodearraylist4 = var1;
847 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
848 var_nodearraylist3 = var2;
849 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
850 var_nodearraylist2 = var3;
851 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
852 var_nodearraylist1 = var4;
853 var_tkwassertnode2 = var_nodearraylist1;
854 /* <var_tkwassertnode2:nullable Object> isa nullable TKwassert */
855 cltype = type_nullable_parser_nodes__TKwassert.color;
856 idtype = type_nullable_parser_nodes__TKwassert.id;
857 if(var_tkwassertnode2 == NULL) {
858 var5 = 1;
859 } else {
860 if(cltype >= var_tkwassertnode2->type->table_size) {
861 var5 = 0;
862 } else {
863 var5 = var_tkwassertnode2->type->type_table[cltype] == idtype;
864 }
865 }
866 if (!var5) {
867 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27813);
868 exit(1);
869 }
870 var_pexprnode4 = var_nodearraylist2;
871 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
872 cltype7 = type_nullable_parser_nodes__AExpr.color;
873 idtype8 = type_nullable_parser_nodes__AExpr.id;
874 if(var_pexprnode4 == NULL) {
875 var6 = 1;
876 } else {
877 if(cltype7 >= var_pexprnode4->type->table_size) {
878 var6 = 0;
879 } else {
880 var6 = var_pexprnode4->type->type_table[cltype7] == idtype8;
881 }
882 }
883 if (!var6) {
884 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27815);
885 exit(1);
886 }
887 var_pexprnode5 = var_nodearraylist4;
888 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
889 cltype10 = type_nullable_parser_nodes__AExpr.color;
890 idtype11 = type_nullable_parser_nodes__AExpr.id;
891 if(var_pexprnode5 == NULL) {
892 var9 = 1;
893 } else {
894 if(cltype10 >= var_pexprnode5->type->table_size) {
895 var9 = 0;
896 } else {
897 var9 = var_pexprnode5->type->type_table[cltype10] == idtype11;
898 }
899 }
900 if (!var9) {
901 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27817);
902 exit(1);
903 }
904 var12 = NEW_parser_nodes__AAssertExpr(&type_parser_nodes__AAssertExpr);
905 var13 = NULL;
906 ((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>*/;
907 CHECK_NEW_parser_nodes__AAssertExpr(var12);
908 var_pexprnode1 = var12;
909 var_node_list = var_pexprnode1;
910 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction749> */
911 var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
912 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
913 RET_LABEL:;
914 }
915 /* method parser#ReduceAction749#action for (self: Object, Parser) */
916 void VIRTUAL_parser__ReduceAction749__action(val* self, val* p0) {
917 parser__ReduceAction749__action(self, p0);
918 RET_LABEL:;
919 }
920 /* method parser#ReduceAction750#action for (self: ReduceAction750, Parser) */
921 void parser__ReduceAction750__action(val* self, val* p0) {
922 val* var_p /* var p: Parser */;
923 val* var /* : null */;
924 val* var_node_list /* var node_list: nullable Object */;
925 val* var1 /* : nullable Object */;
926 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
927 val* var2 /* : nullable Object */;
928 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
929 val* var3 /* : nullable Object */;
930 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
931 val* var4 /* : nullable Object */;
932 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
933 val* var5 /* : nullable Object */;
934 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
935 val* var_tkwassertnode2 /* var tkwassertnode2: nullable Object */;
936 short int var6 /* : Bool */;
937 int cltype;
938 int idtype;
939 val* var_tidnode3 /* var tidnode3: nullable Object */;
940 short int var7 /* : Bool */;
941 int cltype8;
942 int idtype9;
943 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
944 short int var10 /* : Bool */;
945 int cltype11;
946 int idtype12;
947 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
948 short int var13 /* : Bool */;
949 int cltype14;
950 int idtype15;
951 val* var16 /* : AAssertExpr */;
952 val* var_pexprnode1 /* var pexprnode1: nullable AAssertExpr */;
953 long var17 /* : Int */;
954 long var18 /* : Int */;
955 var_p = p0;
956 var = NULL;
957 var_node_list = var;
958 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
959 var_nodearraylist5 = var1;
960 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
961 var_nodearraylist4 = var2;
962 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
963 var_nodearraylist3 = var3;
964 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
965 var_nodearraylist2 = var4;
966 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
967 var_nodearraylist1 = var5;
968 var_tkwassertnode2 = var_nodearraylist1;
969 /* <var_tkwassertnode2:nullable Object> isa nullable TKwassert */
970 cltype = type_nullable_parser_nodes__TKwassert.color;
971 idtype = type_nullable_parser_nodes__TKwassert.id;
972 if(var_tkwassertnode2 == NULL) {
973 var6 = 1;
974 } else {
975 if(cltype >= var_tkwassertnode2->type->table_size) {
976 var6 = 0;
977 } else {
978 var6 = var_tkwassertnode2->type->type_table[cltype] == idtype;
979 }
980 }
981 if (!var6) {
982 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27839);
983 exit(1);
984 }
985 var_tidnode3 = var_nodearraylist2;
986 /* <var_tidnode3:nullable Object> isa nullable TId */
987 cltype8 = type_nullable_parser_nodes__TId.color;
988 idtype9 = type_nullable_parser_nodes__TId.id;
989 if(var_tidnode3 == NULL) {
990 var7 = 1;
991 } else {
992 if(cltype8 >= var_tidnode3->type->table_size) {
993 var7 = 0;
994 } else {
995 var7 = var_tidnode3->type->type_table[cltype8] == idtype9;
996 }
997 }
998 if (!var7) {
999 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27841);
1000 exit(1);
1001 }
1002 var_pexprnode4 = var_nodearraylist3;
1003 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
1004 cltype11 = type_nullable_parser_nodes__AExpr.color;
1005 idtype12 = type_nullable_parser_nodes__AExpr.id;
1006 if(var_pexprnode4 == NULL) {
1007 var10 = 1;
1008 } else {
1009 if(cltype11 >= var_pexprnode4->type->table_size) {
1010 var10 = 0;
1011 } else {
1012 var10 = var_pexprnode4->type->type_table[cltype11] == idtype12;
1013 }
1014 }
1015 if (!var10) {
1016 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27843);
1017 exit(1);
1018 }
1019 var_pexprnode5 = var_nodearraylist5;
1020 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
1021 cltype14 = type_nullable_parser_nodes__AExpr.color;
1022 idtype15 = type_nullable_parser_nodes__AExpr.id;
1023 if(var_pexprnode5 == NULL) {
1024 var13 = 1;
1025 } else {
1026 if(cltype14 >= var_pexprnode5->type->table_size) {
1027 var13 = 0;
1028 } else {
1029 var13 = var_pexprnode5->type->type_table[cltype14] == idtype15;
1030 }
1031 }
1032 if (!var13) {
1033 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27845);
1034 exit(1);
1035 }
1036 var16 = NEW_parser_nodes__AAssertExpr(&type_parser_nodes__AAssertExpr);
1037 ((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>*/;
1038 CHECK_NEW_parser_nodes__AAssertExpr(var16);
1039 var_pexprnode1 = var16;
1040 var_node_list = var_pexprnode1;
1041 var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction750> */
1042 var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
1043 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
1044 RET_LABEL:;
1045 }
1046 /* method parser#ReduceAction750#action for (self: Object, Parser) */
1047 void VIRTUAL_parser__ReduceAction750__action(val* self, val* p0) {
1048 parser__ReduceAction750__action(self, p0);
1049 RET_LABEL:;
1050 }
1051 /* method parser#ReduceAction751#action for (self: ReduceAction751, Parser) */
1052 void parser__ReduceAction751__action(val* self, val* p0) {
1053 val* var_p /* var p: Parser */;
1054 val* var /* : null */;
1055 val* var_node_list /* var node_list: nullable Object */;
1056 val* var1 /* : nullable Object */;
1057 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1058 val* var2 /* : nullable Object */;
1059 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1060 val* var_tkwassertnode2 /* var tkwassertnode2: nullable Object */;
1061 short int var3 /* : Bool */;
1062 int cltype;
1063 int idtype;
1064 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
1065 short int var4 /* : Bool */;
1066 int cltype5;
1067 int idtype6;
1068 val* var7 /* : AAssertExpr */;
1069 val* var8 /* : null */;
1070 val* var9 /* : null */;
1071 val* var_pexprnode1 /* var pexprnode1: nullable AAssertExpr */;
1072 long var10 /* : Int */;
1073 long var11 /* : Int */;
1074 var_p = p0;
1075 var = NULL;
1076 var_node_list = var;
1077 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1078 var_nodearraylist2 = var1;
1079 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1080 var_nodearraylist1 = var2;
1081 var_tkwassertnode2 = var_nodearraylist1;
1082 /* <var_tkwassertnode2:nullable Object> isa nullable TKwassert */
1083 cltype = type_nullable_parser_nodes__TKwassert.color;
1084 idtype = type_nullable_parser_nodes__TKwassert.id;
1085 if(var_tkwassertnode2 == NULL) {
1086 var3 = 1;
1087 } else {
1088 if(cltype >= var_tkwassertnode2->type->table_size) {
1089 var3 = 0;
1090 } else {
1091 var3 = var_tkwassertnode2->type->type_table[cltype] == idtype;
1092 }
1093 }
1094 if (!var3) {
1095 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27864);
1096 exit(1);
1097 }
1098 var_pexprnode4 = var_nodearraylist2;
1099 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
1100 cltype5 = type_nullable_parser_nodes__AExpr.color;
1101 idtype6 = type_nullable_parser_nodes__AExpr.id;
1102 if(var_pexprnode4 == NULL) {
1103 var4 = 1;
1104 } else {
1105 if(cltype5 >= var_pexprnode4->type->table_size) {
1106 var4 = 0;
1107 } else {
1108 var4 = var_pexprnode4->type->type_table[cltype5] == idtype6;
1109 }
1110 }
1111 if (!var4) {
1112 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27866);
1113 exit(1);
1114 }
1115 var7 = NEW_parser_nodes__AAssertExpr(&type_parser_nodes__AAssertExpr);
1116 var8 = NULL;
1117 var9 = NULL;
1118 ((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>*/;
1119 CHECK_NEW_parser_nodes__AAssertExpr(var7);
1120 var_pexprnode1 = var7;
1121 var_node_list = var_pexprnode1;
1122 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction751> */
1123 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
1124 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
1125 RET_LABEL:;
1126 }
1127 /* method parser#ReduceAction751#action for (self: Object, Parser) */
1128 void VIRTUAL_parser__ReduceAction751__action(val* self, val* p0) {
1129 parser__ReduceAction751__action(self, p0);
1130 RET_LABEL:;
1131 }
1132 /* method parser#ReduceAction752#action for (self: ReduceAction752, Parser) */
1133 void parser__ReduceAction752__action(val* self, val* p0) {
1134 val* var_p /* var p: Parser */;
1135 val* var /* : null */;
1136 val* var_node_list /* var node_list: nullable Object */;
1137 val* var1 /* : nullable Object */;
1138 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1139 val* var2 /* : nullable Object */;
1140 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1141 val* var3 /* : nullable Object */;
1142 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1143 val* var_tkwassertnode2 /* var tkwassertnode2: nullable Object */;
1144 short int var4 /* : Bool */;
1145 int cltype;
1146 int idtype;
1147 val* var_tidnode3 /* var tidnode3: nullable Object */;
1148 short int var5 /* : Bool */;
1149 int cltype6;
1150 int idtype7;
1151 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
1152 short int var8 /* : Bool */;
1153 int cltype9;
1154 int idtype10;
1155 val* var11 /* : AAssertExpr */;
1156 val* var12 /* : null */;
1157 val* var_pexprnode1 /* var pexprnode1: nullable AAssertExpr */;
1158 long var13 /* : Int */;
1159 long var14 /* : Int */;
1160 var_p = p0;
1161 var = NULL;
1162 var_node_list = var;
1163 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1164 var_nodearraylist3 = var1;
1165 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1166 var_nodearraylist2 = var2;
1167 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1168 var_nodearraylist1 = var3;
1169 var_tkwassertnode2 = var_nodearraylist1;
1170 /* <var_tkwassertnode2:nullable Object> isa nullable TKwassert */
1171 cltype = type_nullable_parser_nodes__TKwassert.color;
1172 idtype = type_nullable_parser_nodes__TKwassert.id;
1173 if(var_tkwassertnode2 == NULL) {
1174 var4 = 1;
1175 } else {
1176 if(cltype >= var_tkwassertnode2->type->table_size) {
1177 var4 = 0;
1178 } else {
1179 var4 = var_tkwassertnode2->type->type_table[cltype] == idtype;
1180 }
1181 }
1182 if (!var4) {
1183 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27886);
1184 exit(1);
1185 }
1186 var_tidnode3 = var_nodearraylist2;
1187 /* <var_tidnode3:nullable Object> isa nullable TId */
1188 cltype6 = type_nullable_parser_nodes__TId.color;
1189 idtype7 = type_nullable_parser_nodes__TId.id;
1190 if(var_tidnode3 == NULL) {
1191 var5 = 1;
1192 } else {
1193 if(cltype6 >= var_tidnode3->type->table_size) {
1194 var5 = 0;
1195 } else {
1196 var5 = var_tidnode3->type->type_table[cltype6] == idtype7;
1197 }
1198 }
1199 if (!var5) {
1200 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27888);
1201 exit(1);
1202 }
1203 var_pexprnode4 = var_nodearraylist3;
1204 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
1205 cltype9 = type_nullable_parser_nodes__AExpr.color;
1206 idtype10 = type_nullable_parser_nodes__AExpr.id;
1207 if(var_pexprnode4 == NULL) {
1208 var8 = 1;
1209 } else {
1210 if(cltype9 >= var_pexprnode4->type->table_size) {
1211 var8 = 0;
1212 } else {
1213 var8 = var_pexprnode4->type->type_table[cltype9] == idtype10;
1214 }
1215 }
1216 if (!var8) {
1217 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27890);
1218 exit(1);
1219 }
1220 var11 = NEW_parser_nodes__AAssertExpr(&type_parser_nodes__AAssertExpr);
1221 var12 = NULL;
1222 ((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>*/;
1223 CHECK_NEW_parser_nodes__AAssertExpr(var11);
1224 var_pexprnode1 = var11;
1225 var_node_list = var_pexprnode1;
1226 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction752> */
1227 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
1228 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
1229 RET_LABEL:;
1230 }
1231 /* method parser#ReduceAction752#action for (self: Object, Parser) */
1232 void VIRTUAL_parser__ReduceAction752__action(val* self, val* p0) {
1233 parser__ReduceAction752__action(self, p0);
1234 RET_LABEL:;
1235 }
1236 /* method parser#ReduceAction753#action for (self: ReduceAction753, Parser) */
1237 void parser__ReduceAction753__action(val* self, val* p0) {
1238 val* var_p /* var p: Parser */;
1239 val* var /* : null */;
1240 val* var_node_list /* var node_list: nullable Object */;
1241 val* var1 /* : nullable Object */;
1242 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1243 val* var2 /* : nullable Object */;
1244 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1245 val* var_tidnode1 /* var tidnode1: nullable Object */;
1246 long var3 /* : Int */;
1247 long var4 /* : Int */;
1248 var_p = p0;
1249 var = NULL;
1250 var_node_list = var;
1251 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1252 var_nodearraylist2 = var1;
1253 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1254 var_nodearraylist1 = var2;
1255 var_tidnode1 = var_nodearraylist1;
1256 var_node_list = var_tidnode1;
1257 var3 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction753> */
1258 var4 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var3) /* go_to on <var_p:Parser>*/;
1259 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var4, var_node_list) /* push on <var_p:Parser>*/;
1260 RET_LABEL:;
1261 }
1262 /* method parser#ReduceAction753#action for (self: Object, Parser) */
1263 void VIRTUAL_parser__ReduceAction753__action(val* self, val* p0) {
1264 parser__ReduceAction753__action(self, p0);
1265 RET_LABEL:;
1266 }
1267 /* method parser#ReduceAction763#action for (self: ReduceAction763, Parser) */
1268 void parser__ReduceAction763__action(val* self, val* p0) {
1269 val* var_p /* var p: Parser */;
1270 val* var /* : null */;
1271 val* var_node_list /* var node_list: nullable Object */;
1272 val* var1 /* : nullable Object */;
1273 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1274 val* var2 /* : nullable Object */;
1275 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1276 val* var3 /* : nullable Object */;
1277 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1278 val* var4 /* : Array[Object] */;
1279 val* var_listnode5 /* var listnode5: Array[Object] */;
1280 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
1281 short int var5 /* : Bool */;
1282 int cltype;
1283 int idtype;
1284 val* var_pexprsnode3 /* var pexprsnode3: nullable Object */;
1285 short int var6 /* : Bool */;
1286 int cltype7;
1287 int idtype8;
1288 val* var_listnode4 /* var listnode4: nullable Object */;
1289 short int var9 /* : Bool */;
1290 int cltype10;
1291 int idtype11;
1292 val* var12 /* : Array[Object] */;
1293 val* var13 /* : ABraExpr */;
1294 val* var_pexprnode1 /* var pexprnode1: nullable ABraExpr */;
1295 long var14 /* : Int */;
1296 long var15 /* : Int */;
1297 var_p = p0;
1298 var = NULL;
1299 var_node_list = var;
1300 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1301 var_nodearraylist3 = var1;
1302 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1303 var_nodearraylist2 = var2;
1304 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1305 var_nodearraylist1 = var3;
1306 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
1307 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
1308 CHECK_NEW_array__Array(var4);
1309 var_listnode5 = var4;
1310 var_pexprnode2 = var_nodearraylist1;
1311 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
1312 cltype = type_nullable_parser_nodes__AExpr.color;
1313 idtype = type_nullable_parser_nodes__AExpr.id;
1314 if(var_pexprnode2 == NULL) {
1315 var5 = 1;
1316 } else {
1317 if(cltype >= var_pexprnode2->type->table_size) {
1318 var5 = 0;
1319 } else {
1320 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
1321 }
1322 }
1323 if (!var5) {
1324 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27923);
1325 exit(1);
1326 }
1327 var_pexprsnode3 = var_nodearraylist2;
1328 /* <var_pexprsnode3:nullable Object> isa nullable AExprs */
1329 cltype7 = type_nullable_parser_nodes__AExprs.color;
1330 idtype8 = type_nullable_parser_nodes__AExprs.id;
1331 if(var_pexprsnode3 == NULL) {
1332 var6 = 1;
1333 } else {
1334 if(cltype7 >= var_pexprsnode3->type->table_size) {
1335 var6 = 0;
1336 } else {
1337 var6 = var_pexprsnode3->type->type_table[cltype7] == idtype8;
1338 }
1339 }
1340 if (!var6) {
1341 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27925);
1342 exit(1);
1343 }
1344 var_listnode4 = var_nodearraylist3;
1345 /* <var_listnode4:nullable Object> isa Array[Object] */
1346 cltype10 = type_array__Arraykernel__Object.color;
1347 idtype11 = type_array__Arraykernel__Object.id;
1348 if(var_listnode4 == NULL) {
1349 var9 = 0;
1350 } else {
1351 if(cltype10 >= var_listnode4->type->table_size) {
1352 var9 = 0;
1353 } else {
1354 var9 = var_listnode4->type->type_table[cltype10] == idtype11;
1355 }
1356 }
1357 if (!var9) {
1358 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27927);
1359 exit(1);
1360 }
1361 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction763>*/;
1362 var_listnode5 = var12;
1363 var13 = NEW_parser_nodes__ABraExpr(&type_parser_nodes__ABraExpr);
1364 ((void (*)(val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__ABraExpr__init_abraexpr]))(var13, var_pexprnode2, var_pexprsnode3, var_listnode5) /* init_abraexpr on <var13:ABraExpr>*/;
1365 CHECK_NEW_parser_nodes__ABraExpr(var13);
1366 var_pexprnode1 = var13;
1367 var_node_list = var_pexprnode1;
1368 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction763> */
1369 var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
1370 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
1371 RET_LABEL:;
1372 }
1373 /* method parser#ReduceAction763#action for (self: Object, Parser) */
1374 void VIRTUAL_parser__ReduceAction763__action(val* self, val* p0) {
1375 parser__ReduceAction763__action(self, p0);
1376 RET_LABEL:;
1377 }
1378 /* method parser#ReduceAction765#action for (self: ReduceAction765, Parser) */
1379 void parser__ReduceAction765__action(val* self, val* p0) {
1380 val* var_p /* var p: Parser */;
1381 val* var /* : null */;
1382 val* var_node_list /* var node_list: nullable Object */;
1383 val* var1 /* : nullable Object */;
1384 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
1385 val* var2 /* : nullable Object */;
1386 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
1387 val* var3 /* : nullable Object */;
1388 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
1389 val* var4 /* : nullable Object */;
1390 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
1391 val* var5 /* : nullable Object */;
1392 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
1393 val* var6 /* : nullable Object */;
1394 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
1395 val* var7 /* : nullable Object */;
1396 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1397 val* var8 /* : nullable Object */;
1398 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1399 val* var9 /* : nullable Object */;
1400 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1401 val* var10 /* : nullable Object */;
1402 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1403 val* var11 /* : nullable Object */;
1404 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1405 val* var_tkwifnode2 /* var tkwifnode2: nullable Object */;
1406 short int var12 /* : Bool */;
1407 int cltype;
1408 int idtype;
1409 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
1410 short int var13 /* : Bool */;
1411 int cltype14;
1412 int idtype15;
1413 val* var_tkwthennode4 /* var tkwthennode4: nullable Object */;
1414 short int var16 /* : Bool */;
1415 int cltype17;
1416 int idtype18;
1417 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
1418 short int var19 /* : Bool */;
1419 int cltype20;
1420 int idtype21;
1421 val* var_tkwelsenode6 /* var tkwelsenode6: nullable Object */;
1422 short int var22 /* : Bool */;
1423 int cltype23;
1424 int idtype24;
1425 val* var_pexprnode7 /* var pexprnode7: nullable Object */;
1426 short int var25 /* : Bool */;
1427 int cltype26;
1428 int idtype27;
1429 val* var28 /* : AIfexprExpr */;
1430 val* var_pexprnode1 /* var pexprnode1: nullable AIfexprExpr */;
1431 long var29 /* : Int */;
1432 long var30 /* : Int */;
1433 var_p = p0;
1434 var = NULL;
1435 var_node_list = var;
1436 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1437 var_nodearraylist11 = var1;
1438 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1439 var_nodearraylist10 = var2;
1440 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1441 var_nodearraylist9 = var3;
1442 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1443 var_nodearraylist8 = var4;
1444 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1445 var_nodearraylist7 = var5;
1446 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1447 var_nodearraylist6 = var6;
1448 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1449 var_nodearraylist5 = var7;
1450 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1451 var_nodearraylist4 = var8;
1452 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1453 var_nodearraylist3 = var9;
1454 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1455 var_nodearraylist2 = var10;
1456 var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1457 var_nodearraylist1 = var11;
1458 var_tkwifnode2 = var_nodearraylist1;
1459 /* <var_tkwifnode2:nullable Object> isa nullable TKwif */
1460 cltype = type_nullable_parser_nodes__TKwif.color;
1461 idtype = type_nullable_parser_nodes__TKwif.id;
1462 if(var_tkwifnode2 == NULL) {
1463 var12 = 1;
1464 } else {
1465 if(cltype >= var_tkwifnode2->type->table_size) {
1466 var12 = 0;
1467 } else {
1468 var12 = var_tkwifnode2->type->type_table[cltype] == idtype;
1469 }
1470 }
1471 if (!var12) {
1472 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27955);
1473 exit(1);
1474 }
1475 var_pexprnode3 = var_nodearraylist3;
1476 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
1477 cltype14 = type_nullable_parser_nodes__AExpr.color;
1478 idtype15 = type_nullable_parser_nodes__AExpr.id;
1479 if(var_pexprnode3 == NULL) {
1480 var13 = 1;
1481 } else {
1482 if(cltype14 >= var_pexprnode3->type->table_size) {
1483 var13 = 0;
1484 } else {
1485 var13 = var_pexprnode3->type->type_table[cltype14] == idtype15;
1486 }
1487 }
1488 if (!var13) {
1489 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27957);
1490 exit(1);
1491 }
1492 var_tkwthennode4 = var_nodearraylist5;
1493 /* <var_tkwthennode4:nullable Object> isa nullable TKwthen */
1494 cltype17 = type_nullable_parser_nodes__TKwthen.color;
1495 idtype18 = type_nullable_parser_nodes__TKwthen.id;
1496 if(var_tkwthennode4 == NULL) {
1497 var16 = 1;
1498 } else {
1499 if(cltype17 >= var_tkwthennode4->type->table_size) {
1500 var16 = 0;
1501 } else {
1502 var16 = var_tkwthennode4->type->type_table[cltype17] == idtype18;
1503 }
1504 }
1505 if (!var16) {
1506 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27959);
1507 exit(1);
1508 }
1509 var_pexprnode5 = var_nodearraylist7;
1510 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
1511 cltype20 = type_nullable_parser_nodes__AExpr.color;
1512 idtype21 = type_nullable_parser_nodes__AExpr.id;
1513 if(var_pexprnode5 == NULL) {
1514 var19 = 1;
1515 } else {
1516 if(cltype20 >= var_pexprnode5->type->table_size) {
1517 var19 = 0;
1518 } else {
1519 var19 = var_pexprnode5->type->type_table[cltype20] == idtype21;
1520 }
1521 }
1522 if (!var19) {
1523 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27961);
1524 exit(1);
1525 }
1526 var_tkwelsenode6 = var_nodearraylist9;
1527 /* <var_tkwelsenode6:nullable Object> isa nullable TKwelse */
1528 cltype23 = type_nullable_parser_nodes__TKwelse.color;
1529 idtype24 = type_nullable_parser_nodes__TKwelse.id;
1530 if(var_tkwelsenode6 == NULL) {
1531 var22 = 1;
1532 } else {
1533 if(cltype23 >= var_tkwelsenode6->type->table_size) {
1534 var22 = 0;
1535 } else {
1536 var22 = var_tkwelsenode6->type->type_table[cltype23] == idtype24;
1537 }
1538 }
1539 if (!var22) {
1540 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27963);
1541 exit(1);
1542 }
1543 var_pexprnode7 = var_nodearraylist11;
1544 /* <var_pexprnode7:nullable Object> isa nullable AExpr */
1545 cltype26 = type_nullable_parser_nodes__AExpr.color;
1546 idtype27 = type_nullable_parser_nodes__AExpr.id;
1547 if(var_pexprnode7 == NULL) {
1548 var25 = 1;
1549 } else {
1550 if(cltype26 >= var_pexprnode7->type->table_size) {
1551 var25 = 0;
1552 } else {
1553 var25 = var_pexprnode7->type->type_table[cltype26] == idtype27;
1554 }
1555 }
1556 if (!var25) {
1557 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27965);
1558 exit(1);
1559 }
1560 var28 = NEW_parser_nodes__AIfexprExpr(&type_parser_nodes__AIfexprExpr);
1561 ((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>*/;
1562 CHECK_NEW_parser_nodes__AIfexprExpr(var28);
1563 var_pexprnode1 = var28;
1564 var_node_list = var_pexprnode1;
1565 var29 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction765> */
1566 var30 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var29) /* go_to on <var_p:Parser>*/;
1567 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var30, var_node_list) /* push on <var_p:Parser>*/;
1568 RET_LABEL:;
1569 }
1570 /* method parser#ReduceAction765#action for (self: Object, Parser) */
1571 void VIRTUAL_parser__ReduceAction765__action(val* self, val* p0) {
1572 parser__ReduceAction765__action(self, p0);
1573 RET_LABEL:;
1574 }
1575 /* method parser#ReduceAction767#action for (self: ReduceAction767, Parser) */
1576 void parser__ReduceAction767__action(val* self, val* p0) {
1577 val* var_p /* var p: Parser */;
1578 val* var /* : null */;
1579 val* var_node_list /* var node_list: nullable Object */;
1580 val* var1 /* : nullable Object */;
1581 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1582 val* var2 /* : nullable Object */;
1583 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1584 val* var3 /* : nullable Object */;
1585 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1586 val* var4 /* : nullable Object */;
1587 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1588 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
1589 short int var5 /* : Bool */;
1590 int cltype;
1591 int idtype;
1592 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
1593 short int var6 /* : Bool */;
1594 int cltype7;
1595 int idtype8;
1596 val* var9 /* : AOrExpr */;
1597 val* var_pexprnode1 /* var pexprnode1: nullable AOrExpr */;
1598 long var10 /* : Int */;
1599 long var11 /* : Int */;
1600 var_p = p0;
1601 var = NULL;
1602 var_node_list = var;
1603 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1604 var_nodearraylist4 = var1;
1605 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1606 var_nodearraylist3 = var2;
1607 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1608 var_nodearraylist2 = var3;
1609 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1610 var_nodearraylist1 = var4;
1611 var_pexprnode2 = var_nodearraylist1;
1612 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
1613 cltype = type_nullable_parser_nodes__AExpr.color;
1614 idtype = type_nullable_parser_nodes__AExpr.id;
1615 if(var_pexprnode2 == NULL) {
1616 var5 = 1;
1617 } else {
1618 if(cltype >= var_pexprnode2->type->table_size) {
1619 var5 = 0;
1620 } else {
1621 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
1622 }
1623 }
1624 if (!var5) {
1625 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27988);
1626 exit(1);
1627 }
1628 var_pexprnode3 = var_nodearraylist4;
1629 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
1630 cltype7 = type_nullable_parser_nodes__AExpr.color;
1631 idtype8 = type_nullable_parser_nodes__AExpr.id;
1632 if(var_pexprnode3 == NULL) {
1633 var6 = 1;
1634 } else {
1635 if(cltype7 >= var_pexprnode3->type->table_size) {
1636 var6 = 0;
1637 } else {
1638 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
1639 }
1640 }
1641 if (!var6) {
1642 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 27990);
1643 exit(1);
1644 }
1645 var9 = NEW_parser_nodes__AOrExpr(&type_parser_nodes__AOrExpr);
1646 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AOrExpr__init_aorexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aorexpr on <var9:AOrExpr>*/;
1647 CHECK_NEW_parser_nodes__AOrExpr(var9);
1648 var_pexprnode1 = var9;
1649 var_node_list = var_pexprnode1;
1650 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction767> */
1651 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
1652 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
1653 RET_LABEL:;
1654 }
1655 /* method parser#ReduceAction767#action for (self: Object, Parser) */
1656 void VIRTUAL_parser__ReduceAction767__action(val* self, val* p0) {
1657 parser__ReduceAction767__action(self, p0);
1658 RET_LABEL:;
1659 }
1660 /* method parser#ReduceAction768#action for (self: ReduceAction768, Parser) */
1661 void parser__ReduceAction768__action(val* self, val* p0) {
1662 val* var_p /* var p: Parser */;
1663 val* var /* : null */;
1664 val* var_node_list /* var node_list: nullable Object */;
1665 val* var1 /* : nullable Object */;
1666 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1667 val* var2 /* : nullable Object */;
1668 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1669 val* var3 /* : nullable Object */;
1670 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1671 val* var4 /* : nullable Object */;
1672 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1673 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
1674 short int var5 /* : Bool */;
1675 int cltype;
1676 int idtype;
1677 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
1678 short int var6 /* : Bool */;
1679 int cltype7;
1680 int idtype8;
1681 val* var9 /* : AAndExpr */;
1682 val* var_pexprnode1 /* var pexprnode1: nullable AAndExpr */;
1683 long var10 /* : Int */;
1684 long var11 /* : Int */;
1685 var_p = p0;
1686 var = NULL;
1687 var_node_list = var;
1688 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1689 var_nodearraylist4 = var1;
1690 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1691 var_nodearraylist3 = var2;
1692 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1693 var_nodearraylist2 = var3;
1694 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1695 var_nodearraylist1 = var4;
1696 var_pexprnode2 = var_nodearraylist1;
1697 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
1698 cltype = type_nullable_parser_nodes__AExpr.color;
1699 idtype = type_nullable_parser_nodes__AExpr.id;
1700 if(var_pexprnode2 == NULL) {
1701 var5 = 1;
1702 } else {
1703 if(cltype >= var_pexprnode2->type->table_size) {
1704 var5 = 0;
1705 } else {
1706 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
1707 }
1708 }
1709 if (!var5) {
1710 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28009);
1711 exit(1);
1712 }
1713 var_pexprnode3 = var_nodearraylist4;
1714 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
1715 cltype7 = type_nullable_parser_nodes__AExpr.color;
1716 idtype8 = type_nullable_parser_nodes__AExpr.id;
1717 if(var_pexprnode3 == NULL) {
1718 var6 = 1;
1719 } else {
1720 if(cltype7 >= var_pexprnode3->type->table_size) {
1721 var6 = 0;
1722 } else {
1723 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
1724 }
1725 }
1726 if (!var6) {
1727 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28011);
1728 exit(1);
1729 }
1730 var9 = NEW_parser_nodes__AAndExpr(&type_parser_nodes__AAndExpr);
1731 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AAndExpr__init_aandexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aandexpr on <var9:AAndExpr>*/;
1732 CHECK_NEW_parser_nodes__AAndExpr(var9);
1733 var_pexprnode1 = var9;
1734 var_node_list = var_pexprnode1;
1735 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction768> */
1736 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
1737 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
1738 RET_LABEL:;
1739 }
1740 /* method parser#ReduceAction768#action for (self: Object, Parser) */
1741 void VIRTUAL_parser__ReduceAction768__action(val* self, val* p0) {
1742 parser__ReduceAction768__action(self, p0);
1743 RET_LABEL:;
1744 }
1745 /* method parser#ReduceAction769#action for (self: ReduceAction769, Parser) */
1746 void parser__ReduceAction769__action(val* self, val* p0) {
1747 val* var_p /* var p: Parser */;
1748 val* var /* : null */;
1749 val* var_node_list /* var node_list: nullable Object */;
1750 val* var1 /* : nullable Object */;
1751 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1752 val* var2 /* : nullable Object */;
1753 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1754 val* var3 /* : nullable Object */;
1755 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1756 val* var4 /* : nullable Object */;
1757 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1758 val* var5 /* : nullable Object */;
1759 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1760 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
1761 short int var6 /* : Bool */;
1762 int cltype;
1763 int idtype;
1764 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
1765 short int var7 /* : Bool */;
1766 int cltype8;
1767 int idtype9;
1768 val* var10 /* : AOrElseExpr */;
1769 val* var_pexprnode1 /* var pexprnode1: nullable AOrElseExpr */;
1770 long var11 /* : Int */;
1771 long var12 /* : Int */;
1772 var_p = p0;
1773 var = NULL;
1774 var_node_list = var;
1775 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1776 var_nodearraylist5 = var1;
1777 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1778 var_nodearraylist4 = var2;
1779 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1780 var_nodearraylist3 = var3;
1781 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1782 var_nodearraylist2 = var4;
1783 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1784 var_nodearraylist1 = var5;
1785 var_pexprnode2 = var_nodearraylist1;
1786 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
1787 cltype = type_nullable_parser_nodes__AExpr.color;
1788 idtype = type_nullable_parser_nodes__AExpr.id;
1789 if(var_pexprnode2 == NULL) {
1790 var6 = 1;
1791 } else {
1792 if(cltype >= var_pexprnode2->type->table_size) {
1793 var6 = 0;
1794 } else {
1795 var6 = var_pexprnode2->type->type_table[cltype] == idtype;
1796 }
1797 }
1798 if (!var6) {
1799 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28031);
1800 exit(1);
1801 }
1802 var_pexprnode3 = var_nodearraylist5;
1803 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
1804 cltype8 = type_nullable_parser_nodes__AExpr.color;
1805 idtype9 = type_nullable_parser_nodes__AExpr.id;
1806 if(var_pexprnode3 == NULL) {
1807 var7 = 1;
1808 } else {
1809 if(cltype8 >= var_pexprnode3->type->table_size) {
1810 var7 = 0;
1811 } else {
1812 var7 = var_pexprnode3->type->type_table[cltype8] == idtype9;
1813 }
1814 }
1815 if (!var7) {
1816 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28033);
1817 exit(1);
1818 }
1819 var10 = NEW_parser_nodes__AOrElseExpr(&type_parser_nodes__AOrElseExpr);
1820 ((void (*)(val*, val*, val*))(var10->class->vft[COLOR_parser_prod__AOrElseExpr__init_aorelseexpr]))(var10, var_pexprnode2, var_pexprnode3) /* init_aorelseexpr on <var10:AOrElseExpr>*/;
1821 CHECK_NEW_parser_nodes__AOrElseExpr(var10);
1822 var_pexprnode1 = var10;
1823 var_node_list = var_pexprnode1;
1824 var11 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction769> */
1825 var12 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var11) /* go_to on <var_p:Parser>*/;
1826 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var12, var_node_list) /* push on <var_p:Parser>*/;
1827 RET_LABEL:;
1828 }
1829 /* method parser#ReduceAction769#action for (self: Object, Parser) */
1830 void VIRTUAL_parser__ReduceAction769__action(val* self, val* p0) {
1831 parser__ReduceAction769__action(self, p0);
1832 RET_LABEL:;
1833 }
1834 /* method parser#ReduceAction770#action for (self: ReduceAction770, Parser) */
1835 void parser__ReduceAction770__action(val* self, val* p0) {
1836 val* var_p /* var p: Parser */;
1837 val* var /* : null */;
1838 val* var_node_list /* var node_list: nullable Object */;
1839 val* var1 /* : nullable Object */;
1840 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1841 val* var2 /* : nullable Object */;
1842 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1843 val* var3 /* : nullable Object */;
1844 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1845 val* var4 /* : nullable Object */;
1846 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1847 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
1848 short int var5 /* : Bool */;
1849 int cltype;
1850 int idtype;
1851 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
1852 short int var6 /* : Bool */;
1853 int cltype7;
1854 int idtype8;
1855 val* var9 /* : AImpliesExpr */;
1856 val* var_pexprnode1 /* var pexprnode1: nullable AImpliesExpr */;
1857 long var10 /* : Int */;
1858 long var11 /* : Int */;
1859 var_p = p0;
1860 var = NULL;
1861 var_node_list = var;
1862 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1863 var_nodearraylist4 = var1;
1864 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1865 var_nodearraylist3 = var2;
1866 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1867 var_nodearraylist2 = var3;
1868 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1869 var_nodearraylist1 = var4;
1870 var_pexprnode2 = var_nodearraylist1;
1871 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
1872 cltype = type_nullable_parser_nodes__AExpr.color;
1873 idtype = type_nullable_parser_nodes__AExpr.id;
1874 if(var_pexprnode2 == NULL) {
1875 var5 = 1;
1876 } else {
1877 if(cltype >= var_pexprnode2->type->table_size) {
1878 var5 = 0;
1879 } else {
1880 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
1881 }
1882 }
1883 if (!var5) {
1884 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28052);
1885 exit(1);
1886 }
1887 var_pexprnode3 = var_nodearraylist4;
1888 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
1889 cltype7 = type_nullable_parser_nodes__AExpr.color;
1890 idtype8 = type_nullable_parser_nodes__AExpr.id;
1891 if(var_pexprnode3 == NULL) {
1892 var6 = 1;
1893 } else {
1894 if(cltype7 >= var_pexprnode3->type->table_size) {
1895 var6 = 0;
1896 } else {
1897 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
1898 }
1899 }
1900 if (!var6) {
1901 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28054);
1902 exit(1);
1903 }
1904 var9 = NEW_parser_nodes__AImpliesExpr(&type_parser_nodes__AImpliesExpr);
1905 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AImpliesExpr__init_aimpliesexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aimpliesexpr on <var9:AImpliesExpr>*/;
1906 CHECK_NEW_parser_nodes__AImpliesExpr(var9);
1907 var_pexprnode1 = var9;
1908 var_node_list = var_pexprnode1;
1909 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction770> */
1910 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
1911 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
1912 RET_LABEL:;
1913 }
1914 /* method parser#ReduceAction770#action for (self: Object, Parser) */
1915 void VIRTUAL_parser__ReduceAction770__action(val* self, val* p0) {
1916 parser__ReduceAction770__action(self, p0);
1917 RET_LABEL:;
1918 }
1919 /* method parser#ReduceAction772#action for (self: ReduceAction772, Parser) */
1920 void parser__ReduceAction772__action(val* self, val* p0) {
1921 val* var_p /* var p: Parser */;
1922 val* var /* : null */;
1923 val* var_node_list /* var node_list: nullable Object */;
1924 val* var1 /* : nullable Object */;
1925 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1926 val* var2 /* : nullable Object */;
1927 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1928 val* var3 /* : nullable Object */;
1929 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1930 val* var_tkwnotnode2 /* var tkwnotnode2: nullable Object */;
1931 short int var4 /* : Bool */;
1932 int cltype;
1933 int idtype;
1934 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
1935 short int var5 /* : Bool */;
1936 int cltype6;
1937 int idtype7;
1938 val* var8 /* : ANotExpr */;
1939 val* var_pexprnode1 /* var pexprnode1: nullable ANotExpr */;
1940 long var9 /* : Int */;
1941 long var10 /* : Int */;
1942 var_p = p0;
1943 var = NULL;
1944 var_node_list = var;
1945 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1946 var_nodearraylist3 = var1;
1947 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1948 var_nodearraylist2 = var2;
1949 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1950 var_nodearraylist1 = var3;
1951 var_tkwnotnode2 = var_nodearraylist1;
1952 /* <var_tkwnotnode2:nullable Object> isa nullable TKwnot */
1953 cltype = type_nullable_parser_nodes__TKwnot.color;
1954 idtype = type_nullable_parser_nodes__TKwnot.id;
1955 if(var_tkwnotnode2 == NULL) {
1956 var4 = 1;
1957 } else {
1958 if(cltype >= var_tkwnotnode2->type->table_size) {
1959 var4 = 0;
1960 } else {
1961 var4 = var_tkwnotnode2->type->type_table[cltype] == idtype;
1962 }
1963 }
1964 if (!var4) {
1965 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28072);
1966 exit(1);
1967 }
1968 var_pexprnode3 = var_nodearraylist3;
1969 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
1970 cltype6 = type_nullable_parser_nodes__AExpr.color;
1971 idtype7 = type_nullable_parser_nodes__AExpr.id;
1972 if(var_pexprnode3 == NULL) {
1973 var5 = 1;
1974 } else {
1975 if(cltype6 >= var_pexprnode3->type->table_size) {
1976 var5 = 0;
1977 } else {
1978 var5 = var_pexprnode3->type->type_table[cltype6] == idtype7;
1979 }
1980 }
1981 if (!var5) {
1982 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28074);
1983 exit(1);
1984 }
1985 var8 = NEW_parser_nodes__ANotExpr(&type_parser_nodes__ANotExpr);
1986 ((void (*)(val*, val*, val*))(var8->class->vft[COLOR_parser_prod__ANotExpr__init_anotexpr]))(var8, var_tkwnotnode2, var_pexprnode3) /* init_anotexpr on <var8:ANotExpr>*/;
1987 CHECK_NEW_parser_nodes__ANotExpr(var8);
1988 var_pexprnode1 = var8;
1989 var_node_list = var_pexprnode1;
1990 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction772> */
1991 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
1992 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
1993 RET_LABEL:;
1994 }
1995 /* method parser#ReduceAction772#action for (self: Object, Parser) */
1996 void VIRTUAL_parser__ReduceAction772__action(val* self, val* p0) {
1997 parser__ReduceAction772__action(self, p0);
1998 RET_LABEL:;
1999 }
2000 /* method parser#ReduceAction774#action for (self: ReduceAction774, Parser) */
2001 void parser__ReduceAction774__action(val* self, val* p0) {
2002 val* var_p /* var p: Parser */;
2003 val* var /* : null */;
2004 val* var_node_list /* var node_list: nullable Object */;
2005 val* var1 /* : nullable Object */;
2006 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2007 val* var2 /* : nullable Object */;
2008 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2009 val* var3 /* : nullable Object */;
2010 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2011 val* var4 /* : nullable Object */;
2012 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2013 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
2014 short int var5 /* : Bool */;
2015 int cltype;
2016 int idtype;
2017 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
2018 short int var6 /* : Bool */;
2019 int cltype7;
2020 int idtype8;
2021 val* var9 /* : AEqExpr */;
2022 val* var_pexprnode1 /* var pexprnode1: nullable AEqExpr */;
2023 long var10 /* : Int */;
2024 long var11 /* : Int */;
2025 var_p = p0;
2026 var = NULL;
2027 var_node_list = var;
2028 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2029 var_nodearraylist4 = var1;
2030 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2031 var_nodearraylist3 = var2;
2032 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2033 var_nodearraylist2 = var3;
2034 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2035 var_nodearraylist1 = var4;
2036 var_pexprnode2 = var_nodearraylist1;
2037 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2038 cltype = type_nullable_parser_nodes__AExpr.color;
2039 idtype = type_nullable_parser_nodes__AExpr.id;
2040 if(var_pexprnode2 == NULL) {
2041 var5 = 1;
2042 } else {
2043 if(cltype >= var_pexprnode2->type->table_size) {
2044 var5 = 0;
2045 } else {
2046 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
2047 }
2048 }
2049 if (!var5) {
2050 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28093);
2051 exit(1);
2052 }
2053 var_pexprnode3 = var_nodearraylist4;
2054 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
2055 cltype7 = type_nullable_parser_nodes__AExpr.color;
2056 idtype8 = type_nullable_parser_nodes__AExpr.id;
2057 if(var_pexprnode3 == NULL) {
2058 var6 = 1;
2059 } else {
2060 if(cltype7 >= var_pexprnode3->type->table_size) {
2061 var6 = 0;
2062 } else {
2063 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
2064 }
2065 }
2066 if (!var6) {
2067 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28095);
2068 exit(1);
2069 }
2070 var9 = NEW_parser_nodes__AEqExpr(&type_parser_nodes__AEqExpr);
2071 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AEqExpr__init_aeqexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aeqexpr on <var9:AEqExpr>*/;
2072 CHECK_NEW_parser_nodes__AEqExpr(var9);
2073 var_pexprnode1 = var9;
2074 var_node_list = var_pexprnode1;
2075 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction774> */
2076 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
2077 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
2078 RET_LABEL:;
2079 }
2080 /* method parser#ReduceAction774#action for (self: Object, Parser) */
2081 void VIRTUAL_parser__ReduceAction774__action(val* self, val* p0) {
2082 parser__ReduceAction774__action(self, p0);
2083 RET_LABEL:;
2084 }
2085 /* method parser#ReduceAction775#action for (self: ReduceAction775, Parser) */
2086 void parser__ReduceAction775__action(val* self, val* p0) {
2087 val* var_p /* var p: Parser */;
2088 val* var /* : null */;
2089 val* var_node_list /* var node_list: nullable Object */;
2090 val* var1 /* : nullable Object */;
2091 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2092 val* var2 /* : nullable Object */;
2093 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2094 val* var3 /* : nullable Object */;
2095 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2096 val* var4 /* : nullable Object */;
2097 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2098 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
2099 short int var5 /* : Bool */;
2100 int cltype;
2101 int idtype;
2102 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
2103 short int var6 /* : Bool */;
2104 int cltype7;
2105 int idtype8;
2106 val* var9 /* : AEeExpr */;
2107 val* var_pexprnode1 /* var pexprnode1: nullable AEeExpr */;
2108 long var10 /* : Int */;
2109 long var11 /* : Int */;
2110 var_p = p0;
2111 var = NULL;
2112 var_node_list = var;
2113 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2114 var_nodearraylist4 = var1;
2115 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2116 var_nodearraylist3 = var2;
2117 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2118 var_nodearraylist2 = var3;
2119 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2120 var_nodearraylist1 = var4;
2121 var_pexprnode2 = var_nodearraylist1;
2122 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2123 cltype = type_nullable_parser_nodes__AExpr.color;
2124 idtype = type_nullable_parser_nodes__AExpr.id;
2125 if(var_pexprnode2 == NULL) {
2126 var5 = 1;
2127 } else {
2128 if(cltype >= var_pexprnode2->type->table_size) {
2129 var5 = 0;
2130 } else {
2131 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
2132 }
2133 }
2134 if (!var5) {
2135 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28114);
2136 exit(1);
2137 }
2138 var_pexprnode3 = var_nodearraylist4;
2139 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
2140 cltype7 = type_nullable_parser_nodes__AExpr.color;
2141 idtype8 = type_nullable_parser_nodes__AExpr.id;
2142 if(var_pexprnode3 == NULL) {
2143 var6 = 1;
2144 } else {
2145 if(cltype7 >= var_pexprnode3->type->table_size) {
2146 var6 = 0;
2147 } else {
2148 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
2149 }
2150 }
2151 if (!var6) {
2152 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28116);
2153 exit(1);
2154 }
2155 var9 = NEW_parser_nodes__AEeExpr(&type_parser_nodes__AEeExpr);
2156 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AEeExpr__init_aeeexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aeeexpr on <var9:AEeExpr>*/;
2157 CHECK_NEW_parser_nodes__AEeExpr(var9);
2158 var_pexprnode1 = var9;
2159 var_node_list = var_pexprnode1;
2160 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction775> */
2161 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
2162 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
2163 RET_LABEL:;
2164 }
2165 /* method parser#ReduceAction775#action for (self: Object, Parser) */
2166 void VIRTUAL_parser__ReduceAction775__action(val* self, val* p0) {
2167 parser__ReduceAction775__action(self, p0);
2168 RET_LABEL:;
2169 }
2170 /* method parser#ReduceAction776#action for (self: ReduceAction776, Parser) */
2171 void parser__ReduceAction776__action(val* self, val* p0) {
2172 val* var_p /* var p: Parser */;
2173 val* var /* : null */;
2174 val* var_node_list /* var node_list: nullable Object */;
2175 val* var1 /* : nullable Object */;
2176 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2177 val* var2 /* : nullable Object */;
2178 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2179 val* var3 /* : nullable Object */;
2180 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2181 val* var4 /* : nullable Object */;
2182 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2183 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
2184 short int var5 /* : Bool */;
2185 int cltype;
2186 int idtype;
2187 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
2188 short int var6 /* : Bool */;
2189 int cltype7;
2190 int idtype8;
2191 val* var9 /* : ANeExpr */;
2192 val* var_pexprnode1 /* var pexprnode1: nullable ANeExpr */;
2193 long var10 /* : Int */;
2194 long var11 /* : Int */;
2195 var_p = p0;
2196 var = NULL;
2197 var_node_list = var;
2198 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2199 var_nodearraylist4 = var1;
2200 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2201 var_nodearraylist3 = var2;
2202 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2203 var_nodearraylist2 = var3;
2204 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2205 var_nodearraylist1 = var4;
2206 var_pexprnode2 = var_nodearraylist1;
2207 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2208 cltype = type_nullable_parser_nodes__AExpr.color;
2209 idtype = type_nullable_parser_nodes__AExpr.id;
2210 if(var_pexprnode2 == NULL) {
2211 var5 = 1;
2212 } else {
2213 if(cltype >= var_pexprnode2->type->table_size) {
2214 var5 = 0;
2215 } else {
2216 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
2217 }
2218 }
2219 if (!var5) {
2220 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28135);
2221 exit(1);
2222 }
2223 var_pexprnode3 = var_nodearraylist4;
2224 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
2225 cltype7 = type_nullable_parser_nodes__AExpr.color;
2226 idtype8 = type_nullable_parser_nodes__AExpr.id;
2227 if(var_pexprnode3 == NULL) {
2228 var6 = 1;
2229 } else {
2230 if(cltype7 >= var_pexprnode3->type->table_size) {
2231 var6 = 0;
2232 } else {
2233 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
2234 }
2235 }
2236 if (!var6) {
2237 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28137);
2238 exit(1);
2239 }
2240 var9 = NEW_parser_nodes__ANeExpr(&type_parser_nodes__ANeExpr);
2241 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__ANeExpr__init_aneexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aneexpr on <var9:ANeExpr>*/;
2242 CHECK_NEW_parser_nodes__ANeExpr(var9);
2243 var_pexprnode1 = var9;
2244 var_node_list = var_pexprnode1;
2245 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction776> */
2246 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
2247 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
2248 RET_LABEL:;
2249 }
2250 /* method parser#ReduceAction776#action for (self: Object, Parser) */
2251 void VIRTUAL_parser__ReduceAction776__action(val* self, val* p0) {
2252 parser__ReduceAction776__action(self, p0);
2253 RET_LABEL:;
2254 }
2255 /* method parser#ReduceAction777#action for (self: ReduceAction777, Parser) */
2256 void parser__ReduceAction777__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_nodearraylist4 /* var nodearraylist4: nullable Object */;
2262 val* var2 /* : nullable Object */;
2263 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2264 val* var3 /* : nullable Object */;
2265 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2266 val* var4 /* : nullable Object */;
2267 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2268 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
2269 short int var5 /* : Bool */;
2270 int cltype;
2271 int idtype;
2272 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
2273 short int var6 /* : Bool */;
2274 int cltype7;
2275 int idtype8;
2276 val* var9 /* : ALtExpr */;
2277 val* var_pexprnode1 /* var pexprnode1: nullable ALtExpr */;
2278 long var10 /* : Int */;
2279 long var11 /* : Int */;
2280 var_p = p0;
2281 var = NULL;
2282 var_node_list = var;
2283 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2284 var_nodearraylist4 = var1;
2285 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2286 var_nodearraylist3 = var2;
2287 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2288 var_nodearraylist2 = var3;
2289 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2290 var_nodearraylist1 = var4;
2291 var_pexprnode2 = var_nodearraylist1;
2292 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2293 cltype = type_nullable_parser_nodes__AExpr.color;
2294 idtype = type_nullable_parser_nodes__AExpr.id;
2295 if(var_pexprnode2 == NULL) {
2296 var5 = 1;
2297 } else {
2298 if(cltype >= var_pexprnode2->type->table_size) {
2299 var5 = 0;
2300 } else {
2301 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
2302 }
2303 }
2304 if (!var5) {
2305 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28156);
2306 exit(1);
2307 }
2308 var_pexprnode3 = var_nodearraylist4;
2309 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
2310 cltype7 = type_nullable_parser_nodes__AExpr.color;
2311 idtype8 = type_nullable_parser_nodes__AExpr.id;
2312 if(var_pexprnode3 == NULL) {
2313 var6 = 1;
2314 } else {
2315 if(cltype7 >= var_pexprnode3->type->table_size) {
2316 var6 = 0;
2317 } else {
2318 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
2319 }
2320 }
2321 if (!var6) {
2322 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28158);
2323 exit(1);
2324 }
2325 var9 = NEW_parser_nodes__ALtExpr(&type_parser_nodes__ALtExpr);
2326 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__ALtExpr__init_altexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_altexpr on <var9:ALtExpr>*/;
2327 CHECK_NEW_parser_nodes__ALtExpr(var9);
2328 var_pexprnode1 = var9;
2329 var_node_list = var_pexprnode1;
2330 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction777> */
2331 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
2332 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
2333 RET_LABEL:;
2334 }
2335 /* method parser#ReduceAction777#action for (self: Object, Parser) */
2336 void VIRTUAL_parser__ReduceAction777__action(val* self, val* p0) {
2337 parser__ReduceAction777__action(self, p0);
2338 RET_LABEL:;
2339 }
2340 /* method parser#ReduceAction778#action for (self: ReduceAction778, Parser) */
2341 void parser__ReduceAction778__action(val* self, val* p0) {
2342 val* var_p /* var p: Parser */;
2343 val* var /* : null */;
2344 val* var_node_list /* var node_list: nullable Object */;
2345 val* var1 /* : nullable Object */;
2346 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2347 val* var2 /* : nullable Object */;
2348 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2349 val* var3 /* : nullable Object */;
2350 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2351 val* var4 /* : nullable Object */;
2352 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2353 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
2354 short int var5 /* : Bool */;
2355 int cltype;
2356 int idtype;
2357 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
2358 short int var6 /* : Bool */;
2359 int cltype7;
2360 int idtype8;
2361 val* var9 /* : ALeExpr */;
2362 val* var_pexprnode1 /* var pexprnode1: nullable ALeExpr */;
2363 long var10 /* : Int */;
2364 long var11 /* : Int */;
2365 var_p = p0;
2366 var = NULL;
2367 var_node_list = var;
2368 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2369 var_nodearraylist4 = var1;
2370 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2371 var_nodearraylist3 = var2;
2372 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2373 var_nodearraylist2 = var3;
2374 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2375 var_nodearraylist1 = var4;
2376 var_pexprnode2 = var_nodearraylist1;
2377 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2378 cltype = type_nullable_parser_nodes__AExpr.color;
2379 idtype = type_nullable_parser_nodes__AExpr.id;
2380 if(var_pexprnode2 == NULL) {
2381 var5 = 1;
2382 } else {
2383 if(cltype >= var_pexprnode2->type->table_size) {
2384 var5 = 0;
2385 } else {
2386 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
2387 }
2388 }
2389 if (!var5) {
2390 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28177);
2391 exit(1);
2392 }
2393 var_pexprnode3 = var_nodearraylist4;
2394 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
2395 cltype7 = type_nullable_parser_nodes__AExpr.color;
2396 idtype8 = type_nullable_parser_nodes__AExpr.id;
2397 if(var_pexprnode3 == NULL) {
2398 var6 = 1;
2399 } else {
2400 if(cltype7 >= var_pexprnode3->type->table_size) {
2401 var6 = 0;
2402 } else {
2403 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
2404 }
2405 }
2406 if (!var6) {
2407 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28179);
2408 exit(1);
2409 }
2410 var9 = NEW_parser_nodes__ALeExpr(&type_parser_nodes__ALeExpr);
2411 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__ALeExpr__init_aleexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aleexpr on <var9:ALeExpr>*/;
2412 CHECK_NEW_parser_nodes__ALeExpr(var9);
2413 var_pexprnode1 = var9;
2414 var_node_list = var_pexprnode1;
2415 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction778> */
2416 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
2417 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
2418 RET_LABEL:;
2419 }
2420 /* method parser#ReduceAction778#action for (self: Object, Parser) */
2421 void VIRTUAL_parser__ReduceAction778__action(val* self, val* p0) {
2422 parser__ReduceAction778__action(self, p0);
2423 RET_LABEL:;
2424 }
2425 /* method parser#ReduceAction779#action for (self: ReduceAction779, Parser) */
2426 void parser__ReduceAction779__action(val* self, val* p0) {
2427 val* var_p /* var p: Parser */;
2428 val* var /* : null */;
2429 val* var_node_list /* var node_list: nullable Object */;
2430 val* var1 /* : nullable Object */;
2431 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2432 val* var2 /* : nullable Object */;
2433 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2434 val* var3 /* : nullable Object */;
2435 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2436 val* var4 /* : nullable Object */;
2437 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2438 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
2439 short int var5 /* : Bool */;
2440 int cltype;
2441 int idtype;
2442 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
2443 short int var6 /* : Bool */;
2444 int cltype7;
2445 int idtype8;
2446 val* var9 /* : ALlExpr */;
2447 val* var_pexprnode1 /* var pexprnode1: nullable ALlExpr */;
2448 long var10 /* : Int */;
2449 long var11 /* : Int */;
2450 var_p = p0;
2451 var = NULL;
2452 var_node_list = var;
2453 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2454 var_nodearraylist4 = var1;
2455 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2456 var_nodearraylist3 = var2;
2457 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2458 var_nodearraylist2 = var3;
2459 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2460 var_nodearraylist1 = var4;
2461 var_pexprnode2 = var_nodearraylist1;
2462 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2463 cltype = type_nullable_parser_nodes__AExpr.color;
2464 idtype = type_nullable_parser_nodes__AExpr.id;
2465 if(var_pexprnode2 == NULL) {
2466 var5 = 1;
2467 } else {
2468 if(cltype >= var_pexprnode2->type->table_size) {
2469 var5 = 0;
2470 } else {
2471 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
2472 }
2473 }
2474 if (!var5) {
2475 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28198);
2476 exit(1);
2477 }
2478 var_pexprnode3 = var_nodearraylist4;
2479 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
2480 cltype7 = type_nullable_parser_nodes__AExpr.color;
2481 idtype8 = type_nullable_parser_nodes__AExpr.id;
2482 if(var_pexprnode3 == NULL) {
2483 var6 = 1;
2484 } else {
2485 if(cltype7 >= var_pexprnode3->type->table_size) {
2486 var6 = 0;
2487 } else {
2488 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
2489 }
2490 }
2491 if (!var6) {
2492 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28200);
2493 exit(1);
2494 }
2495 var9 = NEW_parser_nodes__ALlExpr(&type_parser_nodes__ALlExpr);
2496 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__ALlExpr__init_allexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_allexpr on <var9:ALlExpr>*/;
2497 CHECK_NEW_parser_nodes__ALlExpr(var9);
2498 var_pexprnode1 = var9;
2499 var_node_list = var_pexprnode1;
2500 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction779> */
2501 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
2502 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
2503 RET_LABEL:;
2504 }
2505 /* method parser#ReduceAction779#action for (self: Object, Parser) */
2506 void VIRTUAL_parser__ReduceAction779__action(val* self, val* p0) {
2507 parser__ReduceAction779__action(self, p0);
2508 RET_LABEL:;
2509 }
2510 /* method parser#ReduceAction780#action for (self: ReduceAction780, Parser) */
2511 void parser__ReduceAction780__action(val* self, val* p0) {
2512 val* var_p /* var p: Parser */;
2513 val* var /* : null */;
2514 val* var_node_list /* var node_list: nullable Object */;
2515 val* var1 /* : nullable Object */;
2516 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2517 val* var2 /* : nullable Object */;
2518 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2519 val* var3 /* : nullable Object */;
2520 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2521 val* var4 /* : nullable Object */;
2522 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2523 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
2524 short int var5 /* : Bool */;
2525 int cltype;
2526 int idtype;
2527 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
2528 short int var6 /* : Bool */;
2529 int cltype7;
2530 int idtype8;
2531 val* var9 /* : AGtExpr */;
2532 val* var_pexprnode1 /* var pexprnode1: nullable AGtExpr */;
2533 long var10 /* : Int */;
2534 long var11 /* : Int */;
2535 var_p = p0;
2536 var = NULL;
2537 var_node_list = var;
2538 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2539 var_nodearraylist4 = var1;
2540 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2541 var_nodearraylist3 = var2;
2542 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2543 var_nodearraylist2 = var3;
2544 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2545 var_nodearraylist1 = var4;
2546 var_pexprnode2 = var_nodearraylist1;
2547 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2548 cltype = type_nullable_parser_nodes__AExpr.color;
2549 idtype = type_nullable_parser_nodes__AExpr.id;
2550 if(var_pexprnode2 == NULL) {
2551 var5 = 1;
2552 } else {
2553 if(cltype >= var_pexprnode2->type->table_size) {
2554 var5 = 0;
2555 } else {
2556 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
2557 }
2558 }
2559 if (!var5) {
2560 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28219);
2561 exit(1);
2562 }
2563 var_pexprnode3 = var_nodearraylist4;
2564 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
2565 cltype7 = type_nullable_parser_nodes__AExpr.color;
2566 idtype8 = type_nullable_parser_nodes__AExpr.id;
2567 if(var_pexprnode3 == NULL) {
2568 var6 = 1;
2569 } else {
2570 if(cltype7 >= var_pexprnode3->type->table_size) {
2571 var6 = 0;
2572 } else {
2573 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
2574 }
2575 }
2576 if (!var6) {
2577 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28221);
2578 exit(1);
2579 }
2580 var9 = NEW_parser_nodes__AGtExpr(&type_parser_nodes__AGtExpr);
2581 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AGtExpr__init_agtexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_agtexpr on <var9:AGtExpr>*/;
2582 CHECK_NEW_parser_nodes__AGtExpr(var9);
2583 var_pexprnode1 = var9;
2584 var_node_list = var_pexprnode1;
2585 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction780> */
2586 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
2587 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
2588 RET_LABEL:;
2589 }
2590 /* method parser#ReduceAction780#action for (self: Object, Parser) */
2591 void VIRTUAL_parser__ReduceAction780__action(val* self, val* p0) {
2592 parser__ReduceAction780__action(self, p0);
2593 RET_LABEL:;
2594 }
2595 /* method parser#ReduceAction781#action for (self: ReduceAction781, Parser) */
2596 void parser__ReduceAction781__action(val* self, val* p0) {
2597 val* var_p /* var p: Parser */;
2598 val* var /* : null */;
2599 val* var_node_list /* var node_list: nullable Object */;
2600 val* var1 /* : nullable Object */;
2601 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2602 val* var2 /* : nullable Object */;
2603 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2604 val* var3 /* : nullable Object */;
2605 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2606 val* var4 /* : nullable Object */;
2607 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2608 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
2609 short int var5 /* : Bool */;
2610 int cltype;
2611 int idtype;
2612 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
2613 short int var6 /* : Bool */;
2614 int cltype7;
2615 int idtype8;
2616 val* var9 /* : AGeExpr */;
2617 val* var_pexprnode1 /* var pexprnode1: nullable AGeExpr */;
2618 long var10 /* : Int */;
2619 long var11 /* : Int */;
2620 var_p = p0;
2621 var = NULL;
2622 var_node_list = var;
2623 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2624 var_nodearraylist4 = var1;
2625 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2626 var_nodearraylist3 = var2;
2627 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2628 var_nodearraylist2 = var3;
2629 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2630 var_nodearraylist1 = var4;
2631 var_pexprnode2 = var_nodearraylist1;
2632 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2633 cltype = type_nullable_parser_nodes__AExpr.color;
2634 idtype = type_nullable_parser_nodes__AExpr.id;
2635 if(var_pexprnode2 == NULL) {
2636 var5 = 1;
2637 } else {
2638 if(cltype >= var_pexprnode2->type->table_size) {
2639 var5 = 0;
2640 } else {
2641 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
2642 }
2643 }
2644 if (!var5) {
2645 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28240);
2646 exit(1);
2647 }
2648 var_pexprnode3 = var_nodearraylist4;
2649 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
2650 cltype7 = type_nullable_parser_nodes__AExpr.color;
2651 idtype8 = type_nullable_parser_nodes__AExpr.id;
2652 if(var_pexprnode3 == NULL) {
2653 var6 = 1;
2654 } else {
2655 if(cltype7 >= var_pexprnode3->type->table_size) {
2656 var6 = 0;
2657 } else {
2658 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
2659 }
2660 }
2661 if (!var6) {
2662 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28242);
2663 exit(1);
2664 }
2665 var9 = NEW_parser_nodes__AGeExpr(&type_parser_nodes__AGeExpr);
2666 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AGeExpr__init_ageexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_ageexpr on <var9:AGeExpr>*/;
2667 CHECK_NEW_parser_nodes__AGeExpr(var9);
2668 var_pexprnode1 = var9;
2669 var_node_list = var_pexprnode1;
2670 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction781> */
2671 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
2672 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
2673 RET_LABEL:;
2674 }
2675 /* method parser#ReduceAction781#action for (self: Object, Parser) */
2676 void VIRTUAL_parser__ReduceAction781__action(val* self, val* p0) {
2677 parser__ReduceAction781__action(self, p0);
2678 RET_LABEL:;
2679 }
2680 /* method parser#ReduceAction782#action for (self: ReduceAction782, Parser) */
2681 void parser__ReduceAction782__action(val* self, val* p0) {
2682 val* var_p /* var p: Parser */;
2683 val* var /* : null */;
2684 val* var_node_list /* var node_list: nullable Object */;
2685 val* var1 /* : nullable Object */;
2686 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2687 val* var2 /* : nullable Object */;
2688 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2689 val* var3 /* : nullable Object */;
2690 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2691 val* var4 /* : nullable Object */;
2692 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2693 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
2694 short int var5 /* : Bool */;
2695 int cltype;
2696 int idtype;
2697 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
2698 short int var6 /* : Bool */;
2699 int cltype7;
2700 int idtype8;
2701 val* var9 /* : AGgExpr */;
2702 val* var_pexprnode1 /* var pexprnode1: nullable AGgExpr */;
2703 long var10 /* : Int */;
2704 long var11 /* : Int */;
2705 var_p = p0;
2706 var = NULL;
2707 var_node_list = var;
2708 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2709 var_nodearraylist4 = var1;
2710 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2711 var_nodearraylist3 = var2;
2712 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2713 var_nodearraylist2 = var3;
2714 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2715 var_nodearraylist1 = var4;
2716 var_pexprnode2 = var_nodearraylist1;
2717 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2718 cltype = type_nullable_parser_nodes__AExpr.color;
2719 idtype = type_nullable_parser_nodes__AExpr.id;
2720 if(var_pexprnode2 == NULL) {
2721 var5 = 1;
2722 } else {
2723 if(cltype >= var_pexprnode2->type->table_size) {
2724 var5 = 0;
2725 } else {
2726 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
2727 }
2728 }
2729 if (!var5) {
2730 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28261);
2731 exit(1);
2732 }
2733 var_pexprnode3 = var_nodearraylist4;
2734 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
2735 cltype7 = type_nullable_parser_nodes__AExpr.color;
2736 idtype8 = type_nullable_parser_nodes__AExpr.id;
2737 if(var_pexprnode3 == NULL) {
2738 var6 = 1;
2739 } else {
2740 if(cltype7 >= var_pexprnode3->type->table_size) {
2741 var6 = 0;
2742 } else {
2743 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
2744 }
2745 }
2746 if (!var6) {
2747 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28263);
2748 exit(1);
2749 }
2750 var9 = NEW_parser_nodes__AGgExpr(&type_parser_nodes__AGgExpr);
2751 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AGgExpr__init_aggexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aggexpr on <var9:AGgExpr>*/;
2752 CHECK_NEW_parser_nodes__AGgExpr(var9);
2753 var_pexprnode1 = var9;
2754 var_node_list = var_pexprnode1;
2755 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction782> */
2756 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
2757 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
2758 RET_LABEL:;
2759 }
2760 /* method parser#ReduceAction782#action for (self: Object, Parser) */
2761 void VIRTUAL_parser__ReduceAction782__action(val* self, val* p0) {
2762 parser__ReduceAction782__action(self, p0);
2763 RET_LABEL:;
2764 }
2765 /* method parser#ReduceAction783#action for (self: ReduceAction783, Parser) */
2766 void parser__ReduceAction783__action(val* self, val* p0) {
2767 val* var_p /* var p: Parser */;
2768 val* var /* : null */;
2769 val* var_node_list /* var node_list: nullable Object */;
2770 val* var1 /* : nullable Object */;
2771 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2772 val* var2 /* : nullable Object */;
2773 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2774 val* var3 /* : nullable Object */;
2775 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2776 val* var4 /* : nullable Object */;
2777 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2778 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
2779 short int var5 /* : Bool */;
2780 int cltype;
2781 int idtype;
2782 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
2783 short int var6 /* : Bool */;
2784 int cltype7;
2785 int idtype8;
2786 val* var9 /* : AStarshipExpr */;
2787 val* var_pexprnode1 /* var pexprnode1: nullable AStarshipExpr */;
2788 long var10 /* : Int */;
2789 long var11 /* : Int */;
2790 var_p = p0;
2791 var = NULL;
2792 var_node_list = var;
2793 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2794 var_nodearraylist4 = var1;
2795 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2796 var_nodearraylist3 = var2;
2797 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2798 var_nodearraylist2 = var3;
2799 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2800 var_nodearraylist1 = var4;
2801 var_pexprnode2 = var_nodearraylist1;
2802 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2803 cltype = type_nullable_parser_nodes__AExpr.color;
2804 idtype = type_nullable_parser_nodes__AExpr.id;
2805 if(var_pexprnode2 == NULL) {
2806 var5 = 1;
2807 } else {
2808 if(cltype >= var_pexprnode2->type->table_size) {
2809 var5 = 0;
2810 } else {
2811 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
2812 }
2813 }
2814 if (!var5) {
2815 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28282);
2816 exit(1);
2817 }
2818 var_pexprnode3 = var_nodearraylist4;
2819 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
2820 cltype7 = type_nullable_parser_nodes__AExpr.color;
2821 idtype8 = type_nullable_parser_nodes__AExpr.id;
2822 if(var_pexprnode3 == NULL) {
2823 var6 = 1;
2824 } else {
2825 if(cltype7 >= var_pexprnode3->type->table_size) {
2826 var6 = 0;
2827 } else {
2828 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
2829 }
2830 }
2831 if (!var6) {
2832 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28284);
2833 exit(1);
2834 }
2835 var9 = NEW_parser_nodes__AStarshipExpr(&type_parser_nodes__AStarshipExpr);
2836 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AStarshipExpr__init_astarshipexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_astarshipexpr on <var9:AStarshipExpr>*/;
2837 CHECK_NEW_parser_nodes__AStarshipExpr(var9);
2838 var_pexprnode1 = var9;
2839 var_node_list = var_pexprnode1;
2840 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction783> */
2841 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
2842 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
2843 RET_LABEL:;
2844 }
2845 /* method parser#ReduceAction783#action for (self: Object, Parser) */
2846 void VIRTUAL_parser__ReduceAction783__action(val* self, val* p0) {
2847 parser__ReduceAction783__action(self, p0);
2848 RET_LABEL:;
2849 }
2850 /* method parser#ReduceAction784#action for (self: ReduceAction784, Parser) */
2851 void parser__ReduceAction784__action(val* self, val* p0) {
2852 val* var_p /* var p: Parser */;
2853 val* var /* : null */;
2854 val* var_node_list /* var node_list: nullable Object */;
2855 val* var1 /* : nullable Object */;
2856 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2857 val* var2 /* : nullable Object */;
2858 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2859 val* var3 /* : nullable Object */;
2860 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2861 val* var4 /* : nullable Object */;
2862 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2863 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
2864 short int var5 /* : Bool */;
2865 int cltype;
2866 int idtype;
2867 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
2868 short int var6 /* : Bool */;
2869 int cltype7;
2870 int idtype8;
2871 val* var9 /* : AIsaExpr */;
2872 val* var_pexprnode1 /* var pexprnode1: nullable AIsaExpr */;
2873 long var10 /* : Int */;
2874 long var11 /* : Int */;
2875 var_p = p0;
2876 var = NULL;
2877 var_node_list = var;
2878 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2879 var_nodearraylist4 = var1;
2880 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2881 var_nodearraylist3 = var2;
2882 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2883 var_nodearraylist2 = var3;
2884 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2885 var_nodearraylist1 = var4;
2886 var_pexprnode2 = var_nodearraylist1;
2887 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2888 cltype = type_nullable_parser_nodes__AExpr.color;
2889 idtype = type_nullable_parser_nodes__AExpr.id;
2890 if(var_pexprnode2 == NULL) {
2891 var5 = 1;
2892 } else {
2893 if(cltype >= var_pexprnode2->type->table_size) {
2894 var5 = 0;
2895 } else {
2896 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
2897 }
2898 }
2899 if (!var5) {
2900 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28303);
2901 exit(1);
2902 }
2903 var_ptypenode3 = var_nodearraylist4;
2904 /* <var_ptypenode3:nullable Object> isa nullable AType */
2905 cltype7 = type_nullable_parser_nodes__AType.color;
2906 idtype8 = type_nullable_parser_nodes__AType.id;
2907 if(var_ptypenode3 == NULL) {
2908 var6 = 1;
2909 } else {
2910 if(cltype7 >= var_ptypenode3->type->table_size) {
2911 var6 = 0;
2912 } else {
2913 var6 = var_ptypenode3->type->type_table[cltype7] == idtype8;
2914 }
2915 }
2916 if (!var6) {
2917 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28305);
2918 exit(1);
2919 }
2920 var9 = NEW_parser_nodes__AIsaExpr(&type_parser_nodes__AIsaExpr);
2921 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AIsaExpr__init_aisaexpr]))(var9, var_pexprnode2, var_ptypenode3) /* init_aisaexpr on <var9:AIsaExpr>*/;
2922 CHECK_NEW_parser_nodes__AIsaExpr(var9);
2923 var_pexprnode1 = var9;
2924 var_node_list = var_pexprnode1;
2925 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction784> */
2926 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
2927 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
2928 RET_LABEL:;
2929 }
2930 /* method parser#ReduceAction784#action for (self: Object, Parser) */
2931 void VIRTUAL_parser__ReduceAction784__action(val* self, val* p0) {
2932 parser__ReduceAction784__action(self, p0);
2933 RET_LABEL:;
2934 }
2935 /* method parser#ReduceAction786#action for (self: ReduceAction786, Parser) */
2936 void parser__ReduceAction786__action(val* self, val* p0) {
2937 val* var_p /* var p: Parser */;
2938 val* var /* : null */;
2939 val* var_node_list /* var node_list: nullable Object */;
2940 val* var1 /* : nullable Object */;
2941 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2942 val* var2 /* : nullable Object */;
2943 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2944 val* var3 /* : nullable Object */;
2945 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2946 val* var4 /* : nullable Object */;
2947 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2948 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
2949 short int var5 /* : Bool */;
2950 int cltype;
2951 int idtype;
2952 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
2953 short int var6 /* : Bool */;
2954 int cltype7;
2955 int idtype8;
2956 val* var9 /* : APlusExpr */;
2957 val* var_pexprnode1 /* var pexprnode1: nullable APlusExpr */;
2958 long var10 /* : Int */;
2959 long var11 /* : Int */;
2960 var_p = p0;
2961 var = NULL;
2962 var_node_list = var;
2963 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2964 var_nodearraylist4 = var1;
2965 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2966 var_nodearraylist3 = var2;
2967 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2968 var_nodearraylist2 = var3;
2969 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2970 var_nodearraylist1 = var4;
2971 var_pexprnode2 = var_nodearraylist1;
2972 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2973 cltype = type_nullable_parser_nodes__AExpr.color;
2974 idtype = type_nullable_parser_nodes__AExpr.id;
2975 if(var_pexprnode2 == NULL) {
2976 var5 = 1;
2977 } else {
2978 if(cltype >= var_pexprnode2->type->table_size) {
2979 var5 = 0;
2980 } else {
2981 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
2982 }
2983 }
2984 if (!var5) {
2985 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28324);
2986 exit(1);
2987 }
2988 var_pexprnode3 = var_nodearraylist4;
2989 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
2990 cltype7 = type_nullable_parser_nodes__AExpr.color;
2991 idtype8 = type_nullable_parser_nodes__AExpr.id;
2992 if(var_pexprnode3 == NULL) {
2993 var6 = 1;
2994 } else {
2995 if(cltype7 >= var_pexprnode3->type->table_size) {
2996 var6 = 0;
2997 } else {
2998 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
2999 }
3000 }
3001 if (!var6) {
3002 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28326);
3003 exit(1);
3004 }
3005 var9 = NEW_parser_nodes__APlusExpr(&type_parser_nodes__APlusExpr);
3006 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__APlusExpr__init_aplusexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aplusexpr on <var9:APlusExpr>*/;
3007 CHECK_NEW_parser_nodes__APlusExpr(var9);
3008 var_pexprnode1 = var9;
3009 var_node_list = var_pexprnode1;
3010 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction786> */
3011 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
3012 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
3013 RET_LABEL:;
3014 }
3015 /* method parser#ReduceAction786#action for (self: Object, Parser) */
3016 void VIRTUAL_parser__ReduceAction786__action(val* self, val* p0) {
3017 parser__ReduceAction786__action(self, p0);
3018 RET_LABEL:;
3019 }
3020 /* method parser#ReduceAction787#action for (self: ReduceAction787, Parser) */
3021 void parser__ReduceAction787__action(val* self, val* p0) {
3022 val* var_p /* var p: Parser */;
3023 val* var /* : null */;
3024 val* var_node_list /* var node_list: nullable Object */;
3025 val* var1 /* : nullable Object */;
3026 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3027 val* var2 /* : nullable Object */;
3028 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3029 val* var3 /* : nullable Object */;
3030 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3031 val* var4 /* : nullable Object */;
3032 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3033 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
3034 short int var5 /* : Bool */;
3035 int cltype;
3036 int idtype;
3037 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
3038 short int var6 /* : Bool */;
3039 int cltype7;
3040 int idtype8;
3041 val* var9 /* : AMinusExpr */;
3042 val* var_pexprnode1 /* var pexprnode1: nullable AMinusExpr */;
3043 long var10 /* : Int */;
3044 long var11 /* : Int */;
3045 var_p = p0;
3046 var = NULL;
3047 var_node_list = var;
3048 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3049 var_nodearraylist4 = var1;
3050 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3051 var_nodearraylist3 = var2;
3052 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3053 var_nodearraylist2 = var3;
3054 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3055 var_nodearraylist1 = var4;
3056 var_pexprnode2 = var_nodearraylist1;
3057 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
3058 cltype = type_nullable_parser_nodes__AExpr.color;
3059 idtype = type_nullable_parser_nodes__AExpr.id;
3060 if(var_pexprnode2 == NULL) {
3061 var5 = 1;
3062 } else {
3063 if(cltype >= var_pexprnode2->type->table_size) {
3064 var5 = 0;
3065 } else {
3066 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
3067 }
3068 }
3069 if (!var5) {
3070 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28345);
3071 exit(1);
3072 }
3073 var_pexprnode3 = var_nodearraylist4;
3074 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
3075 cltype7 = type_nullable_parser_nodes__AExpr.color;
3076 idtype8 = type_nullable_parser_nodes__AExpr.id;
3077 if(var_pexprnode3 == NULL) {
3078 var6 = 1;
3079 } else {
3080 if(cltype7 >= var_pexprnode3->type->table_size) {
3081 var6 = 0;
3082 } else {
3083 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
3084 }
3085 }
3086 if (!var6) {
3087 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28347);
3088 exit(1);
3089 }
3090 var9 = NEW_parser_nodes__AMinusExpr(&type_parser_nodes__AMinusExpr);
3091 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AMinusExpr__init_aminusexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aminusexpr on <var9:AMinusExpr>*/;
3092 CHECK_NEW_parser_nodes__AMinusExpr(var9);
3093 var_pexprnode1 = var9;
3094 var_node_list = var_pexprnode1;
3095 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction787> */
3096 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
3097 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
3098 RET_LABEL:;
3099 }
3100 /* method parser#ReduceAction787#action for (self: Object, Parser) */
3101 void VIRTUAL_parser__ReduceAction787__action(val* self, val* p0) {
3102 parser__ReduceAction787__action(self, p0);
3103 RET_LABEL:;
3104 }
3105 /* method parser#ReduceAction789#action for (self: ReduceAction789, Parser) */
3106 void parser__ReduceAction789__action(val* self, val* p0) {
3107 val* var_p /* var p: Parser */;
3108 val* var /* : null */;
3109 val* var_node_list /* var node_list: nullable Object */;
3110 val* var1 /* : nullable Object */;
3111 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3112 val* var2 /* : nullable Object */;
3113 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3114 val* var3 /* : nullable Object */;
3115 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3116 val* var4 /* : nullable Object */;
3117 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3118 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
3119 short int var5 /* : Bool */;
3120 int cltype;
3121 int idtype;
3122 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
3123 short int var6 /* : Bool */;
3124 int cltype7;
3125 int idtype8;
3126 val* var9 /* : AStarExpr */;
3127 val* var_pexprnode1 /* var pexprnode1: nullable AStarExpr */;
3128 long var10 /* : Int */;
3129 long var11 /* : Int */;
3130 var_p = p0;
3131 var = NULL;
3132 var_node_list = var;
3133 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3134 var_nodearraylist4 = var1;
3135 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3136 var_nodearraylist3 = var2;
3137 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3138 var_nodearraylist2 = var3;
3139 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3140 var_nodearraylist1 = var4;
3141 var_pexprnode2 = var_nodearraylist1;
3142 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
3143 cltype = type_nullable_parser_nodes__AExpr.color;
3144 idtype = type_nullable_parser_nodes__AExpr.id;
3145 if(var_pexprnode2 == NULL) {
3146 var5 = 1;
3147 } else {
3148 if(cltype >= var_pexprnode2->type->table_size) {
3149 var5 = 0;
3150 } else {
3151 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
3152 }
3153 }
3154 if (!var5) {
3155 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28366);
3156 exit(1);
3157 }
3158 var_pexprnode3 = var_nodearraylist4;
3159 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
3160 cltype7 = type_nullable_parser_nodes__AExpr.color;
3161 idtype8 = type_nullable_parser_nodes__AExpr.id;
3162 if(var_pexprnode3 == NULL) {
3163 var6 = 1;
3164 } else {
3165 if(cltype7 >= var_pexprnode3->type->table_size) {
3166 var6 = 0;
3167 } else {
3168 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
3169 }
3170 }
3171 if (!var6) {
3172 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28368);
3173 exit(1);
3174 }
3175 var9 = NEW_parser_nodes__AStarExpr(&type_parser_nodes__AStarExpr);
3176 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AStarExpr__init_astarexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_astarexpr on <var9:AStarExpr>*/;
3177 CHECK_NEW_parser_nodes__AStarExpr(var9);
3178 var_pexprnode1 = var9;
3179 var_node_list = var_pexprnode1;
3180 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction789> */
3181 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
3182 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
3183 RET_LABEL:;
3184 }
3185 /* method parser#ReduceAction789#action for (self: Object, Parser) */
3186 void VIRTUAL_parser__ReduceAction789__action(val* self, val* p0) {
3187 parser__ReduceAction789__action(self, p0);
3188 RET_LABEL:;
3189 }
3190 /* method parser#ReduceAction790#action for (self: ReduceAction790, Parser) */
3191 void parser__ReduceAction790__action(val* self, val* p0) {
3192 val* var_p /* var p: Parser */;
3193 val* var /* : null */;
3194 val* var_node_list /* var node_list: nullable Object */;
3195 val* var1 /* : nullable Object */;
3196 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3197 val* var2 /* : nullable Object */;
3198 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3199 val* var3 /* : nullable Object */;
3200 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3201 val* var4 /* : nullable Object */;
3202 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3203 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
3204 short int var5 /* : Bool */;
3205 int cltype;
3206 int idtype;
3207 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
3208 short int var6 /* : Bool */;
3209 int cltype7;
3210 int idtype8;
3211 val* var9 /* : ASlashExpr */;
3212 val* var_pexprnode1 /* var pexprnode1: nullable ASlashExpr */;
3213 long var10 /* : Int */;
3214 long var11 /* : Int */;
3215 var_p = p0;
3216 var = NULL;
3217 var_node_list = var;
3218 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3219 var_nodearraylist4 = var1;
3220 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3221 var_nodearraylist3 = var2;
3222 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3223 var_nodearraylist2 = var3;
3224 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3225 var_nodearraylist1 = var4;
3226 var_pexprnode2 = var_nodearraylist1;
3227 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
3228 cltype = type_nullable_parser_nodes__AExpr.color;
3229 idtype = type_nullable_parser_nodes__AExpr.id;
3230 if(var_pexprnode2 == NULL) {
3231 var5 = 1;
3232 } else {
3233 if(cltype >= var_pexprnode2->type->table_size) {
3234 var5 = 0;
3235 } else {
3236 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
3237 }
3238 }
3239 if (!var5) {
3240 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28387);
3241 exit(1);
3242 }
3243 var_pexprnode3 = var_nodearraylist4;
3244 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
3245 cltype7 = type_nullable_parser_nodes__AExpr.color;
3246 idtype8 = type_nullable_parser_nodes__AExpr.id;
3247 if(var_pexprnode3 == NULL) {
3248 var6 = 1;
3249 } else {
3250 if(cltype7 >= var_pexprnode3->type->table_size) {
3251 var6 = 0;
3252 } else {
3253 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
3254 }
3255 }
3256 if (!var6) {
3257 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28389);
3258 exit(1);
3259 }
3260 var9 = NEW_parser_nodes__ASlashExpr(&type_parser_nodes__ASlashExpr);
3261 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__ASlashExpr__init_aslashexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aslashexpr on <var9:ASlashExpr>*/;
3262 CHECK_NEW_parser_nodes__ASlashExpr(var9);
3263 var_pexprnode1 = var9;
3264 var_node_list = var_pexprnode1;
3265 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction790> */
3266 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
3267 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
3268 RET_LABEL:;
3269 }
3270 /* method parser#ReduceAction790#action for (self: Object, Parser) */
3271 void VIRTUAL_parser__ReduceAction790__action(val* self, val* p0) {
3272 parser__ReduceAction790__action(self, p0);
3273 RET_LABEL:;
3274 }
3275 /* method parser#ReduceAction791#action for (self: ReduceAction791, Parser) */
3276 void parser__ReduceAction791__action(val* self, val* p0) {
3277 val* var_p /* var p: Parser */;
3278 val* var /* : null */;
3279 val* var_node_list /* var node_list: nullable Object */;
3280 val* var1 /* : nullable Object */;
3281 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3282 val* var2 /* : nullable Object */;
3283 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3284 val* var3 /* : nullable Object */;
3285 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3286 val* var4 /* : nullable Object */;
3287 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3288 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
3289 short int var5 /* : Bool */;
3290 int cltype;
3291 int idtype;
3292 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
3293 short int var6 /* : Bool */;
3294 int cltype7;
3295 int idtype8;
3296 val* var9 /* : APercentExpr */;
3297 val* var_pexprnode1 /* var pexprnode1: nullable APercentExpr */;
3298 long var10 /* : Int */;
3299 long var11 /* : Int */;
3300 var_p = p0;
3301 var = NULL;
3302 var_node_list = var;
3303 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3304 var_nodearraylist4 = var1;
3305 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3306 var_nodearraylist3 = var2;
3307 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3308 var_nodearraylist2 = var3;
3309 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3310 var_nodearraylist1 = var4;
3311 var_pexprnode2 = var_nodearraylist1;
3312 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
3313 cltype = type_nullable_parser_nodes__AExpr.color;
3314 idtype = type_nullable_parser_nodes__AExpr.id;
3315 if(var_pexprnode2 == NULL) {
3316 var5 = 1;
3317 } else {
3318 if(cltype >= var_pexprnode2->type->table_size) {
3319 var5 = 0;
3320 } else {
3321 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
3322 }
3323 }
3324 if (!var5) {
3325 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28408);
3326 exit(1);
3327 }
3328 var_pexprnode3 = var_nodearraylist4;
3329 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
3330 cltype7 = type_nullable_parser_nodes__AExpr.color;
3331 idtype8 = type_nullable_parser_nodes__AExpr.id;
3332 if(var_pexprnode3 == NULL) {
3333 var6 = 1;
3334 } else {
3335 if(cltype7 >= var_pexprnode3->type->table_size) {
3336 var6 = 0;
3337 } else {
3338 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
3339 }
3340 }
3341 if (!var6) {
3342 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28410);
3343 exit(1);
3344 }
3345 var9 = NEW_parser_nodes__APercentExpr(&type_parser_nodes__APercentExpr);
3346 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__APercentExpr__init_apercentexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_apercentexpr on <var9:APercentExpr>*/;
3347 CHECK_NEW_parser_nodes__APercentExpr(var9);
3348 var_pexprnode1 = var9;
3349 var_node_list = var_pexprnode1;
3350 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction791> */
3351 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
3352 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
3353 RET_LABEL:;
3354 }
3355 /* method parser#ReduceAction791#action for (self: Object, Parser) */
3356 void VIRTUAL_parser__ReduceAction791__action(val* self, val* p0) {
3357 parser__ReduceAction791__action(self, p0);
3358 RET_LABEL:;
3359 }
3360 /* method parser#ReduceAction793#action for (self: ReduceAction793, Parser) */
3361 void parser__ReduceAction793__action(val* self, val* p0) {
3362 val* var_p /* var p: Parser */;
3363 val* var /* : null */;
3364 val* var_node_list /* var node_list: nullable Object */;
3365 val* var1 /* : nullable Object */;
3366 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3367 val* var2 /* : nullable Object */;
3368 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3369 val* var3 /* : nullable Object */;
3370 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3371 val* var_tminusnode2 /* var tminusnode2: nullable Object */;
3372 short int var4 /* : Bool */;
3373 int cltype;
3374 int idtype;
3375 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
3376 short int var5 /* : Bool */;
3377 int cltype6;
3378 int idtype7;
3379 val* var8 /* : AUminusExpr */;
3380 val* var_pexprnode1 /* var pexprnode1: nullable AUminusExpr */;
3381 long var9 /* : Int */;
3382 long var10 /* : Int */;
3383 var_p = p0;
3384 var = NULL;
3385 var_node_list = var;
3386 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3387 var_nodearraylist3 = var1;
3388 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3389 var_nodearraylist2 = var2;
3390 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3391 var_nodearraylist1 = var3;
3392 var_tminusnode2 = var_nodearraylist1;
3393 /* <var_tminusnode2:nullable Object> isa nullable TMinus */
3394 cltype = type_nullable_parser_nodes__TMinus.color;
3395 idtype = type_nullable_parser_nodes__TMinus.id;
3396 if(var_tminusnode2 == NULL) {
3397 var4 = 1;
3398 } else {
3399 if(cltype >= var_tminusnode2->type->table_size) {
3400 var4 = 0;
3401 } else {
3402 var4 = var_tminusnode2->type->type_table[cltype] == idtype;
3403 }
3404 }
3405 if (!var4) {
3406 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28428);
3407 exit(1);
3408 }
3409 var_pexprnode3 = var_nodearraylist3;
3410 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
3411 cltype6 = type_nullable_parser_nodes__AExpr.color;
3412 idtype7 = type_nullable_parser_nodes__AExpr.id;
3413 if(var_pexprnode3 == NULL) {
3414 var5 = 1;
3415 } else {
3416 if(cltype6 >= var_pexprnode3->type->table_size) {
3417 var5 = 0;
3418 } else {
3419 var5 = var_pexprnode3->type->type_table[cltype6] == idtype7;
3420 }
3421 }
3422 if (!var5) {
3423 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28430);
3424 exit(1);
3425 }
3426 var8 = NEW_parser_nodes__AUminusExpr(&type_parser_nodes__AUminusExpr);
3427 ((void (*)(val*, val*, val*))(var8->class->vft[COLOR_parser_prod__AUminusExpr__init_auminusexpr]))(var8, var_tminusnode2, var_pexprnode3) /* init_auminusexpr on <var8:AUminusExpr>*/;
3428 CHECK_NEW_parser_nodes__AUminusExpr(var8);
3429 var_pexprnode1 = var8;
3430 var_node_list = var_pexprnode1;
3431 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction793> */
3432 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
3433 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
3434 RET_LABEL:;
3435 }
3436 /* method parser#ReduceAction793#action for (self: Object, Parser) */
3437 void VIRTUAL_parser__ReduceAction793__action(val* self, val* p0) {
3438 parser__ReduceAction793__action(self, p0);
3439 RET_LABEL:;
3440 }
3441 /* method parser#ReduceAction794#action for (self: ReduceAction794, Parser) */
3442 void parser__ReduceAction794__action(val* self, val* p0) {
3443 val* var_p /* var p: Parser */;
3444 val* var /* : null */;
3445 val* var_node_list /* var node_list: nullable Object */;
3446 val* var1 /* : nullable Object */;
3447 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3448 val* var2 /* : nullable Object */;
3449 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3450 val* var3 /* : nullable Object */;
3451 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3452 val* var_tkwoncenode2 /* var tkwoncenode2: nullable Object */;
3453 short int var4 /* : Bool */;
3454 int cltype;
3455 int idtype;
3456 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
3457 short int var5 /* : Bool */;
3458 int cltype6;
3459 int idtype7;
3460 val* var8 /* : AOnceExpr */;
3461 val* var_pexprnode1 /* var pexprnode1: nullable AOnceExpr */;
3462 long var9 /* : Int */;
3463 long var10 /* : Int */;
3464 var_p = p0;
3465 var = NULL;
3466 var_node_list = var;
3467 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3468 var_nodearraylist3 = var1;
3469 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3470 var_nodearraylist2 = var2;
3471 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3472 var_nodearraylist1 = var3;
3473 var_tkwoncenode2 = var_nodearraylist1;
3474 /* <var_tkwoncenode2:nullable Object> isa nullable TKwonce */
3475 cltype = type_nullable_parser_nodes__TKwonce.color;
3476 idtype = type_nullable_parser_nodes__TKwonce.id;
3477 if(var_tkwoncenode2 == NULL) {
3478 var4 = 1;
3479 } else {
3480 if(cltype >= var_tkwoncenode2->type->table_size) {
3481 var4 = 0;
3482 } else {
3483 var4 = var_tkwoncenode2->type->type_table[cltype] == idtype;
3484 }
3485 }
3486 if (!var4) {
3487 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28448);
3488 exit(1);
3489 }
3490 var_pexprnode3 = var_nodearraylist3;
3491 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
3492 cltype6 = type_nullable_parser_nodes__AExpr.color;
3493 idtype7 = type_nullable_parser_nodes__AExpr.id;
3494 if(var_pexprnode3 == NULL) {
3495 var5 = 1;
3496 } else {
3497 if(cltype6 >= var_pexprnode3->type->table_size) {
3498 var5 = 0;
3499 } else {
3500 var5 = var_pexprnode3->type->type_table[cltype6] == idtype7;
3501 }
3502 }
3503 if (!var5) {
3504 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28450);
3505 exit(1);
3506 }
3507 var8 = NEW_parser_nodes__AOnceExpr(&type_parser_nodes__AOnceExpr);
3508 ((void (*)(val*, val*, val*))(var8->class->vft[COLOR_parser_prod__AOnceExpr__init_aonceexpr]))(var8, var_tkwoncenode2, var_pexprnode3) /* init_aonceexpr on <var8:AOnceExpr>*/;
3509 CHECK_NEW_parser_nodes__AOnceExpr(var8);
3510 var_pexprnode1 = var8;
3511 var_node_list = var_pexprnode1;
3512 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction794> */
3513 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
3514 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
3515 RET_LABEL:;
3516 }
3517 /* method parser#ReduceAction794#action for (self: Object, Parser) */
3518 void VIRTUAL_parser__ReduceAction794__action(val* self, val* p0) {
3519 parser__ReduceAction794__action(self, p0);
3520 RET_LABEL:;
3521 }
3522 /* method parser#ReduceAction796#action for (self: ReduceAction796, Parser) */
3523 void parser__ReduceAction796__action(val* self, val* p0) {
3524 val* var_p /* var p: Parser */;
3525 val* var /* : null */;
3526 val* var_node_list /* var node_list: nullable Object */;
3527 val* var1 /* : nullable Object */;
3528 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3529 val* var2 /* : nullable Object */;
3530 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3531 val* var3 /* : nullable Object */;
3532 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3533 val* var4 /* : nullable Object */;
3534 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3535 val* var_tkwnewnode2 /* var tkwnewnode2: nullable Object */;
3536 short int var5 /* : Bool */;
3537 int cltype;
3538 int idtype;
3539 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
3540 short int var6 /* : Bool */;
3541 int cltype7;
3542 int idtype8;
3543 val* var_pexprsnode5 /* var pexprsnode5: nullable Object */;
3544 short int var9 /* : Bool */;
3545 int cltype10;
3546 int idtype11;
3547 val* var12 /* : ANewExpr */;
3548 val* var13 /* : null */;
3549 val* var_pexprnode1 /* var pexprnode1: nullable ANewExpr */;
3550 long var14 /* : Int */;
3551 long var15 /* : Int */;
3552 var_p = p0;
3553 var = NULL;
3554 var_node_list = var;
3555 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3556 var_nodearraylist4 = var1;
3557 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3558 var_nodearraylist3 = var2;
3559 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3560 var_nodearraylist2 = var3;
3561 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3562 var_nodearraylist1 = var4;
3563 var_tkwnewnode2 = var_nodearraylist1;
3564 /* <var_tkwnewnode2:nullable Object> isa nullable TKwnew */
3565 cltype = type_nullable_parser_nodes__TKwnew.color;
3566 idtype = type_nullable_parser_nodes__TKwnew.id;
3567 if(var_tkwnewnode2 == NULL) {
3568 var5 = 1;
3569 } else {
3570 if(cltype >= var_tkwnewnode2->type->table_size) {
3571 var5 = 0;
3572 } else {
3573 var5 = var_tkwnewnode2->type->type_table[cltype] == idtype;
3574 }
3575 }
3576 if (!var5) {
3577 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28469);
3578 exit(1);
3579 }
3580 var_ptypenode3 = var_nodearraylist3;
3581 /* <var_ptypenode3:nullable Object> isa nullable AType */
3582 cltype7 = type_nullable_parser_nodes__AType.color;
3583 idtype8 = type_nullable_parser_nodes__AType.id;
3584 if(var_ptypenode3 == NULL) {
3585 var6 = 1;
3586 } else {
3587 if(cltype7 >= var_ptypenode3->type->table_size) {
3588 var6 = 0;
3589 } else {
3590 var6 = var_ptypenode3->type->type_table[cltype7] == idtype8;
3591 }
3592 }
3593 if (!var6) {
3594 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28471);
3595 exit(1);
3596 }
3597 var_pexprsnode5 = var_nodearraylist4;
3598 /* <var_pexprsnode5:nullable Object> isa nullable AExprs */
3599 cltype10 = type_nullable_parser_nodes__AExprs.color;
3600 idtype11 = type_nullable_parser_nodes__AExprs.id;
3601 if(var_pexprsnode5 == NULL) {
3602 var9 = 1;
3603 } else {
3604 if(cltype10 >= var_pexprsnode5->type->table_size) {
3605 var9 = 0;
3606 } else {
3607 var9 = var_pexprsnode5->type->type_table[cltype10] == idtype11;
3608 }
3609 }
3610 if (!var9) {
3611 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28473);
3612 exit(1);
3613 }
3614 var12 = NEW_parser_nodes__ANewExpr(&type_parser_nodes__ANewExpr);
3615 var13 = NULL;
3616 ((void (*)(val*, val*, val*, val*, val*))(var12->class->vft[COLOR_parser_prod__ANewExpr__init_anewexpr]))(var12, var_tkwnewnode2, var_ptypenode3, var13, var_pexprsnode5) /* init_anewexpr on <var12:ANewExpr>*/;
3617 CHECK_NEW_parser_nodes__ANewExpr(var12);
3618 var_pexprnode1 = var12;
3619 var_node_list = var_pexprnode1;
3620 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction796> */
3621 var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
3622 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
3623 RET_LABEL:;
3624 }
3625 /* method parser#ReduceAction796#action for (self: Object, Parser) */
3626 void VIRTUAL_parser__ReduceAction796__action(val* self, val* p0) {
3627 parser__ReduceAction796__action(self, p0);
3628 RET_LABEL:;
3629 }
3630 /* method parser#ReduceAction797#action for (self: ReduceAction797, Parser) */
3631 void parser__ReduceAction797__action(val* self, val* p0) {
3632 val* var_p /* var p: Parser */;
3633 val* var /* : null */;
3634 val* var_node_list /* var node_list: nullable Object */;
3635 val* var1 /* : nullable Object */;
3636 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
3637 val* var2 /* : nullable Object */;
3638 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3639 val* var3 /* : nullable Object */;
3640 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3641 val* var4 /* : nullable Object */;
3642 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3643 val* var5 /* : nullable Object */;
3644 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3645 val* var_tkwissetnode2 /* var tkwissetnode2: nullable Object */;
3646 short int var6 /* : Bool */;
3647 int cltype;
3648 int idtype;
3649 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
3650 short int var7 /* : Bool */;
3651 int cltype8;
3652 int idtype9;
3653 val* var_tattridnode4 /* var tattridnode4: nullable Object */;
3654 short int var10 /* : Bool */;
3655 int cltype11;
3656 int idtype12;
3657 val* var13 /* : AIssetAttrExpr */;
3658 val* var_pexprnode1 /* var pexprnode1: nullable AIssetAttrExpr */;
3659 long var14 /* : Int */;
3660 long var15 /* : Int */;
3661 var_p = p0;
3662 var = NULL;
3663 var_node_list = var;
3664 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3665 var_nodearraylist5 = var1;
3666 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3667 var_nodearraylist4 = var2;
3668 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3669 var_nodearraylist3 = var3;
3670 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3671 var_nodearraylist2 = var4;
3672 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3673 var_nodearraylist1 = var5;
3674 var_tkwissetnode2 = var_nodearraylist1;
3675 /* <var_tkwissetnode2:nullable Object> isa nullable TKwisset */
3676 cltype = type_nullable_parser_nodes__TKwisset.color;
3677 idtype = type_nullable_parser_nodes__TKwisset.id;
3678 if(var_tkwissetnode2 == NULL) {
3679 var6 = 1;
3680 } else {
3681 if(cltype >= var_tkwissetnode2->type->table_size) {
3682 var6 = 0;
3683 } else {
3684 var6 = var_tkwissetnode2->type->type_table[cltype] == idtype;
3685 }
3686 }
3687 if (!var6) {
3688 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28495);
3689 exit(1);
3690 }
3691 var_pexprnode3 = var_nodearraylist2;
3692 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
3693 cltype8 = type_nullable_parser_nodes__AExpr.color;
3694 idtype9 = type_nullable_parser_nodes__AExpr.id;
3695 if(var_pexprnode3 == NULL) {
3696 var7 = 1;
3697 } else {
3698 if(cltype8 >= var_pexprnode3->type->table_size) {
3699 var7 = 0;
3700 } else {
3701 var7 = var_pexprnode3->type->type_table[cltype8] == idtype9;
3702 }
3703 }
3704 if (!var7) {
3705 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28497);
3706 exit(1);
3707 }
3708 var_tattridnode4 = var_nodearraylist5;
3709 /* <var_tattridnode4:nullable Object> isa nullable TAttrid */
3710 cltype11 = type_nullable_parser_nodes__TAttrid.color;
3711 idtype12 = type_nullable_parser_nodes__TAttrid.id;
3712 if(var_tattridnode4 == NULL) {
3713 var10 = 1;
3714 } else {
3715 if(cltype11 >= var_tattridnode4->type->table_size) {
3716 var10 = 0;
3717 } else {
3718 var10 = var_tattridnode4->type->type_table[cltype11] == idtype12;
3719 }
3720 }
3721 if (!var10) {
3722 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28499);
3723 exit(1);
3724 }
3725 var13 = NEW_parser_nodes__AIssetAttrExpr(&type_parser_nodes__AIssetAttrExpr);
3726 ((void (*)(val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__AIssetAttrExpr__init_aissetattrexpr]))(var13, var_tkwissetnode2, var_pexprnode3, var_tattridnode4) /* init_aissetattrexpr on <var13:AIssetAttrExpr>*/;
3727 CHECK_NEW_parser_nodes__AIssetAttrExpr(var13);
3728 var_pexprnode1 = var13;
3729 var_node_list = var_pexprnode1;
3730 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction797> */
3731 var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
3732 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
3733 RET_LABEL:;
3734 }
3735 /* method parser#ReduceAction797#action for (self: Object, Parser) */
3736 void VIRTUAL_parser__ReduceAction797__action(val* self, val* p0) {
3737 parser__ReduceAction797__action(self, p0);
3738 RET_LABEL:;
3739 }
3740 /* method parser#ReduceAction798#action for (self: ReduceAction798, Parser) */
3741 void parser__ReduceAction798__action(val* self, val* p0) {
3742 val* var_p /* var p: Parser */;
3743 val* var /* : null */;
3744 val* var_node_list /* var node_list: nullable Object */;
3745 val* var1 /* : nullable Object */;
3746 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3747 val* var2 /* : nullable Object */;
3748 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3749 val* var_tkwissetnode2 /* var tkwissetnode2: nullable Object */;
3750 short int var3 /* : Bool */;
3751 int cltype;
3752 int idtype;
3753 val* var4 /* : AImplicitSelfExpr */;
3754 val* var_pexprnode3 /* var pexprnode3: nullable AImplicitSelfExpr */;
3755 val* var_tattridnode4 /* var tattridnode4: nullable Object */;
3756 short int var5 /* : Bool */;
3757 int cltype6;
3758 int idtype7;
3759 val* var8 /* : AIssetAttrExpr */;
3760 val* var_pexprnode1 /* var pexprnode1: nullable AIssetAttrExpr */;
3761 long var9 /* : Int */;
3762 long var10 /* : Int */;
3763 var_p = p0;
3764 var = NULL;
3765 var_node_list = var;
3766 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3767 var_nodearraylist2 = var1;
3768 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3769 var_nodearraylist1 = var2;
3770 var_tkwissetnode2 = var_nodearraylist1;
3771 /* <var_tkwissetnode2:nullable Object> isa nullable TKwisset */
3772 cltype = type_nullable_parser_nodes__TKwisset.color;
3773 idtype = type_nullable_parser_nodes__TKwisset.id;
3774 if(var_tkwissetnode2 == NULL) {
3775 var3 = 1;
3776 } else {
3777 if(cltype >= var_tkwissetnode2->type->table_size) {
3778 var3 = 0;
3779 } else {
3780 var3 = var_tkwissetnode2->type->type_table[cltype] == idtype;
3781 }
3782 }
3783 if (!var3) {
3784 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28517);
3785 exit(1);
3786 }
3787 var4 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
3788 ((void (*)(val*))(var4->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var4) /* init_aimplicitselfexpr on <var4:AImplicitSelfExpr>*/;
3789 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var4);
3790 var_pexprnode3 = var4;
3791 var_tattridnode4 = var_nodearraylist2;
3792 /* <var_tattridnode4:nullable Object> isa nullable TAttrid */
3793 cltype6 = type_nullable_parser_nodes__TAttrid.color;
3794 idtype7 = type_nullable_parser_nodes__TAttrid.id;
3795 if(var_tattridnode4 == NULL) {
3796 var5 = 1;
3797 } else {
3798 if(cltype6 >= var_tattridnode4->type->table_size) {
3799 var5 = 0;
3800 } else {
3801 var5 = var_tattridnode4->type->type_table[cltype6] == idtype7;
3802 }
3803 }
3804 if (!var5) {
3805 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28520);
3806 exit(1);
3807 }
3808 var8 = NEW_parser_nodes__AIssetAttrExpr(&type_parser_nodes__AIssetAttrExpr);
3809 ((void (*)(val*, val*, val*, val*))(var8->class->vft[COLOR_parser_prod__AIssetAttrExpr__init_aissetattrexpr]))(var8, var_tkwissetnode2, var_pexprnode3, var_tattridnode4) /* init_aissetattrexpr on <var8:AIssetAttrExpr>*/;
3810 CHECK_NEW_parser_nodes__AIssetAttrExpr(var8);
3811 var_pexprnode1 = var8;
3812 var_node_list = var_pexprnode1;
3813 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction798> */
3814 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
3815 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
3816 RET_LABEL:;
3817 }
3818 /* method parser#ReduceAction798#action for (self: Object, Parser) */
3819 void VIRTUAL_parser__ReduceAction798__action(val* self, val* p0) {
3820 parser__ReduceAction798__action(self, p0);
3821 RET_LABEL:;
3822 }
3823 /* method parser#ReduceAction799#action for (self: ReduceAction799, Parser) */
3824 void parser__ReduceAction799__action(val* self, val* p0) {
3825 val* var_p /* var p: Parser */;
3826 val* var /* : null */;
3827 val* var_node_list /* var node_list: nullable Object */;
3828 val* var1 /* : nullable Object */;
3829 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
3830 val* var2 /* : nullable Object */;
3831 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
3832 val* var3 /* : nullable Object */;
3833 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3834 val* var4 /* : nullable Object */;
3835 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3836 val* var5 /* : nullable Object */;
3837 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3838 val* var6 /* : nullable Object */;
3839 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3840 val* var_tkwissetnode2 /* var tkwissetnode2: nullable Object */;
3841 short int var7 /* : Bool */;
3842 int cltype;
3843 int idtype;
3844 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
3845 short int var8 /* : Bool */;
3846 int cltype9;
3847 int idtype10;
3848 val* var_tattridnode4 /* var tattridnode4: nullable Object */;
3849 short int var11 /* : Bool */;
3850 int cltype12;
3851 int idtype13;
3852 val* var14 /* : AIssetAttrExpr */;
3853 val* var_pexprnode1 /* var pexprnode1: nullable AIssetAttrExpr */;
3854 long var15 /* : Int */;
3855 long var16 /* : Int */;
3856 var_p = p0;
3857 var = NULL;
3858 var_node_list = var;
3859 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3860 var_nodearraylist6 = var1;
3861 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3862 var_nodearraylist5 = var2;
3863 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3864 var_nodearraylist4 = var3;
3865 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3866 var_nodearraylist3 = var4;
3867 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3868 var_nodearraylist2 = var5;
3869 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3870 var_nodearraylist1 = var6;
3871 var_tkwissetnode2 = var_nodearraylist1;
3872 /* <var_tkwissetnode2:nullable Object> isa nullable TKwisset */
3873 cltype = type_nullable_parser_nodes__TKwisset.color;
3874 idtype = type_nullable_parser_nodes__TKwisset.id;
3875 if(var_tkwissetnode2 == NULL) {
3876 var7 = 1;
3877 } else {
3878 if(cltype >= var_tkwissetnode2->type->table_size) {
3879 var7 = 0;
3880 } else {
3881 var7 = var_tkwissetnode2->type->type_table[cltype] == idtype;
3882 }
3883 }
3884 if (!var7) {
3885 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28542);
3886 exit(1);
3887 }
3888 var_pexprnode3 = var_nodearraylist2;
3889 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
3890 cltype9 = type_nullable_parser_nodes__AExpr.color;
3891 idtype10 = type_nullable_parser_nodes__AExpr.id;
3892 if(var_pexprnode3 == NULL) {
3893 var8 = 1;
3894 } else {
3895 if(cltype9 >= var_pexprnode3->type->table_size) {
3896 var8 = 0;
3897 } else {
3898 var8 = var_pexprnode3->type->type_table[cltype9] == idtype10;
3899 }
3900 }
3901 if (!var8) {
3902 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28544);
3903 exit(1);
3904 }
3905 var_tattridnode4 = var_nodearraylist6;
3906 /* <var_tattridnode4:nullable Object> isa nullable TAttrid */
3907 cltype12 = type_nullable_parser_nodes__TAttrid.color;
3908 idtype13 = type_nullable_parser_nodes__TAttrid.id;
3909 if(var_tattridnode4 == NULL) {
3910 var11 = 1;
3911 } else {
3912 if(cltype12 >= var_tattridnode4->type->table_size) {
3913 var11 = 0;
3914 } else {
3915 var11 = var_tattridnode4->type->type_table[cltype12] == idtype13;
3916 }
3917 }
3918 if (!var11) {
3919 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28546);
3920 exit(1);
3921 }
3922 var14 = NEW_parser_nodes__AIssetAttrExpr(&type_parser_nodes__AIssetAttrExpr);
3923 ((void (*)(val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__AIssetAttrExpr__init_aissetattrexpr]))(var14, var_tkwissetnode2, var_pexprnode3, var_tattridnode4) /* init_aissetattrexpr on <var14:AIssetAttrExpr>*/;
3924 CHECK_NEW_parser_nodes__AIssetAttrExpr(var14);
3925 var_pexprnode1 = var14;
3926 var_node_list = var_pexprnode1;
3927 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction799> */
3928 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
3929 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
3930 RET_LABEL:;
3931 }
3932 /* method parser#ReduceAction799#action for (self: Object, Parser) */
3933 void VIRTUAL_parser__ReduceAction799__action(val* self, val* p0) {
3934 parser__ReduceAction799__action(self, p0);
3935 RET_LABEL:;
3936 }
3937 /* method parser#ReduceAction800#action for (self: ReduceAction800, Parser) */
3938 void parser__ReduceAction800__action(val* self, val* p0) {
3939 val* var_p /* var p: Parser */;
3940 val* var /* : null */;
3941 val* var_node_list /* var node_list: nullable Object */;
3942 val* var1 /* : nullable Object */;
3943 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
3944 val* var2 /* : nullable Object */;
3945 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
3946 val* var3 /* : nullable Object */;
3947 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
3948 val* var4 /* : nullable Object */;
3949 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3950 val* var5 /* : nullable Object */;
3951 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3952 val* var6 /* : nullable Object */;
3953 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3954 val* var7 /* : nullable Object */;
3955 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3956 val* var_tkwissetnode2 /* var tkwissetnode2: nullable Object */;
3957 short int var8 /* : Bool */;
3958 int cltype;
3959 int idtype;
3960 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
3961 short int var9 /* : Bool */;
3962 int cltype10;
3963 int idtype11;
3964 val* var_tattridnode4 /* var tattridnode4: nullable Object */;
3965 short int var12 /* : Bool */;
3966 int cltype13;
3967 int idtype14;
3968 val* var15 /* : AIssetAttrExpr */;
3969 val* var_pexprnode1 /* var pexprnode1: nullable AIssetAttrExpr */;
3970 long var16 /* : Int */;
3971 long var17 /* : Int */;
3972 var_p = p0;
3973 var = NULL;
3974 var_node_list = var;
3975 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3976 var_nodearraylist7 = var1;
3977 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3978 var_nodearraylist6 = var2;
3979 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3980 var_nodearraylist5 = var3;
3981 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3982 var_nodearraylist4 = var4;
3983 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3984 var_nodearraylist3 = var5;
3985 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3986 var_nodearraylist2 = var6;
3987 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3988 var_nodearraylist1 = var7;
3989 var_tkwissetnode2 = var_nodearraylist1;
3990 /* <var_tkwissetnode2:nullable Object> isa nullable TKwisset */
3991 cltype = type_nullable_parser_nodes__TKwisset.color;
3992 idtype = type_nullable_parser_nodes__TKwisset.id;
3993 if(var_tkwissetnode2 == NULL) {
3994 var8 = 1;
3995 } else {
3996 if(cltype >= var_tkwissetnode2->type->table_size) {
3997 var8 = 0;
3998 } else {
3999 var8 = var_tkwissetnode2->type->type_table[cltype] == idtype;
4000 }
4001 }
4002 if (!var8) {
4003 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28569);
4004 exit(1);
4005 }
4006 var_pexprnode3 = var_nodearraylist2;
4007 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
4008 cltype10 = type_nullable_parser_nodes__AExpr.color;
4009 idtype11 = type_nullable_parser_nodes__AExpr.id;
4010 if(var_pexprnode3 == NULL) {
4011 var9 = 1;
4012 } else {
4013 if(cltype10 >= var_pexprnode3->type->table_size) {
4014 var9 = 0;
4015 } else {
4016 var9 = var_pexprnode3->type->type_table[cltype10] == idtype11;
4017 }
4018 }
4019 if (!var9) {
4020 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28571);
4021 exit(1);
4022 }
4023 var_tattridnode4 = var_nodearraylist7;
4024 /* <var_tattridnode4:nullable Object> isa nullable TAttrid */
4025 cltype13 = type_nullable_parser_nodes__TAttrid.color;
4026 idtype14 = type_nullable_parser_nodes__TAttrid.id;
4027 if(var_tattridnode4 == NULL) {
4028 var12 = 1;
4029 } else {
4030 if(cltype13 >= var_tattridnode4->type->table_size) {
4031 var12 = 0;
4032 } else {
4033 var12 = var_tattridnode4->type->type_table[cltype13] == idtype14;
4034 }
4035 }
4036 if (!var12) {
4037 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28573);
4038 exit(1);
4039 }
4040 var15 = NEW_parser_nodes__AIssetAttrExpr(&type_parser_nodes__AIssetAttrExpr);
4041 ((void (*)(val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__AIssetAttrExpr__init_aissetattrexpr]))(var15, var_tkwissetnode2, var_pexprnode3, var_tattridnode4) /* init_aissetattrexpr on <var15:AIssetAttrExpr>*/;
4042 CHECK_NEW_parser_nodes__AIssetAttrExpr(var15);
4043 var_pexprnode1 = var15;
4044 var_node_list = var_pexprnode1;
4045 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction800> */
4046 var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
4047 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
4048 RET_LABEL:;
4049 }
4050 /* method parser#ReduceAction800#action for (self: Object, Parser) */
4051 void VIRTUAL_parser__ReduceAction800__action(val* self, val* p0) {
4052 parser__ReduceAction800__action(self, p0);
4053 RET_LABEL:;
4054 }
4055 /* method parser#ReduceAction802#action for (self: ReduceAction802, Parser) */
4056 void parser__ReduceAction802__action(val* self, val* p0) {
4057 val* var_p /* var p: Parser */;
4058 val* var /* : null */;
4059 val* var_node_list /* var node_list: nullable Object */;
4060 val* var1 /* : nullable Object */;
4061 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4062 val* var2 /* : nullable Object */;
4063 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4064 val* var3 /* : nullable Object */;
4065 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4066 val* var_tkwissetnode2 /* var tkwissetnode2: nullable Object */;
4067 short int var4 /* : Bool */;
4068 int cltype;
4069 int idtype;
4070 val* var5 /* : AImplicitSelfExpr */;
4071 val* var_pexprnode3 /* var pexprnode3: nullable AImplicitSelfExpr */;
4072 val* var_tattridnode4 /* var tattridnode4: nullable Object */;
4073 short int var6 /* : Bool */;
4074 int cltype7;
4075 int idtype8;
4076 val* var9 /* : AIssetAttrExpr */;
4077 val* var_pexprnode1 /* var pexprnode1: nullable AIssetAttrExpr */;
4078 long var10 /* : Int */;
4079 long var11 /* : Int */;
4080 var_p = p0;
4081 var = NULL;
4082 var_node_list = var;
4083 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4084 var_nodearraylist3 = var1;
4085 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4086 var_nodearraylist2 = var2;
4087 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4088 var_nodearraylist1 = var3;
4089 var_tkwissetnode2 = var_nodearraylist1;
4090 /* <var_tkwissetnode2:nullable Object> isa nullable TKwisset */
4091 cltype = type_nullable_parser_nodes__TKwisset.color;
4092 idtype = type_nullable_parser_nodes__TKwisset.id;
4093 if(var_tkwissetnode2 == NULL) {
4094 var4 = 1;
4095 } else {
4096 if(cltype >= var_tkwissetnode2->type->table_size) {
4097 var4 = 0;
4098 } else {
4099 var4 = var_tkwissetnode2->type->type_table[cltype] == idtype;
4100 }
4101 }
4102 if (!var4) {
4103 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28592);
4104 exit(1);
4105 }
4106 var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
4107 ((void (*)(val*))(var5->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var5) /* init_aimplicitselfexpr on <var5:AImplicitSelfExpr>*/;
4108 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var5);
4109 var_pexprnode3 = var5;
4110 var_tattridnode4 = var_nodearraylist3;
4111 /* <var_tattridnode4:nullable Object> isa nullable TAttrid */
4112 cltype7 = type_nullable_parser_nodes__TAttrid.color;
4113 idtype8 = type_nullable_parser_nodes__TAttrid.id;
4114 if(var_tattridnode4 == NULL) {
4115 var6 = 1;
4116 } else {
4117 if(cltype7 >= var_tattridnode4->type->table_size) {
4118 var6 = 0;
4119 } else {
4120 var6 = var_tattridnode4->type->type_table[cltype7] == idtype8;
4121 }
4122 }
4123 if (!var6) {
4124 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28595);
4125 exit(1);
4126 }
4127 var9 = NEW_parser_nodes__AIssetAttrExpr(&type_parser_nodes__AIssetAttrExpr);
4128 ((void (*)(val*, val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AIssetAttrExpr__init_aissetattrexpr]))(var9, var_tkwissetnode2, var_pexprnode3, var_tattridnode4) /* init_aissetattrexpr on <var9:AIssetAttrExpr>*/;
4129 CHECK_NEW_parser_nodes__AIssetAttrExpr(var9);
4130 var_pexprnode1 = var9;
4131 var_node_list = var_pexprnode1;
4132 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction802> */
4133 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
4134 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
4135 RET_LABEL:;
4136 }
4137 /* method parser#ReduceAction802#action for (self: Object, Parser) */
4138 void VIRTUAL_parser__ReduceAction802__action(val* self, val* p0) {
4139 parser__ReduceAction802__action(self, p0);
4140 RET_LABEL:;
4141 }
4142 /* method parser#ReduceAction803#action for (self: ReduceAction803, Parser) */
4143 void parser__ReduceAction803__action(val* self, val* p0) {
4144 val* var_p /* var p: Parser */;
4145 val* var /* : null */;
4146 val* var_node_list /* var node_list: nullable Object */;
4147 val* var1 /* : nullable Object */;
4148 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4149 val* var2 /* : nullable Object */;
4150 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4151 val* var3 /* : nullable Object */;
4152 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4153 val* var4 /* : nullable Object */;
4154 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4155 val* var_tkwissetnode2 /* var tkwissetnode2: nullable Object */;
4156 short int var5 /* : Bool */;
4157 int cltype;
4158 int idtype;
4159 val* var6 /* : AImplicitSelfExpr */;
4160 val* var_pexprnode3 /* var pexprnode3: nullable AImplicitSelfExpr */;
4161 val* var_tattridnode4 /* var tattridnode4: nullable Object */;
4162 short int var7 /* : Bool */;
4163 int cltype8;
4164 int idtype9;
4165 val* var10 /* : AIssetAttrExpr */;
4166 val* var_pexprnode1 /* var pexprnode1: nullable AIssetAttrExpr */;
4167 long var11 /* : Int */;
4168 long var12 /* : Int */;
4169 var_p = p0;
4170 var = NULL;
4171 var_node_list = var;
4172 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4173 var_nodearraylist4 = var1;
4174 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4175 var_nodearraylist3 = var2;
4176 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4177 var_nodearraylist2 = var3;
4178 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4179 var_nodearraylist1 = var4;
4180 var_tkwissetnode2 = var_nodearraylist1;
4181 /* <var_tkwissetnode2:nullable Object> isa nullable TKwisset */
4182 cltype = type_nullable_parser_nodes__TKwisset.color;
4183 idtype = type_nullable_parser_nodes__TKwisset.id;
4184 if(var_tkwissetnode2 == NULL) {
4185 var5 = 1;
4186 } else {
4187 if(cltype >= var_tkwissetnode2->type->table_size) {
4188 var5 = 0;
4189 } else {
4190 var5 = var_tkwissetnode2->type->type_table[cltype] == idtype;
4191 }
4192 }
4193 if (!var5) {
4194 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28615);
4195 exit(1);
4196 }
4197 var6 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
4198 ((void (*)(val*))(var6->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var6) /* init_aimplicitselfexpr on <var6:AImplicitSelfExpr>*/;
4199 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var6);
4200 var_pexprnode3 = var6;
4201 var_tattridnode4 = var_nodearraylist4;
4202 /* <var_tattridnode4:nullable Object> isa nullable TAttrid */
4203 cltype8 = type_nullable_parser_nodes__TAttrid.color;
4204 idtype9 = type_nullable_parser_nodes__TAttrid.id;
4205 if(var_tattridnode4 == NULL) {
4206 var7 = 1;
4207 } else {
4208 if(cltype8 >= var_tattridnode4->type->table_size) {
4209 var7 = 0;
4210 } else {
4211 var7 = var_tattridnode4->type->type_table[cltype8] == idtype9;
4212 }
4213 }
4214 if (!var7) {
4215 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28618);
4216 exit(1);
4217 }
4218 var10 = NEW_parser_nodes__AIssetAttrExpr(&type_parser_nodes__AIssetAttrExpr);
4219 ((void (*)(val*, val*, val*, val*))(var10->class->vft[COLOR_parser_prod__AIssetAttrExpr__init_aissetattrexpr]))(var10, var_tkwissetnode2, var_pexprnode3, var_tattridnode4) /* init_aissetattrexpr on <var10:AIssetAttrExpr>*/;
4220 CHECK_NEW_parser_nodes__AIssetAttrExpr(var10);
4221 var_pexprnode1 = var10;
4222 var_node_list = var_pexprnode1;
4223 var11 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction803> */
4224 var12 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var11) /* go_to on <var_p:Parser>*/;
4225 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var12, var_node_list) /* push on <var_p:Parser>*/;
4226 RET_LABEL:;
4227 }
4228 /* method parser#ReduceAction803#action for (self: Object, Parser) */
4229 void VIRTUAL_parser__ReduceAction803__action(val* self, val* p0) {
4230 parser__ReduceAction803__action(self, p0);
4231 RET_LABEL:;
4232 }
4233 /* method parser#ReduceAction805#action for (self: ReduceAction805, Parser) */
4234 void parser__ReduceAction805__action(val* self, val* p0) {
4235 val* var_p /* var p: Parser */;
4236 val* var /* : null */;
4237 val* var_node_list /* var node_list: nullable Object */;
4238 val* var1 /* : nullable Object */;
4239 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4240 val* var2 /* : nullable Object */;
4241 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4242 val* var3 /* : nullable Object */;
4243 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4244 val* var4 /* : nullable Object */;
4245 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4246 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
4247 short int var5 /* : Bool */;
4248 int cltype;
4249 int idtype;
4250 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
4251 short int var6 /* : Bool */;
4252 int cltype7;
4253 int idtype8;
4254 val* var9 /* : AAttrExpr */;
4255 val* var_pexprnode1 /* var pexprnode1: nullable AAttrExpr */;
4256 long var10 /* : Int */;
4257 long var11 /* : 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_nodearraylist4 = var1;
4263 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4264 var_nodearraylist3 = var2;
4265 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4266 var_nodearraylist2 = var3;
4267 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4268 var_nodearraylist1 = var4;
4269 var_pexprnode2 = var_nodearraylist1;
4270 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
4271 cltype = type_nullable_parser_nodes__AExpr.color;
4272 idtype = type_nullable_parser_nodes__AExpr.id;
4273 if(var_pexprnode2 == NULL) {
4274 var5 = 1;
4275 } else {
4276 if(cltype >= var_pexprnode2->type->table_size) {
4277 var5 = 0;
4278 } else {
4279 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
4280 }
4281 }
4282 if (!var5) {
4283 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28638);
4284 exit(1);
4285 }
4286 var_tattridnode3 = var_nodearraylist4;
4287 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
4288 cltype7 = type_nullable_parser_nodes__TAttrid.color;
4289 idtype8 = type_nullable_parser_nodes__TAttrid.id;
4290 if(var_tattridnode3 == NULL) {
4291 var6 = 1;
4292 } else {
4293 if(cltype7 >= var_tattridnode3->type->table_size) {
4294 var6 = 0;
4295 } else {
4296 var6 = var_tattridnode3->type->type_table[cltype7] == idtype8;
4297 }
4298 }
4299 if (!var6) {
4300 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28640);
4301 exit(1);
4302 }
4303 var9 = NEW_parser_nodes__AAttrExpr(&type_parser_nodes__AAttrExpr);
4304 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AAttrExpr__init_aattrexpr]))(var9, var_pexprnode2, var_tattridnode3) /* init_aattrexpr on <var9:AAttrExpr>*/;
4305 CHECK_NEW_parser_nodes__AAttrExpr(var9);
4306 var_pexprnode1 = var9;
4307 var_node_list = var_pexprnode1;
4308 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction805> */
4309 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
4310 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
4311 RET_LABEL:;
4312 }
4313 /* method parser#ReduceAction805#action for (self: Object, Parser) */
4314 void VIRTUAL_parser__ReduceAction805__action(val* self, val* p0) {
4315 parser__ReduceAction805__action(self, p0);
4316 RET_LABEL:;
4317 }
4318 /* method parser#ReduceAction806#action for (self: ReduceAction806, Parser) */
4319 void parser__ReduceAction806__action(val* self, val* p0) {
4320 val* var_p /* var p: Parser */;
4321 val* var /* : null */;
4322 val* var_node_list /* var node_list: nullable Object */;
4323 val* var1 /* : nullable Object */;
4324 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4325 val* var2 /* : AImplicitSelfExpr */;
4326 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
4327 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
4328 short int var3 /* : Bool */;
4329 int cltype;
4330 int idtype;
4331 val* var4 /* : AAttrExpr */;
4332 val* var_pexprnode1 /* var pexprnode1: nullable AAttrExpr */;
4333 long var5 /* : Int */;
4334 long var6 /* : Int */;
4335 var_p = p0;
4336 var = NULL;
4337 var_node_list = var;
4338 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4339 var_nodearraylist1 = var1;
4340 var2 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
4341 ((void (*)(val*))(var2->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var2) /* init_aimplicitselfexpr on <var2:AImplicitSelfExpr>*/;
4342 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var2);
4343 var_pexprnode2 = var2;
4344 var_tattridnode3 = var_nodearraylist1;
4345 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
4346 cltype = type_nullable_parser_nodes__TAttrid.color;
4347 idtype = type_nullable_parser_nodes__TAttrid.id;
4348 if(var_tattridnode3 == NULL) {
4349 var3 = 1;
4350 } else {
4351 if(cltype >= var_tattridnode3->type->table_size) {
4352 var3 = 0;
4353 } else {
4354 var3 = var_tattridnode3->type->type_table[cltype] == idtype;
4355 }
4356 }
4357 if (!var3) {
4358 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28657);
4359 exit(1);
4360 }
4361 var4 = NEW_parser_nodes__AAttrExpr(&type_parser_nodes__AAttrExpr);
4362 ((void (*)(val*, val*, val*))(var4->class->vft[COLOR_parser_prod__AAttrExpr__init_aattrexpr]))(var4, var_pexprnode2, var_tattridnode3) /* init_aattrexpr on <var4:AAttrExpr>*/;
4363 CHECK_NEW_parser_nodes__AAttrExpr(var4);
4364 var_pexprnode1 = var4;
4365 var_node_list = var_pexprnode1;
4366 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction806> */
4367 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
4368 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
4369 RET_LABEL:;
4370 }
4371 /* method parser#ReduceAction806#action for (self: Object, Parser) */
4372 void VIRTUAL_parser__ReduceAction806__action(val* self, val* p0) {
4373 parser__ReduceAction806__action(self, p0);
4374 RET_LABEL:;
4375 }
4376 /* method parser#ReduceAction807#action for (self: ReduceAction807, Parser) */
4377 void parser__ReduceAction807__action(val* self, val* p0) {
4378 val* var_p /* var p: Parser */;
4379 val* var /* : null */;
4380 val* var_node_list /* var node_list: nullable Object */;
4381 val* var1 /* : nullable Object */;
4382 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4383 val* var2 /* : nullable Object */;
4384 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4385 val* var3 /* : nullable Object */;
4386 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4387 val* var4 /* : nullable Object */;
4388 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4389 val* var5 /* : nullable Object */;
4390 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4391 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
4392 short int var6 /* : Bool */;
4393 int cltype;
4394 int idtype;
4395 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
4396 short int var7 /* : Bool */;
4397 int cltype8;
4398 int idtype9;
4399 val* var10 /* : AAttrExpr */;
4400 val* var_pexprnode1 /* var pexprnode1: nullable AAttrExpr */;
4401 long var11 /* : Int */;
4402 long var12 /* : Int */;
4403 var_p = p0;
4404 var = NULL;
4405 var_node_list = var;
4406 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4407 var_nodearraylist5 = var1;
4408 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4409 var_nodearraylist4 = var2;
4410 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4411 var_nodearraylist3 = var3;
4412 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4413 var_nodearraylist2 = var4;
4414 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4415 var_nodearraylist1 = var5;
4416 var_pexprnode2 = var_nodearraylist1;
4417 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
4418 cltype = type_nullable_parser_nodes__AExpr.color;
4419 idtype = type_nullable_parser_nodes__AExpr.id;
4420 if(var_pexprnode2 == NULL) {
4421 var6 = 1;
4422 } else {
4423 if(cltype >= var_pexprnode2->type->table_size) {
4424 var6 = 0;
4425 } else {
4426 var6 = var_pexprnode2->type->type_table[cltype] == idtype;
4427 }
4428 }
4429 if (!var6) {
4430 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28677);
4431 exit(1);
4432 }
4433 var_tattridnode3 = var_nodearraylist5;
4434 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
4435 cltype8 = type_nullable_parser_nodes__TAttrid.color;
4436 idtype9 = type_nullable_parser_nodes__TAttrid.id;
4437 if(var_tattridnode3 == NULL) {
4438 var7 = 1;
4439 } else {
4440 if(cltype8 >= var_tattridnode3->type->table_size) {
4441 var7 = 0;
4442 } else {
4443 var7 = var_tattridnode3->type->type_table[cltype8] == idtype9;
4444 }
4445 }
4446 if (!var7) {
4447 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28679);
4448 exit(1);
4449 }
4450 var10 = NEW_parser_nodes__AAttrExpr(&type_parser_nodes__AAttrExpr);
4451 ((void (*)(val*, val*, val*))(var10->class->vft[COLOR_parser_prod__AAttrExpr__init_aattrexpr]))(var10, var_pexprnode2, var_tattridnode3) /* init_aattrexpr on <var10:AAttrExpr>*/;
4452 CHECK_NEW_parser_nodes__AAttrExpr(var10);
4453 var_pexprnode1 = var10;
4454 var_node_list = var_pexprnode1;
4455 var11 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction807> */
4456 var12 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var11) /* go_to on <var_p:Parser>*/;
4457 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var12, var_node_list) /* push on <var_p:Parser>*/;
4458 RET_LABEL:;
4459 }
4460 /* method parser#ReduceAction807#action for (self: Object, Parser) */
4461 void VIRTUAL_parser__ReduceAction807__action(val* self, val* p0) {
4462 parser__ReduceAction807__action(self, p0);
4463 RET_LABEL:;
4464 }
4465 /* method parser#ReduceAction808#action for (self: ReduceAction808, Parser) */
4466 void parser__ReduceAction808__action(val* self, val* p0) {
4467 val* var_p /* var p: Parser */;
4468 val* var /* : null */;
4469 val* var_node_list /* var node_list: nullable Object */;
4470 val* var1 /* : nullable Object */;
4471 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4472 val* var2 /* : nullable Object */;
4473 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4474 val* var3 /* : nullable Object */;
4475 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4476 val* var4 /* : nullable Object */;
4477 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4478 val* var5 /* : nullable Object */;
4479 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4480 val* var6 /* : nullable Object */;
4481 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4482 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
4483 short int var7 /* : Bool */;
4484 int cltype;
4485 int idtype;
4486 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
4487 short int var8 /* : Bool */;
4488 int cltype9;
4489 int idtype10;
4490 val* var11 /* : AAttrExpr */;
4491 val* var_pexprnode1 /* var pexprnode1: nullable AAttrExpr */;
4492 long var12 /* : Int */;
4493 long var13 /* : Int */;
4494 var_p = p0;
4495 var = NULL;
4496 var_node_list = var;
4497 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4498 var_nodearraylist6 = var1;
4499 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4500 var_nodearraylist5 = var2;
4501 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4502 var_nodearraylist4 = var3;
4503 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4504 var_nodearraylist3 = var4;
4505 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4506 var_nodearraylist2 = var5;
4507 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4508 var_nodearraylist1 = var6;
4509 var_pexprnode2 = var_nodearraylist1;
4510 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
4511 cltype = type_nullable_parser_nodes__AExpr.color;
4512 idtype = type_nullable_parser_nodes__AExpr.id;
4513 if(var_pexprnode2 == NULL) {
4514 var7 = 1;
4515 } else {
4516 if(cltype >= var_pexprnode2->type->table_size) {
4517 var7 = 0;
4518 } else {
4519 var7 = var_pexprnode2->type->type_table[cltype] == idtype;
4520 }
4521 }
4522 if (!var7) {
4523 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28700);
4524 exit(1);
4525 }
4526 var_tattridnode3 = var_nodearraylist6;
4527 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
4528 cltype9 = type_nullable_parser_nodes__TAttrid.color;
4529 idtype10 = type_nullable_parser_nodes__TAttrid.id;
4530 if(var_tattridnode3 == NULL) {
4531 var8 = 1;
4532 } else {
4533 if(cltype9 >= var_tattridnode3->type->table_size) {
4534 var8 = 0;
4535 } else {
4536 var8 = var_tattridnode3->type->type_table[cltype9] == idtype10;
4537 }
4538 }
4539 if (!var8) {
4540 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28702);
4541 exit(1);
4542 }
4543 var11 = NEW_parser_nodes__AAttrExpr(&type_parser_nodes__AAttrExpr);
4544 ((void (*)(val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AAttrExpr__init_aattrexpr]))(var11, var_pexprnode2, var_tattridnode3) /* init_aattrexpr on <var11:AAttrExpr>*/;
4545 CHECK_NEW_parser_nodes__AAttrExpr(var11);
4546 var_pexprnode1 = var11;
4547 var_node_list = var_pexprnode1;
4548 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction808> */
4549 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
4550 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
4551 RET_LABEL:;
4552 }
4553 /* method parser#ReduceAction808#action for (self: Object, Parser) */
4554 void VIRTUAL_parser__ReduceAction808__action(val* self, val* p0) {
4555 parser__ReduceAction808__action(self, p0);
4556 RET_LABEL:;
4557 }
4558 /* method parser#ReduceAction810#action for (self: ReduceAction810, Parser) */
4559 void parser__ReduceAction810__action(val* self, val* p0) {
4560 val* var_p /* var p: Parser */;
4561 val* var /* : null */;
4562 val* var_node_list /* var node_list: nullable Object */;
4563 val* var1 /* : nullable Object */;
4564 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4565 val* var2 /* : nullable Object */;
4566 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4567 val* var3 /* : AImplicitSelfExpr */;
4568 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
4569 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
4570 short int var4 /* : Bool */;
4571 int cltype;
4572 int idtype;
4573 val* var5 /* : AAttrExpr */;
4574 val* var_pexprnode1 /* var pexprnode1: nullable AAttrExpr */;
4575 long var6 /* : Int */;
4576 long var7 /* : Int */;
4577 var_p = p0;
4578 var = NULL;
4579 var_node_list = var;
4580 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4581 var_nodearraylist2 = var1;
4582 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4583 var_nodearraylist1 = var2;
4584 var3 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
4585 ((void (*)(val*))(var3->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var3) /* init_aimplicitselfexpr on <var3:AImplicitSelfExpr>*/;
4586 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var3);
4587 var_pexprnode2 = var3;
4588 var_tattridnode3 = var_nodearraylist2;
4589 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
4590 cltype = type_nullable_parser_nodes__TAttrid.color;
4591 idtype = type_nullable_parser_nodes__TAttrid.id;
4592 if(var_tattridnode3 == NULL) {
4593 var4 = 1;
4594 } else {
4595 if(cltype >= var_tattridnode3->type->table_size) {
4596 var4 = 0;
4597 } else {
4598 var4 = var_tattridnode3->type->type_table[cltype] == idtype;
4599 }
4600 }
4601 if (!var4) {
4602 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28720);
4603 exit(1);
4604 }
4605 var5 = NEW_parser_nodes__AAttrExpr(&type_parser_nodes__AAttrExpr);
4606 ((void (*)(val*, val*, val*))(var5->class->vft[COLOR_parser_prod__AAttrExpr__init_aattrexpr]))(var5, var_pexprnode2, var_tattridnode3) /* init_aattrexpr on <var5:AAttrExpr>*/;
4607 CHECK_NEW_parser_nodes__AAttrExpr(var5);
4608 var_pexprnode1 = var5;
4609 var_node_list = var_pexprnode1;
4610 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction810> */
4611 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
4612 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
4613 RET_LABEL:;
4614 }
4615 /* method parser#ReduceAction810#action for (self: Object, Parser) */
4616 void VIRTUAL_parser__ReduceAction810__action(val* self, val* p0) {
4617 parser__ReduceAction810__action(self, p0);
4618 RET_LABEL:;
4619 }
4620 /* method parser#ReduceAction811#action for (self: ReduceAction811, Parser) */
4621 void parser__ReduceAction811__action(val* self, val* p0) {
4622 val* var_p /* var p: Parser */;
4623 val* var /* : null */;
4624 val* var_node_list /* var node_list: nullable Object */;
4625 val* var1 /* : nullable Object */;
4626 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4627 val* var2 /* : nullable Object */;
4628 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4629 val* var3 /* : nullable Object */;
4630 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4631 val* var4 /* : AImplicitSelfExpr */;
4632 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
4633 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
4634 short int var5 /* : Bool */;
4635 int cltype;
4636 int idtype;
4637 val* var6 /* : AAttrExpr */;
4638 val* var_pexprnode1 /* var pexprnode1: nullable AAttrExpr */;
4639 long var7 /* : Int */;
4640 long var8 /* : Int */;
4641 var_p = p0;
4642 var = NULL;
4643 var_node_list = var;
4644 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4645 var_nodearraylist3 = var1;
4646 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4647 var_nodearraylist2 = var2;
4648 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4649 var_nodearraylist1 = var3;
4650 var4 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
4651 ((void (*)(val*))(var4->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var4) /* init_aimplicitselfexpr on <var4:AImplicitSelfExpr>*/;
4652 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var4);
4653 var_pexprnode2 = var4;
4654 var_tattridnode3 = var_nodearraylist3;
4655 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
4656 cltype = type_nullable_parser_nodes__TAttrid.color;
4657 idtype = type_nullable_parser_nodes__TAttrid.id;
4658 if(var_tattridnode3 == NULL) {
4659 var5 = 1;
4660 } else {
4661 if(cltype >= var_tattridnode3->type->table_size) {
4662 var5 = 0;
4663 } else {
4664 var5 = var_tattridnode3->type->type_table[cltype] == idtype;
4665 }
4666 }
4667 if (!var5) {
4668 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28739);
4669 exit(1);
4670 }
4671 var6 = NEW_parser_nodes__AAttrExpr(&type_parser_nodes__AAttrExpr);
4672 ((void (*)(val*, val*, val*))(var6->class->vft[COLOR_parser_prod__AAttrExpr__init_aattrexpr]))(var6, var_pexprnode2, var_tattridnode3) /* init_aattrexpr on <var6:AAttrExpr>*/;
4673 CHECK_NEW_parser_nodes__AAttrExpr(var6);
4674 var_pexprnode1 = var6;
4675 var_node_list = var_pexprnode1;
4676 var7 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction811> */
4677 var8 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var7) /* go_to on <var_p:Parser>*/;
4678 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var8, var_node_list) /* push on <var_p:Parser>*/;
4679 RET_LABEL:;
4680 }
4681 /* method parser#ReduceAction811#action for (self: Object, Parser) */
4682 void VIRTUAL_parser__ReduceAction811__action(val* self, val* p0) {
4683 parser__ReduceAction811__action(self, p0);
4684 RET_LABEL:;
4685 }
4686 /* method parser#ReduceAction827#action for (self: ReduceAction827, Parser) */
4687 void parser__ReduceAction827__action(val* self, val* p0) {
4688 val* var_p /* var p: Parser */;
4689 val* var /* : null */;
4690 val* var_node_list /* var node_list: nullable Object */;
4691 val* var1 /* : nullable Object */;
4692 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4693 val* var2 /* : nullable Object */;
4694 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4695 val* var3 /* : Array[Object] */;
4696 val* var_listnode4 /* var listnode4: Array[Object] */;
4697 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
4698 short int var4 /* : Bool */;
4699 int cltype;
4700 int idtype;
4701 val* var_pexprsnode3 /* var pexprsnode3: nullable Object */;
4702 short int var5 /* : Bool */;
4703 int cltype6;
4704 int idtype7;
4705 val* var8 /* : ABraExpr */;
4706 val* var_pexprnode1 /* var pexprnode1: nullable ABraExpr */;
4707 long var9 /* : Int */;
4708 long var10 /* : Int */;
4709 var_p = p0;
4710 var = NULL;
4711 var_node_list = var;
4712 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4713 var_nodearraylist2 = var1;
4714 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4715 var_nodearraylist1 = var2;
4716 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
4717 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
4718 CHECK_NEW_array__Array(var3);
4719 var_listnode4 = var3;
4720 var_pexprnode2 = var_nodearraylist1;
4721 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
4722 cltype = type_nullable_parser_nodes__AExpr.color;
4723 idtype = type_nullable_parser_nodes__AExpr.id;
4724 if(var_pexprnode2 == NULL) {
4725 var4 = 1;
4726 } else {
4727 if(cltype >= var_pexprnode2->type->table_size) {
4728 var4 = 0;
4729 } else {
4730 var4 = var_pexprnode2->type->type_table[cltype] == idtype;
4731 }
4732 }
4733 if (!var4) {
4734 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28757);
4735 exit(1);
4736 }
4737 var_pexprsnode3 = var_nodearraylist2;
4738 /* <var_pexprsnode3:nullable Object> isa nullable AExprs */
4739 cltype6 = type_nullable_parser_nodes__AExprs.color;
4740 idtype7 = type_nullable_parser_nodes__AExprs.id;
4741 if(var_pexprsnode3 == NULL) {
4742 var5 = 1;
4743 } else {
4744 if(cltype6 >= var_pexprsnode3->type->table_size) {
4745 var5 = 0;
4746 } else {
4747 var5 = var_pexprsnode3->type->type_table[cltype6] == idtype7;
4748 }
4749 }
4750 if (!var5) {
4751 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28759);
4752 exit(1);
4753 }
4754 var8 = NEW_parser_nodes__ABraExpr(&type_parser_nodes__ABraExpr);
4755 ((void (*)(val*, val*, val*, val*))(var8->class->vft[COLOR_parser_prod__ABraExpr__init_abraexpr]))(var8, var_pexprnode2, var_pexprsnode3, var_listnode4) /* init_abraexpr on <var8:ABraExpr>*/;
4756 CHECK_NEW_parser_nodes__ABraExpr(var8);
4757 var_pexprnode1 = var8;
4758 var_node_list = var_pexprnode1;
4759 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction827> */
4760 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
4761 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
4762 RET_LABEL:;
4763 }
4764 /* method parser#ReduceAction827#action for (self: Object, Parser) */
4765 void VIRTUAL_parser__ReduceAction827__action(val* self, val* p0) {
4766 parser__ReduceAction827__action(self, p0);
4767 RET_LABEL:;
4768 }
4769 /* method parser#ReduceAction828#action for (self: ReduceAction828, Parser) */
4770 void parser__ReduceAction828__action(val* self, val* p0) {
4771 val* var_p /* var p: Parser */;
4772 val* var /* : null */;
4773 val* var_node_list /* var node_list: nullable Object */;
4774 val* var1 /* : nullable Object */;
4775 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
4776 val* var2 /* : nullable Object */;
4777 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4778 val* var3 /* : nullable Object */;
4779 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4780 val* var4 /* : nullable Object */;
4781 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4782 val* var5 /* : nullable Object */;
4783 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4784 val* var6 /* : nullable Object */;
4785 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4786 val* var7 /* : nullable Object */;
4787 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4788 val* var_tkwnewnode2 /* var tkwnewnode2: nullable Object */;
4789 short int var8 /* : Bool */;
4790 int cltype;
4791 int idtype;
4792 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
4793 short int var9 /* : Bool */;
4794 int cltype10;
4795 int idtype11;
4796 val* var_tidnode4 /* var tidnode4: nullable Object */;
4797 short int var12 /* : Bool */;
4798 int cltype13;
4799 int idtype14;
4800 val* var_pexprsnode5 /* var pexprsnode5: nullable Object */;
4801 short int var15 /* : Bool */;
4802 int cltype16;
4803 int idtype17;
4804 val* var18 /* : ANewExpr */;
4805 val* var_pexprnode1 /* var pexprnode1: nullable ANewExpr */;
4806 long var19 /* : Int */;
4807 long var20 /* : Int */;
4808 var_p = p0;
4809 var = NULL;
4810 var_node_list = var;
4811 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4812 var_nodearraylist7 = var1;
4813 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4814 var_nodearraylist6 = var2;
4815 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4816 var_nodearraylist5 = var3;
4817 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4818 var_nodearraylist4 = var4;
4819 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4820 var_nodearraylist3 = var5;
4821 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4822 var_nodearraylist2 = var6;
4823 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4824 var_nodearraylist1 = var7;
4825 var_tkwnewnode2 = var_nodearraylist1;
4826 /* <var_tkwnewnode2:nullable Object> isa nullable TKwnew */
4827 cltype = type_nullable_parser_nodes__TKwnew.color;
4828 idtype = type_nullable_parser_nodes__TKwnew.id;
4829 if(var_tkwnewnode2 == NULL) {
4830 var8 = 1;
4831 } else {
4832 if(cltype >= var_tkwnewnode2->type->table_size) {
4833 var8 = 0;
4834 } else {
4835 var8 = var_tkwnewnode2->type->type_table[cltype] == idtype;
4836 }
4837 }
4838 if (!var8) {
4839 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28782);
4840 exit(1);
4841 }
4842 var_ptypenode3 = var_nodearraylist3;
4843 /* <var_ptypenode3:nullable Object> isa nullable AType */
4844 cltype10 = type_nullable_parser_nodes__AType.color;
4845 idtype11 = type_nullable_parser_nodes__AType.id;
4846 if(var_ptypenode3 == NULL) {
4847 var9 = 1;
4848 } else {
4849 if(cltype10 >= var_ptypenode3->type->table_size) {
4850 var9 = 0;
4851 } else {
4852 var9 = var_ptypenode3->type->type_table[cltype10] == idtype11;
4853 }
4854 }
4855 if (!var9) {
4856 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28784);
4857 exit(1);
4858 }
4859 var_tidnode4 = var_nodearraylist6;
4860 /* <var_tidnode4:nullable Object> isa nullable TId */
4861 cltype13 = type_nullable_parser_nodes__TId.color;
4862 idtype14 = type_nullable_parser_nodes__TId.id;
4863 if(var_tidnode4 == NULL) {
4864 var12 = 1;
4865 } else {
4866 if(cltype13 >= var_tidnode4->type->table_size) {
4867 var12 = 0;
4868 } else {
4869 var12 = var_tidnode4->type->type_table[cltype13] == idtype14;
4870 }
4871 }
4872 if (!var12) {
4873 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28786);
4874 exit(1);
4875 }
4876 var_pexprsnode5 = var_nodearraylist7;
4877 /* <var_pexprsnode5:nullable Object> isa nullable AExprs */
4878 cltype16 = type_nullable_parser_nodes__AExprs.color;
4879 idtype17 = type_nullable_parser_nodes__AExprs.id;
4880 if(var_pexprsnode5 == NULL) {
4881 var15 = 1;
4882 } else {
4883 if(cltype16 >= var_pexprsnode5->type->table_size) {
4884 var15 = 0;
4885 } else {
4886 var15 = var_pexprsnode5->type->type_table[cltype16] == idtype17;
4887 }
4888 }
4889 if (!var15) {
4890 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28788);
4891 exit(1);
4892 }
4893 var18 = NEW_parser_nodes__ANewExpr(&type_parser_nodes__ANewExpr);
4894 ((void (*)(val*, val*, val*, val*, val*))(var18->class->vft[COLOR_parser_prod__ANewExpr__init_anewexpr]))(var18, var_tkwnewnode2, var_ptypenode3, var_tidnode4, var_pexprsnode5) /* init_anewexpr on <var18:ANewExpr>*/;
4895 CHECK_NEW_parser_nodes__ANewExpr(var18);
4896 var_pexprnode1 = var18;
4897 var_node_list = var_pexprnode1;
4898 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction828> */
4899 var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
4900 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
4901 RET_LABEL:;
4902 }
4903 /* method parser#ReduceAction828#action for (self: Object, Parser) */
4904 void VIRTUAL_parser__ReduceAction828__action(val* self, val* p0) {
4905 parser__ReduceAction828__action(self, p0);
4906 RET_LABEL:;
4907 }
4908 /* method parser#ReduceAction829#action for (self: ReduceAction829, Parser) */
4909 void parser__ReduceAction829__action(val* self, val* p0) {
4910 val* var_p /* var p: Parser */;
4911 val* var /* : null */;
4912 val* var_node_list /* var node_list: nullable Object */;
4913 val* var1 /* : nullable Object */;
4914 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
4915 val* var2 /* : nullable Object */;
4916 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
4917 val* var3 /* : nullable Object */;
4918 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4919 val* var4 /* : nullable Object */;
4920 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4921 val* var5 /* : nullable Object */;
4922 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4923 val* var6 /* : nullable Object */;
4924 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4925 val* var7 /* : nullable Object */;
4926 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4927 val* var8 /* : nullable Object */;
4928 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4929 val* var_tkwnewnode2 /* var tkwnewnode2: nullable Object */;
4930 short int var9 /* : Bool */;
4931 int cltype;
4932 int idtype;
4933 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
4934 short int var10 /* : Bool */;
4935 int cltype11;
4936 int idtype12;
4937 val* var_tidnode4 /* var tidnode4: nullable Object */;
4938 short int var13 /* : Bool */;
4939 int cltype14;
4940 int idtype15;
4941 val* var_pexprsnode5 /* var pexprsnode5: nullable Object */;
4942 short int var16 /* : Bool */;
4943 int cltype17;
4944 int idtype18;
4945 val* var19 /* : ANewExpr */;
4946 val* var_pexprnode1 /* var pexprnode1: nullable ANewExpr */;
4947 long var20 /* : Int */;
4948 long var21 /* : Int */;
4949 var_p = p0;
4950 var = NULL;
4951 var_node_list = var;
4952 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4953 var_nodearraylist8 = var1;
4954 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4955 var_nodearraylist7 = var2;
4956 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4957 var_nodearraylist6 = var3;
4958 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4959 var_nodearraylist5 = var4;
4960 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4961 var_nodearraylist4 = var5;
4962 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4963 var_nodearraylist3 = var6;
4964 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4965 var_nodearraylist2 = var7;
4966 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4967 var_nodearraylist1 = var8;
4968 var_tkwnewnode2 = var_nodearraylist1;
4969 /* <var_tkwnewnode2:nullable Object> isa nullable TKwnew */
4970 cltype = type_nullable_parser_nodes__TKwnew.color;
4971 idtype = type_nullable_parser_nodes__TKwnew.id;
4972 if(var_tkwnewnode2 == NULL) {
4973 var9 = 1;
4974 } else {
4975 if(cltype >= var_tkwnewnode2->type->table_size) {
4976 var9 = 0;
4977 } else {
4978 var9 = var_tkwnewnode2->type->type_table[cltype] == idtype;
4979 }
4980 }
4981 if (!var9) {
4982 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28813);
4983 exit(1);
4984 }
4985 var_ptypenode3 = var_nodearraylist3;
4986 /* <var_ptypenode3:nullable Object> isa nullable AType */
4987 cltype11 = type_nullable_parser_nodes__AType.color;
4988 idtype12 = type_nullable_parser_nodes__AType.id;
4989 if(var_ptypenode3 == NULL) {
4990 var10 = 1;
4991 } else {
4992 if(cltype11 >= var_ptypenode3->type->table_size) {
4993 var10 = 0;
4994 } else {
4995 var10 = var_ptypenode3->type->type_table[cltype11] == idtype12;
4996 }
4997 }
4998 if (!var10) {
4999 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28815);
5000 exit(1);
5001 }
5002 var_tidnode4 = var_nodearraylist7;
5003 /* <var_tidnode4:nullable Object> isa nullable TId */
5004 cltype14 = type_nullable_parser_nodes__TId.color;
5005 idtype15 = type_nullable_parser_nodes__TId.id;
5006 if(var_tidnode4 == NULL) {
5007 var13 = 1;
5008 } else {
5009 if(cltype14 >= var_tidnode4->type->table_size) {
5010 var13 = 0;
5011 } else {
5012 var13 = var_tidnode4->type->type_table[cltype14] == idtype15;
5013 }
5014 }
5015 if (!var13) {
5016 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28817);
5017 exit(1);
5018 }
5019 var_pexprsnode5 = var_nodearraylist8;
5020 /* <var_pexprsnode5:nullable Object> isa nullable AExprs */
5021 cltype17 = type_nullable_parser_nodes__AExprs.color;
5022 idtype18 = type_nullable_parser_nodes__AExprs.id;
5023 if(var_pexprsnode5 == NULL) {
5024 var16 = 1;
5025 } else {
5026 if(cltype17 >= var_pexprsnode5->type->table_size) {
5027 var16 = 0;
5028 } else {
5029 var16 = var_pexprsnode5->type->type_table[cltype17] == idtype18;
5030 }
5031 }
5032 if (!var16) {
5033 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28819);
5034 exit(1);
5035 }
5036 var19 = NEW_parser_nodes__ANewExpr(&type_parser_nodes__ANewExpr);
5037 ((void (*)(val*, val*, val*, val*, val*))(var19->class->vft[COLOR_parser_prod__ANewExpr__init_anewexpr]))(var19, var_tkwnewnode2, var_ptypenode3, var_tidnode4, var_pexprsnode5) /* init_anewexpr on <var19:ANewExpr>*/;
5038 CHECK_NEW_parser_nodes__ANewExpr(var19);
5039 var_pexprnode1 = var19;
5040 var_node_list = var_pexprnode1;
5041 var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction829> */
5042 var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on <var_p:Parser>*/;
5043 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on <var_p:Parser>*/;
5044 RET_LABEL:;
5045 }
5046 /* method parser#ReduceAction829#action for (self: Object, Parser) */
5047 void VIRTUAL_parser__ReduceAction829__action(val* self, val* p0) {
5048 parser__ReduceAction829__action(self, p0);
5049 RET_LABEL:;
5050 }
5051 /* method parser#ReduceAction830#action for (self: ReduceAction830, Parser) */
5052 void parser__ReduceAction830__action(val* self, val* p0) {
5053 val* var_p /* var p: Parser */;
5054 val* var /* : null */;
5055 val* var_node_list /* var node_list: nullable Object */;
5056 val* var1 /* : nullable Object */;
5057 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
5058 val* var2 /* : nullable Object */;
5059 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
5060 val* var3 /* : nullable Object */;
5061 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
5062 val* var4 /* : nullable Object */;
5063 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5064 val* var5 /* : nullable Object */;
5065 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5066 val* var6 /* : nullable Object */;
5067 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5068 val* var7 /* : nullable Object */;
5069 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5070 val* var8 /* : nullable Object */;
5071 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5072 val* var9 /* : nullable Object */;
5073 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5074 val* var_tkwnewnode2 /* var tkwnewnode2: nullable Object */;
5075 short int var10 /* : Bool */;
5076 int cltype;
5077 int idtype;
5078 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
5079 short int var11 /* : Bool */;
5080 int cltype12;
5081 int idtype13;
5082 val* var_tidnode4 /* var tidnode4: nullable Object */;
5083 short int var14 /* : Bool */;
5084 int cltype15;
5085 int idtype16;
5086 val* var_pexprsnode5 /* var pexprsnode5: nullable Object */;
5087 short int var17 /* : Bool */;
5088 int cltype18;
5089 int idtype19;
5090 val* var20 /* : ANewExpr */;
5091 val* var_pexprnode1 /* var pexprnode1: nullable ANewExpr */;
5092 long var21 /* : Int */;
5093 long var22 /* : Int */;
5094 var_p = p0;
5095 var = NULL;
5096 var_node_list = var;
5097 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5098 var_nodearraylist9 = var1;
5099 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5100 var_nodearraylist8 = var2;
5101 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5102 var_nodearraylist7 = var3;
5103 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5104 var_nodearraylist6 = var4;
5105 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5106 var_nodearraylist5 = var5;
5107 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5108 var_nodearraylist4 = var6;
5109 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5110 var_nodearraylist3 = var7;
5111 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5112 var_nodearraylist2 = var8;
5113 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5114 var_nodearraylist1 = var9;
5115 var_tkwnewnode2 = var_nodearraylist1;
5116 /* <var_tkwnewnode2:nullable Object> isa nullable TKwnew */
5117 cltype = type_nullable_parser_nodes__TKwnew.color;
5118 idtype = type_nullable_parser_nodes__TKwnew.id;
5119 if(var_tkwnewnode2 == NULL) {
5120 var10 = 1;
5121 } else {
5122 if(cltype >= var_tkwnewnode2->type->table_size) {
5123 var10 = 0;
5124 } else {
5125 var10 = var_tkwnewnode2->type->type_table[cltype] == idtype;
5126 }
5127 }
5128 if (!var10) {
5129 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28845);
5130 exit(1);
5131 }
5132 var_ptypenode3 = var_nodearraylist3;
5133 /* <var_ptypenode3:nullable Object> isa nullable AType */
5134 cltype12 = type_nullable_parser_nodes__AType.color;
5135 idtype13 = type_nullable_parser_nodes__AType.id;
5136 if(var_ptypenode3 == NULL) {
5137 var11 = 1;
5138 } else {
5139 if(cltype12 >= var_ptypenode3->type->table_size) {
5140 var11 = 0;
5141 } else {
5142 var11 = var_ptypenode3->type->type_table[cltype12] == idtype13;
5143 }
5144 }
5145 if (!var11) {
5146 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28847);
5147 exit(1);
5148 }
5149 var_tidnode4 = var_nodearraylist8;
5150 /* <var_tidnode4:nullable Object> isa nullable TId */
5151 cltype15 = type_nullable_parser_nodes__TId.color;
5152 idtype16 = type_nullable_parser_nodes__TId.id;
5153 if(var_tidnode4 == NULL) {
5154 var14 = 1;
5155 } else {
5156 if(cltype15 >= var_tidnode4->type->table_size) {
5157 var14 = 0;
5158 } else {
5159 var14 = var_tidnode4->type->type_table[cltype15] == idtype16;
5160 }
5161 }
5162 if (!var14) {
5163 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28849);
5164 exit(1);
5165 }
5166 var_pexprsnode5 = var_nodearraylist9;
5167 /* <var_pexprsnode5:nullable Object> isa nullable AExprs */
5168 cltype18 = type_nullable_parser_nodes__AExprs.color;
5169 idtype19 = type_nullable_parser_nodes__AExprs.id;
5170 if(var_pexprsnode5 == NULL) {
5171 var17 = 1;
5172 } else {
5173 if(cltype18 >= var_pexprsnode5->type->table_size) {
5174 var17 = 0;
5175 } else {
5176 var17 = var_pexprsnode5->type->type_table[cltype18] == idtype19;
5177 }
5178 }
5179 if (!var17) {
5180 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28851);
5181 exit(1);
5182 }
5183 var20 = NEW_parser_nodes__ANewExpr(&type_parser_nodes__ANewExpr);
5184 ((void (*)(val*, val*, val*, val*, val*))(var20->class->vft[COLOR_parser_prod__ANewExpr__init_anewexpr]))(var20, var_tkwnewnode2, var_ptypenode3, var_tidnode4, var_pexprsnode5) /* init_anewexpr on <var20:ANewExpr>*/;
5185 CHECK_NEW_parser_nodes__ANewExpr(var20);
5186 var_pexprnode1 = var20;
5187 var_node_list = var_pexprnode1;
5188 var21 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction830> */
5189 var22 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var21) /* go_to on <var_p:Parser>*/;
5190 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var22, var_node_list) /* push on <var_p:Parser>*/;
5191 RET_LABEL:;
5192 }
5193 /* method parser#ReduceAction830#action for (self: Object, Parser) */
5194 void VIRTUAL_parser__ReduceAction830__action(val* self, val* p0) {
5195 parser__ReduceAction830__action(self, p0);
5196 RET_LABEL:;
5197 }
5198 /* method parser#ReduceAction832#action for (self: ReduceAction832, Parser) */
5199 void parser__ReduceAction832__action(val* self, val* p0) {
5200 val* var_p /* var p: Parser */;
5201 val* var /* : null */;
5202 val* var_node_list /* var node_list: nullable Object */;
5203 val* var1 /* : nullable Object */;
5204 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
5205 val* var2 /* : nullable Object */;
5206 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
5207 val* var3 /* : nullable Object */;
5208 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
5209 val* var4 /* : nullable Object */;
5210 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5211 val* var5 /* : nullable Object */;
5212 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5213 val* var6 /* : nullable Object */;
5214 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5215 val* var7 /* : nullable Object */;
5216 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5217 val* var8 /* : nullable Object */;
5218 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5219 val* var9 /* : nullable Object */;
5220 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5221 val* var_tobranode2 /* var tobranode2: nullable Object */;
5222 short int var10 /* : Bool */;
5223 int cltype;
5224 int idtype;
5225 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
5226 short int var11 /* : Bool */;
5227 int cltype12;
5228 int idtype13;
5229 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
5230 short int var14 /* : Bool */;
5231 int cltype15;
5232 int idtype16;
5233 val* var_tcbranode5 /* var tcbranode5: nullable Object */;
5234 short int var17 /* : Bool */;
5235 int cltype18;
5236 int idtype19;
5237 val* var20 /* : ACrangeExpr */;
5238 val* var21 /* : null */;
5239 val* var_pexprnode1 /* var pexprnode1: nullable ACrangeExpr */;
5240 long var22 /* : Int */;
5241 long var23 /* : Int */;
5242 var_p = p0;
5243 var = NULL;
5244 var_node_list = var;
5245 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5246 var_nodearraylist9 = var1;
5247 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5248 var_nodearraylist8 = var2;
5249 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5250 var_nodearraylist7 = var3;
5251 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5252 var_nodearraylist6 = var4;
5253 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5254 var_nodearraylist5 = var5;
5255 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5256 var_nodearraylist4 = var6;
5257 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5258 var_nodearraylist3 = var7;
5259 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5260 var_nodearraylist2 = var8;
5261 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5262 var_nodearraylist1 = var9;
5263 var_tobranode2 = var_nodearraylist1;
5264 /* <var_tobranode2:nullable Object> isa nullable TObra */
5265 cltype = type_nullable_parser_nodes__TObra.color;
5266 idtype = type_nullable_parser_nodes__TObra.id;
5267 if(var_tobranode2 == NULL) {
5268 var10 = 1;
5269 } else {
5270 if(cltype >= var_tobranode2->type->table_size) {
5271 var10 = 0;
5272 } else {
5273 var10 = var_tobranode2->type->type_table[cltype] == idtype;
5274 }
5275 }
5276 if (!var10) {
5277 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28877);
5278 exit(1);
5279 }
5280 var_pexprnode3 = var_nodearraylist3;
5281 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
5282 cltype12 = type_nullable_parser_nodes__AExpr.color;
5283 idtype13 = type_nullable_parser_nodes__AExpr.id;
5284 if(var_pexprnode3 == NULL) {
5285 var11 = 1;
5286 } else {
5287 if(cltype12 >= var_pexprnode3->type->table_size) {
5288 var11 = 0;
5289 } else {
5290 var11 = var_pexprnode3->type->type_table[cltype12] == idtype13;
5291 }
5292 }
5293 if (!var11) {
5294 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28879);
5295 exit(1);
5296 }
5297 var_pexprnode4 = var_nodearraylist7;
5298 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
5299 cltype15 = type_nullable_parser_nodes__AExpr.color;
5300 idtype16 = type_nullable_parser_nodes__AExpr.id;
5301 if(var_pexprnode4 == NULL) {
5302 var14 = 1;
5303 } else {
5304 if(cltype15 >= var_pexprnode4->type->table_size) {
5305 var14 = 0;
5306 } else {
5307 var14 = var_pexprnode4->type->type_table[cltype15] == idtype16;
5308 }
5309 }
5310 if (!var14) {
5311 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28881);
5312 exit(1);
5313 }
5314 var_tcbranode5 = var_nodearraylist9;
5315 /* <var_tcbranode5:nullable Object> isa nullable TCbra */
5316 cltype18 = type_nullable_parser_nodes__TCbra.color;
5317 idtype19 = type_nullable_parser_nodes__TCbra.id;
5318 if(var_tcbranode5 == NULL) {
5319 var17 = 1;
5320 } else {
5321 if(cltype18 >= var_tcbranode5->type->table_size) {
5322 var17 = 0;
5323 } else {
5324 var17 = var_tcbranode5->type->type_table[cltype18] == idtype19;
5325 }
5326 }
5327 if (!var17) {
5328 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28883);
5329 exit(1);
5330 }
5331 var20 = NEW_parser_nodes__ACrangeExpr(&type_parser_nodes__ACrangeExpr);
5332 var21 = NULL;
5333 ((void (*)(val*, val*, val*, val*, val*, val*))(var20->class->vft[COLOR_parser_prod__ACrangeExpr__init_acrangeexpr]))(var20, var_tobranode2, var_pexprnode3, var_pexprnode4, var_tcbranode5, var21) /* init_acrangeexpr on <var20:ACrangeExpr>*/;
5334 CHECK_NEW_parser_nodes__ACrangeExpr(var20);
5335 var_pexprnode1 = var20;
5336 var_node_list = var_pexprnode1;
5337 var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction832> */
5338 var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
5339 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
5340 RET_LABEL:;
5341 }
5342 /* method parser#ReduceAction832#action for (self: Object, Parser) */
5343 void VIRTUAL_parser__ReduceAction832__action(val* self, val* p0) {
5344 parser__ReduceAction832__action(self, p0);
5345 RET_LABEL:;
5346 }
5347 /* method parser#ReduceAction833#action for (self: ReduceAction833, Parser) */
5348 void parser__ReduceAction833__action(val* self, val* p0) {
5349 val* var_p /* var p: Parser */;
5350 val* var /* : null */;
5351 val* var_node_list /* var node_list: nullable Object */;
5352 val* var1 /* : nullable Object */;
5353 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
5354 val* var2 /* : nullable Object */;
5355 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
5356 val* var3 /* : nullable Object */;
5357 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
5358 val* var4 /* : nullable Object */;
5359 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
5360 val* var5 /* : nullable Object */;
5361 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5362 val* var6 /* : nullable Object */;
5363 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5364 val* var7 /* : nullable Object */;
5365 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5366 val* var8 /* : nullable Object */;
5367 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5368 val* var9 /* : nullable Object */;
5369 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5370 val* var10 /* : nullable Object */;
5371 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5372 val* var_tobranode2 /* var tobranode2: nullable Object */;
5373 short int var11 /* : Bool */;
5374 int cltype;
5375 int idtype;
5376 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
5377 short int var12 /* : Bool */;
5378 int cltype13;
5379 int idtype14;
5380 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
5381 short int var15 /* : Bool */;
5382 int cltype16;
5383 int idtype17;
5384 val* var_tcbranode5 /* var tcbranode5: nullable Object */;
5385 short int var18 /* : Bool */;
5386 int cltype19;
5387 int idtype20;
5388 val* var_pannotationsnode6 /* var pannotationsnode6: nullable Object */;
5389 short int var21 /* : Bool */;
5390 int cltype22;
5391 int idtype23;
5392 val* var24 /* : ACrangeExpr */;
5393 val* var_pexprnode1 /* var pexprnode1: nullable ACrangeExpr */;
5394 long var25 /* : Int */;
5395 long var26 /* : Int */;
5396 var_p = p0;
5397 var = NULL;
5398 var_node_list = var;
5399 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5400 var_nodearraylist10 = var1;
5401 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5402 var_nodearraylist9 = var2;
5403 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5404 var_nodearraylist8 = var3;
5405 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5406 var_nodearraylist7 = var4;
5407 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5408 var_nodearraylist6 = var5;
5409 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5410 var_nodearraylist5 = var6;
5411 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5412 var_nodearraylist4 = var7;
5413 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5414 var_nodearraylist3 = var8;
5415 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5416 var_nodearraylist2 = var9;
5417 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5418 var_nodearraylist1 = var10;
5419 var_tobranode2 = var_nodearraylist1;
5420 /* <var_tobranode2:nullable Object> isa nullable TObra */
5421 cltype = type_nullable_parser_nodes__TObra.color;
5422 idtype = type_nullable_parser_nodes__TObra.id;
5423 if(var_tobranode2 == NULL) {
5424 var11 = 1;
5425 } else {
5426 if(cltype >= var_tobranode2->type->table_size) {
5427 var11 = 0;
5428 } else {
5429 var11 = var_tobranode2->type->type_table[cltype] == idtype;
5430 }
5431 }
5432 if (!var11) {
5433 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28911);
5434 exit(1);
5435 }
5436 var_pexprnode3 = var_nodearraylist3;
5437 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
5438 cltype13 = type_nullable_parser_nodes__AExpr.color;
5439 idtype14 = type_nullable_parser_nodes__AExpr.id;
5440 if(var_pexprnode3 == NULL) {
5441 var12 = 1;
5442 } else {
5443 if(cltype13 >= var_pexprnode3->type->table_size) {
5444 var12 = 0;
5445 } else {
5446 var12 = var_pexprnode3->type->type_table[cltype13] == idtype14;
5447 }
5448 }
5449 if (!var12) {
5450 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28913);
5451 exit(1);
5452 }
5453 var_pexprnode4 = var_nodearraylist7;
5454 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
5455 cltype16 = type_nullable_parser_nodes__AExpr.color;
5456 idtype17 = type_nullable_parser_nodes__AExpr.id;
5457 if(var_pexprnode4 == NULL) {
5458 var15 = 1;
5459 } else {
5460 if(cltype16 >= var_pexprnode4->type->table_size) {
5461 var15 = 0;
5462 } else {
5463 var15 = var_pexprnode4->type->type_table[cltype16] == idtype17;
5464 }
5465 }
5466 if (!var15) {
5467 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28915);
5468 exit(1);
5469 }
5470 var_tcbranode5 = var_nodearraylist9;
5471 /* <var_tcbranode5:nullable Object> isa nullable TCbra */
5472 cltype19 = type_nullable_parser_nodes__TCbra.color;
5473 idtype20 = type_nullable_parser_nodes__TCbra.id;
5474 if(var_tcbranode5 == NULL) {
5475 var18 = 1;
5476 } else {
5477 if(cltype19 >= var_tcbranode5->type->table_size) {
5478 var18 = 0;
5479 } else {
5480 var18 = var_tcbranode5->type->type_table[cltype19] == idtype20;
5481 }
5482 }
5483 if (!var18) {
5484 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28917);
5485 exit(1);
5486 }
5487 var_pannotationsnode6 = var_nodearraylist10;
5488 /* <var_pannotationsnode6:nullable Object> isa nullable AAnnotations */
5489 cltype22 = type_nullable_parser_nodes__AAnnotations.color;
5490 idtype23 = type_nullable_parser_nodes__AAnnotations.id;
5491 if(var_pannotationsnode6 == NULL) {
5492 var21 = 1;
5493 } else {
5494 if(cltype22 >= var_pannotationsnode6->type->table_size) {
5495 var21 = 0;
5496 } else {
5497 var21 = var_pannotationsnode6->type->type_table[cltype22] == idtype23;
5498 }
5499 }
5500 if (!var21) {
5501 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28919);
5502 exit(1);
5503 }
5504 var24 = NEW_parser_nodes__ACrangeExpr(&type_parser_nodes__ACrangeExpr);
5505 ((void (*)(val*, val*, val*, val*, val*, val*))(var24->class->vft[COLOR_parser_prod__ACrangeExpr__init_acrangeexpr]))(var24, var_tobranode2, var_pexprnode3, var_pexprnode4, var_tcbranode5, var_pannotationsnode6) /* init_acrangeexpr on <var24:ACrangeExpr>*/;
5506 CHECK_NEW_parser_nodes__ACrangeExpr(var24);
5507 var_pexprnode1 = var24;
5508 var_node_list = var_pexprnode1;
5509 var25 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction833> */
5510 var26 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var25) /* go_to on <var_p:Parser>*/;
5511 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var26, var_node_list) /* push on <var_p:Parser>*/;
5512 RET_LABEL:;
5513 }
5514 /* method parser#ReduceAction833#action for (self: Object, Parser) */
5515 void VIRTUAL_parser__ReduceAction833__action(val* self, val* p0) {
5516 parser__ReduceAction833__action(self, p0);
5517 RET_LABEL:;
5518 }
5519 /* method parser#ReduceAction834#action for (self: ReduceAction834, Parser) */
5520 void parser__ReduceAction834__action(val* self, val* p0) {
5521 val* var_p /* var p: Parser */;
5522 val* var /* : null */;
5523 val* var_node_list /* var node_list: nullable Object */;
5524 val* var1 /* : nullable Object */;
5525 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
5526 val* var2 /* : nullable Object */;
5527 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
5528 val* var3 /* : nullable Object */;
5529 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
5530 val* var4 /* : nullable Object */;
5531 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5532 val* var5 /* : nullable Object */;
5533 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5534 val* var6 /* : nullable Object */;
5535 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5536 val* var7 /* : nullable Object */;
5537 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5538 val* var8 /* : nullable Object */;
5539 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5540 val* var9 /* : nullable Object */;
5541 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5542 val* var_tobranode2 /* var tobranode2: nullable Object */;
5543 short int var10 /* : Bool */;
5544 int cltype;
5545 int idtype;
5546 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
5547 short int var11 /* : Bool */;
5548 int cltype12;
5549 int idtype13;
5550 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
5551 short int var14 /* : Bool */;
5552 int cltype15;
5553 int idtype16;
5554 val* var_tobranode5 /* var tobranode5: nullable Object */;
5555 short int var17 /* : Bool */;
5556 int cltype18;
5557 int idtype19;
5558 val* var20 /* : AOrangeExpr */;
5559 val* var21 /* : null */;
5560 val* var_pexprnode1 /* var pexprnode1: nullable AOrangeExpr */;
5561 long var22 /* : Int */;
5562 long var23 /* : Int */;
5563 var_p = p0;
5564 var = NULL;
5565 var_node_list = var;
5566 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5567 var_nodearraylist9 = var1;
5568 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5569 var_nodearraylist8 = var2;
5570 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5571 var_nodearraylist7 = var3;
5572 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5573 var_nodearraylist6 = var4;
5574 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5575 var_nodearraylist5 = var5;
5576 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5577 var_nodearraylist4 = var6;
5578 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5579 var_nodearraylist3 = var7;
5580 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5581 var_nodearraylist2 = var8;
5582 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5583 var_nodearraylist1 = var9;
5584 var_tobranode2 = var_nodearraylist1;
5585 /* <var_tobranode2:nullable Object> isa nullable TObra */
5586 cltype = type_nullable_parser_nodes__TObra.color;
5587 idtype = type_nullable_parser_nodes__TObra.id;
5588 if(var_tobranode2 == NULL) {
5589 var10 = 1;
5590 } else {
5591 if(cltype >= var_tobranode2->type->table_size) {
5592 var10 = 0;
5593 } else {
5594 var10 = var_tobranode2->type->type_table[cltype] == idtype;
5595 }
5596 }
5597 if (!var10) {
5598 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28946);
5599 exit(1);
5600 }
5601 var_pexprnode3 = var_nodearraylist3;
5602 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
5603 cltype12 = type_nullable_parser_nodes__AExpr.color;
5604 idtype13 = type_nullable_parser_nodes__AExpr.id;
5605 if(var_pexprnode3 == NULL) {
5606 var11 = 1;
5607 } else {
5608 if(cltype12 >= var_pexprnode3->type->table_size) {
5609 var11 = 0;
5610 } else {
5611 var11 = var_pexprnode3->type->type_table[cltype12] == idtype13;
5612 }
5613 }
5614 if (!var11) {
5615 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28948);
5616 exit(1);
5617 }
5618 var_pexprnode4 = var_nodearraylist7;
5619 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
5620 cltype15 = type_nullable_parser_nodes__AExpr.color;
5621 idtype16 = type_nullable_parser_nodes__AExpr.id;
5622 if(var_pexprnode4 == NULL) {
5623 var14 = 1;
5624 } else {
5625 if(cltype15 >= var_pexprnode4->type->table_size) {
5626 var14 = 0;
5627 } else {
5628 var14 = var_pexprnode4->type->type_table[cltype15] == idtype16;
5629 }
5630 }
5631 if (!var14) {
5632 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28950);
5633 exit(1);
5634 }
5635 var_tobranode5 = var_nodearraylist9;
5636 /* <var_tobranode5:nullable Object> isa nullable TObra */
5637 cltype18 = type_nullable_parser_nodes__TObra.color;
5638 idtype19 = type_nullable_parser_nodes__TObra.id;
5639 if(var_tobranode5 == NULL) {
5640 var17 = 1;
5641 } else {
5642 if(cltype18 >= var_tobranode5->type->table_size) {
5643 var17 = 0;
5644 } else {
5645 var17 = var_tobranode5->type->type_table[cltype18] == idtype19;
5646 }
5647 }
5648 if (!var17) {
5649 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28952);
5650 exit(1);
5651 }
5652 var20 = NEW_parser_nodes__AOrangeExpr(&type_parser_nodes__AOrangeExpr);
5653 var21 = NULL;
5654 ((void (*)(val*, val*, val*, val*, val*, val*))(var20->class->vft[COLOR_parser_prod__AOrangeExpr__init_aorangeexpr]))(var20, var_tobranode2, var_pexprnode3, var_pexprnode4, var_tobranode5, var21) /* init_aorangeexpr on <var20:AOrangeExpr>*/;
5655 CHECK_NEW_parser_nodes__AOrangeExpr(var20);
5656 var_pexprnode1 = var20;
5657 var_node_list = var_pexprnode1;
5658 var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction834> */
5659 var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
5660 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
5661 RET_LABEL:;
5662 }
5663 /* method parser#ReduceAction834#action for (self: Object, Parser) */
5664 void VIRTUAL_parser__ReduceAction834__action(val* self, val* p0) {
5665 parser__ReduceAction834__action(self, p0);
5666 RET_LABEL:;
5667 }
5668 /* method parser#ReduceAction835#action for (self: ReduceAction835, Parser) */
5669 void parser__ReduceAction835__action(val* self, val* p0) {
5670 val* var_p /* var p: Parser */;
5671 val* var /* : null */;
5672 val* var_node_list /* var node_list: nullable Object */;
5673 val* var1 /* : nullable Object */;
5674 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
5675 val* var2 /* : nullable Object */;
5676 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
5677 val* var3 /* : nullable Object */;
5678 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
5679 val* var4 /* : nullable Object */;
5680 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
5681 val* var5 /* : nullable Object */;
5682 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5683 val* var6 /* : nullable Object */;
5684 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5685 val* var7 /* : nullable Object */;
5686 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5687 val* var8 /* : nullable Object */;
5688 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5689 val* var9 /* : nullable Object */;
5690 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5691 val* var10 /* : nullable Object */;
5692 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5693 val* var_tobranode2 /* var tobranode2: nullable Object */;
5694 short int var11 /* : Bool */;
5695 int cltype;
5696 int idtype;
5697 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
5698 short int var12 /* : Bool */;
5699 int cltype13;
5700 int idtype14;
5701 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
5702 short int var15 /* : Bool */;
5703 int cltype16;
5704 int idtype17;
5705 val* var_tobranode5 /* var tobranode5: nullable Object */;
5706 short int var18 /* : Bool */;
5707 int cltype19;
5708 int idtype20;
5709 val* var_pannotationsnode6 /* var pannotationsnode6: nullable Object */;
5710 short int var21 /* : Bool */;
5711 int cltype22;
5712 int idtype23;
5713 val* var24 /* : AOrangeExpr */;
5714 val* var_pexprnode1 /* var pexprnode1: nullable AOrangeExpr */;
5715 long var25 /* : Int */;
5716 long var26 /* : Int */;
5717 var_p = p0;
5718 var = NULL;
5719 var_node_list = var;
5720 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5721 var_nodearraylist10 = var1;
5722 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5723 var_nodearraylist9 = var2;
5724 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5725 var_nodearraylist8 = var3;
5726 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5727 var_nodearraylist7 = var4;
5728 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5729 var_nodearraylist6 = var5;
5730 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5731 var_nodearraylist5 = var6;
5732 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5733 var_nodearraylist4 = var7;
5734 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5735 var_nodearraylist3 = var8;
5736 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5737 var_nodearraylist2 = var9;
5738 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5739 var_nodearraylist1 = var10;
5740 var_tobranode2 = var_nodearraylist1;
5741 /* <var_tobranode2:nullable Object> isa nullable TObra */
5742 cltype = type_nullable_parser_nodes__TObra.color;
5743 idtype = type_nullable_parser_nodes__TObra.id;
5744 if(var_tobranode2 == NULL) {
5745 var11 = 1;
5746 } else {
5747 if(cltype >= var_tobranode2->type->table_size) {
5748 var11 = 0;
5749 } else {
5750 var11 = var_tobranode2->type->type_table[cltype] == idtype;
5751 }
5752 }
5753 if (!var11) {
5754 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28980);
5755 exit(1);
5756 }
5757 var_pexprnode3 = var_nodearraylist3;
5758 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
5759 cltype13 = type_nullable_parser_nodes__AExpr.color;
5760 idtype14 = type_nullable_parser_nodes__AExpr.id;
5761 if(var_pexprnode3 == NULL) {
5762 var12 = 1;
5763 } else {
5764 if(cltype13 >= var_pexprnode3->type->table_size) {
5765 var12 = 0;
5766 } else {
5767 var12 = var_pexprnode3->type->type_table[cltype13] == idtype14;
5768 }
5769 }
5770 if (!var12) {
5771 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28982);
5772 exit(1);
5773 }
5774 var_pexprnode4 = var_nodearraylist7;
5775 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
5776 cltype16 = type_nullable_parser_nodes__AExpr.color;
5777 idtype17 = type_nullable_parser_nodes__AExpr.id;
5778 if(var_pexprnode4 == NULL) {
5779 var15 = 1;
5780 } else {
5781 if(cltype16 >= var_pexprnode4->type->table_size) {
5782 var15 = 0;
5783 } else {
5784 var15 = var_pexprnode4->type->type_table[cltype16] == idtype17;
5785 }
5786 }
5787 if (!var15) {
5788 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28984);
5789 exit(1);
5790 }
5791 var_tobranode5 = var_nodearraylist9;
5792 /* <var_tobranode5:nullable Object> isa nullable TObra */
5793 cltype19 = type_nullable_parser_nodes__TObra.color;
5794 idtype20 = type_nullable_parser_nodes__TObra.id;
5795 if(var_tobranode5 == NULL) {
5796 var18 = 1;
5797 } else {
5798 if(cltype19 >= var_tobranode5->type->table_size) {
5799 var18 = 0;
5800 } else {
5801 var18 = var_tobranode5->type->type_table[cltype19] == idtype20;
5802 }
5803 }
5804 if (!var18) {
5805 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28986);
5806 exit(1);
5807 }
5808 var_pannotationsnode6 = var_nodearraylist10;
5809 /* <var_pannotationsnode6:nullable Object> isa nullable AAnnotations */
5810 cltype22 = type_nullable_parser_nodes__AAnnotations.color;
5811 idtype23 = type_nullable_parser_nodes__AAnnotations.id;
5812 if(var_pannotationsnode6 == NULL) {
5813 var21 = 1;
5814 } else {
5815 if(cltype22 >= var_pannotationsnode6->type->table_size) {
5816 var21 = 0;
5817 } else {
5818 var21 = var_pannotationsnode6->type->type_table[cltype22] == idtype23;
5819 }
5820 }
5821 if (!var21) {
5822 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 28988);
5823 exit(1);
5824 }
5825 var24 = NEW_parser_nodes__AOrangeExpr(&type_parser_nodes__AOrangeExpr);
5826 ((void (*)(val*, val*, val*, val*, val*, val*))(var24->class->vft[COLOR_parser_prod__AOrangeExpr__init_aorangeexpr]))(var24, var_tobranode2, var_pexprnode3, var_pexprnode4, var_tobranode5, var_pannotationsnode6) /* init_aorangeexpr on <var24:AOrangeExpr>*/;
5827 CHECK_NEW_parser_nodes__AOrangeExpr(var24);
5828 var_pexprnode1 = var24;
5829 var_node_list = var_pexprnode1;
5830 var25 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction835> */
5831 var26 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var25) /* go_to on <var_p:Parser>*/;
5832 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var26, var_node_list) /* push on <var_p:Parser>*/;
5833 RET_LABEL:;
5834 }
5835 /* method parser#ReduceAction835#action for (self: Object, Parser) */
5836 void VIRTUAL_parser__ReduceAction835__action(val* self, val* p0) {
5837 parser__ReduceAction835__action(self, p0);
5838 RET_LABEL:;
5839 }
5840 /* method parser#ReduceAction836#action for (self: ReduceAction836, Parser) */
5841 void parser__ReduceAction836__action(val* self, val* p0) {
5842 val* var_p /* var p: Parser */;
5843 val* var /* : null */;
5844 val* var_node_list /* var node_list: nullable Object */;
5845 val* var1 /* : nullable Object */;
5846 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5847 val* var_pexprsnode2 /* var pexprsnode2: nullable Object */;
5848 short int var2 /* : Bool */;
5849 int cltype;
5850 int idtype;
5851 val* var3 /* : AArrayExpr */;
5852 val* var4 /* : null */;
5853 val* var_pexprnode1 /* var pexprnode1: nullable AArrayExpr */;
5854 long var5 /* : Int */;
5855 long var6 /* : Int */;
5856 var_p = p0;
5857 var = NULL;
5858 var_node_list = var;
5859 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5860 var_nodearraylist1 = var1;
5861 var_pexprsnode2 = var_nodearraylist1;
5862 /* <var_pexprsnode2:nullable Object> isa nullable AExprs */
5863 cltype = type_nullable_parser_nodes__AExprs.color;
5864 idtype = type_nullable_parser_nodes__AExprs.id;
5865 if(var_pexprsnode2 == NULL) {
5866 var2 = 1;
5867 } else {
5868 if(cltype >= var_pexprsnode2->type->table_size) {
5869 var2 = 0;
5870 } else {
5871 var2 = var_pexprsnode2->type->type_table[cltype] == idtype;
5872 }
5873 }
5874 if (!var2) {
5875 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29007);
5876 exit(1);
5877 }
5878 var3 = NEW_parser_nodes__AArrayExpr(&type_parser_nodes__AArrayExpr);
5879 var4 = NULL;
5880 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AArrayExpr__init_aarrayexpr]))(var3, var_pexprsnode2, var4) /* init_aarrayexpr on <var3:AArrayExpr>*/;
5881 CHECK_NEW_parser_nodes__AArrayExpr(var3);
5882 var_pexprnode1 = var3;
5883 var_node_list = var_pexprnode1;
5884 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction836> */
5885 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
5886 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
5887 RET_LABEL:;
5888 }
5889 /* method parser#ReduceAction836#action for (self: Object, Parser) */
5890 void VIRTUAL_parser__ReduceAction836__action(val* self, val* p0) {
5891 parser__ReduceAction836__action(self, p0);
5892 RET_LABEL:;
5893 }
5894 /* method parser#ReduceAction837#action for (self: ReduceAction837, Parser) */
5895 void parser__ReduceAction837__action(val* self, val* p0) {
5896 val* var_p /* var p: Parser */;
5897 val* var /* : null */;
5898 val* var_node_list /* var node_list: nullable Object */;
5899 val* var1 /* : nullable Object */;
5900 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5901 val* var2 /* : nullable Object */;
5902 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5903 val* var_pexprsnode2 /* var pexprsnode2: nullable Object */;
5904 short int var3 /* : Bool */;
5905 int cltype;
5906 int idtype;
5907 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
5908 short int var4 /* : Bool */;
5909 int cltype5;
5910 int idtype6;
5911 val* var7 /* : AArrayExpr */;
5912 val* var_pexprnode1 /* var pexprnode1: nullable AArrayExpr */;
5913 long var8 /* : Int */;
5914 long var9 /* : Int */;
5915 var_p = p0;
5916 var = NULL;
5917 var_node_list = var;
5918 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5919 var_nodearraylist2 = var1;
5920 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5921 var_nodearraylist1 = var2;
5922 var_pexprsnode2 = var_nodearraylist1;
5923 /* <var_pexprsnode2:nullable Object> isa nullable AExprs */
5924 cltype = type_nullable_parser_nodes__AExprs.color;
5925 idtype = type_nullable_parser_nodes__AExprs.id;
5926 if(var_pexprsnode2 == NULL) {
5927 var3 = 1;
5928 } else {
5929 if(cltype >= var_pexprsnode2->type->table_size) {
5930 var3 = 0;
5931 } else {
5932 var3 = var_pexprsnode2->type->type_table[cltype] == idtype;
5933 }
5934 }
5935 if (!var3) {
5936 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29024);
5937 exit(1);
5938 }
5939 var_pannotationsnode3 = var_nodearraylist2;
5940 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
5941 cltype5 = type_nullable_parser_nodes__AAnnotations.color;
5942 idtype6 = type_nullable_parser_nodes__AAnnotations.id;
5943 if(var_pannotationsnode3 == NULL) {
5944 var4 = 1;
5945 } else {
5946 if(cltype5 >= var_pannotationsnode3->type->table_size) {
5947 var4 = 0;
5948 } else {
5949 var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
5950 }
5951 }
5952 if (!var4) {
5953 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29026);
5954 exit(1);
5955 }
5956 var7 = NEW_parser_nodes__AArrayExpr(&type_parser_nodes__AArrayExpr);
5957 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AArrayExpr__init_aarrayexpr]))(var7, var_pexprsnode2, var_pannotationsnode3) /* init_aarrayexpr on <var7:AArrayExpr>*/;
5958 CHECK_NEW_parser_nodes__AArrayExpr(var7);
5959 var_pexprnode1 = var7;
5960 var_node_list = var_pexprnode1;
5961 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction837> */
5962 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
5963 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
5964 RET_LABEL:;
5965 }
5966 /* method parser#ReduceAction837#action for (self: Object, Parser) */
5967 void VIRTUAL_parser__ReduceAction837__action(val* self, val* p0) {
5968 parser__ReduceAction837__action(self, p0);
5969 RET_LABEL:;
5970 }
5971 /* method parser#ReduceAction838#action for (self: ReduceAction838, Parser) */
5972 void parser__ReduceAction838__action(val* self, val* p0) {
5973 val* var_p /* var p: Parser */;
5974 val* var /* : null */;
5975 val* var_node_list /* var node_list: nullable Object */;
5976 val* var1 /* : nullable Object */;
5977 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5978 val* var_tkwselfnode2 /* var tkwselfnode2: nullable Object */;
5979 short int var2 /* : Bool */;
5980 int cltype;
5981 int idtype;
5982 val* var3 /* : ASelfExpr */;
5983 val* var4 /* : null */;
5984 val* var_pexprnode1 /* var pexprnode1: nullable ASelfExpr */;
5985 long var5 /* : Int */;
5986 long var6 /* : Int */;
5987 var_p = p0;
5988 var = NULL;
5989 var_node_list = var;
5990 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5991 var_nodearraylist1 = var1;
5992 var_tkwselfnode2 = var_nodearraylist1;
5993 /* <var_tkwselfnode2:nullable Object> isa nullable TKwself */
5994 cltype = type_nullable_parser_nodes__TKwself.color;
5995 idtype = type_nullable_parser_nodes__TKwself.id;
5996 if(var_tkwselfnode2 == NULL) {
5997 var2 = 1;
5998 } else {
5999 if(cltype >= var_tkwselfnode2->type->table_size) {
6000 var2 = 0;
6001 } else {
6002 var2 = var_tkwselfnode2->type->type_table[cltype] == idtype;
6003 }
6004 }
6005 if (!var2) {
6006 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29042);
6007 exit(1);
6008 }
6009 var3 = NEW_parser_nodes__ASelfExpr(&type_parser_nodes__ASelfExpr);
6010 var4 = NULL;
6011 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_prod__ASelfExpr__init_aselfexpr]))(var3, var_tkwselfnode2, var4) /* init_aselfexpr on <var3:ASelfExpr>*/;
6012 CHECK_NEW_parser_nodes__ASelfExpr(var3);
6013 var_pexprnode1 = var3;
6014 var_node_list = var_pexprnode1;
6015 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction838> */
6016 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
6017 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
6018 RET_LABEL:;
6019 }
6020 /* method parser#ReduceAction838#action for (self: Object, Parser) */
6021 void VIRTUAL_parser__ReduceAction838__action(val* self, val* p0) {
6022 parser__ReduceAction838__action(self, p0);
6023 RET_LABEL:;
6024 }
6025 /* method parser#ReduceAction839#action for (self: ReduceAction839, Parser) */
6026 void parser__ReduceAction839__action(val* self, val* p0) {
6027 val* var_p /* var p: Parser */;
6028 val* var /* : null */;
6029 val* var_node_list /* var node_list: nullable Object */;
6030 val* var1 /* : nullable Object */;
6031 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6032 val* var2 /* : nullable Object */;
6033 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6034 val* var_tkwselfnode2 /* var tkwselfnode2: nullable Object */;
6035 short int var3 /* : Bool */;
6036 int cltype;
6037 int idtype;
6038 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
6039 short int var4 /* : Bool */;
6040 int cltype5;
6041 int idtype6;
6042 val* var7 /* : ASelfExpr */;
6043 val* var_pexprnode1 /* var pexprnode1: nullable ASelfExpr */;
6044 long var8 /* : Int */;
6045 long var9 /* : Int */;
6046 var_p = p0;
6047 var = NULL;
6048 var_node_list = var;
6049 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6050 var_nodearraylist2 = var1;
6051 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6052 var_nodearraylist1 = var2;
6053 var_tkwselfnode2 = var_nodearraylist1;
6054 /* <var_tkwselfnode2:nullable Object> isa nullable TKwself */
6055 cltype = type_nullable_parser_nodes__TKwself.color;
6056 idtype = type_nullable_parser_nodes__TKwself.id;
6057 if(var_tkwselfnode2 == NULL) {
6058 var3 = 1;
6059 } else {
6060 if(cltype >= var_tkwselfnode2->type->table_size) {
6061 var3 = 0;
6062 } else {
6063 var3 = var_tkwselfnode2->type->type_table[cltype] == idtype;
6064 }
6065 }
6066 if (!var3) {
6067 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29059);
6068 exit(1);
6069 }
6070 var_pannotationsnode3 = var_nodearraylist2;
6071 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
6072 cltype5 = type_nullable_parser_nodes__AAnnotations.color;
6073 idtype6 = type_nullable_parser_nodes__AAnnotations.id;
6074 if(var_pannotationsnode3 == NULL) {
6075 var4 = 1;
6076 } else {
6077 if(cltype5 >= var_pannotationsnode3->type->table_size) {
6078 var4 = 0;
6079 } else {
6080 var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
6081 }
6082 }
6083 if (!var4) {
6084 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29061);
6085 exit(1);
6086 }
6087 var7 = NEW_parser_nodes__ASelfExpr(&type_parser_nodes__ASelfExpr);
6088 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ASelfExpr__init_aselfexpr]))(var7, var_tkwselfnode2, var_pannotationsnode3) /* init_aselfexpr on <var7:ASelfExpr>*/;
6089 CHECK_NEW_parser_nodes__ASelfExpr(var7);
6090 var_pexprnode1 = var7;
6091 var_node_list = var_pexprnode1;
6092 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction839> */
6093 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
6094 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
6095 RET_LABEL:;
6096 }
6097 /* method parser#ReduceAction839#action for (self: Object, Parser) */
6098 void VIRTUAL_parser__ReduceAction839__action(val* self, val* p0) {
6099 parser__ReduceAction839__action(self, p0);
6100 RET_LABEL:;
6101 }
6102 /* method parser#ReduceAction840#action for (self: ReduceAction840, Parser) */
6103 void parser__ReduceAction840__action(val* self, val* p0) {
6104 val* var_p /* var p: Parser */;
6105 val* var /* : null */;
6106 val* var_node_list /* var node_list: nullable Object */;
6107 val* var1 /* : nullable Object */;
6108 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6109 val* var_tkwtruenode2 /* var tkwtruenode2: nullable Object */;
6110 short int var2 /* : Bool */;
6111 int cltype;
6112 int idtype;
6113 val* var3 /* : ATrueExpr */;
6114 val* var4 /* : null */;
6115 val* var_pexprnode1 /* var pexprnode1: nullable ATrueExpr */;
6116 long var5 /* : Int */;
6117 long var6 /* : Int */;
6118 var_p = p0;
6119 var = NULL;
6120 var_node_list = var;
6121 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6122 var_nodearraylist1 = var1;
6123 var_tkwtruenode2 = var_nodearraylist1;
6124 /* <var_tkwtruenode2:nullable Object> isa nullable TKwtrue */
6125 cltype = type_nullable_parser_nodes__TKwtrue.color;
6126 idtype = type_nullable_parser_nodes__TKwtrue.id;
6127 if(var_tkwtruenode2 == NULL) {
6128 var2 = 1;
6129 } else {
6130 if(cltype >= var_tkwtruenode2->type->table_size) {
6131 var2 = 0;
6132 } else {
6133 var2 = var_tkwtruenode2->type->type_table[cltype] == idtype;
6134 }
6135 }
6136 if (!var2) {
6137 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29077);
6138 exit(1);
6139 }
6140 var3 = NEW_parser_nodes__ATrueExpr(&type_parser_nodes__ATrueExpr);
6141 var4 = NULL;
6142 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_prod__ATrueExpr__init_atrueexpr]))(var3, var_tkwtruenode2, var4) /* init_atrueexpr on <var3:ATrueExpr>*/;
6143 CHECK_NEW_parser_nodes__ATrueExpr(var3);
6144 var_pexprnode1 = var3;
6145 var_node_list = var_pexprnode1;
6146 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction840> */
6147 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
6148 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
6149 RET_LABEL:;
6150 }
6151 /* method parser#ReduceAction840#action for (self: Object, Parser) */
6152 void VIRTUAL_parser__ReduceAction840__action(val* self, val* p0) {
6153 parser__ReduceAction840__action(self, p0);
6154 RET_LABEL:;
6155 }
6156 /* method parser#ReduceAction841#action for (self: ReduceAction841, Parser) */
6157 void parser__ReduceAction841__action(val* self, val* p0) {
6158 val* var_p /* var p: Parser */;
6159 val* var /* : null */;
6160 val* var_node_list /* var node_list: nullable Object */;
6161 val* var1 /* : nullable Object */;
6162 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6163 val* var2 /* : nullable Object */;
6164 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6165 val* var_tkwtruenode2 /* var tkwtruenode2: nullable Object */;
6166 short int var3 /* : Bool */;
6167 int cltype;
6168 int idtype;
6169 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
6170 short int var4 /* : Bool */;
6171 int cltype5;
6172 int idtype6;
6173 val* var7 /* : ATrueExpr */;
6174 val* var_pexprnode1 /* var pexprnode1: nullable ATrueExpr */;
6175 long var8 /* : Int */;
6176 long var9 /* : Int */;
6177 var_p = p0;
6178 var = NULL;
6179 var_node_list = var;
6180 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6181 var_nodearraylist2 = var1;
6182 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6183 var_nodearraylist1 = var2;
6184 var_tkwtruenode2 = var_nodearraylist1;
6185 /* <var_tkwtruenode2:nullable Object> isa nullable TKwtrue */
6186 cltype = type_nullable_parser_nodes__TKwtrue.color;
6187 idtype = type_nullable_parser_nodes__TKwtrue.id;
6188 if(var_tkwtruenode2 == NULL) {
6189 var3 = 1;
6190 } else {
6191 if(cltype >= var_tkwtruenode2->type->table_size) {
6192 var3 = 0;
6193 } else {
6194 var3 = var_tkwtruenode2->type->type_table[cltype] == idtype;
6195 }
6196 }
6197 if (!var3) {
6198 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29094);
6199 exit(1);
6200 }
6201 var_pannotationsnode3 = var_nodearraylist2;
6202 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
6203 cltype5 = type_nullable_parser_nodes__AAnnotations.color;
6204 idtype6 = type_nullable_parser_nodes__AAnnotations.id;
6205 if(var_pannotationsnode3 == NULL) {
6206 var4 = 1;
6207 } else {
6208 if(cltype5 >= var_pannotationsnode3->type->table_size) {
6209 var4 = 0;
6210 } else {
6211 var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
6212 }
6213 }
6214 if (!var4) {
6215 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29096);
6216 exit(1);
6217 }
6218 var7 = NEW_parser_nodes__ATrueExpr(&type_parser_nodes__ATrueExpr);
6219 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ATrueExpr__init_atrueexpr]))(var7, var_tkwtruenode2, var_pannotationsnode3) /* init_atrueexpr on <var7:ATrueExpr>*/;
6220 CHECK_NEW_parser_nodes__ATrueExpr(var7);
6221 var_pexprnode1 = var7;
6222 var_node_list = var_pexprnode1;
6223 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction841> */
6224 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
6225 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
6226 RET_LABEL:;
6227 }
6228 /* method parser#ReduceAction841#action for (self: Object, Parser) */
6229 void VIRTUAL_parser__ReduceAction841__action(val* self, val* p0) {
6230 parser__ReduceAction841__action(self, p0);
6231 RET_LABEL:;
6232 }
6233 /* method parser#ReduceAction842#action for (self: ReduceAction842, Parser) */
6234 void parser__ReduceAction842__action(val* self, val* p0) {
6235 val* var_p /* var p: Parser */;
6236 val* var /* : null */;
6237 val* var_node_list /* var node_list: nullable Object */;
6238 val* var1 /* : nullable Object */;
6239 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6240 val* var_tkwfalsenode2 /* var tkwfalsenode2: nullable Object */;
6241 short int var2 /* : Bool */;
6242 int cltype;
6243 int idtype;
6244 val* var3 /* : AFalseExpr */;
6245 val* var4 /* : null */;
6246 val* var_pexprnode1 /* var pexprnode1: nullable AFalseExpr */;
6247 long var5 /* : Int */;
6248 long var6 /* : Int */;
6249 var_p = p0;
6250 var = NULL;
6251 var_node_list = var;
6252 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6253 var_nodearraylist1 = var1;
6254 var_tkwfalsenode2 = var_nodearraylist1;
6255 /* <var_tkwfalsenode2:nullable Object> isa nullable TKwfalse */
6256 cltype = type_nullable_parser_nodes__TKwfalse.color;
6257 idtype = type_nullable_parser_nodes__TKwfalse.id;
6258 if(var_tkwfalsenode2 == NULL) {
6259 var2 = 1;
6260 } else {
6261 if(cltype >= var_tkwfalsenode2->type->table_size) {
6262 var2 = 0;
6263 } else {
6264 var2 = var_tkwfalsenode2->type->type_table[cltype] == idtype;
6265 }
6266 }
6267 if (!var2) {
6268 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29112);
6269 exit(1);
6270 }
6271 var3 = NEW_parser_nodes__AFalseExpr(&type_parser_nodes__AFalseExpr);
6272 var4 = NULL;
6273 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AFalseExpr__init_afalseexpr]))(var3, var_tkwfalsenode2, var4) /* init_afalseexpr on <var3:AFalseExpr>*/;
6274 CHECK_NEW_parser_nodes__AFalseExpr(var3);
6275 var_pexprnode1 = var3;
6276 var_node_list = var_pexprnode1;
6277 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction842> */
6278 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
6279 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
6280 RET_LABEL:;
6281 }
6282 /* method parser#ReduceAction842#action for (self: Object, Parser) */
6283 void VIRTUAL_parser__ReduceAction842__action(val* self, val* p0) {
6284 parser__ReduceAction842__action(self, p0);
6285 RET_LABEL:;
6286 }
6287 /* method parser#ReduceAction843#action for (self: ReduceAction843, Parser) */
6288 void parser__ReduceAction843__action(val* self, val* p0) {
6289 val* var_p /* var p: Parser */;
6290 val* var /* : null */;
6291 val* var_node_list /* var node_list: nullable Object */;
6292 val* var1 /* : nullable Object */;
6293 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6294 val* var2 /* : nullable Object */;
6295 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6296 val* var_tkwfalsenode2 /* var tkwfalsenode2: nullable Object */;
6297 short int var3 /* : Bool */;
6298 int cltype;
6299 int idtype;
6300 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
6301 short int var4 /* : Bool */;
6302 int cltype5;
6303 int idtype6;
6304 val* var7 /* : AFalseExpr */;
6305 val* var_pexprnode1 /* var pexprnode1: nullable AFalseExpr */;
6306 long var8 /* : Int */;
6307 long var9 /* : Int */;
6308 var_p = p0;
6309 var = NULL;
6310 var_node_list = var;
6311 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6312 var_nodearraylist2 = var1;
6313 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6314 var_nodearraylist1 = var2;
6315 var_tkwfalsenode2 = var_nodearraylist1;
6316 /* <var_tkwfalsenode2:nullable Object> isa nullable TKwfalse */
6317 cltype = type_nullable_parser_nodes__TKwfalse.color;
6318 idtype = type_nullable_parser_nodes__TKwfalse.id;
6319 if(var_tkwfalsenode2 == NULL) {
6320 var3 = 1;
6321 } else {
6322 if(cltype >= var_tkwfalsenode2->type->table_size) {
6323 var3 = 0;
6324 } else {
6325 var3 = var_tkwfalsenode2->type->type_table[cltype] == idtype;
6326 }
6327 }
6328 if (!var3) {
6329 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29129);
6330 exit(1);
6331 }
6332 var_pannotationsnode3 = var_nodearraylist2;
6333 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
6334 cltype5 = type_nullable_parser_nodes__AAnnotations.color;
6335 idtype6 = type_nullable_parser_nodes__AAnnotations.id;
6336 if(var_pannotationsnode3 == NULL) {
6337 var4 = 1;
6338 } else {
6339 if(cltype5 >= var_pannotationsnode3->type->table_size) {
6340 var4 = 0;
6341 } else {
6342 var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
6343 }
6344 }
6345 if (!var4) {
6346 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29131);
6347 exit(1);
6348 }
6349 var7 = NEW_parser_nodes__AFalseExpr(&type_parser_nodes__AFalseExpr);
6350 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AFalseExpr__init_afalseexpr]))(var7, var_tkwfalsenode2, var_pannotationsnode3) /* init_afalseexpr on <var7:AFalseExpr>*/;
6351 CHECK_NEW_parser_nodes__AFalseExpr(var7);
6352 var_pexprnode1 = var7;
6353 var_node_list = var_pexprnode1;
6354 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction843> */
6355 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
6356 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
6357 RET_LABEL:;
6358 }
6359 /* method parser#ReduceAction843#action for (self: Object, Parser) */
6360 void VIRTUAL_parser__ReduceAction843__action(val* self, val* p0) {
6361 parser__ReduceAction843__action(self, p0);
6362 RET_LABEL:;
6363 }
6364 /* method parser#ReduceAction844#action for (self: ReduceAction844, Parser) */
6365 void parser__ReduceAction844__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_nodearraylist1 /* var nodearraylist1: nullable Object */;
6371 val* var_tkwnullnode2 /* var tkwnullnode2: nullable Object */;
6372 short int var2 /* : Bool */;
6373 int cltype;
6374 int idtype;
6375 val* var3 /* : ANullExpr */;
6376 val* var4 /* : null */;
6377 val* var_pexprnode1 /* var pexprnode1: nullable ANullExpr */;
6378 long var5 /* : Int */;
6379 long var6 /* : Int */;
6380 var_p = p0;
6381 var = NULL;
6382 var_node_list = var;
6383 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6384 var_nodearraylist1 = var1;
6385 var_tkwnullnode2 = var_nodearraylist1;
6386 /* <var_tkwnullnode2:nullable Object> isa nullable TKwnull */
6387 cltype = type_nullable_parser_nodes__TKwnull.color;
6388 idtype = type_nullable_parser_nodes__TKwnull.id;
6389 if(var_tkwnullnode2 == NULL) {
6390 var2 = 1;
6391 } else {
6392 if(cltype >= var_tkwnullnode2->type->table_size) {
6393 var2 = 0;
6394 } else {
6395 var2 = var_tkwnullnode2->type->type_table[cltype] == idtype;
6396 }
6397 }
6398 if (!var2) {
6399 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29147);
6400 exit(1);
6401 }
6402 var3 = NEW_parser_nodes__ANullExpr(&type_parser_nodes__ANullExpr);
6403 var4 = NULL;
6404 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_prod__ANullExpr__init_anullexpr]))(var3, var_tkwnullnode2, var4) /* init_anullexpr on <var3:ANullExpr>*/;
6405 CHECK_NEW_parser_nodes__ANullExpr(var3);
6406 var_pexprnode1 = var3;
6407 var_node_list = var_pexprnode1;
6408 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction844> */
6409 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
6410 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
6411 RET_LABEL:;
6412 }
6413 /* method parser#ReduceAction844#action for (self: Object, Parser) */
6414 void VIRTUAL_parser__ReduceAction844__action(val* self, val* p0) {
6415 parser__ReduceAction844__action(self, p0);
6416 RET_LABEL:;
6417 }
6418 /* method parser#ReduceAction845#action for (self: ReduceAction845, Parser) */
6419 void parser__ReduceAction845__action(val* self, val* p0) {
6420 val* var_p /* var p: Parser */;
6421 val* var /* : null */;
6422 val* var_node_list /* var node_list: nullable Object */;
6423 val* var1 /* : nullable Object */;
6424 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6425 val* var2 /* : nullable Object */;
6426 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6427 val* var_tkwnullnode2 /* var tkwnullnode2: nullable Object */;
6428 short int var3 /* : Bool */;
6429 int cltype;
6430 int idtype;
6431 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
6432 short int var4 /* : Bool */;
6433 int cltype5;
6434 int idtype6;
6435 val* var7 /* : ANullExpr */;
6436 val* var_pexprnode1 /* var pexprnode1: nullable ANullExpr */;
6437 long var8 /* : Int */;
6438 long var9 /* : Int */;
6439 var_p = p0;
6440 var = NULL;
6441 var_node_list = var;
6442 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6443 var_nodearraylist2 = var1;
6444 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6445 var_nodearraylist1 = var2;
6446 var_tkwnullnode2 = var_nodearraylist1;
6447 /* <var_tkwnullnode2:nullable Object> isa nullable TKwnull */
6448 cltype = type_nullable_parser_nodes__TKwnull.color;
6449 idtype = type_nullable_parser_nodes__TKwnull.id;
6450 if(var_tkwnullnode2 == NULL) {
6451 var3 = 1;
6452 } else {
6453 if(cltype >= var_tkwnullnode2->type->table_size) {
6454 var3 = 0;
6455 } else {
6456 var3 = var_tkwnullnode2->type->type_table[cltype] == idtype;
6457 }
6458 }
6459 if (!var3) {
6460 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29164);
6461 exit(1);
6462 }
6463 var_pannotationsnode3 = var_nodearraylist2;
6464 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
6465 cltype5 = type_nullable_parser_nodes__AAnnotations.color;
6466 idtype6 = type_nullable_parser_nodes__AAnnotations.id;
6467 if(var_pannotationsnode3 == NULL) {
6468 var4 = 1;
6469 } else {
6470 if(cltype5 >= var_pannotationsnode3->type->table_size) {
6471 var4 = 0;
6472 } else {
6473 var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
6474 }
6475 }
6476 if (!var4) {
6477 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29166);
6478 exit(1);
6479 }
6480 var7 = NEW_parser_nodes__ANullExpr(&type_parser_nodes__ANullExpr);
6481 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ANullExpr__init_anullexpr]))(var7, var_tkwnullnode2, var_pannotationsnode3) /* init_anullexpr on <var7:ANullExpr>*/;
6482 CHECK_NEW_parser_nodes__ANullExpr(var7);
6483 var_pexprnode1 = var7;
6484 var_node_list = var_pexprnode1;
6485 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction845> */
6486 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
6487 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
6488 RET_LABEL:;
6489 }
6490 /* method parser#ReduceAction845#action for (self: Object, Parser) */
6491 void VIRTUAL_parser__ReduceAction845__action(val* self, val* p0) {
6492 parser__ReduceAction845__action(self, p0);
6493 RET_LABEL:;
6494 }
6495 /* method parser#ReduceAction846#action for (self: ReduceAction846, Parser) */
6496 void parser__ReduceAction846__action(val* self, val* p0) {
6497 val* var_p /* var p: Parser */;
6498 val* var /* : null */;
6499 val* var_node_list /* var node_list: nullable Object */;
6500 val* var1 /* : nullable Object */;
6501 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6502 val* var_tnumbernode2 /* var tnumbernode2: nullable Object */;
6503 short int var2 /* : Bool */;
6504 int cltype;
6505 int idtype;
6506 val* var3 /* : AIntExpr */;
6507 val* var4 /* : null */;
6508 val* var_pexprnode1 /* var pexprnode1: nullable AIntExpr */;
6509 long var5 /* : Int */;
6510 long var6 /* : Int */;
6511 var_p = p0;
6512 var = NULL;
6513 var_node_list = var;
6514 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6515 var_nodearraylist1 = var1;
6516 var_tnumbernode2 = var_nodearraylist1;
6517 /* <var_tnumbernode2:nullable Object> isa nullable TNumber */
6518 cltype = type_nullable_parser_nodes__TNumber.color;
6519 idtype = type_nullable_parser_nodes__TNumber.id;
6520 if(var_tnumbernode2 == NULL) {
6521 var2 = 1;
6522 } else {
6523 if(cltype >= var_tnumbernode2->type->table_size) {
6524 var2 = 0;
6525 } else {
6526 var2 = var_tnumbernode2->type->type_table[cltype] == idtype;
6527 }
6528 }
6529 if (!var2) {
6530 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29182);
6531 exit(1);
6532 }
6533 var3 = NEW_parser_nodes__AIntExpr(&type_parser_nodes__AIntExpr);
6534 var4 = NULL;
6535 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AIntExpr__init_aintexpr]))(var3, var_tnumbernode2, var4) /* init_aintexpr on <var3:AIntExpr>*/;
6536 CHECK_NEW_parser_nodes__AIntExpr(var3);
6537 var_pexprnode1 = var3;
6538 var_node_list = var_pexprnode1;
6539 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction846> */
6540 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
6541 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
6542 RET_LABEL:;
6543 }
6544 /* method parser#ReduceAction846#action for (self: Object, Parser) */
6545 void VIRTUAL_parser__ReduceAction846__action(val* self, val* p0) {
6546 parser__ReduceAction846__action(self, p0);
6547 RET_LABEL:;
6548 }
6549 /* method parser#ReduceAction847#action for (self: ReduceAction847, Parser) */
6550 void parser__ReduceAction847__action(val* self, val* p0) {
6551 val* var_p /* var p: Parser */;
6552 val* var /* : null */;
6553 val* var_node_list /* var node_list: nullable Object */;
6554 val* var1 /* : nullable Object */;
6555 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6556 val* var2 /* : nullable Object */;
6557 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6558 val* var_tnumbernode2 /* var tnumbernode2: nullable Object */;
6559 short int var3 /* : Bool */;
6560 int cltype;
6561 int idtype;
6562 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
6563 short int var4 /* : Bool */;
6564 int cltype5;
6565 int idtype6;
6566 val* var7 /* : AIntExpr */;
6567 val* var_pexprnode1 /* var pexprnode1: nullable AIntExpr */;
6568 long var8 /* : Int */;
6569 long var9 /* : Int */;
6570 var_p = p0;
6571 var = NULL;
6572 var_node_list = var;
6573 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6574 var_nodearraylist2 = var1;
6575 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6576 var_nodearraylist1 = var2;
6577 var_tnumbernode2 = var_nodearraylist1;
6578 /* <var_tnumbernode2:nullable Object> isa nullable TNumber */
6579 cltype = type_nullable_parser_nodes__TNumber.color;
6580 idtype = type_nullable_parser_nodes__TNumber.id;
6581 if(var_tnumbernode2 == NULL) {
6582 var3 = 1;
6583 } else {
6584 if(cltype >= var_tnumbernode2->type->table_size) {
6585 var3 = 0;
6586 } else {
6587 var3 = var_tnumbernode2->type->type_table[cltype] == idtype;
6588 }
6589 }
6590 if (!var3) {
6591 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29199);
6592 exit(1);
6593 }
6594 var_pannotationsnode3 = var_nodearraylist2;
6595 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
6596 cltype5 = type_nullable_parser_nodes__AAnnotations.color;
6597 idtype6 = type_nullable_parser_nodes__AAnnotations.id;
6598 if(var_pannotationsnode3 == NULL) {
6599 var4 = 1;
6600 } else {
6601 if(cltype5 >= var_pannotationsnode3->type->table_size) {
6602 var4 = 0;
6603 } else {
6604 var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
6605 }
6606 }
6607 if (!var4) {
6608 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29201);
6609 exit(1);
6610 }
6611 var7 = NEW_parser_nodes__AIntExpr(&type_parser_nodes__AIntExpr);
6612 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AIntExpr__init_aintexpr]))(var7, var_tnumbernode2, var_pannotationsnode3) /* init_aintexpr on <var7:AIntExpr>*/;
6613 CHECK_NEW_parser_nodes__AIntExpr(var7);
6614 var_pexprnode1 = var7;
6615 var_node_list = var_pexprnode1;
6616 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction847> */
6617 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
6618 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
6619 RET_LABEL:;
6620 }
6621 /* method parser#ReduceAction847#action for (self: Object, Parser) */
6622 void VIRTUAL_parser__ReduceAction847__action(val* self, val* p0) {
6623 parser__ReduceAction847__action(self, p0);
6624 RET_LABEL:;
6625 }
6626 /* method parser#ReduceAction848#action for (self: ReduceAction848, Parser) */
6627 void parser__ReduceAction848__action(val* self, val* p0) {
6628 val* var_p /* var p: Parser */;
6629 val* var /* : null */;
6630 val* var_node_list /* var node_list: nullable Object */;
6631 val* var1 /* : nullable Object */;
6632 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6633 val* var_tfloatnode2 /* var tfloatnode2: nullable Object */;
6634 short int var2 /* : Bool */;
6635 int cltype;
6636 int idtype;
6637 val* var3 /* : AFloatExpr */;
6638 val* var4 /* : null */;
6639 val* var_pexprnode1 /* var pexprnode1: nullable AFloatExpr */;
6640 long var5 /* : Int */;
6641 long var6 /* : Int */;
6642 var_p = p0;
6643 var = NULL;
6644 var_node_list = var;
6645 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6646 var_nodearraylist1 = var1;
6647 var_tfloatnode2 = var_nodearraylist1;
6648 /* <var_tfloatnode2:nullable Object> isa nullable TFloat */
6649 cltype = type_nullable_parser_nodes__TFloat.color;
6650 idtype = type_nullable_parser_nodes__TFloat.id;
6651 if(var_tfloatnode2 == NULL) {
6652 var2 = 1;
6653 } else {
6654 if(cltype >= var_tfloatnode2->type->table_size) {
6655 var2 = 0;
6656 } else {
6657 var2 = var_tfloatnode2->type->type_table[cltype] == idtype;
6658 }
6659 }
6660 if (!var2) {
6661 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29217);
6662 exit(1);
6663 }
6664 var3 = NEW_parser_nodes__AFloatExpr(&type_parser_nodes__AFloatExpr);
6665 var4 = NULL;
6666 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AFloatExpr__init_afloatexpr]))(var3, var_tfloatnode2, var4) /* init_afloatexpr on <var3:AFloatExpr>*/;
6667 CHECK_NEW_parser_nodes__AFloatExpr(var3);
6668 var_pexprnode1 = var3;
6669 var_node_list = var_pexprnode1;
6670 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction848> */
6671 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
6672 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
6673 RET_LABEL:;
6674 }
6675 /* method parser#ReduceAction848#action for (self: Object, Parser) */
6676 void VIRTUAL_parser__ReduceAction848__action(val* self, val* p0) {
6677 parser__ReduceAction848__action(self, p0);
6678 RET_LABEL:;
6679 }
6680 /* method parser#ReduceAction849#action for (self: ReduceAction849, Parser) */
6681 void parser__ReduceAction849__action(val* self, val* p0) {
6682 val* var_p /* var p: Parser */;
6683 val* var /* : null */;
6684 val* var_node_list /* var node_list: nullable Object */;
6685 val* var1 /* : nullable Object */;
6686 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6687 val* var2 /* : nullable Object */;
6688 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6689 val* var_tfloatnode2 /* var tfloatnode2: nullable Object */;
6690 short int var3 /* : Bool */;
6691 int cltype;
6692 int idtype;
6693 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
6694 short int var4 /* : Bool */;
6695 int cltype5;
6696 int idtype6;
6697 val* var7 /* : AFloatExpr */;
6698 val* var_pexprnode1 /* var pexprnode1: nullable AFloatExpr */;
6699 long var8 /* : Int */;
6700 long var9 /* : Int */;
6701 var_p = p0;
6702 var = NULL;
6703 var_node_list = var;
6704 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6705 var_nodearraylist2 = var1;
6706 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6707 var_nodearraylist1 = var2;
6708 var_tfloatnode2 = var_nodearraylist1;
6709 /* <var_tfloatnode2:nullable Object> isa nullable TFloat */
6710 cltype = type_nullable_parser_nodes__TFloat.color;
6711 idtype = type_nullable_parser_nodes__TFloat.id;
6712 if(var_tfloatnode2 == NULL) {
6713 var3 = 1;
6714 } else {
6715 if(cltype >= var_tfloatnode2->type->table_size) {
6716 var3 = 0;
6717 } else {
6718 var3 = var_tfloatnode2->type->type_table[cltype] == idtype;
6719 }
6720 }
6721 if (!var3) {
6722 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29234);
6723 exit(1);
6724 }
6725 var_pannotationsnode3 = var_nodearraylist2;
6726 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
6727 cltype5 = type_nullable_parser_nodes__AAnnotations.color;
6728 idtype6 = type_nullable_parser_nodes__AAnnotations.id;
6729 if(var_pannotationsnode3 == NULL) {
6730 var4 = 1;
6731 } else {
6732 if(cltype5 >= var_pannotationsnode3->type->table_size) {
6733 var4 = 0;
6734 } else {
6735 var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
6736 }
6737 }
6738 if (!var4) {
6739 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29236);
6740 exit(1);
6741 }
6742 var7 = NEW_parser_nodes__AFloatExpr(&type_parser_nodes__AFloatExpr);
6743 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AFloatExpr__init_afloatexpr]))(var7, var_tfloatnode2, var_pannotationsnode3) /* init_afloatexpr on <var7:AFloatExpr>*/;
6744 CHECK_NEW_parser_nodes__AFloatExpr(var7);
6745 var_pexprnode1 = var7;
6746 var_node_list = var_pexprnode1;
6747 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction849> */
6748 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
6749 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
6750 RET_LABEL:;
6751 }
6752 /* method parser#ReduceAction849#action for (self: Object, Parser) */
6753 void VIRTUAL_parser__ReduceAction849__action(val* self, val* p0) {
6754 parser__ReduceAction849__action(self, p0);
6755 RET_LABEL:;
6756 }
6757 /* method parser#ReduceAction850#action for (self: ReduceAction850, Parser) */
6758 void parser__ReduceAction850__action(val* self, val* p0) {
6759 val* var_p /* var p: Parser */;
6760 val* var /* : null */;
6761 val* var_node_list /* var node_list: nullable Object */;
6762 val* var1 /* : nullable Object */;
6763 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6764 val* var_tcharnode2 /* var tcharnode2: nullable Object */;
6765 short int var2 /* : Bool */;
6766 int cltype;
6767 int idtype;
6768 val* var3 /* : ACharExpr */;
6769 val* var4 /* : null */;
6770 val* var_pexprnode1 /* var pexprnode1: nullable ACharExpr */;
6771 long var5 /* : Int */;
6772 long var6 /* : Int */;
6773 var_p = p0;
6774 var = NULL;
6775 var_node_list = var;
6776 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6777 var_nodearraylist1 = var1;
6778 var_tcharnode2 = var_nodearraylist1;
6779 /* <var_tcharnode2:nullable Object> isa nullable TChar */
6780 cltype = type_nullable_parser_nodes__TChar.color;
6781 idtype = type_nullable_parser_nodes__TChar.id;
6782 if(var_tcharnode2 == NULL) {
6783 var2 = 1;
6784 } else {
6785 if(cltype >= var_tcharnode2->type->table_size) {
6786 var2 = 0;
6787 } else {
6788 var2 = var_tcharnode2->type->type_table[cltype] == idtype;
6789 }
6790 }
6791 if (!var2) {
6792 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29252);
6793 exit(1);
6794 }
6795 var3 = NEW_parser_nodes__ACharExpr(&type_parser_nodes__ACharExpr);
6796 var4 = NULL;
6797 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_prod__ACharExpr__init_acharexpr]))(var3, var_tcharnode2, var4) /* init_acharexpr on <var3:ACharExpr>*/;
6798 CHECK_NEW_parser_nodes__ACharExpr(var3);
6799 var_pexprnode1 = var3;
6800 var_node_list = var_pexprnode1;
6801 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction850> */
6802 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
6803 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
6804 RET_LABEL:;
6805 }
6806 /* method parser#ReduceAction850#action for (self: Object, Parser) */
6807 void VIRTUAL_parser__ReduceAction850__action(val* self, val* p0) {
6808 parser__ReduceAction850__action(self, p0);
6809 RET_LABEL:;
6810 }
6811 /* method parser#ReduceAction851#action for (self: ReduceAction851, Parser) */
6812 void parser__ReduceAction851__action(val* self, val* p0) {
6813 val* var_p /* var p: Parser */;
6814 val* var /* : null */;
6815 val* var_node_list /* var node_list: nullable Object */;
6816 val* var1 /* : nullable Object */;
6817 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6818 val* var2 /* : nullable Object */;
6819 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6820 val* var_tcharnode2 /* var tcharnode2: nullable Object */;
6821 short int var3 /* : Bool */;
6822 int cltype;
6823 int idtype;
6824 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
6825 short int var4 /* : Bool */;
6826 int cltype5;
6827 int idtype6;
6828 val* var7 /* : ACharExpr */;
6829 val* var_pexprnode1 /* var pexprnode1: nullable ACharExpr */;
6830 long var8 /* : Int */;
6831 long var9 /* : Int */;
6832 var_p = p0;
6833 var = NULL;
6834 var_node_list = var;
6835 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6836 var_nodearraylist2 = var1;
6837 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6838 var_nodearraylist1 = var2;
6839 var_tcharnode2 = var_nodearraylist1;
6840 /* <var_tcharnode2:nullable Object> isa nullable TChar */
6841 cltype = type_nullable_parser_nodes__TChar.color;
6842 idtype = type_nullable_parser_nodes__TChar.id;
6843 if(var_tcharnode2 == NULL) {
6844 var3 = 1;
6845 } else {
6846 if(cltype >= var_tcharnode2->type->table_size) {
6847 var3 = 0;
6848 } else {
6849 var3 = var_tcharnode2->type->type_table[cltype] == idtype;
6850 }
6851 }
6852 if (!var3) {
6853 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29269);
6854 exit(1);
6855 }
6856 var_pannotationsnode3 = var_nodearraylist2;
6857 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
6858 cltype5 = type_nullable_parser_nodes__AAnnotations.color;
6859 idtype6 = type_nullable_parser_nodes__AAnnotations.id;
6860 if(var_pannotationsnode3 == NULL) {
6861 var4 = 1;
6862 } else {
6863 if(cltype5 >= var_pannotationsnode3->type->table_size) {
6864 var4 = 0;
6865 } else {
6866 var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
6867 }
6868 }
6869 if (!var4) {
6870 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29271);
6871 exit(1);
6872 }
6873 var7 = NEW_parser_nodes__ACharExpr(&type_parser_nodes__ACharExpr);
6874 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ACharExpr__init_acharexpr]))(var7, var_tcharnode2, var_pannotationsnode3) /* init_acharexpr on <var7:ACharExpr>*/;
6875 CHECK_NEW_parser_nodes__ACharExpr(var7);
6876 var_pexprnode1 = var7;
6877 var_node_list = var_pexprnode1;
6878 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction851> */
6879 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
6880 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
6881 RET_LABEL:;
6882 }
6883 /* method parser#ReduceAction851#action for (self: Object, Parser) */
6884 void VIRTUAL_parser__ReduceAction851__action(val* self, val* p0) {
6885 parser__ReduceAction851__action(self, p0);
6886 RET_LABEL:;
6887 }
6888 /* method parser#ReduceAction852#action for (self: ReduceAction852, Parser) */
6889 void parser__ReduceAction852__action(val* self, val* p0) {
6890 val* var_p /* var p: Parser */;
6891 val* var /* : null */;
6892 val* var_node_list /* var node_list: nullable Object */;
6893 val* var1 /* : nullable Object */;
6894 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6895 val* var_tstringnode2 /* var tstringnode2: nullable Object */;
6896 short int var2 /* : Bool */;
6897 int cltype;
6898 int idtype;
6899 val* var3 /* : AStringExpr */;
6900 val* var4 /* : null */;
6901 val* var_pexprnode1 /* var pexprnode1: nullable AStringExpr */;
6902 long var5 /* : Int */;
6903 long var6 /* : Int */;
6904 var_p = p0;
6905 var = NULL;
6906 var_node_list = var;
6907 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6908 var_nodearraylist1 = var1;
6909 var_tstringnode2 = var_nodearraylist1;
6910 /* <var_tstringnode2:nullable Object> isa nullable TString */
6911 cltype = type_nullable_parser_nodes__TString.color;
6912 idtype = type_nullable_parser_nodes__TString.id;
6913 if(var_tstringnode2 == NULL) {
6914 var2 = 1;
6915 } else {
6916 if(cltype >= var_tstringnode2->type->table_size) {
6917 var2 = 0;
6918 } else {
6919 var2 = var_tstringnode2->type->type_table[cltype] == idtype;
6920 }
6921 }
6922 if (!var2) {
6923 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29287);
6924 exit(1);
6925 }
6926 var3 = NEW_parser_nodes__AStringExpr(&type_parser_nodes__AStringExpr);
6927 var4 = NULL;
6928 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AStringExpr__init_astringexpr]))(var3, var_tstringnode2, var4) /* init_astringexpr on <var3:AStringExpr>*/;
6929 CHECK_NEW_parser_nodes__AStringExpr(var3);
6930 var_pexprnode1 = var3;
6931 var_node_list = var_pexprnode1;
6932 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction852> */
6933 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
6934 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
6935 RET_LABEL:;
6936 }
6937 /* method parser#ReduceAction852#action for (self: Object, Parser) */
6938 void VIRTUAL_parser__ReduceAction852__action(val* self, val* p0) {
6939 parser__ReduceAction852__action(self, p0);
6940 RET_LABEL:;
6941 }
6942 /* method parser#ReduceAction853#action for (self: ReduceAction853, Parser) */
6943 void parser__ReduceAction853__action(val* self, val* p0) {
6944 val* var_p /* var p: Parser */;
6945 val* var /* : null */;
6946 val* var_node_list /* var node_list: nullable Object */;
6947 val* var1 /* : nullable Object */;
6948 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6949 val* var2 /* : nullable Object */;
6950 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6951 val* var_tstringnode2 /* var tstringnode2: nullable Object */;
6952 short int var3 /* : Bool */;
6953 int cltype;
6954 int idtype;
6955 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
6956 short int var4 /* : Bool */;
6957 int cltype5;
6958 int idtype6;
6959 val* var7 /* : AStringExpr */;
6960 val* var_pexprnode1 /* var pexprnode1: nullable AStringExpr */;
6961 long var8 /* : Int */;
6962 long var9 /* : Int */;
6963 var_p = p0;
6964 var = NULL;
6965 var_node_list = var;
6966 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6967 var_nodearraylist2 = var1;
6968 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6969 var_nodearraylist1 = var2;
6970 var_tstringnode2 = var_nodearraylist1;
6971 /* <var_tstringnode2:nullable Object> isa nullable TString */
6972 cltype = type_nullable_parser_nodes__TString.color;
6973 idtype = type_nullable_parser_nodes__TString.id;
6974 if(var_tstringnode2 == NULL) {
6975 var3 = 1;
6976 } else {
6977 if(cltype >= var_tstringnode2->type->table_size) {
6978 var3 = 0;
6979 } else {
6980 var3 = var_tstringnode2->type->type_table[cltype] == idtype;
6981 }
6982 }
6983 if (!var3) {
6984 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29304);
6985 exit(1);
6986 }
6987 var_pannotationsnode3 = var_nodearraylist2;
6988 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
6989 cltype5 = type_nullable_parser_nodes__AAnnotations.color;
6990 idtype6 = type_nullable_parser_nodes__AAnnotations.id;
6991 if(var_pannotationsnode3 == NULL) {
6992 var4 = 1;
6993 } else {
6994 if(cltype5 >= var_pannotationsnode3->type->table_size) {
6995 var4 = 0;
6996 } else {
6997 var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
6998 }
6999 }
7000 if (!var4) {
7001 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29306);
7002 exit(1);
7003 }
7004 var7 = NEW_parser_nodes__AStringExpr(&type_parser_nodes__AStringExpr);
7005 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AStringExpr__init_astringexpr]))(var7, var_tstringnode2, var_pannotationsnode3) /* init_astringexpr on <var7:AStringExpr>*/;
7006 CHECK_NEW_parser_nodes__AStringExpr(var7);
7007 var_pexprnode1 = var7;
7008 var_node_list = var_pexprnode1;
7009 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction853> */
7010 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
7011 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
7012 RET_LABEL:;
7013 }
7014 /* method parser#ReduceAction853#action for (self: Object, Parser) */
7015 void VIRTUAL_parser__ReduceAction853__action(val* self, val* p0) {
7016 parser__ReduceAction853__action(self, p0);
7017 RET_LABEL:;
7018 }
7019 /* method parser#ReduceAction855#action for (self: ReduceAction855, Parser) */
7020 void parser__ReduceAction855__action(val* self, val* p0) {
7021 val* var_p /* var p: Parser */;
7022 val* var /* : null */;
7023 val* var_node_list /* var node_list: nullable Object */;
7024 val* var1 /* : nullable Object */;
7025 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7026 val* var2 /* : nullable Object */;
7027 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7028 val* var3 /* : nullable Object */;
7029 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7030 val* var4 /* : nullable Object */;
7031 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7032 val* var5 /* : nullable Object */;
7033 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7034 val* var_toparnode2 /* var toparnode2: nullable Object */;
7035 short int var6 /* : Bool */;
7036 int cltype;
7037 int idtype;
7038 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
7039 short int var7 /* : Bool */;
7040 int cltype8;
7041 int idtype9;
7042 val* var_tcparnode4 /* var tcparnode4: nullable Object */;
7043 short int var10 /* : Bool */;
7044 int cltype11;
7045 int idtype12;
7046 val* var13 /* : AParExpr */;
7047 val* var14 /* : null */;
7048 val* var_pexprnode1 /* var pexprnode1: nullable AParExpr */;
7049 long var15 /* : Int */;
7050 long var16 /* : Int */;
7051 var_p = p0;
7052 var = NULL;
7053 var_node_list = var;
7054 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7055 var_nodearraylist5 = var1;
7056 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7057 var_nodearraylist4 = var2;
7058 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7059 var_nodearraylist3 = var3;
7060 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7061 var_nodearraylist2 = var4;
7062 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7063 var_nodearraylist1 = var5;
7064 var_toparnode2 = var_nodearraylist1;
7065 /* <var_toparnode2:nullable Object> isa nullable TOpar */
7066 cltype = type_nullable_parser_nodes__TOpar.color;
7067 idtype = type_nullable_parser_nodes__TOpar.id;
7068 if(var_toparnode2 == NULL) {
7069 var6 = 1;
7070 } else {
7071 if(cltype >= var_toparnode2->type->table_size) {
7072 var6 = 0;
7073 } else {
7074 var6 = var_toparnode2->type->type_table[cltype] == idtype;
7075 }
7076 }
7077 if (!var6) {
7078 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29326);
7079 exit(1);
7080 }
7081 var_pexprnode3 = var_nodearraylist3;
7082 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
7083 cltype8 = type_nullable_parser_nodes__AExpr.color;
7084 idtype9 = type_nullable_parser_nodes__AExpr.id;
7085 if(var_pexprnode3 == NULL) {
7086 var7 = 1;
7087 } else {
7088 if(cltype8 >= var_pexprnode3->type->table_size) {
7089 var7 = 0;
7090 } else {
7091 var7 = var_pexprnode3->type->type_table[cltype8] == idtype9;
7092 }
7093 }
7094 if (!var7) {
7095 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29328);
7096 exit(1);
7097 }
7098 var_tcparnode4 = var_nodearraylist5;
7099 /* <var_tcparnode4:nullable Object> isa nullable TCpar */
7100 cltype11 = type_nullable_parser_nodes__TCpar.color;
7101 idtype12 = type_nullable_parser_nodes__TCpar.id;
7102 if(var_tcparnode4 == NULL) {
7103 var10 = 1;
7104 } else {
7105 if(cltype11 >= var_tcparnode4->type->table_size) {
7106 var10 = 0;
7107 } else {
7108 var10 = var_tcparnode4->type->type_table[cltype11] == idtype12;
7109 }
7110 }
7111 if (!var10) {
7112 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29330);
7113 exit(1);
7114 }
7115 var13 = NEW_parser_nodes__AParExpr(&type_parser_nodes__AParExpr);
7116 var14 = NULL;
7117 ((void (*)(val*, val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__AParExpr__init_aparexpr]))(var13, var_toparnode2, var_pexprnode3, var_tcparnode4, var14) /* init_aparexpr on <var13:AParExpr>*/;
7118 CHECK_NEW_parser_nodes__AParExpr(var13);
7119 var_pexprnode1 = var13;
7120 var_node_list = var_pexprnode1;
7121 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction855> */
7122 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
7123 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
7124 RET_LABEL:;
7125 }
7126 /* method parser#ReduceAction855#action for (self: Object, Parser) */
7127 void VIRTUAL_parser__ReduceAction855__action(val* self, val* p0) {
7128 parser__ReduceAction855__action(self, p0);
7129 RET_LABEL:;
7130 }
7131 /* method parser#ReduceAction856#action for (self: ReduceAction856, Parser) */
7132 void parser__ReduceAction856__action(val* self, val* p0) {
7133 val* var_p /* var p: Parser */;
7134 val* var /* : null */;
7135 val* var_node_list /* var node_list: nullable Object */;
7136 val* var1 /* : nullable Object */;
7137 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7138 val* var2 /* : nullable Object */;
7139 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7140 val* var3 /* : nullable Object */;
7141 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7142 val* var4 /* : nullable Object */;
7143 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7144 val* var5 /* : nullable Object */;
7145 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7146 val* var6 /* : nullable Object */;
7147 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7148 val* var_toparnode2 /* var toparnode2: nullable Object */;
7149 short int var7 /* : Bool */;
7150 int cltype;
7151 int idtype;
7152 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
7153 short int var8 /* : Bool */;
7154 int cltype9;
7155 int idtype10;
7156 val* var_tcparnode4 /* var tcparnode4: nullable Object */;
7157 short int var11 /* : Bool */;
7158 int cltype12;
7159 int idtype13;
7160 val* var_pannotationsnode5 /* var pannotationsnode5: nullable Object */;
7161 short int var14 /* : Bool */;
7162 int cltype15;
7163 int idtype16;
7164 val* var17 /* : AParExpr */;
7165 val* var_pexprnode1 /* var pexprnode1: nullable AParExpr */;
7166 long var18 /* : Int */;
7167 long var19 /* : Int */;
7168 var_p = p0;
7169 var = NULL;
7170 var_node_list = var;
7171 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7172 var_nodearraylist6 = var1;
7173 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7174 var_nodearraylist5 = var2;
7175 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7176 var_nodearraylist4 = var3;
7177 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7178 var_nodearraylist3 = var4;
7179 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7180 var_nodearraylist2 = var5;
7181 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7182 var_nodearraylist1 = var6;
7183 var_toparnode2 = var_nodearraylist1;
7184 /* <var_toparnode2:nullable Object> isa nullable TOpar */
7185 cltype = type_nullable_parser_nodes__TOpar.color;
7186 idtype = type_nullable_parser_nodes__TOpar.id;
7187 if(var_toparnode2 == NULL) {
7188 var7 = 1;
7189 } else {
7190 if(cltype >= var_toparnode2->type->table_size) {
7191 var7 = 0;
7192 } else {
7193 var7 = var_toparnode2->type->type_table[cltype] == idtype;
7194 }
7195 }
7196 if (!var7) {
7197 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29353);
7198 exit(1);
7199 }
7200 var_pexprnode3 = var_nodearraylist3;
7201 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
7202 cltype9 = type_nullable_parser_nodes__AExpr.color;
7203 idtype10 = type_nullable_parser_nodes__AExpr.id;
7204 if(var_pexprnode3 == NULL) {
7205 var8 = 1;
7206 } else {
7207 if(cltype9 >= var_pexprnode3->type->table_size) {
7208 var8 = 0;
7209 } else {
7210 var8 = var_pexprnode3->type->type_table[cltype9] == idtype10;
7211 }
7212 }
7213 if (!var8) {
7214 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29355);
7215 exit(1);
7216 }
7217 var_tcparnode4 = var_nodearraylist5;
7218 /* <var_tcparnode4:nullable Object> isa nullable TCpar */
7219 cltype12 = type_nullable_parser_nodes__TCpar.color;
7220 idtype13 = type_nullable_parser_nodes__TCpar.id;
7221 if(var_tcparnode4 == NULL) {
7222 var11 = 1;
7223 } else {
7224 if(cltype12 >= var_tcparnode4->type->table_size) {
7225 var11 = 0;
7226 } else {
7227 var11 = var_tcparnode4->type->type_table[cltype12] == idtype13;
7228 }
7229 }
7230 if (!var11) {
7231 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29357);
7232 exit(1);
7233 }
7234 var_pannotationsnode5 = var_nodearraylist6;
7235 /* <var_pannotationsnode5:nullable Object> isa nullable AAnnotations */
7236 cltype15 = type_nullable_parser_nodes__AAnnotations.color;
7237 idtype16 = type_nullable_parser_nodes__AAnnotations.id;
7238 if(var_pannotationsnode5 == NULL) {
7239 var14 = 1;
7240 } else {
7241 if(cltype15 >= var_pannotationsnode5->type->table_size) {
7242 var14 = 0;
7243 } else {
7244 var14 = var_pannotationsnode5->type->type_table[cltype15] == idtype16;
7245 }
7246 }
7247 if (!var14) {
7248 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29359);
7249 exit(1);
7250 }
7251 var17 = NEW_parser_nodes__AParExpr(&type_parser_nodes__AParExpr);
7252 ((void (*)(val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AParExpr__init_aparexpr]))(var17, var_toparnode2, var_pexprnode3, var_tcparnode4, var_pannotationsnode5) /* init_aparexpr on <var17:AParExpr>*/;
7253 CHECK_NEW_parser_nodes__AParExpr(var17);
7254 var_pexprnode1 = var17;
7255 var_node_list = var_pexprnode1;
7256 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction856> */
7257 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
7258 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
7259 RET_LABEL:;
7260 }
7261 /* method parser#ReduceAction856#action for (self: Object, Parser) */
7262 void VIRTUAL_parser__ReduceAction856__action(val* self, val* p0) {
7263 parser__ReduceAction856__action(self, p0);
7264 RET_LABEL:;
7265 }
7266 /* method parser#ReduceAction857#action for (self: ReduceAction857, Parser) */
7267 void parser__ReduceAction857__action(val* self, val* p0) {
7268 val* var_p /* var p: Parser */;
7269 val* var /* : null */;
7270 val* var_node_list /* var node_list: nullable Object */;
7271 val* var1 /* : nullable Object */;
7272 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
7273 val* var2 /* : nullable Object */;
7274 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
7275 val* var3 /* : nullable Object */;
7276 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
7277 val* var4 /* : nullable Object */;
7278 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
7279 val* var5 /* : nullable Object */;
7280 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7281 val* var6 /* : nullable Object */;
7282 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7283 val* var7 /* : nullable Object */;
7284 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7285 val* var8 /* : nullable Object */;
7286 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7287 val* var9 /* : nullable Object */;
7288 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7289 val* var10 /* : nullable Object */;
7290 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7291 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7292 short int var11 /* : Bool */;
7293 int cltype;
7294 int idtype;
7295 val* var_tkwasnode3 /* var tkwasnode3: nullable Object */;
7296 short int var12 /* : Bool */;
7297 int cltype13;
7298 int idtype14;
7299 val* var_toparnode4 /* var toparnode4: nullable Object */;
7300 short int var15 /* : Bool */;
7301 int cltype16;
7302 int idtype17;
7303 val* var_ptypenode5 /* var ptypenode5: nullable Object */;
7304 short int var18 /* : Bool */;
7305 int cltype19;
7306 int idtype20;
7307 val* var_tcparnode6 /* var tcparnode6: nullable Object */;
7308 short int var21 /* : Bool */;
7309 int cltype22;
7310 int idtype23;
7311 val* var24 /* : AAsCastExpr */;
7312 val* var_pexprnode1 /* var pexprnode1: nullable AAsCastExpr */;
7313 long var25 /* : Int */;
7314 long var26 /* : Int */;
7315 var_p = p0;
7316 var = NULL;
7317 var_node_list = var;
7318 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7319 var_nodearraylist10 = var1;
7320 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7321 var_nodearraylist9 = var2;
7322 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7323 var_nodearraylist8 = var3;
7324 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7325 var_nodearraylist7 = var4;
7326 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7327 var_nodearraylist6 = var5;
7328 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7329 var_nodearraylist5 = var6;
7330 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7331 var_nodearraylist4 = var7;
7332 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7333 var_nodearraylist3 = var8;
7334 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7335 var_nodearraylist2 = var9;
7336 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7337 var_nodearraylist1 = var10;
7338 var_pexprnode2 = var_nodearraylist1;
7339 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7340 cltype = type_nullable_parser_nodes__AExpr.color;
7341 idtype = type_nullable_parser_nodes__AExpr.id;
7342 if(var_pexprnode2 == NULL) {
7343 var11 = 1;
7344 } else {
7345 if(cltype >= var_pexprnode2->type->table_size) {
7346 var11 = 0;
7347 } else {
7348 var11 = var_pexprnode2->type->type_table[cltype] == idtype;
7349 }
7350 }
7351 if (!var11) {
7352 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29386);
7353 exit(1);
7354 }
7355 var_tkwasnode3 = var_nodearraylist4;
7356 /* <var_tkwasnode3:nullable Object> isa nullable TKwas */
7357 cltype13 = type_nullable_parser_nodes__TKwas.color;
7358 idtype14 = type_nullable_parser_nodes__TKwas.id;
7359 if(var_tkwasnode3 == NULL) {
7360 var12 = 1;
7361 } else {
7362 if(cltype13 >= var_tkwasnode3->type->table_size) {
7363 var12 = 0;
7364 } else {
7365 var12 = var_tkwasnode3->type->type_table[cltype13] == idtype14;
7366 }
7367 }
7368 if (!var12) {
7369 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29388);
7370 exit(1);
7371 }
7372 var_toparnode4 = var_nodearraylist6;
7373 /* <var_toparnode4:nullable Object> isa nullable TOpar */
7374 cltype16 = type_nullable_parser_nodes__TOpar.color;
7375 idtype17 = type_nullable_parser_nodes__TOpar.id;
7376 if(var_toparnode4 == NULL) {
7377 var15 = 1;
7378 } else {
7379 if(cltype16 >= var_toparnode4->type->table_size) {
7380 var15 = 0;
7381 } else {
7382 var15 = var_toparnode4->type->type_table[cltype16] == idtype17;
7383 }
7384 }
7385 if (!var15) {
7386 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29390);
7387 exit(1);
7388 }
7389 var_ptypenode5 = var_nodearraylist8;
7390 /* <var_ptypenode5:nullable Object> isa nullable AType */
7391 cltype19 = type_nullable_parser_nodes__AType.color;
7392 idtype20 = type_nullable_parser_nodes__AType.id;
7393 if(var_ptypenode5 == NULL) {
7394 var18 = 1;
7395 } else {
7396 if(cltype19 >= var_ptypenode5->type->table_size) {
7397 var18 = 0;
7398 } else {
7399 var18 = var_ptypenode5->type->type_table[cltype19] == idtype20;
7400 }
7401 }
7402 if (!var18) {
7403 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29392);
7404 exit(1);
7405 }
7406 var_tcparnode6 = var_nodearraylist10;
7407 /* <var_tcparnode6:nullable Object> isa nullable TCpar */
7408 cltype22 = type_nullable_parser_nodes__TCpar.color;
7409 idtype23 = type_nullable_parser_nodes__TCpar.id;
7410 if(var_tcparnode6 == NULL) {
7411 var21 = 1;
7412 } else {
7413 if(cltype22 >= var_tcparnode6->type->table_size) {
7414 var21 = 0;
7415 } else {
7416 var21 = var_tcparnode6->type->type_table[cltype22] == idtype23;
7417 }
7418 }
7419 if (!var21) {
7420 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29394);
7421 exit(1);
7422 }
7423 var24 = NEW_parser_nodes__AAsCastExpr(&type_parser_nodes__AAsCastExpr);
7424 ((void (*)(val*, val*, val*, val*, val*, val*))(var24->class->vft[COLOR_parser_prod__AAsCastExpr__init_aascastexpr]))(var24, var_pexprnode2, var_tkwasnode3, var_toparnode4, var_ptypenode5, var_tcparnode6) /* init_aascastexpr on <var24:AAsCastExpr>*/;
7425 CHECK_NEW_parser_nodes__AAsCastExpr(var24);
7426 var_pexprnode1 = var24;
7427 var_node_list = var_pexprnode1;
7428 var25 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction857> */
7429 var26 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var25) /* go_to on <var_p:Parser>*/;
7430 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var26, var_node_list) /* push on <var_p:Parser>*/;
7431 RET_LABEL:;
7432 }
7433 /* method parser#ReduceAction857#action for (self: Object, Parser) */
7434 void VIRTUAL_parser__ReduceAction857__action(val* self, val* p0) {
7435 parser__ReduceAction857__action(self, p0);
7436 RET_LABEL:;
7437 }
7438 /* method parser#ReduceAction858#action for (self: ReduceAction858, Parser) */
7439 void parser__ReduceAction858__action(val* self, val* p0) {
7440 val* var_p /* var p: Parser */;
7441 val* var /* : null */;
7442 val* var_node_list /* var node_list: nullable Object */;
7443 val* var1 /* : nullable Object */;
7444 val* var_nodearraylist12 /* var nodearraylist12: nullable Object */;
7445 val* var2 /* : nullable Object */;
7446 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
7447 val* var3 /* : nullable Object */;
7448 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
7449 val* var4 /* : nullable Object */;
7450 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
7451 val* var5 /* : nullable Object */;
7452 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
7453 val* var6 /* : nullable Object */;
7454 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
7455 val* var7 /* : nullable Object */;
7456 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7457 val* var8 /* : nullable Object */;
7458 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7459 val* var9 /* : nullable Object */;
7460 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7461 val* var10 /* : nullable Object */;
7462 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7463 val* var11 /* : nullable Object */;
7464 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7465 val* var12 /* : nullable Object */;
7466 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7467 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7468 short int var13 /* : Bool */;
7469 int cltype;
7470 int idtype;
7471 val* var_tkwasnode3 /* var tkwasnode3: nullable Object */;
7472 short int var14 /* : Bool */;
7473 int cltype15;
7474 int idtype16;
7475 val* var_toparnode4 /* var toparnode4: nullable Object */;
7476 short int var17 /* : Bool */;
7477 int cltype18;
7478 int idtype19;
7479 val* var_tkwnotnode5 /* var tkwnotnode5: nullable Object */;
7480 short int var20 /* : Bool */;
7481 int cltype21;
7482 int idtype22;
7483 val* var_tkwnullnode6 /* var tkwnullnode6: nullable Object */;
7484 short int var23 /* : Bool */;
7485 int cltype24;
7486 int idtype25;
7487 val* var_tcparnode7 /* var tcparnode7: nullable Object */;
7488 short int var26 /* : Bool */;
7489 int cltype27;
7490 int idtype28;
7491 val* var29 /* : AAsNotnullExpr */;
7492 val* var_pexprnode1 /* var pexprnode1: nullable AAsNotnullExpr */;
7493 long var30 /* : Int */;
7494 long var31 /* : Int */;
7495 var_p = p0;
7496 var = NULL;
7497 var_node_list = var;
7498 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7499 var_nodearraylist12 = var1;
7500 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7501 var_nodearraylist11 = var2;
7502 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7503 var_nodearraylist10 = var3;
7504 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7505 var_nodearraylist9 = var4;
7506 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7507 var_nodearraylist8 = var5;
7508 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7509 var_nodearraylist7 = var6;
7510 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7511 var_nodearraylist6 = var7;
7512 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7513 var_nodearraylist5 = var8;
7514 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7515 var_nodearraylist4 = var9;
7516 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7517 var_nodearraylist3 = var10;
7518 var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7519 var_nodearraylist2 = var11;
7520 var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7521 var_nodearraylist1 = var12;
7522 var_pexprnode2 = var_nodearraylist1;
7523 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7524 cltype = type_nullable_parser_nodes__AExpr.color;
7525 idtype = type_nullable_parser_nodes__AExpr.id;
7526 if(var_pexprnode2 == NULL) {
7527 var13 = 1;
7528 } else {
7529 if(cltype >= var_pexprnode2->type->table_size) {
7530 var13 = 0;
7531 } else {
7532 var13 = var_pexprnode2->type->type_table[cltype] == idtype;
7533 }
7534 }
7535 if (!var13) {
7536 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29424);
7537 exit(1);
7538 }
7539 var_tkwasnode3 = var_nodearraylist4;
7540 /* <var_tkwasnode3:nullable Object> isa nullable TKwas */
7541 cltype15 = type_nullable_parser_nodes__TKwas.color;
7542 idtype16 = type_nullable_parser_nodes__TKwas.id;
7543 if(var_tkwasnode3 == NULL) {
7544 var14 = 1;
7545 } else {
7546 if(cltype15 >= var_tkwasnode3->type->table_size) {
7547 var14 = 0;
7548 } else {
7549 var14 = var_tkwasnode3->type->type_table[cltype15] == idtype16;
7550 }
7551 }
7552 if (!var14) {
7553 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29426);
7554 exit(1);
7555 }
7556 var_toparnode4 = var_nodearraylist6;
7557 /* <var_toparnode4:nullable Object> isa nullable TOpar */
7558 cltype18 = type_nullable_parser_nodes__TOpar.color;
7559 idtype19 = type_nullable_parser_nodes__TOpar.id;
7560 if(var_toparnode4 == NULL) {
7561 var17 = 1;
7562 } else {
7563 if(cltype18 >= var_toparnode4->type->table_size) {
7564 var17 = 0;
7565 } else {
7566 var17 = var_toparnode4->type->type_table[cltype18] == idtype19;
7567 }
7568 }
7569 if (!var17) {
7570 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29428);
7571 exit(1);
7572 }
7573 var_tkwnotnode5 = var_nodearraylist8;
7574 /* <var_tkwnotnode5:nullable Object> isa nullable TKwnot */
7575 cltype21 = type_nullable_parser_nodes__TKwnot.color;
7576 idtype22 = type_nullable_parser_nodes__TKwnot.id;
7577 if(var_tkwnotnode5 == NULL) {
7578 var20 = 1;
7579 } else {
7580 if(cltype21 >= var_tkwnotnode5->type->table_size) {
7581 var20 = 0;
7582 } else {
7583 var20 = var_tkwnotnode5->type->type_table[cltype21] == idtype22;
7584 }
7585 }
7586 if (!var20) {
7587 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29430);
7588 exit(1);
7589 }
7590 var_tkwnullnode6 = var_nodearraylist10;
7591 /* <var_tkwnullnode6:nullable Object> isa nullable TKwnull */
7592 cltype24 = type_nullable_parser_nodes__TKwnull.color;
7593 idtype25 = type_nullable_parser_nodes__TKwnull.id;
7594 if(var_tkwnullnode6 == NULL) {
7595 var23 = 1;
7596 } else {
7597 if(cltype24 >= var_tkwnullnode6->type->table_size) {
7598 var23 = 0;
7599 } else {
7600 var23 = var_tkwnullnode6->type->type_table[cltype24] == idtype25;
7601 }
7602 }
7603 if (!var23) {
7604 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29432);
7605 exit(1);
7606 }
7607 var_tcparnode7 = var_nodearraylist12;
7608 /* <var_tcparnode7:nullable Object> isa nullable TCpar */
7609 cltype27 = type_nullable_parser_nodes__TCpar.color;
7610 idtype28 = type_nullable_parser_nodes__TCpar.id;
7611 if(var_tcparnode7 == NULL) {
7612 var26 = 1;
7613 } else {
7614 if(cltype27 >= var_tcparnode7->type->table_size) {
7615 var26 = 0;
7616 } else {
7617 var26 = var_tcparnode7->type->type_table[cltype27] == idtype28;
7618 }
7619 }
7620 if (!var26) {
7621 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29434);
7622 exit(1);
7623 }
7624 var29 = NEW_parser_nodes__AAsNotnullExpr(&type_parser_nodes__AAsNotnullExpr);
7625 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var29->class->vft[COLOR_parser_prod__AAsNotnullExpr__init_aasnotnullexpr]))(var29, var_pexprnode2, var_tkwasnode3, var_toparnode4, var_tkwnotnode5, var_tkwnullnode6, var_tcparnode7) /* init_aasnotnullexpr on <var29:AAsNotnullExpr>*/;
7626 CHECK_NEW_parser_nodes__AAsNotnullExpr(var29);
7627 var_pexprnode1 = var29;
7628 var_node_list = var_pexprnode1;
7629 var30 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction858> */
7630 var31 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var30) /* go_to on <var_p:Parser>*/;
7631 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var31, var_node_list) /* push on <var_p:Parser>*/;
7632 RET_LABEL:;
7633 }
7634 /* method parser#ReduceAction858#action for (self: Object, Parser) */
7635 void VIRTUAL_parser__ReduceAction858__action(val* self, val* p0) {
7636 parser__ReduceAction858__action(self, p0);
7637 RET_LABEL:;
7638 }
7639 /* method parser#ReduceAction859#action for (self: ReduceAction859, Parser) */
7640 void parser__ReduceAction859__action(val* self, val* p0) {
7641 val* var_p /* var p: Parser */;
7642 val* var /* : null */;
7643 val* var_node_list /* var node_list: nullable Object */;
7644 val* var1 /* : nullable Object */;
7645 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7646 val* var2 /* : nullable Object */;
7647 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7648 val* var3 /* : Array[Object] */;
7649 val* var_listnode4 /* var listnode4: Array[Object] */;
7650 val* var_listnode2 /* var listnode2: nullable Object */;
7651 short int var4 /* : Bool */;
7652 int cltype;
7653 int idtype;
7654 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
7655 short int var5 /* : Bool */;
7656 int cltype6;
7657 int idtype7;
7658 val* var8 /* : Array[Object] */;
7659 val* var9 /* : null */;
7660 short int var10 /* : Bool */;
7661 val* var11 /* : ASuperstringExpr */;
7662 val* var12 /* : null */;
7663 val* var_pexprnode1 /* var pexprnode1: nullable ASuperstringExpr */;
7664 long var13 /* : Int */;
7665 long var14 /* : Int */;
7666 var_p = p0;
7667 var = NULL;
7668 var_node_list = var;
7669 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7670 var_nodearraylist2 = var1;
7671 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7672 var_nodearraylist1 = var2;
7673 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
7674 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
7675 CHECK_NEW_array__Array(var3);
7676 var_listnode4 = var3;
7677 var_listnode2 = var_nodearraylist1;
7678 /* <var_listnode2:nullable Object> isa Array[Object] */
7679 cltype = type_array__Arraykernel__Object.color;
7680 idtype = type_array__Arraykernel__Object.id;
7681 if(var_listnode2 == NULL) {
7682 var4 = 0;
7683 } else {
7684 if(cltype >= var_listnode2->type->table_size) {
7685 var4 = 0;
7686 } else {
7687 var4 = var_listnode2->type->type_table[cltype] == idtype;
7688 }
7689 }
7690 if (!var4) {
7691 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29456);
7692 exit(1);
7693 }
7694 var_pexprnode3 = var_nodearraylist2;
7695 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
7696 cltype6 = type_nullable_parser_nodes__AExpr.color;
7697 idtype7 = type_nullable_parser_nodes__AExpr.id;
7698 if(var_pexprnode3 == NULL) {
7699 var5 = 1;
7700 } else {
7701 if(cltype6 >= var_pexprnode3->type->table_size) {
7702 var5 = 0;
7703 } else {
7704 var5 = var_pexprnode3->type->type_table[cltype6] == idtype7;
7705 }
7706 }
7707 if (!var5) {
7708 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29458);
7709 exit(1);
7710 }
7711 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode2) /* concat on <self:ReduceAction859>*/;
7712 var_listnode4 = var8;
7713 var9 = NULL;
7714 if (var_pexprnode3 == NULL) {
7715 var10 = 0; /* is null */
7716 } else {
7717 var10 = 1; /* arg is null and recv is not */
7718 }
7719 if (var10){
7720 ((void (*)(val*, val*))(var_listnode4->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode4, var_pexprnode3) /* add on <var_listnode4:Array[Object]>*/;
7721 } else {
7722 }
7723 var11 = NEW_parser_nodes__ASuperstringExpr(&type_parser_nodes__ASuperstringExpr);
7724 var12 = NULL;
7725 ((void (*)(val*, val*, val*))(var11->class->vft[COLOR_parser_prod__ASuperstringExpr__init_asuperstringexpr]))(var11, var_listnode4, var12) /* init_asuperstringexpr on <var11:ASuperstringExpr>*/;
7726 CHECK_NEW_parser_nodes__ASuperstringExpr(var11);
7727 var_pexprnode1 = var11;
7728 var_node_list = var_pexprnode1;
7729 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction859> */
7730 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
7731 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
7732 RET_LABEL:;
7733 }
7734 /* method parser#ReduceAction859#action for (self: Object, Parser) */
7735 void VIRTUAL_parser__ReduceAction859__action(val* self, val* p0) {
7736 parser__ReduceAction859__action(self, p0);
7737 RET_LABEL:;
7738 }
7739 /* method parser#ReduceAction860#action for (self: ReduceAction860, Parser) */
7740 void parser__ReduceAction860__action(val* self, val* p0) {
7741 val* var_p /* var p: Parser */;
7742 val* var /* : null */;
7743 val* var_node_list /* var node_list: nullable Object */;
7744 val* var1 /* : nullable Object */;
7745 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7746 val* var2 /* : nullable Object */;
7747 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7748 val* var3 /* : nullable Object */;
7749 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7750 val* var4 /* : Array[Object] */;
7751 val* var_listnode5 /* var listnode5: Array[Object] */;
7752 val* var_listnode2 /* var listnode2: nullable Object */;
7753 short int var5 /* : Bool */;
7754 int cltype;
7755 int idtype;
7756 val* var_listnode3 /* var listnode3: nullable Object */;
7757 short int var6 /* : Bool */;
7758 int cltype7;
7759 int idtype8;
7760 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
7761 short int var9 /* : Bool */;
7762 int cltype10;
7763 int idtype11;
7764 val* var12 /* : Array[Object] */;
7765 val* var13 /* : Array[Object] */;
7766 val* var14 /* : null */;
7767 short int var15 /* : Bool */;
7768 val* var16 /* : ASuperstringExpr */;
7769 val* var17 /* : null */;
7770 val* var_pexprnode1 /* var pexprnode1: nullable ASuperstringExpr */;
7771 long var18 /* : Int */;
7772 long var19 /* : Int */;
7773 var_p = p0;
7774 var = NULL;
7775 var_node_list = var;
7776 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7777 var_nodearraylist3 = var1;
7778 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7779 var_nodearraylist2 = var2;
7780 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7781 var_nodearraylist1 = var3;
7782 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
7783 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
7784 CHECK_NEW_array__Array(var4);
7785 var_listnode5 = var4;
7786 var_listnode2 = var_nodearraylist1;
7787 /* <var_listnode2:nullable Object> isa Array[Object] */
7788 cltype = type_array__Arraykernel__Object.color;
7789 idtype = type_array__Arraykernel__Object.id;
7790 if(var_listnode2 == NULL) {
7791 var5 = 0;
7792 } else {
7793 if(cltype >= var_listnode2->type->table_size) {
7794 var5 = 0;
7795 } else {
7796 var5 = var_listnode2->type->type_table[cltype] == idtype;
7797 }
7798 }
7799 if (!var5) {
7800 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29481);
7801 exit(1);
7802 }
7803 var_listnode3 = var_nodearraylist2;
7804 /* <var_listnode3:nullable Object> isa Array[Object] */
7805 cltype7 = type_array__Arraykernel__Object.color;
7806 idtype8 = type_array__Arraykernel__Object.id;
7807 if(var_listnode3 == NULL) {
7808 var6 = 0;
7809 } else {
7810 if(cltype7 >= var_listnode3->type->table_size) {
7811 var6 = 0;
7812 } else {
7813 var6 = var_listnode3->type->type_table[cltype7] == idtype8;
7814 }
7815 }
7816 if (!var6) {
7817 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29483);
7818 exit(1);
7819 }
7820 var_pexprnode4 = var_nodearraylist3;
7821 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
7822 cltype10 = type_nullable_parser_nodes__AExpr.color;
7823 idtype11 = type_nullable_parser_nodes__AExpr.id;
7824 if(var_pexprnode4 == NULL) {
7825 var9 = 1;
7826 } else {
7827 if(cltype10 >= var_pexprnode4->type->table_size) {
7828 var9 = 0;
7829 } else {
7830 var9 = var_pexprnode4->type->type_table[cltype10] == idtype11;
7831 }
7832 }
7833 if (!var9) {
7834 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29485);
7835 exit(1);
7836 }
7837 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode2) /* concat on <self:ReduceAction860>*/;
7838 var_listnode5 = var12;
7839 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode3) /* concat on <self:ReduceAction860>*/;
7840 var_listnode5 = var13;
7841 var14 = NULL;
7842 if (var_pexprnode4 == NULL) {
7843 var15 = 0; /* is null */
7844 } else {
7845 var15 = 1; /* arg is null and recv is not */
7846 }
7847 if (var15){
7848 ((void (*)(val*, val*))(var_listnode5->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode5, var_pexprnode4) /* add on <var_listnode5:Array[Object]>*/;
7849 } else {
7850 }
7851 var16 = NEW_parser_nodes__ASuperstringExpr(&type_parser_nodes__ASuperstringExpr);
7852 var17 = NULL;
7853 ((void (*)(val*, val*, val*))(var16->class->vft[COLOR_parser_prod__ASuperstringExpr__init_asuperstringexpr]))(var16, var_listnode5, var17) /* init_asuperstringexpr on <var16:ASuperstringExpr>*/;
7854 CHECK_NEW_parser_nodes__ASuperstringExpr(var16);
7855 var_pexprnode1 = var16;
7856 var_node_list = var_pexprnode1;
7857 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction860> */
7858 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
7859 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
7860 RET_LABEL:;
7861 }
7862 /* method parser#ReduceAction860#action for (self: Object, Parser) */
7863 void VIRTUAL_parser__ReduceAction860__action(val* self, val* p0) {
7864 parser__ReduceAction860__action(self, p0);
7865 RET_LABEL:;
7866 }
7867 /* method parser#ReduceAction861#action for (self: ReduceAction861, Parser) */
7868 void parser__ReduceAction861__action(val* self, val* p0) {
7869 val* var_p /* var p: Parser */;
7870 val* var /* : null */;
7871 val* var_node_list /* var node_list: nullable Object */;
7872 val* var1 /* : nullable Object */;
7873 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7874 val* var2 /* : nullable Object */;
7875 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7876 val* var3 /* : nullable Object */;
7877 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7878 val* var4 /* : Array[Object] */;
7879 val* var_listnode4 /* var listnode4: Array[Object] */;
7880 val* var_listnode2 /* var listnode2: nullable Object */;
7881 short int var5 /* : Bool */;
7882 int cltype;
7883 int idtype;
7884 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
7885 short int var6 /* : Bool */;
7886 int cltype7;
7887 int idtype8;
7888 val* var9 /* : Array[Object] */;
7889 val* var10 /* : null */;
7890 short int var11 /* : Bool */;
7891 val* var_pannotationsnode5 /* var pannotationsnode5: nullable Object */;
7892 short int var12 /* : Bool */;
7893 int cltype13;
7894 int idtype14;
7895 val* var15 /* : ASuperstringExpr */;
7896 val* var_pexprnode1 /* var pexprnode1: nullable ASuperstringExpr */;
7897 long var16 /* : Int */;
7898 long var17 /* : Int */;
7899 var_p = p0;
7900 var = NULL;
7901 var_node_list = var;
7902 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7903 var_nodearraylist3 = var1;
7904 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7905 var_nodearraylist2 = var2;
7906 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7907 var_nodearraylist1 = var3;
7908 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
7909 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
7910 CHECK_NEW_array__Array(var4);
7911 var_listnode4 = var4;
7912 var_listnode2 = var_nodearraylist1;
7913 /* <var_listnode2:nullable Object> isa Array[Object] */
7914 cltype = type_array__Arraykernel__Object.color;
7915 idtype = type_array__Arraykernel__Object.id;
7916 if(var_listnode2 == NULL) {
7917 var5 = 0;
7918 } else {
7919 if(cltype >= var_listnode2->type->table_size) {
7920 var5 = 0;
7921 } else {
7922 var5 = var_listnode2->type->type_table[cltype] == idtype;
7923 }
7924 }
7925 if (!var5) {
7926 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29509);
7927 exit(1);
7928 }
7929 var_pexprnode3 = var_nodearraylist2;
7930 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
7931 cltype7 = type_nullable_parser_nodes__AExpr.color;
7932 idtype8 = type_nullable_parser_nodes__AExpr.id;
7933 if(var_pexprnode3 == NULL) {
7934 var6 = 1;
7935 } else {
7936 if(cltype7 >= var_pexprnode3->type->table_size) {
7937 var6 = 0;
7938 } else {
7939 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
7940 }
7941 }
7942 if (!var6) {
7943 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29511);
7944 exit(1);
7945 }
7946 var9 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode2) /* concat on <self:ReduceAction861>*/;
7947 var_listnode4 = var9;
7948 var10 = NULL;
7949 if (var_pexprnode3 == NULL) {
7950 var11 = 0; /* is null */
7951 } else {
7952 var11 = 1; /* arg is null and recv is not */
7953 }
7954 if (var11){
7955 ((void (*)(val*, val*))(var_listnode4->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode4, var_pexprnode3) /* add on <var_listnode4:Array[Object]>*/;
7956 } else {
7957 }
7958 var_pannotationsnode5 = var_nodearraylist3;
7959 /* <var_pannotationsnode5:nullable Object> isa nullable AAnnotations */
7960 cltype13 = type_nullable_parser_nodes__AAnnotations.color;
7961 idtype14 = type_nullable_parser_nodes__AAnnotations.id;
7962 if(var_pannotationsnode5 == NULL) {
7963 var12 = 1;
7964 } else {
7965 if(cltype13 >= var_pannotationsnode5->type->table_size) {
7966 var12 = 0;
7967 } else {
7968 var12 = var_pannotationsnode5->type->type_table[cltype13] == idtype14;
7969 }
7970 }
7971 if (!var12) {
7972 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29517);
7973 exit(1);
7974 }
7975 var15 = NEW_parser_nodes__ASuperstringExpr(&type_parser_nodes__ASuperstringExpr);
7976 ((void (*)(val*, val*, val*))(var15->class->vft[COLOR_parser_prod__ASuperstringExpr__init_asuperstringexpr]))(var15, var_listnode4, var_pannotationsnode5) /* init_asuperstringexpr on <var15:ASuperstringExpr>*/;
7977 CHECK_NEW_parser_nodes__ASuperstringExpr(var15);
7978 var_pexprnode1 = var15;
7979 var_node_list = var_pexprnode1;
7980 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction861> */
7981 var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
7982 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
7983 RET_LABEL:;
7984 }
7985 /* method parser#ReduceAction861#action for (self: Object, Parser) */
7986 void VIRTUAL_parser__ReduceAction861__action(val* self, val* p0) {
7987 parser__ReduceAction861__action(self, p0);
7988 RET_LABEL:;
7989 }
7990 /* method parser#ReduceAction862#action for (self: ReduceAction862, Parser) */
7991 void parser__ReduceAction862__action(val* self, val* p0) {
7992 val* var_p /* var p: Parser */;
7993 val* var /* : null */;
7994 val* var_node_list /* var node_list: nullable Object */;
7995 val* var1 /* : nullable Object */;
7996 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7997 val* var2 /* : nullable Object */;
7998 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7999 val* var3 /* : nullable Object */;
8000 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8001 val* var4 /* : nullable Object */;
8002 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8003 val* var5 /* : Array[Object] */;
8004 val* var_listnode5 /* var listnode5: Array[Object] */;
8005 val* var_listnode2 /* var listnode2: nullable Object */;
8006 short int var6 /* : Bool */;
8007 int cltype;
8008 int idtype;
8009 val* var_listnode3 /* var listnode3: nullable Object */;
8010 short int var7 /* : Bool */;
8011 int cltype8;
8012 int idtype9;
8013 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
8014 short int var10 /* : Bool */;
8015 int cltype11;
8016 int idtype12;
8017 val* var13 /* : Array[Object] */;
8018 val* var14 /* : Array[Object] */;
8019 val* var15 /* : null */;
8020 short int var16 /* : Bool */;
8021 val* var_pannotationsnode6 /* var pannotationsnode6: nullable Object */;
8022 short int var17 /* : Bool */;
8023 int cltype18;
8024 int idtype19;
8025 val* var20 /* : ASuperstringExpr */;
8026 val* var_pexprnode1 /* var pexprnode1: nullable ASuperstringExpr */;
8027 long var21 /* : Int */;
8028 long var22 /* : Int */;
8029 var_p = p0;
8030 var = NULL;
8031 var_node_list = var;
8032 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8033 var_nodearraylist4 = var1;
8034 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8035 var_nodearraylist3 = var2;
8036 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8037 var_nodearraylist2 = var3;
8038 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8039 var_nodearraylist1 = var4;
8040 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
8041 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
8042 CHECK_NEW_array__Array(var5);
8043 var_listnode5 = var5;
8044 var_listnode2 = var_nodearraylist1;
8045 /* <var_listnode2:nullable Object> isa Array[Object] */
8046 cltype = type_array__Arraykernel__Object.color;
8047 idtype = type_array__Arraykernel__Object.id;
8048 if(var_listnode2 == NULL) {
8049 var6 = 0;
8050 } else {
8051 if(cltype >= var_listnode2->type->table_size) {
8052 var6 = 0;
8053 } else {
8054 var6 = var_listnode2->type->type_table[cltype] == idtype;
8055 }
8056 }
8057 if (!var6) {
8058 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29537);
8059 exit(1);
8060 }
8061 var_listnode3 = var_nodearraylist2;
8062 /* <var_listnode3:nullable Object> isa Array[Object] */
8063 cltype8 = type_array__Arraykernel__Object.color;
8064 idtype9 = type_array__Arraykernel__Object.id;
8065 if(var_listnode3 == NULL) {
8066 var7 = 0;
8067 } else {
8068 if(cltype8 >= var_listnode3->type->table_size) {
8069 var7 = 0;
8070 } else {
8071 var7 = var_listnode3->type->type_table[cltype8] == idtype9;
8072 }
8073 }
8074 if (!var7) {
8075 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29539);
8076 exit(1);
8077 }
8078 var_pexprnode4 = var_nodearraylist3;
8079 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
8080 cltype11 = type_nullable_parser_nodes__AExpr.color;
8081 idtype12 = type_nullable_parser_nodes__AExpr.id;
8082 if(var_pexprnode4 == NULL) {
8083 var10 = 1;
8084 } else {
8085 if(cltype11 >= var_pexprnode4->type->table_size) {
8086 var10 = 0;
8087 } else {
8088 var10 = var_pexprnode4->type->type_table[cltype11] == idtype12;
8089 }
8090 }
8091 if (!var10) {
8092 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29541);
8093 exit(1);
8094 }
8095 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode2) /* concat on <self:ReduceAction862>*/;
8096 var_listnode5 = var13;
8097 var14 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode3) /* concat on <self:ReduceAction862>*/;
8098 var_listnode5 = var14;
8099 var15 = NULL;
8100 if (var_pexprnode4 == NULL) {
8101 var16 = 0; /* is null */
8102 } else {
8103 var16 = 1; /* arg is null and recv is not */
8104 }
8105 if (var16){
8106 ((void (*)(val*, val*))(var_listnode5->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode5, var_pexprnode4) /* add on <var_listnode5:Array[Object]>*/;
8107 } else {
8108 }
8109 var_pannotationsnode6 = var_nodearraylist4;
8110 /* <var_pannotationsnode6:nullable Object> isa nullable AAnnotations */
8111 cltype18 = type_nullable_parser_nodes__AAnnotations.color;
8112 idtype19 = type_nullable_parser_nodes__AAnnotations.id;
8113 if(var_pannotationsnode6 == NULL) {
8114 var17 = 1;
8115 } else {
8116 if(cltype18 >= var_pannotationsnode6->type->table_size) {
8117 var17 = 0;
8118 } else {
8119 var17 = var_pannotationsnode6->type->type_table[cltype18] == idtype19;
8120 }
8121 }
8122 if (!var17) {
8123 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29548);
8124 exit(1);
8125 }
8126 var20 = NEW_parser_nodes__ASuperstringExpr(&type_parser_nodes__ASuperstringExpr);
8127 ((void (*)(val*, val*, val*))(var20->class->vft[COLOR_parser_prod__ASuperstringExpr__init_asuperstringexpr]))(var20, var_listnode5, var_pannotationsnode6) /* init_asuperstringexpr on <var20:ASuperstringExpr>*/;
8128 CHECK_NEW_parser_nodes__ASuperstringExpr(var20);
8129 var_pexprnode1 = var20;
8130 var_node_list = var_pexprnode1;
8131 var21 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction862> */
8132 var22 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var21) /* go_to on <var_p:Parser>*/;
8133 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var22, var_node_list) /* push on <var_p:Parser>*/;
8134 RET_LABEL:;
8135 }
8136 /* method parser#ReduceAction862#action for (self: Object, Parser) */
8137 void VIRTUAL_parser__ReduceAction862__action(val* self, val* p0) {
8138 parser__ReduceAction862__action(self, p0);
8139 RET_LABEL:;
8140 }
8141 /* method parser#ReduceAction863#action for (self: ReduceAction863, Parser) */
8142 void parser__ReduceAction863__action(val* self, val* p0) {
8143 val* var_p /* var p: Parser */;
8144 val* var /* : null */;
8145 val* var_node_list /* var node_list: nullable Object */;
8146 val* var1 /* : nullable Object */;
8147 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8148 val* var2 /* : nullable Object */;
8149 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8150 val* var3 /* : nullable Object */;
8151 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8152 val* var4 /* : nullable Object */;
8153 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8154 val* var5 /* : Array[Object] */;
8155 val* var_listnode3 /* var listnode3: Array[Object] */;
8156 val* var_pexprnode1 /* var pexprnode1: nullable Object */;
8157 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
8158 val* var6 /* : null */;
8159 short int var7 /* : Bool */;
8160 val* var8 /* : null */;
8161 short int var9 /* : Bool */;
8162 long var10 /* : Int */;
8163 long var11 /* : Int */;
8164 var_p = p0;
8165 var = NULL;
8166 var_node_list = var;
8167 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8168 var_nodearraylist4 = var1;
8169 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8170 var_nodearraylist3 = var2;
8171 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8172 var_nodearraylist2 = var3;
8173 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8174 var_nodearraylist1 = var4;
8175 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
8176 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
8177 CHECK_NEW_array__Array(var5);
8178 var_listnode3 = var5;
8179 var_pexprnode1 = var_nodearraylist1;
8180 var_pexprnode2 = var_nodearraylist3;
8181 var6 = NULL;
8182 if (var_pexprnode1 == NULL) {
8183 var7 = 0; /* is null */
8184 } else {
8185 var7 = 1; /* arg is null and recv is not */
8186 }
8187 if (var7){
8188 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pexprnode1) /* add on <var_listnode3:Array[Object]>*/;
8189 } else {
8190 }
8191 var8 = NULL;
8192 if (var_pexprnode2 == NULL) {
8193 var9 = 0; /* is null */
8194 } else {
8195 var9 = 1; /* arg is null and recv is not */
8196 }
8197 if (var9){
8198 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pexprnode2) /* add on <var_listnode3:Array[Object]>*/;
8199 } else {
8200 }
8201 var_node_list = var_listnode3;
8202 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction863> */
8203 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
8204 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
8205 RET_LABEL:;
8206 }
8207 /* method parser#ReduceAction863#action for (self: Object, Parser) */
8208 void VIRTUAL_parser__ReduceAction863__action(val* self, val* p0) {
8209 parser__ReduceAction863__action(self, p0);
8210 RET_LABEL:;
8211 }
8212 /* method parser#ReduceAction864#action for (self: ReduceAction864, Parser) */
8213 void parser__ReduceAction864__action(val* self, val* p0) {
8214 val* var_p /* var p: Parser */;
8215 val* var /* : null */;
8216 val* var_node_list /* var node_list: nullable Object */;
8217 val* var1 /* : nullable Object */;
8218 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8219 val* var_tstartstringnode2 /* var tstartstringnode2: nullable Object */;
8220 short int var2 /* : Bool */;
8221 int cltype;
8222 int idtype;
8223 val* var3 /* : AStartStringExpr */;
8224 val* var_pexprnode1 /* var pexprnode1: nullable AStartStringExpr */;
8225 long var4 /* : Int */;
8226 long var5 /* : Int */;
8227 var_p = p0;
8228 var = NULL;
8229 var_node_list = var;
8230 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8231 var_nodearraylist1 = var1;
8232 var_tstartstringnode2 = var_nodearraylist1;
8233 /* <var_tstartstringnode2:nullable Object> isa nullable TStartString */
8234 cltype = type_nullable_parser_nodes__TStartString.color;
8235 idtype = type_nullable_parser_nodes__TStartString.id;
8236 if(var_tstartstringnode2 == NULL) {
8237 var2 = 1;
8238 } else {
8239 if(cltype >= var_tstartstringnode2->type->table_size) {
8240 var2 = 0;
8241 } else {
8242 var2 = var_tstartstringnode2->type->type_table[cltype] == idtype;
8243 }
8244 }
8245 if (!var2) {
8246 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29586);
8247 exit(1);
8248 }
8249 var3 = NEW_parser_nodes__AStartStringExpr(&type_parser_nodes__AStartStringExpr);
8250 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AStartStringExpr__init_astartstringexpr]))(var3, var_tstartstringnode2) /* init_astartstringexpr on <var3:AStartStringExpr>*/;
8251 CHECK_NEW_parser_nodes__AStartStringExpr(var3);
8252 var_pexprnode1 = var3;
8253 var_node_list = var_pexprnode1;
8254 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction864> */
8255 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
8256 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
8257 RET_LABEL:;
8258 }
8259 /* method parser#ReduceAction864#action for (self: Object, Parser) */
8260 void VIRTUAL_parser__ReduceAction864__action(val* self, val* p0) {
8261 parser__ReduceAction864__action(self, p0);
8262 RET_LABEL:;
8263 }
8264 /* method parser#ReduceAction866#action for (self: ReduceAction866, Parser) */
8265 void parser__ReduceAction866__action(val* self, val* p0) {
8266 val* var_p /* var p: Parser */;
8267 val* var /* : null */;
8268 val* var_node_list /* var node_list: nullable Object */;
8269 val* var1 /* : nullable Object */;
8270 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8271 val* var_tmidstringnode2 /* var tmidstringnode2: nullable Object */;
8272 short int var2 /* : Bool */;
8273 int cltype;
8274 int idtype;
8275 val* var3 /* : AMidStringExpr */;
8276 val* var_pexprnode1 /* var pexprnode1: nullable AMidStringExpr */;
8277 long var4 /* : Int */;
8278 long var5 /* : Int */;
8279 var_p = p0;
8280 var = NULL;
8281 var_node_list = var;
8282 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8283 var_nodearraylist1 = var1;
8284 var_tmidstringnode2 = var_nodearraylist1;
8285 /* <var_tmidstringnode2:nullable Object> isa nullable TMidString */
8286 cltype = type_nullable_parser_nodes__TMidString.color;
8287 idtype = type_nullable_parser_nodes__TMidString.id;
8288 if(var_tmidstringnode2 == NULL) {
8289 var2 = 1;
8290 } else {
8291 if(cltype >= var_tmidstringnode2->type->table_size) {
8292 var2 = 0;
8293 } else {
8294 var2 = var_tmidstringnode2->type->type_table[cltype] == idtype;
8295 }
8296 }
8297 if (!var2) {
8298 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29601);
8299 exit(1);
8300 }
8301 var3 = NEW_parser_nodes__AMidStringExpr(&type_parser_nodes__AMidStringExpr);
8302 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AMidStringExpr__init_amidstringexpr]))(var3, var_tmidstringnode2) /* init_amidstringexpr on <var3:AMidStringExpr>*/;
8303 CHECK_NEW_parser_nodes__AMidStringExpr(var3);
8304 var_pexprnode1 = var3;
8305 var_node_list = var_pexprnode1;
8306 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction866> */
8307 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
8308 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
8309 RET_LABEL:;
8310 }
8311 /* method parser#ReduceAction866#action for (self: Object, Parser) */
8312 void VIRTUAL_parser__ReduceAction866__action(val* self, val* p0) {
8313 parser__ReduceAction866__action(self, p0);
8314 RET_LABEL:;
8315 }
8316 /* method parser#ReduceAction867#action for (self: ReduceAction867, Parser) */
8317 void parser__ReduceAction867__action(val* self, val* p0) {
8318 val* var_p /* var p: Parser */;
8319 val* var /* : null */;
8320 val* var_node_list /* var node_list: nullable Object */;
8321 val* var1 /* : nullable Object */;
8322 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8323 val* var_tendstringnode2 /* var tendstringnode2: nullable Object */;
8324 short int var2 /* : Bool */;
8325 int cltype;
8326 int idtype;
8327 val* var3 /* : AEndStringExpr */;
8328 val* var_pexprnode1 /* var pexprnode1: nullable AEndStringExpr */;
8329 long var4 /* : Int */;
8330 long var5 /* : Int */;
8331 var_p = p0;
8332 var = NULL;
8333 var_node_list = var;
8334 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8335 var_nodearraylist1 = var1;
8336 var_tendstringnode2 = var_nodearraylist1;
8337 /* <var_tendstringnode2:nullable Object> isa nullable TEndString */
8338 cltype = type_nullable_parser_nodes__TEndString.color;
8339 idtype = type_nullable_parser_nodes__TEndString.id;
8340 if(var_tendstringnode2 == NULL) {
8341 var2 = 1;
8342 } else {
8343 if(cltype >= var_tendstringnode2->type->table_size) {
8344 var2 = 0;
8345 } else {
8346 var2 = var_tendstringnode2->type->type_table[cltype] == idtype;
8347 }
8348 }
8349 if (!var2) {
8350 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29616);
8351 exit(1);
8352 }
8353 var3 = NEW_parser_nodes__AEndStringExpr(&type_parser_nodes__AEndStringExpr);
8354 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AEndStringExpr__init_aendstringexpr]))(var3, var_tendstringnode2) /* init_aendstringexpr on <var3:AEndStringExpr>*/;
8355 CHECK_NEW_parser_nodes__AEndStringExpr(var3);
8356 var_pexprnode1 = var3;
8357 var_node_list = var_pexprnode1;
8358 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction867> */
8359 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
8360 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
8361 RET_LABEL:;
8362 }
8363 /* method parser#ReduceAction867#action for (self: Object, Parser) */
8364 void VIRTUAL_parser__ReduceAction867__action(val* self, val* p0) {
8365 parser__ReduceAction867__action(self, p0);
8366 RET_LABEL:;
8367 }
8368 /* method parser#ReduceAction868#action for (self: ReduceAction868, Parser) */
8369 void parser__ReduceAction868__action(val* self, val* p0) {
8370 val* var_p /* var p: Parser */;
8371 val* var /* : null */;
8372 val* var_node_list /* var node_list: nullable Object */;
8373 val* var1 /* : nullable Object */;
8374 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8375 val* var2 /* : nullable Object */;
8376 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8377 val* var3 /* : Array[Object] */;
8378 val* var_listnode5 /* var listnode5: Array[Object] */;
8379 val* var_tatnode2 /* var tatnode2: nullable Object */;
8380 short int var4 /* : Bool */;
8381 int cltype;
8382 int idtype;
8383 val* var_pannotationnode4 /* var pannotationnode4: nullable Object */;
8384 short int var5 /* : Bool */;
8385 int cltype6;
8386 int idtype7;
8387 val* var8 /* : null */;
8388 short int var9 /* : Bool */;
8389 val* var10 /* : AAnnotations */;
8390 val* var11 /* : null */;
8391 val* var12 /* : null */;
8392 val* var_pannotationsnode1 /* var pannotationsnode1: nullable AAnnotations */;
8393 long var13 /* : Int */;
8394 long var14 /* : Int */;
8395 var_p = p0;
8396 var = NULL;
8397 var_node_list = var;
8398 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8399 var_nodearraylist2 = var1;
8400 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8401 var_nodearraylist1 = var2;
8402 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
8403 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
8404 CHECK_NEW_array__Array(var3);
8405 var_listnode5 = var3;
8406 var_tatnode2 = var_nodearraylist1;
8407 /* <var_tatnode2:nullable Object> isa nullable TAt */
8408 cltype = type_nullable_parser_nodes__TAt.color;
8409 idtype = type_nullable_parser_nodes__TAt.id;
8410 if(var_tatnode2 == NULL) {
8411 var4 = 1;
8412 } else {
8413 if(cltype >= var_tatnode2->type->table_size) {
8414 var4 = 0;
8415 } else {
8416 var4 = var_tatnode2->type->type_table[cltype] == idtype;
8417 }
8418 }
8419 if (!var4) {
8420 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29633);
8421 exit(1);
8422 }
8423 var_pannotationnode4 = var_nodearraylist2;
8424 /* <var_pannotationnode4:nullable Object> isa nullable AAnnotation */
8425 cltype6 = type_nullable_parser_nodes__AAnnotation.color;
8426 idtype7 = type_nullable_parser_nodes__AAnnotation.id;
8427 if(var_pannotationnode4 == NULL) {
8428 var5 = 1;
8429 } else {
8430 if(cltype6 >= var_pannotationnode4->type->table_size) {
8431 var5 = 0;
8432 } else {
8433 var5 = var_pannotationnode4->type->type_table[cltype6] == idtype7;
8434 }
8435 }
8436 if (!var5) {
8437 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29635);
8438 exit(1);
8439 }
8440 var8 = NULL;
8441 if (var_pannotationnode4 == NULL) {
8442 var9 = 0; /* is null */
8443 } else {
8444 var9 = 1; /* arg is null and recv is not */
8445 }
8446 if (var9){
8447 ((void (*)(val*, val*))(var_listnode5->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode5, var_pannotationnode4) /* add on <var_listnode5:Array[Object]>*/;
8448 } else {
8449 }
8450 var10 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations);
8451 var11 = NULL;
8452 var12 = NULL;
8453 ((void (*)(val*, val*, val*, val*, val*))(var10->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var10, var_tatnode2, var11, var_listnode5, var12) /* init_aannotations on <var10:AAnnotations>*/;
8454 CHECK_NEW_parser_nodes__AAnnotations(var10);
8455 var_pannotationsnode1 = var10;
8456 var_node_list = var_pannotationsnode1;
8457 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction868> */
8458 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
8459 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
8460 RET_LABEL:;
8461 }
8462 /* method parser#ReduceAction868#action for (self: Object, Parser) */
8463 void VIRTUAL_parser__ReduceAction868__action(val* self, val* p0) {
8464 parser__ReduceAction868__action(self, p0);
8465 RET_LABEL:;
8466 }
8467 /* method parser#ReduceAction869#action for (self: ReduceAction869, Parser) */
8468 void parser__ReduceAction869__action(val* self, val* p0) {
8469 val* var_p /* var p: Parser */;
8470 val* var /* : null */;
8471 val* var_node_list /* var node_list: nullable Object */;
8472 val* var1 /* : nullable Object */;
8473 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
8474 val* var2 /* : nullable Object */;
8475 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
8476 val* var3 /* : nullable Object */;
8477 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8478 val* var4 /* : nullable Object */;
8479 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8480 val* var5 /* : nullable Object */;
8481 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8482 val* var6 /* : nullable Object */;
8483 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8484 val* var7 /* : Array[Object] */;
8485 val* var_listnode5 /* var listnode5: Array[Object] */;
8486 val* var_tatnode2 /* var tatnode2: nullable Object */;
8487 short int var8 /* : Bool */;
8488 int cltype;
8489 int idtype;
8490 val* var_toparnode3 /* var toparnode3: nullable Object */;
8491 short int var9 /* : Bool */;
8492 int cltype10;
8493 int idtype11;
8494 val* var_listnode4 /* var listnode4: nullable Object */;
8495 short int var12 /* : Bool */;
8496 int cltype13;
8497 int idtype14;
8498 val* var15 /* : Array[Object] */;
8499 val* var_tcparnode6 /* var tcparnode6: nullable Object */;
8500 short int var16 /* : Bool */;
8501 int cltype17;
8502 int idtype18;
8503 val* var19 /* : AAnnotations */;
8504 val* var_pannotationsnode1 /* var pannotationsnode1: nullable AAnnotations */;
8505 long var20 /* : Int */;
8506 long var21 /* : Int */;
8507 var_p = p0;
8508 var = NULL;
8509 var_node_list = var;
8510 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8511 var_nodearraylist6 = var1;
8512 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8513 var_nodearraylist5 = var2;
8514 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8515 var_nodearraylist4 = var3;
8516 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8517 var_nodearraylist3 = var4;
8518 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8519 var_nodearraylist2 = var5;
8520 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8521 var_nodearraylist1 = var6;
8522 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
8523 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
8524 CHECK_NEW_array__Array(var7);
8525 var_listnode5 = var7;
8526 var_tatnode2 = var_nodearraylist1;
8527 /* <var_tatnode2:nullable Object> isa nullable TAt */
8528 cltype = type_nullable_parser_nodes__TAt.color;
8529 idtype = type_nullable_parser_nodes__TAt.id;
8530 if(var_tatnode2 == NULL) {
8531 var8 = 1;
8532 } else {
8533 if(cltype >= var_tatnode2->type->table_size) {
8534 var8 = 0;
8535 } else {
8536 var8 = var_tatnode2->type->type_table[cltype] == idtype;
8537 }
8538 }
8539 if (!var8) {
8540 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29662);
8541 exit(1);
8542 }
8543 var_toparnode3 = var_nodearraylist2;
8544 /* <var_toparnode3:nullable Object> isa nullable TOpar */
8545 cltype10 = type_nullable_parser_nodes__TOpar.color;
8546 idtype11 = type_nullable_parser_nodes__TOpar.id;
8547 if(var_toparnode3 == NULL) {
8548 var9 = 1;
8549 } else {
8550 if(cltype10 >= var_toparnode3->type->table_size) {
8551 var9 = 0;
8552 } else {
8553 var9 = var_toparnode3->type->type_table[cltype10] == idtype11;
8554 }
8555 }
8556 if (!var9) {
8557 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29664);
8558 exit(1);
8559 }
8560 var_listnode4 = var_nodearraylist4;
8561 /* <var_listnode4:nullable Object> isa Array[Object] */
8562 cltype13 = type_array__Arraykernel__Object.color;
8563 idtype14 = type_array__Arraykernel__Object.id;
8564 if(var_listnode4 == NULL) {
8565 var12 = 0;
8566 } else {
8567 if(cltype13 >= var_listnode4->type->table_size) {
8568 var12 = 0;
8569 } else {
8570 var12 = var_listnode4->type->type_table[cltype13] == idtype14;
8571 }
8572 }
8573 if (!var12) {
8574 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29666);
8575 exit(1);
8576 }
8577 var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction869>*/;
8578 var_listnode5 = var15;
8579 var_tcparnode6 = var_nodearraylist6;
8580 /* <var_tcparnode6:nullable Object> isa nullable TCpar */
8581 cltype17 = type_nullable_parser_nodes__TCpar.color;
8582 idtype18 = type_nullable_parser_nodes__TCpar.id;
8583 if(var_tcparnode6 == NULL) {
8584 var16 = 1;
8585 } else {
8586 if(cltype17 >= var_tcparnode6->type->table_size) {
8587 var16 = 0;
8588 } else {
8589 var16 = var_tcparnode6->type->type_table[cltype17] == idtype18;
8590 }
8591 }
8592 if (!var16) {
8593 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29669);
8594 exit(1);
8595 }
8596 var19 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations);
8597 ((void (*)(val*, val*, val*, val*, val*))(var19->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var19, var_tatnode2, var_toparnode3, var_listnode5, var_tcparnode6) /* init_aannotations on <var19:AAnnotations>*/;
8598 CHECK_NEW_parser_nodes__AAnnotations(var19);
8599 var_pannotationsnode1 = var19;
8600 var_node_list = var_pannotationsnode1;
8601 var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction869> */
8602 var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on <var_p:Parser>*/;
8603 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on <var_p:Parser>*/;
8604 RET_LABEL:;
8605 }
8606 /* method parser#ReduceAction869#action for (self: Object, Parser) */
8607 void VIRTUAL_parser__ReduceAction869__action(val* self, val* p0) {
8608 parser__ReduceAction869__action(self, p0);
8609 RET_LABEL:;
8610 }
8611 /* method parser#ReduceAction870#action for (self: ReduceAction870, Parser) */
8612 void parser__ReduceAction870__action(val* self, val* p0) {
8613 val* var_p /* var p: Parser */;
8614 val* var /* : null */;
8615 val* var_node_list /* var node_list: nullable Object */;
8616 val* var1 /* : nullable Object */;
8617 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8618 val* var2 /* : Array[Object] */;
8619 val* var_listnode4 /* var listnode4: Array[Object] */;
8620 val* var_patidnode2 /* var patidnode2: nullable Object */;
8621 short int var3 /* : Bool */;
8622 int cltype;
8623 int idtype;
8624 val* var4 /* : AAnnotation */;
8625 val* var5 /* : null */;
8626 val* var6 /* : null */;
8627 val* var7 /* : null */;
8628 val* var_pannotationnode1 /* var pannotationnode1: nullable AAnnotation */;
8629 long var8 /* : Int */;
8630 long var9 /* : Int */;
8631 var_p = p0;
8632 var = NULL;
8633 var_node_list = var;
8634 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8635 var_nodearraylist1 = var1;
8636 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
8637 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
8638 CHECK_NEW_array__Array(var2);
8639 var_listnode4 = var2;
8640 var_patidnode2 = var_nodearraylist1;
8641 /* <var_patidnode2:nullable Object> isa nullable AAtid */
8642 cltype = type_nullable_parser_nodes__AAtid.color;
8643 idtype = type_nullable_parser_nodes__AAtid.id;
8644 if(var_patidnode2 == NULL) {
8645 var3 = 1;
8646 } else {
8647 if(cltype >= var_patidnode2->type->table_size) {
8648 var3 = 0;
8649 } else {
8650 var3 = var_patidnode2->type->type_table[cltype] == idtype;
8651 }
8652 }
8653 if (!var3) {
8654 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29688);
8655 exit(1);
8656 }
8657 var4 = NEW_parser_nodes__AAnnotation(&type_parser_nodes__AAnnotation);
8658 var5 = NULL;
8659 var6 = NULL;
8660 var7 = NULL;
8661 ((void (*)(val*, val*, val*, val*, val*, val*))(var4->class->vft[COLOR_parser_prod__AAnnotation__init_aannotation]))(var4, var_patidnode2, var5, var_listnode4, var6, var7) /* init_aannotation on <var4:AAnnotation>*/;
8662 CHECK_NEW_parser_nodes__AAnnotation(var4);
8663 var_pannotationnode1 = var4;
8664 var_node_list = var_pannotationnode1;
8665 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction870> */
8666 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
8667 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
8668 RET_LABEL:;
8669 }
8670 /* method parser#ReduceAction870#action for (self: Object, Parser) */
8671 void VIRTUAL_parser__ReduceAction870__action(val* self, val* p0) {
8672 parser__ReduceAction870__action(self, p0);
8673 RET_LABEL:;
8674 }
8675 /* method parser#ReduceAction871#action for (self: ReduceAction871, Parser) */
8676 void parser__ReduceAction871__action(val* self, val* p0) {
8677 val* var_p /* var p: Parser */;
8678 val* var /* : null */;
8679 val* var_node_list /* var node_list: nullable Object */;
8680 val* var1 /* : nullable Object */;
8681 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8682 val* var2 /* : nullable Object */;
8683 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8684 val* var3 /* : Array[Object] */;
8685 val* var_listnode4 /* var listnode4: Array[Object] */;
8686 val* var_patidnode2 /* var patidnode2: nullable Object */;
8687 short int var4 /* : Bool */;
8688 int cltype;
8689 int idtype;
8690 val* var_pannotationsnode6 /* var pannotationsnode6: nullable Object */;
8691 short int var5 /* : Bool */;
8692 int cltype6;
8693 int idtype7;
8694 val* var8 /* : AAnnotation */;
8695 val* var9 /* : null */;
8696 val* var10 /* : null */;
8697 val* var_pannotationnode1 /* var pannotationnode1: nullable AAnnotation */;
8698 long var11 /* : Int */;
8699 long var12 /* : Int */;
8700 var_p = p0;
8701 var = NULL;
8702 var_node_list = var;
8703 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8704 var_nodearraylist2 = var1;
8705 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8706 var_nodearraylist1 = var2;
8707 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
8708 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
8709 CHECK_NEW_array__Array(var3);
8710 var_listnode4 = var3;
8711 var_patidnode2 = var_nodearraylist1;
8712 /* <var_patidnode2:nullable Object> isa nullable AAtid */
8713 cltype = type_nullable_parser_nodes__AAtid.color;
8714 idtype = type_nullable_parser_nodes__AAtid.id;
8715 if(var_patidnode2 == NULL) {
8716 var4 = 1;
8717 } else {
8718 if(cltype >= var_patidnode2->type->table_size) {
8719 var4 = 0;
8720 } else {
8721 var4 = var_patidnode2->type->type_table[cltype] == idtype;
8722 }
8723 }
8724 if (!var4) {
8725 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29709);
8726 exit(1);
8727 }
8728 var_pannotationsnode6 = var_nodearraylist2;
8729 /* <var_pannotationsnode6:nullable Object> isa nullable AAnnotations */
8730 cltype6 = type_nullable_parser_nodes__AAnnotations.color;
8731 idtype7 = type_nullable_parser_nodes__AAnnotations.id;
8732 if(var_pannotationsnode6 == NULL) {
8733 var5 = 1;
8734 } else {
8735 if(cltype6 >= var_pannotationsnode6->type->table_size) {
8736 var5 = 0;
8737 } else {
8738 var5 = var_pannotationsnode6->type->type_table[cltype6] == idtype7;
8739 }
8740 }
8741 if (!var5) {
8742 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29711);
8743 exit(1);
8744 }
8745 var8 = NEW_parser_nodes__AAnnotation(&type_parser_nodes__AAnnotation);
8746 var9 = NULL;
8747 var10 = NULL;
8748 ((void (*)(val*, val*, val*, val*, val*, val*))(var8->class->vft[COLOR_parser_prod__AAnnotation__init_aannotation]))(var8, var_patidnode2, var9, var_listnode4, var10, var_pannotationsnode6) /* init_aannotation on <var8:AAnnotation>*/;
8749 CHECK_NEW_parser_nodes__AAnnotation(var8);
8750 var_pannotationnode1 = var8;
8751 var_node_list = var_pannotationnode1;
8752 var11 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction871> */
8753 var12 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var11) /* go_to on <var_p:Parser>*/;
8754 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var12, var_node_list) /* push on <var_p:Parser>*/;
8755 RET_LABEL:;
8756 }
8757 /* method parser#ReduceAction871#action for (self: Object, Parser) */
8758 void VIRTUAL_parser__ReduceAction871__action(val* self, val* p0) {
8759 parser__ReduceAction871__action(self, p0);
8760 RET_LABEL:;
8761 }
8762 /* method parser#ReduceAction872#action for (self: ReduceAction872, Parser) */
8763 void parser__ReduceAction872__action(val* self, val* p0) {
8764 val* var_p /* var p: Parser */;
8765 val* var /* : null */;
8766 val* var_node_list /* var node_list: nullable Object */;
8767 val* var1 /* : nullable Object */;
8768 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
8769 val* var2 /* : nullable Object */;
8770 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
8771 val* var3 /* : nullable Object */;
8772 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8773 val* var4 /* : nullable Object */;
8774 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8775 val* var5 /* : nullable Object */;
8776 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8777 val* var6 /* : nullable Object */;
8778 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8779 val* var7 /* : Array[Object] */;
8780 val* var_listnode5 /* var listnode5: Array[Object] */;
8781 val* var_patidnode2 /* var patidnode2: nullable Object */;
8782 short int var8 /* : Bool */;
8783 int cltype;
8784 int idtype;
8785 val* var_toparnode3 /* var toparnode3: nullable Object */;
8786 short int var9 /* : Bool */;
8787 int cltype10;
8788 int idtype11;
8789 val* var_listnode4 /* var listnode4: nullable Object */;
8790 short int var12 /* : Bool */;
8791 int cltype13;
8792 int idtype14;
8793 val* var15 /* : Array[Object] */;
8794 val* var_tcparnode6 /* var tcparnode6: nullable Object */;
8795 short int var16 /* : Bool */;
8796 int cltype17;
8797 int idtype18;
8798 val* var19 /* : AAnnotation */;
8799 val* var20 /* : null */;
8800 val* var_pannotationnode1 /* var pannotationnode1: nullable AAnnotation */;
8801 long var21 /* : Int */;
8802 long var22 /* : Int */;
8803 var_p = p0;
8804 var = NULL;
8805 var_node_list = var;
8806 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8807 var_nodearraylist6 = var1;
8808 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8809 var_nodearraylist5 = var2;
8810 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8811 var_nodearraylist4 = var3;
8812 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8813 var_nodearraylist3 = var4;
8814 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8815 var_nodearraylist2 = var5;
8816 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8817 var_nodearraylist1 = var6;
8818 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
8819 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
8820 CHECK_NEW_array__Array(var7);
8821 var_listnode5 = var7;
8822 var_patidnode2 = var_nodearraylist1;
8823 /* <var_patidnode2:nullable Object> isa nullable AAtid */
8824 cltype = type_nullable_parser_nodes__AAtid.color;
8825 idtype = type_nullable_parser_nodes__AAtid.id;
8826 if(var_patidnode2 == NULL) {
8827 var8 = 1;
8828 } else {
8829 if(cltype >= var_patidnode2->type->table_size) {
8830 var8 = 0;
8831 } else {
8832 var8 = var_patidnode2->type->type_table[cltype] == idtype;
8833 }
8834 }
8835 if (!var8) {
8836 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29736);
8837 exit(1);
8838 }
8839 var_toparnode3 = var_nodearraylist2;
8840 /* <var_toparnode3:nullable Object> isa nullable TOpar */
8841 cltype10 = type_nullable_parser_nodes__TOpar.color;
8842 idtype11 = type_nullable_parser_nodes__TOpar.id;
8843 if(var_toparnode3 == NULL) {
8844 var9 = 1;
8845 } else {
8846 if(cltype10 >= var_toparnode3->type->table_size) {
8847 var9 = 0;
8848 } else {
8849 var9 = var_toparnode3->type->type_table[cltype10] == idtype11;
8850 }
8851 }
8852 if (!var9) {
8853 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29738);
8854 exit(1);
8855 }
8856 var_listnode4 = var_nodearraylist4;
8857 /* <var_listnode4:nullable Object> isa Array[Object] */
8858 cltype13 = type_array__Arraykernel__Object.color;
8859 idtype14 = type_array__Arraykernel__Object.id;
8860 if(var_listnode4 == NULL) {
8861 var12 = 0;
8862 } else {
8863 if(cltype13 >= var_listnode4->type->table_size) {
8864 var12 = 0;
8865 } else {
8866 var12 = var_listnode4->type->type_table[cltype13] == idtype14;
8867 }
8868 }
8869 if (!var12) {
8870 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29740);
8871 exit(1);
8872 }
8873 var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction872>*/;
8874 var_listnode5 = var15;
8875 var_tcparnode6 = var_nodearraylist6;
8876 /* <var_tcparnode6:nullable Object> isa nullable TCpar */
8877 cltype17 = type_nullable_parser_nodes__TCpar.color;
8878 idtype18 = type_nullable_parser_nodes__TCpar.id;
8879 if(var_tcparnode6 == NULL) {
8880 var16 = 1;
8881 } else {
8882 if(cltype17 >= var_tcparnode6->type->table_size) {
8883 var16 = 0;
8884 } else {
8885 var16 = var_tcparnode6->type->type_table[cltype17] == idtype18;
8886 }
8887 }
8888 if (!var16) {
8889 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29743);
8890 exit(1);
8891 }
8892 var19 = NEW_parser_nodes__AAnnotation(&type_parser_nodes__AAnnotation);
8893 var20 = NULL;
8894 ((void (*)(val*, val*, val*, val*, val*, val*))(var19->class->vft[COLOR_parser_prod__AAnnotation__init_aannotation]))(var19, var_patidnode2, var_toparnode3, var_listnode5, var_tcparnode6, var20) /* init_aannotation on <var19:AAnnotation>*/;
8895 CHECK_NEW_parser_nodes__AAnnotation(var19);
8896 var_pannotationnode1 = var19;
8897 var_node_list = var_pannotationnode1;
8898 var21 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction872> */
8899 var22 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var21) /* go_to on <var_p:Parser>*/;
8900 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var22, var_node_list) /* push on <var_p:Parser>*/;
8901 RET_LABEL:;
8902 }
8903 /* method parser#ReduceAction872#action for (self: Object, Parser) */
8904 void VIRTUAL_parser__ReduceAction872__action(val* self, val* p0) {
8905 parser__ReduceAction872__action(self, p0);
8906 RET_LABEL:;
8907 }
8908 /* method parser#ReduceAction873#action for (self: ReduceAction873, Parser) */
8909 void parser__ReduceAction873__action(val* self, val* p0) {
8910 val* var_p /* var p: Parser */;
8911 val* var /* : null */;
8912 val* var_node_list /* var node_list: nullable Object */;
8913 val* var1 /* : nullable Object */;
8914 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
8915 val* var2 /* : nullable Object */;
8916 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
8917 val* var3 /* : nullable Object */;
8918 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
8919 val* var4 /* : nullable Object */;
8920 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8921 val* var5 /* : nullable Object */;
8922 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8923 val* var6 /* : nullable Object */;
8924 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8925 val* var7 /* : nullable Object */;
8926 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8927 val* var8 /* : Array[Object] */;
8928 val* var_listnode5 /* var listnode5: Array[Object] */;
8929 val* var_patidnode2 /* var patidnode2: nullable Object */;
8930 short int var9 /* : Bool */;
8931 int cltype;
8932 int idtype;
8933 val* var_toparnode3 /* var toparnode3: nullable Object */;
8934 short int var10 /* : Bool */;
8935 int cltype11;
8936 int idtype12;
8937 val* var_listnode4 /* var listnode4: nullable Object */;
8938 short int var13 /* : Bool */;
8939 int cltype14;
8940 int idtype15;
8941 val* var16 /* : Array[Object] */;
8942 val* var_tcparnode6 /* var tcparnode6: nullable Object */;
8943 short int var17 /* : Bool */;
8944 int cltype18;
8945 int idtype19;
8946 val* var_pannotationsnode7 /* var pannotationsnode7: nullable Object */;
8947 short int var20 /* : Bool */;
8948 int cltype21;
8949 int idtype22;
8950 val* var23 /* : AAnnotation */;
8951 val* var_pannotationnode1 /* var pannotationnode1: nullable AAnnotation */;
8952 long var24 /* : Int */;
8953 long var25 /* : Int */;
8954 var_p = p0;
8955 var = NULL;
8956 var_node_list = var;
8957 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8958 var_nodearraylist7 = var1;
8959 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8960 var_nodearraylist6 = var2;
8961 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8962 var_nodearraylist5 = var3;
8963 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8964 var_nodearraylist4 = var4;
8965 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8966 var_nodearraylist3 = var5;
8967 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8968 var_nodearraylist2 = var6;
8969 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8970 var_nodearraylist1 = var7;
8971 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
8972 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
8973 CHECK_NEW_array__Array(var8);
8974 var_listnode5 = var8;
8975 var_patidnode2 = var_nodearraylist1;
8976 /* <var_patidnode2:nullable Object> isa nullable AAtid */
8977 cltype = type_nullable_parser_nodes__AAtid.color;
8978 idtype = type_nullable_parser_nodes__AAtid.id;
8979 if(var_patidnode2 == NULL) {
8980 var9 = 1;
8981 } else {
8982 if(cltype >= var_patidnode2->type->table_size) {
8983 var9 = 0;
8984 } else {
8985 var9 = var_patidnode2->type->type_table[cltype] == idtype;
8986 }
8987 }
8988 if (!var9) {
8989 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29769);
8990 exit(1);
8991 }
8992 var_toparnode3 = var_nodearraylist2;
8993 /* <var_toparnode3:nullable Object> isa nullable TOpar */
8994 cltype11 = type_nullable_parser_nodes__TOpar.color;
8995 idtype12 = type_nullable_parser_nodes__TOpar.id;
8996 if(var_toparnode3 == NULL) {
8997 var10 = 1;
8998 } else {
8999 if(cltype11 >= var_toparnode3->type->table_size) {
9000 var10 = 0;
9001 } else {
9002 var10 = var_toparnode3->type->type_table[cltype11] == idtype12;
9003 }
9004 }
9005 if (!var10) {
9006 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29771);
9007 exit(1);
9008 }
9009 var_listnode4 = var_nodearraylist4;
9010 /* <var_listnode4:nullable Object> isa Array[Object] */
9011 cltype14 = type_array__Arraykernel__Object.color;
9012 idtype15 = type_array__Arraykernel__Object.id;
9013 if(var_listnode4 == NULL) {
9014 var13 = 0;
9015 } else {
9016 if(cltype14 >= var_listnode4->type->table_size) {
9017 var13 = 0;
9018 } else {
9019 var13 = var_listnode4->type->type_table[cltype14] == idtype15;
9020 }
9021 }
9022 if (!var13) {
9023 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29773);
9024 exit(1);
9025 }
9026 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction873>*/;
9027 var_listnode5 = var16;
9028 var_tcparnode6 = var_nodearraylist6;
9029 /* <var_tcparnode6:nullable Object> isa nullable TCpar */
9030 cltype18 = type_nullable_parser_nodes__TCpar.color;
9031 idtype19 = type_nullable_parser_nodes__TCpar.id;
9032 if(var_tcparnode6 == NULL) {
9033 var17 = 1;
9034 } else {
9035 if(cltype18 >= var_tcparnode6->type->table_size) {
9036 var17 = 0;
9037 } else {
9038 var17 = var_tcparnode6->type->type_table[cltype18] == idtype19;
9039 }
9040 }
9041 if (!var17) {
9042 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29776);
9043 exit(1);
9044 }
9045 var_pannotationsnode7 = var_nodearraylist7;
9046 /* <var_pannotationsnode7:nullable Object> isa nullable AAnnotations */
9047 cltype21 = type_nullable_parser_nodes__AAnnotations.color;
9048 idtype22 = type_nullable_parser_nodes__AAnnotations.id;
9049 if(var_pannotationsnode7 == NULL) {
9050 var20 = 1;
9051 } else {
9052 if(cltype21 >= var_pannotationsnode7->type->table_size) {
9053 var20 = 0;
9054 } else {
9055 var20 = var_pannotationsnode7->type->type_table[cltype21] == idtype22;
9056 }
9057 }
9058 if (!var20) {
9059 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29778);
9060 exit(1);
9061 }
9062 var23 = NEW_parser_nodes__AAnnotation(&type_parser_nodes__AAnnotation);
9063 ((void (*)(val*, val*, val*, val*, val*, val*))(var23->class->vft[COLOR_parser_prod__AAnnotation__init_aannotation]))(var23, var_patidnode2, var_toparnode3, var_listnode5, var_tcparnode6, var_pannotationsnode7) /* init_aannotation on <var23:AAnnotation>*/;
9064 CHECK_NEW_parser_nodes__AAnnotation(var23);
9065 var_pannotationnode1 = var23;
9066 var_node_list = var_pannotationnode1;
9067 var24 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction873> */
9068 var25 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var24) /* go_to on <var_p:Parser>*/;
9069 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var25, var_node_list) /* push on <var_p:Parser>*/;
9070 RET_LABEL:;
9071 }
9072 /* method parser#ReduceAction873#action for (self: Object, Parser) */
9073 void VIRTUAL_parser__ReduceAction873__action(val* self, val* p0) {
9074 parser__ReduceAction873__action(self, p0);
9075 RET_LABEL:;
9076 }
9077 /* method parser#ReduceAction874#action for (self: ReduceAction874, Parser) */
9078 void parser__ReduceAction874__action(val* self, val* p0) {
9079 val* var_p /* var p: Parser */;
9080 val* var /* : null */;
9081 val* var_node_list /* var node_list: nullable Object */;
9082 val* var1 /* : nullable Object */;
9083 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9084 val* var2 /* : Array[Object] */;
9085 val* var_listnode5 /* var listnode5: Array[Object] */;
9086 val* var_listnode4 /* var listnode4: nullable Object */;
9087 short int var3 /* : Bool */;
9088 int cltype;
9089 int idtype;
9090 val* var4 /* : Array[Object] */;
9091 val* var5 /* : AAnnotations */;
9092 val* var6 /* : null */;
9093 val* var7 /* : null */;
9094 val* var8 /* : null */;
9095 val* var_pannotationsnode1 /* var pannotationsnode1: nullable AAnnotations */;
9096 long var9 /* : Int */;
9097 long var10 /* : Int */;
9098 var_p = p0;
9099 var = NULL;
9100 var_node_list = var;
9101 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9102 var_nodearraylist1 = var1;
9103 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
9104 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
9105 CHECK_NEW_array__Array(var2);
9106 var_listnode5 = var2;
9107 var_listnode4 = var_nodearraylist1;
9108 /* <var_listnode4:nullable Object> isa Array[Object] */
9109 cltype = type_array__Arraykernel__Object.color;
9110 idtype = type_array__Arraykernel__Object.id;
9111 if(var_listnode4 == NULL) {
9112 var3 = 0;
9113 } else {
9114 if(cltype >= var_listnode4->type->table_size) {
9115 var3 = 0;
9116 } else {
9117 var3 = var_listnode4->type->type_table[cltype] == idtype;
9118 }
9119 }
9120 if (!var3) {
9121 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29798);
9122 exit(1);
9123 }
9124 var4 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction874>*/;
9125 var_listnode5 = var4;
9126 var5 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations);
9127 var6 = NULL;
9128 var7 = NULL;
9129 var8 = NULL;
9130 ((void (*)(val*, val*, val*, val*, val*))(var5->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var5, var6, var7, var_listnode5, var8) /* init_aannotations on <var5:AAnnotations>*/;
9131 CHECK_NEW_parser_nodes__AAnnotations(var5);
9132 var_pannotationsnode1 = var5;
9133 var_node_list = var_pannotationsnode1;
9134 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction874> */
9135 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
9136 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
9137 RET_LABEL:;
9138 }
9139 /* method parser#ReduceAction874#action for (self: Object, Parser) */
9140 void VIRTUAL_parser__ReduceAction874__action(val* self, val* p0) {
9141 parser__ReduceAction874__action(self, p0);
9142 RET_LABEL:;
9143 }
9144 /* method parser#ReduceAction875#action for (self: ReduceAction875, Parser) */
9145 void parser__ReduceAction875__action(val* self, val* p0) {
9146 val* var_p /* var p: Parser */;
9147 val* var /* : null */;
9148 val* var_node_list /* var node_list: nullable Object */;
9149 val* var1 /* : nullable Object */;
9150 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9151 val* var2 /* : Array[Object] */;
9152 val* var_listnode2 /* var listnode2: Array[Object] */;
9153 val* var_pannotationnode1 /* var pannotationnode1: nullable Object */;
9154 val* var3 /* : null */;
9155 short int var4 /* : Bool */;
9156 long var5 /* : Int */;
9157 long var6 /* : Int */;
9158 var_p = p0;
9159 var = NULL;
9160 var_node_list = var;
9161 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9162 var_nodearraylist1 = var1;
9163 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
9164 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
9165 CHECK_NEW_array__Array(var2);
9166 var_listnode2 = var2;
9167 var_pannotationnode1 = var_nodearraylist1;
9168 var3 = NULL;
9169 if (var_pannotationnode1 == NULL) {
9170 var4 = 0; /* is null */
9171 } else {
9172 var4 = 1; /* arg is null and recv is not */
9173 }
9174 if (var4){
9175 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_pannotationnode1) /* add on <var_listnode2:Array[Object]>*/;
9176 } else {
9177 }
9178 var_node_list = var_listnode2;
9179 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction875> */
9180 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
9181 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
9182 RET_LABEL:;
9183 }
9184 /* method parser#ReduceAction875#action for (self: Object, Parser) */
9185 void VIRTUAL_parser__ReduceAction875__action(val* self, val* p0) {
9186 parser__ReduceAction875__action(self, p0);
9187 RET_LABEL:;
9188 }
9189 /* method parser#ReduceAction876#action for (self: ReduceAction876, Parser) */
9190 void parser__ReduceAction876__action(val* self, val* p0) {
9191 val* var_p /* var p: Parser */;
9192 val* var /* : null */;
9193 val* var_node_list /* var node_list: nullable Object */;
9194 val* var1 /* : nullable Object */;
9195 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9196 val* var2 /* : nullable Object */;
9197 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9198 val* var3 /* : Array[Object] */;
9199 val* var_listnode3 /* var listnode3: Array[Object] */;
9200 val* var_pannotationnode1 /* var pannotationnode1: nullable Object */;
9201 val* var_listnode2 /* var listnode2: nullable Object */;
9202 short int var4 /* : Bool */;
9203 int cltype;
9204 int idtype;
9205 val* var5 /* : null */;
9206 short int var6 /* : Bool */;
9207 val* var7 /* : Array[Object] */;
9208 long var8 /* : Int */;
9209 long var9 /* : Int */;
9210 var_p = p0;
9211 var = NULL;
9212 var_node_list = var;
9213 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9214 var_nodearraylist2 = var1;
9215 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9216 var_nodearraylist1 = var2;
9217 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
9218 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
9219 CHECK_NEW_array__Array(var3);
9220 var_listnode3 = var3;
9221 var_pannotationnode1 = var_nodearraylist1;
9222 var_listnode2 = var_nodearraylist2;
9223 /* <var_listnode2:nullable Object> isa Array[Object] */
9224 cltype = type_array__Arraykernel__Object.color;
9225 idtype = type_array__Arraykernel__Object.id;
9226 if(var_listnode2 == NULL) {
9227 var4 = 0;
9228 } else {
9229 if(cltype >= var_listnode2->type->table_size) {
9230 var4 = 0;
9231 } else {
9232 var4 = var_listnode2->type->type_table[cltype] == idtype;
9233 }
9234 }
9235 if (!var4) {
9236 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29835);
9237 exit(1);
9238 }
9239 var5 = NULL;
9240 if (var_pannotationnode1 == NULL) {
9241 var6 = 0; /* is null */
9242 } else {
9243 var6 = 1; /* arg is null and recv is not */
9244 }
9245 if (var6){
9246 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pannotationnode1) /* add on <var_listnode3:Array[Object]>*/;
9247 } else {
9248 }
9249 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode2) /* concat on <self:ReduceAction876>*/;
9250 var_listnode3 = var7;
9251 var_node_list = var_listnode3;
9252 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction876> */
9253 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
9254 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
9255 RET_LABEL:;
9256 }
9257 /* method parser#ReduceAction876#action for (self: Object, Parser) */
9258 void VIRTUAL_parser__ReduceAction876__action(val* self, val* p0) {
9259 parser__ReduceAction876__action(self, p0);
9260 RET_LABEL:;
9261 }
9262 /* method parser#ReduceAction878#action for (self: ReduceAction878, Parser) */
9263 void parser__ReduceAction878__action(val* self, val* p0) {
9264 val* var_p /* var p: Parser */;
9265 val* var /* : null */;
9266 val* var_node_list /* var node_list: nullable Object */;
9267 val* var1 /* : nullable Object */;
9268 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9269 val* var2 /* : nullable Object */;
9270 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9271 val* var3 /* : nullable Object */;
9272 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9273 val* var4 /* : Array[Object] */;
9274 val* var_listnode4 /* var listnode4: Array[Object] */;
9275 val* var_patidnode2 /* var patidnode2: nullable Object */;
9276 short int var5 /* : Bool */;
9277 int cltype;
9278 int idtype;
9279 val* var6 /* : AAnnotation */;
9280 val* var7 /* : null */;
9281 val* var8 /* : null */;
9282 val* var9 /* : null */;
9283 val* var_pannotationnode1 /* var pannotationnode1: nullable AAnnotation */;
9284 long var10 /* : Int */;
9285 long var11 /* : Int */;
9286 var_p = p0;
9287 var = NULL;
9288 var_node_list = var;
9289 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9290 var_nodearraylist3 = var1;
9291 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9292 var_nodearraylist2 = var2;
9293 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9294 var_nodearraylist1 = var3;
9295 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
9296 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
9297 CHECK_NEW_array__Array(var4);
9298 var_listnode4 = var4;
9299 var_patidnode2 = var_nodearraylist2;
9300 /* <var_patidnode2:nullable Object> isa nullable AAtid */
9301 cltype = type_nullable_parser_nodes__AAtid.color;
9302 idtype = type_nullable_parser_nodes__AAtid.id;
9303 if(var_patidnode2 == NULL) {
9304 var5 = 1;
9305 } else {
9306 if(cltype >= var_patidnode2->type->table_size) {
9307 var5 = 0;
9308 } else {
9309 var5 = var_patidnode2->type->type_table[cltype] == idtype;
9310 }
9311 }
9312 if (!var5) {
9313 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29854);
9314 exit(1);
9315 }
9316 var6 = NEW_parser_nodes__AAnnotation(&type_parser_nodes__AAnnotation);
9317 var7 = NULL;
9318 var8 = NULL;
9319 var9 = NULL;
9320 ((void (*)(val*, val*, val*, val*, val*, val*))(var6->class->vft[COLOR_parser_prod__AAnnotation__init_aannotation]))(var6, var_patidnode2, var7, var_listnode4, var8, var9) /* init_aannotation on <var6:AAnnotation>*/;
9321 CHECK_NEW_parser_nodes__AAnnotation(var6);
9322 var_pannotationnode1 = var6;
9323 var_node_list = var_pannotationnode1;
9324 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction878> */
9325 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
9326 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
9327 RET_LABEL:;
9328 }
9329 /* method parser#ReduceAction878#action for (self: Object, Parser) */
9330 void VIRTUAL_parser__ReduceAction878__action(val* self, val* p0) {
9331 parser__ReduceAction878__action(self, p0);
9332 RET_LABEL:;
9333 }
9334 /* method parser#ReduceAction879#action for (self: ReduceAction879, Parser) */
9335 void parser__ReduceAction879__action(val* self, val* p0) {
9336 val* var_p /* var p: Parser */;
9337 val* var /* : null */;
9338 val* var_node_list /* var node_list: nullable Object */;
9339 val* var1 /* : nullable Object */;
9340 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9341 val* var2 /* : nullable Object */;
9342 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9343 val* var3 /* : nullable Object */;
9344 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9345 val* var4 /* : nullable Object */;
9346 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9347 val* var5 /* : Array[Object] */;
9348 val* var_listnode4 /* var listnode4: Array[Object] */;
9349 val* var_patidnode2 /* var patidnode2: nullable Object */;
9350 short int var6 /* : Bool */;
9351 int cltype;
9352 int idtype;
9353 val* var_pannotationsnode6 /* var pannotationsnode6: nullable Object */;
9354 short int var7 /* : Bool */;
9355 int cltype8;
9356 int idtype9;
9357 val* var10 /* : AAnnotation */;
9358 val* var11 /* : null */;
9359 val* var12 /* : null */;
9360 val* var_pannotationnode1 /* var pannotationnode1: nullable AAnnotation */;
9361 long var13 /* : Int */;
9362 long var14 /* : Int */;
9363 var_p = p0;
9364 var = NULL;
9365 var_node_list = var;
9366 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9367 var_nodearraylist4 = var1;
9368 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9369 var_nodearraylist3 = var2;
9370 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9371 var_nodearraylist2 = var3;
9372 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9373 var_nodearraylist1 = var4;
9374 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
9375 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
9376 CHECK_NEW_array__Array(var5);
9377 var_listnode4 = var5;
9378 var_patidnode2 = var_nodearraylist2;
9379 /* <var_patidnode2:nullable Object> isa nullable AAtid */
9380 cltype = type_nullable_parser_nodes__AAtid.color;
9381 idtype = type_nullable_parser_nodes__AAtid.id;
9382 if(var_patidnode2 == NULL) {
9383 var6 = 1;
9384 } else {
9385 if(cltype >= var_patidnode2->type->table_size) {
9386 var6 = 0;
9387 } else {
9388 var6 = var_patidnode2->type->type_table[cltype] == idtype;
9389 }
9390 }
9391 if (!var6) {
9392 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29877);
9393 exit(1);
9394 }
9395 var_pannotationsnode6 = var_nodearraylist3;
9396 /* <var_pannotationsnode6:nullable Object> isa nullable AAnnotations */
9397 cltype8 = type_nullable_parser_nodes__AAnnotations.color;
9398 idtype9 = type_nullable_parser_nodes__AAnnotations.id;
9399 if(var_pannotationsnode6 == NULL) {
9400 var7 = 1;
9401 } else {
9402 if(cltype8 >= var_pannotationsnode6->type->table_size) {
9403 var7 = 0;
9404 } else {
9405 var7 = var_pannotationsnode6->type->type_table[cltype8] == idtype9;
9406 }
9407 }
9408 if (!var7) {
9409 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29879);
9410 exit(1);
9411 }
9412 var10 = NEW_parser_nodes__AAnnotation(&type_parser_nodes__AAnnotation);
9413 var11 = NULL;
9414 var12 = NULL;
9415 ((void (*)(val*, val*, val*, val*, val*, val*))(var10->class->vft[COLOR_parser_prod__AAnnotation__init_aannotation]))(var10, var_patidnode2, var11, var_listnode4, var12, var_pannotationsnode6) /* init_aannotation on <var10:AAnnotation>*/;
9416 CHECK_NEW_parser_nodes__AAnnotation(var10);
9417 var_pannotationnode1 = var10;
9418 var_node_list = var_pannotationnode1;
9419 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction879> */
9420 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
9421 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
9422 RET_LABEL:;
9423 }
9424 /* method parser#ReduceAction879#action for (self: Object, Parser) */
9425 void VIRTUAL_parser__ReduceAction879__action(val* self, val* p0) {
9426 parser__ReduceAction879__action(self, p0);
9427 RET_LABEL:;
9428 }
9429 /* method parser#ReduceAction880#action for (self: ReduceAction880, Parser) */
9430 void parser__ReduceAction880__action(val* self, val* p0) {
9431 val* var_p /* var p: Parser */;
9432 val* var /* : null */;
9433 val* var_node_list /* var node_list: nullable Object */;
9434 val* var1 /* : nullable Object */;
9435 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
9436 val* var2 /* : nullable Object */;
9437 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
9438 val* var3 /* : nullable Object */;
9439 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9440 val* var4 /* : nullable Object */;
9441 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9442 val* var5 /* : nullable Object */;
9443 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9444 val* var6 /* : nullable Object */;
9445 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9446 val* var7 /* : nullable Object */;
9447 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9448 val* var8 /* : Array[Object] */;
9449 val* var_listnode5 /* var listnode5: Array[Object] */;
9450 val* var_patidnode2 /* var patidnode2: nullable Object */;
9451 short int var9 /* : Bool */;
9452 int cltype;
9453 int idtype;
9454 val* var_toparnode3 /* var toparnode3: nullable Object */;
9455 short int var10 /* : Bool */;
9456 int cltype11;
9457 int idtype12;
9458 val* var_listnode4 /* var listnode4: nullable Object */;
9459 short int var13 /* : Bool */;
9460 int cltype14;
9461 int idtype15;
9462 val* var16 /* : Array[Object] */;
9463 val* var_tcparnode6 /* var tcparnode6: nullable Object */;
9464 short int var17 /* : Bool */;
9465 int cltype18;
9466 int idtype19;
9467 val* var20 /* : AAnnotation */;
9468 val* var21 /* : null */;
9469 val* var_pannotationnode1 /* var pannotationnode1: nullable AAnnotation */;
9470 long var22 /* : Int */;
9471 long var23 /* : Int */;
9472 var_p = p0;
9473 var = NULL;
9474 var_node_list = var;
9475 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9476 var_nodearraylist7 = var1;
9477 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9478 var_nodearraylist6 = var2;
9479 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9480 var_nodearraylist5 = var3;
9481 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9482 var_nodearraylist4 = var4;
9483 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9484 var_nodearraylist3 = var5;
9485 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9486 var_nodearraylist2 = var6;
9487 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9488 var_nodearraylist1 = var7;
9489 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
9490 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
9491 CHECK_NEW_array__Array(var8);
9492 var_listnode5 = var8;
9493 var_patidnode2 = var_nodearraylist2;
9494 /* <var_patidnode2:nullable Object> isa nullable AAtid */
9495 cltype = type_nullable_parser_nodes__AAtid.color;
9496 idtype = type_nullable_parser_nodes__AAtid.id;
9497 if(var_patidnode2 == NULL) {
9498 var9 = 1;
9499 } else {
9500 if(cltype >= var_patidnode2->type->table_size) {
9501 var9 = 0;
9502 } else {
9503 var9 = var_patidnode2->type->type_table[cltype] == idtype;
9504 }
9505 }
9506 if (!var9) {
9507 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29905);
9508 exit(1);
9509 }
9510 var_toparnode3 = var_nodearraylist3;
9511 /* <var_toparnode3:nullable Object> isa nullable TOpar */
9512 cltype11 = type_nullable_parser_nodes__TOpar.color;
9513 idtype12 = type_nullable_parser_nodes__TOpar.id;
9514 if(var_toparnode3 == NULL) {
9515 var10 = 1;
9516 } else {
9517 if(cltype11 >= var_toparnode3->type->table_size) {
9518 var10 = 0;
9519 } else {
9520 var10 = var_toparnode3->type->type_table[cltype11] == idtype12;
9521 }
9522 }
9523 if (!var10) {
9524 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29907);
9525 exit(1);
9526 }
9527 var_listnode4 = var_nodearraylist5;
9528 /* <var_listnode4:nullable Object> isa Array[Object] */
9529 cltype14 = type_array__Arraykernel__Object.color;
9530 idtype15 = type_array__Arraykernel__Object.id;
9531 if(var_listnode4 == NULL) {
9532 var13 = 0;
9533 } else {
9534 if(cltype14 >= var_listnode4->type->table_size) {
9535 var13 = 0;
9536 } else {
9537 var13 = var_listnode4->type->type_table[cltype14] == idtype15;
9538 }
9539 }
9540 if (!var13) {
9541 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29909);
9542 exit(1);
9543 }
9544 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction880>*/;
9545 var_listnode5 = var16;
9546 var_tcparnode6 = var_nodearraylist6;
9547 /* <var_tcparnode6:nullable Object> isa nullable TCpar */
9548 cltype18 = type_nullable_parser_nodes__TCpar.color;
9549 idtype19 = type_nullable_parser_nodes__TCpar.id;
9550 if(var_tcparnode6 == NULL) {
9551 var17 = 1;
9552 } else {
9553 if(cltype18 >= var_tcparnode6->type->table_size) {
9554 var17 = 0;
9555 } else {
9556 var17 = var_tcparnode6->type->type_table[cltype18] == idtype19;
9557 }
9558 }
9559 if (!var17) {
9560 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29912);
9561 exit(1);
9562 }
9563 var20 = NEW_parser_nodes__AAnnotation(&type_parser_nodes__AAnnotation);
9564 var21 = NULL;
9565 ((void (*)(val*, val*, val*, val*, val*, val*))(var20->class->vft[COLOR_parser_prod__AAnnotation__init_aannotation]))(var20, var_patidnode2, var_toparnode3, var_listnode5, var_tcparnode6, var21) /* init_aannotation on <var20:AAnnotation>*/;
9566 CHECK_NEW_parser_nodes__AAnnotation(var20);
9567 var_pannotationnode1 = var20;
9568 var_node_list = var_pannotationnode1;
9569 var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction880> */
9570 var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
9571 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
9572 RET_LABEL:;
9573 }
9574 /* method parser#ReduceAction880#action for (self: Object, Parser) */
9575 void VIRTUAL_parser__ReduceAction880__action(val* self, val* p0) {
9576 parser__ReduceAction880__action(self, p0);
9577 RET_LABEL:;
9578 }
9579 /* method parser#ReduceAction881#action for (self: ReduceAction881, Parser) */
9580 void parser__ReduceAction881__action(val* self, val* p0) {
9581 val* var_p /* var p: Parser */;
9582 val* var /* : null */;
9583 val* var_node_list /* var node_list: nullable Object */;
9584 val* var1 /* : nullable Object */;
9585 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
9586 val* var2 /* : nullable Object */;
9587 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
9588 val* var3 /* : nullable Object */;
9589 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
9590 val* var4 /* : nullable Object */;
9591 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9592 val* var5 /* : nullable Object */;
9593 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9594 val* var6 /* : nullable Object */;
9595 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9596 val* var7 /* : nullable Object */;
9597 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9598 val* var8 /* : nullable Object */;
9599 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9600 val* var9 /* : Array[Object] */;
9601 val* var_listnode5 /* var listnode5: Array[Object] */;
9602 val* var_patidnode2 /* var patidnode2: nullable Object */;
9603 short int var10 /* : Bool */;
9604 int cltype;
9605 int idtype;
9606 val* var_toparnode3 /* var toparnode3: nullable Object */;
9607 short int var11 /* : Bool */;
9608 int cltype12;
9609 int idtype13;
9610 val* var_listnode4 /* var listnode4: nullable Object */;
9611 short int var14 /* : Bool */;
9612 int cltype15;
9613 int idtype16;
9614 val* var17 /* : Array[Object] */;
9615 val* var_tcparnode6 /* var tcparnode6: nullable Object */;
9616 short int var18 /* : Bool */;
9617 int cltype19;
9618 int idtype20;
9619 val* var_pannotationsnode7 /* var pannotationsnode7: nullable Object */;
9620 short int var21 /* : Bool */;
9621 int cltype22;
9622 int idtype23;
9623 val* var24 /* : AAnnotation */;
9624 val* var_pannotationnode1 /* var pannotationnode1: nullable AAnnotation */;
9625 long var25 /* : Int */;
9626 long var26 /* : Int */;
9627 var_p = p0;
9628 var = NULL;
9629 var_node_list = var;
9630 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9631 var_nodearraylist8 = var1;
9632 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9633 var_nodearraylist7 = var2;
9634 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9635 var_nodearraylist6 = var3;
9636 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9637 var_nodearraylist5 = var4;
9638 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9639 var_nodearraylist4 = var5;
9640 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9641 var_nodearraylist3 = var6;
9642 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9643 var_nodearraylist2 = var7;
9644 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9645 var_nodearraylist1 = var8;
9646 var9 = NEW_array__Array(&type_array__Arraykernel__Object);
9647 ((void (*)(val*))(var9->class->vft[COLOR_array__Array__init]))(var9) /* init on <var9:Array[Object]>*/;
9648 CHECK_NEW_array__Array(var9);
9649 var_listnode5 = var9;
9650 var_patidnode2 = var_nodearraylist2;
9651 /* <var_patidnode2:nullable Object> isa nullable AAtid */
9652 cltype = type_nullable_parser_nodes__AAtid.color;
9653 idtype = type_nullable_parser_nodes__AAtid.id;
9654 if(var_patidnode2 == NULL) {
9655 var10 = 1;
9656 } else {
9657 if(cltype >= var_patidnode2->type->table_size) {
9658 var10 = 0;
9659 } else {
9660 var10 = var_patidnode2->type->type_table[cltype] == idtype;
9661 }
9662 }
9663 if (!var10) {
9664 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29939);
9665 exit(1);
9666 }
9667 var_toparnode3 = var_nodearraylist3;
9668 /* <var_toparnode3:nullable Object> isa nullable TOpar */
9669 cltype12 = type_nullable_parser_nodes__TOpar.color;
9670 idtype13 = type_nullable_parser_nodes__TOpar.id;
9671 if(var_toparnode3 == NULL) {
9672 var11 = 1;
9673 } else {
9674 if(cltype12 >= var_toparnode3->type->table_size) {
9675 var11 = 0;
9676 } else {
9677 var11 = var_toparnode3->type->type_table[cltype12] == idtype13;
9678 }
9679 }
9680 if (!var11) {
9681 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29941);
9682 exit(1);
9683 }
9684 var_listnode4 = var_nodearraylist5;
9685 /* <var_listnode4:nullable Object> isa Array[Object] */
9686 cltype15 = type_array__Arraykernel__Object.color;
9687 idtype16 = type_array__Arraykernel__Object.id;
9688 if(var_listnode4 == NULL) {
9689 var14 = 0;
9690 } else {
9691 if(cltype15 >= var_listnode4->type->table_size) {
9692 var14 = 0;
9693 } else {
9694 var14 = var_listnode4->type->type_table[cltype15] == idtype16;
9695 }
9696 }
9697 if (!var14) {
9698 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29943);
9699 exit(1);
9700 }
9701 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction881>*/;
9702 var_listnode5 = var17;
9703 var_tcparnode6 = var_nodearraylist6;
9704 /* <var_tcparnode6:nullable Object> isa nullable TCpar */
9705 cltype19 = type_nullable_parser_nodes__TCpar.color;
9706 idtype20 = type_nullable_parser_nodes__TCpar.id;
9707 if(var_tcparnode6 == NULL) {
9708 var18 = 1;
9709 } else {
9710 if(cltype19 >= var_tcparnode6->type->table_size) {
9711 var18 = 0;
9712 } else {
9713 var18 = var_tcparnode6->type->type_table[cltype19] == idtype20;
9714 }
9715 }
9716 if (!var18) {
9717 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29946);
9718 exit(1);
9719 }
9720 var_pannotationsnode7 = var_nodearraylist7;
9721 /* <var_pannotationsnode7:nullable Object> isa nullable AAnnotations */
9722 cltype22 = type_nullable_parser_nodes__AAnnotations.color;
9723 idtype23 = type_nullable_parser_nodes__AAnnotations.id;
9724 if(var_pannotationsnode7 == NULL) {
9725 var21 = 1;
9726 } else {
9727 if(cltype22 >= var_pannotationsnode7->type->table_size) {
9728 var21 = 0;
9729 } else {
9730 var21 = var_pannotationsnode7->type->type_table[cltype22] == idtype23;
9731 }
9732 }
9733 if (!var21) {
9734 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29948);
9735 exit(1);
9736 }
9737 var24 = NEW_parser_nodes__AAnnotation(&type_parser_nodes__AAnnotation);
9738 ((void (*)(val*, val*, val*, val*, val*, val*))(var24->class->vft[COLOR_parser_prod__AAnnotation__init_aannotation]))(var24, var_patidnode2, var_toparnode3, var_listnode5, var_tcparnode6, var_pannotationsnode7) /* init_aannotation on <var24:AAnnotation>*/;
9739 CHECK_NEW_parser_nodes__AAnnotation(var24);
9740 var_pannotationnode1 = var24;
9741 var_node_list = var_pannotationnode1;
9742 var25 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction881> */
9743 var26 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var25) /* go_to on <var_p:Parser>*/;
9744 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var26, var_node_list) /* push on <var_p:Parser>*/;
9745 RET_LABEL:;
9746 }
9747 /* method parser#ReduceAction881#action for (self: Object, Parser) */
9748 void VIRTUAL_parser__ReduceAction881__action(val* self, val* p0) {
9749 parser__ReduceAction881__action(self, p0);
9750 RET_LABEL:;
9751 }
9752 /* method parser#ReduceAction882#action for (self: ReduceAction882, Parser) */
9753 void parser__ReduceAction882__action(val* self, val* p0) {
9754 val* var_p /* var p: Parser */;
9755 val* var /* : null */;
9756 val* var_node_list /* var node_list: nullable Object */;
9757 val* var1 /* : nullable Object */;
9758 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9759 val* var2 /* : nullable Object */;
9760 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9761 val* var3 /* : nullable Object */;
9762 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9763 val* var4 /* : nullable Object */;
9764 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9765 val* var5 /* : Array[Object] */;
9766 val* var_listnode5 /* var listnode5: Array[Object] */;
9767 val* var_patidnode2 /* var patidnode2: nullable Object */;
9768 short int var6 /* : Bool */;
9769 int cltype;
9770 int idtype;
9771 val* var_listnode4 /* var listnode4: nullable Object */;
9772 short int var7 /* : Bool */;
9773 int cltype8;
9774 int idtype9;
9775 val* var10 /* : Array[Object] */;
9776 val* var11 /* : AAnnotation */;
9777 val* var12 /* : null */;
9778 val* var13 /* : null */;
9779 val* var14 /* : null */;
9780 val* var_pannotationnode1 /* var pannotationnode1: nullable AAnnotation */;
9781 long var15 /* : Int */;
9782 long var16 /* : Int */;
9783 var_p = p0;
9784 var = NULL;
9785 var_node_list = var;
9786 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9787 var_nodearraylist4 = var1;
9788 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9789 var_nodearraylist3 = var2;
9790 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9791 var_nodearraylist2 = var3;
9792 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9793 var_nodearraylist1 = var4;
9794 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
9795 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
9796 CHECK_NEW_array__Array(var5);
9797 var_listnode5 = var5;
9798 var_patidnode2 = var_nodearraylist2;
9799 /* <var_patidnode2:nullable Object> isa nullable AAtid */
9800 cltype = type_nullable_parser_nodes__AAtid.color;
9801 idtype = type_nullable_parser_nodes__AAtid.id;
9802 if(var_patidnode2 == NULL) {
9803 var6 = 1;
9804 } else {
9805 if(cltype >= var_patidnode2->type->table_size) {
9806 var6 = 0;
9807 } else {
9808 var6 = var_patidnode2->type->type_table[cltype] == idtype;
9809 }
9810 }
9811 if (!var6) {
9812 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29971);
9813 exit(1);
9814 }
9815 var_listnode4 = var_nodearraylist3;
9816 /* <var_listnode4:nullable Object> isa Array[Object] */
9817 cltype8 = type_array__Arraykernel__Object.color;
9818 idtype9 = type_array__Arraykernel__Object.id;
9819 if(var_listnode4 == NULL) {
9820 var7 = 0;
9821 } else {
9822 if(cltype8 >= var_listnode4->type->table_size) {
9823 var7 = 0;
9824 } else {
9825 var7 = var_listnode4->type->type_table[cltype8] == idtype9;
9826 }
9827 }
9828 if (!var7) {
9829 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 29973);
9830 exit(1);
9831 }
9832 var10 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction882>*/;
9833 var_listnode5 = var10;
9834 var11 = NEW_parser_nodes__AAnnotation(&type_parser_nodes__AAnnotation);
9835 var12 = NULL;
9836 var13 = NULL;
9837 var14 = NULL;
9838 ((void (*)(val*, val*, val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AAnnotation__init_aannotation]))(var11, var_patidnode2, var12, var_listnode5, var13, var14) /* init_aannotation on <var11:AAnnotation>*/;
9839 CHECK_NEW_parser_nodes__AAnnotation(var11);
9840 var_pannotationnode1 = var11;
9841 var_node_list = var_pannotationnode1;
9842 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction882> */
9843 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
9844 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
9845 RET_LABEL:;
9846 }
9847 /* method parser#ReduceAction882#action for (self: Object, Parser) */
9848 void VIRTUAL_parser__ReduceAction882__action(val* self, val* p0) {
9849 parser__ReduceAction882__action(self, p0);
9850 RET_LABEL:;
9851 }
9852 /* method parser#ReduceAction883#action for (self: ReduceAction883, Parser) */
9853 void parser__ReduceAction883__action(val* self, val* p0) {
9854 val* var_p /* var p: Parser */;
9855 val* var /* : null */;
9856 val* var_node_list /* var node_list: nullable Object */;
9857 val* var1 /* : nullable Object */;
9858 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9859 val* var2 /* : nullable Object */;
9860 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9861 val* var3 /* : nullable Object */;
9862 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9863 val* var_pannotationnode1 /* var pannotationnode1: nullable Object */;
9864 long var4 /* : Int */;
9865 long var5 /* : Int */;
9866 var_p = p0;
9867 var = NULL;
9868 var_node_list = var;
9869 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9870 var_nodearraylist3 = var1;
9871 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9872 var_nodearraylist2 = var2;
9873 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9874 var_nodearraylist1 = var3;
9875 var_pannotationnode1 = var_nodearraylist3;
9876 var_node_list = var_pannotationnode1;
9877 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction883> */
9878 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
9879 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
9880 RET_LABEL:;
9881 }
9882 /* method parser#ReduceAction883#action for (self: Object, Parser) */
9883 void VIRTUAL_parser__ReduceAction883__action(val* self, val* p0) {
9884 parser__ReduceAction883__action(self, p0);
9885 RET_LABEL:;
9886 }
9887 /* method parser#ReduceAction884#action for (self: ReduceAction884, Parser) */
9888 void parser__ReduceAction884__action(val* self, val* p0) {
9889 val* var_p /* var p: Parser */;
9890 val* var /* : null */;
9891 val* var_node_list /* var node_list: nullable Object */;
9892 val* var1 /* : nullable Object */;
9893 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9894 val* var2 /* : Array[Object] */;
9895 val* var_listnode2 /* var listnode2: Array[Object] */;
9896 val* var_patargnode1 /* var patargnode1: nullable Object */;
9897 val* var3 /* : null */;
9898 short int var4 /* : Bool */;
9899 long var5 /* : Int */;
9900 long var6 /* : Int */;
9901 var_p = p0;
9902 var = NULL;
9903 var_node_list = var;
9904 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9905 var_nodearraylist1 = var1;
9906 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
9907 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
9908 CHECK_NEW_array__Array(var2);
9909 var_listnode2 = var2;
9910 var_patargnode1 = var_nodearraylist1;
9911 var3 = NULL;
9912 if (var_patargnode1 == NULL) {
9913 var4 = 0; /* is null */
9914 } else {
9915 var4 = 1; /* arg is null and recv is not */
9916 }
9917 if (var4){
9918 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_patargnode1) /* add on <var_listnode2:Array[Object]>*/;
9919 } else {
9920 }
9921 var_node_list = var_listnode2;
9922 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction884> */
9923 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
9924 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
9925 RET_LABEL:;
9926 }
9927 /* method parser#ReduceAction884#action for (self: Object, Parser) */
9928 void VIRTUAL_parser__ReduceAction884__action(val* self, val* p0) {
9929 parser__ReduceAction884__action(self, p0);
9930 RET_LABEL:;
9931 }
9932 /* method parser#ReduceAction885#action for (self: ReduceAction885, Parser) */
9933 void parser__ReduceAction885__action(val* self, val* p0) {
9934 val* var_p /* var p: Parser */;
9935 val* var /* : null */;
9936 val* var_node_list /* var node_list: nullable Object */;
9937 val* var1 /* : nullable Object */;
9938 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9939 val* var2 /* : nullable Object */;
9940 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9941 val* var3 /* : Array[Object] */;
9942 val* var_listnode3 /* var listnode3: Array[Object] */;
9943 val* var_patargnode1 /* var patargnode1: nullable Object */;
9944 val* var_listnode2 /* var listnode2: nullable Object */;
9945 short int var4 /* : Bool */;
9946 int cltype;
9947 int idtype;
9948 val* var5 /* : null */;
9949 short int var6 /* : Bool */;
9950 val* var7 /* : Array[Object] */;
9951 long var8 /* : Int */;
9952 long var9 /* : Int */;
9953 var_p = p0;
9954 var = NULL;
9955 var_node_list = var;
9956 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9957 var_nodearraylist2 = var1;
9958 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9959 var_nodearraylist1 = var2;
9960 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
9961 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
9962 CHECK_NEW_array__Array(var3);
9963 var_listnode3 = var3;
9964 var_patargnode1 = var_nodearraylist1;
9965 var_listnode2 = var_nodearraylist2;
9966 /* <var_listnode2:nullable Object> isa Array[Object] */
9967 cltype = type_array__Arraykernel__Object.color;
9968 idtype = type_array__Arraykernel__Object.id;
9969 if(var_listnode2 == NULL) {
9970 var4 = 0;
9971 } else {
9972 if(cltype >= var_listnode2->type->table_size) {
9973 var4 = 0;
9974 } else {
9975 var4 = var_listnode2->type->type_table[cltype] == idtype;
9976 }
9977 }
9978 if (!var4) {
9979 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30024);
9980 exit(1);
9981 }
9982 var5 = NULL;
9983 if (var_patargnode1 == NULL) {
9984 var6 = 0; /* is null */
9985 } else {
9986 var6 = 1; /* arg is null and recv is not */
9987 }
9988 if (var6){
9989 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_patargnode1) /* add on <var_listnode3:Array[Object]>*/;
9990 } else {
9991 }
9992 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode2) /* concat on <self:ReduceAction885>*/;
9993 var_listnode3 = var7;
9994 var_node_list = var_listnode3;
9995 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction885> */
9996 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
9997 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
9998 RET_LABEL:;
9999 }