use nitg to bootstrap; drop bootstrap of nitc
[nit.git] / c_src / parser.sep.13.c
1 #include "parser.sep.0.h"
2 /* method parser#ReduceAction526#action for (self: ReduceAction526, Parser) */
3 void parser__ReduceAction526__action(val* self, val* p0) {
4 val* var_p /* var p: Parser */;
5 val* var /* : null */;
6 val* var_node_list /* var node_list: nullable Object */;
7 val* var1 /* : nullable Object */;
8 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9 val* var2 /* : nullable Object */;
10 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
11 val* var_tkwintrudenode2 /* var tkwintrudenode2: nullable Object */;
12 short int var3 /* : Bool */;
13 int cltype;
14 int idtype;
15 val* var4 /* : AIntrudeVisibility */;
16 val* var_pvisibilitynode1 /* var pvisibilitynode1: nullable AIntrudeVisibility */;
17 long var5 /* : Int */;
18 long var6 /* : Int */;
19 var_p = p0;
20 var = NULL;
21 var_node_list = var;
22 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
23 var_nodearraylist2 = var1;
24 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
25 var_nodearraylist1 = var2;
26 var_tkwintrudenode2 = var_nodearraylist1;
27 /* <var_tkwintrudenode2:nullable Object> isa nullable TKwintrude */
28 cltype = type_nullable_parser_nodes__TKwintrude.color;
29 idtype = type_nullable_parser_nodes__TKwintrude.id;
30 if(var_tkwintrudenode2 == NULL) {
31 var3 = 1;
32 } else {
33 if(cltype >= var_tkwintrudenode2->type->table_size) {
34 var3 = 0;
35 } else {
36 var3 = var_tkwintrudenode2->type->type_table[cltype] == idtype;
37 }
38 }
39 if (!var3) {
40 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22928);
41 exit(1);
42 }
43 var4 = NEW_parser_nodes__AIntrudeVisibility(&type_parser_nodes__AIntrudeVisibility);
44 ((void (*)(val*, val*))(var4->class->vft[COLOR_parser_prod__AIntrudeVisibility__init_aintrudevisibility]))(var4, var_tkwintrudenode2) /* init_aintrudevisibility on <var4:AIntrudeVisibility>*/;
45 CHECK_NEW_parser_nodes__AIntrudeVisibility(var4);
46 var_pvisibilitynode1 = var4;
47 var_node_list = var_pvisibilitynode1;
48 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction526> */
49 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
50 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
51 RET_LABEL:;
52 }
53 /* method parser#ReduceAction526#action for (self: Object, Parser) */
54 void VIRTUAL_parser__ReduceAction526__action(val* self, val* p0) {
55 parser__ReduceAction526__action(self, p0);
56 RET_LABEL:;
57 }
58 /* method parser#ReduceAction527#action for (self: ReduceAction527, Parser) */
59 void parser__ReduceAction527__action(val* self, val* p0) {
60 val* var_p /* var p: Parser */;
61 val* var /* : null */;
62 val* var_node_list /* var node_list: nullable Object */;
63 val* var1 /* : nullable Object */;
64 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
65 val* var_tidnode2 /* var tidnode2: nullable Object */;
66 short int var2 /* : Bool */;
67 int cltype;
68 int idtype;
69 val* var3 /* : AIdMethid */;
70 val* var_pmethidnode1 /* var pmethidnode1: nullable AIdMethid */;
71 long var4 /* : Int */;
72 long var5 /* : Int */;
73 var_p = p0;
74 var = NULL;
75 var_node_list = var;
76 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
77 var_nodearraylist1 = var1;
78 var_tidnode2 = var_nodearraylist1;
79 /* <var_tidnode2:nullable Object> isa nullable TId */
80 cltype = type_nullable_parser_nodes__TId.color;
81 idtype = type_nullable_parser_nodes__TId.id;
82 if(var_tidnode2 == NULL) {
83 var2 = 1;
84 } else {
85 if(cltype >= var_tidnode2->type->table_size) {
86 var2 = 0;
87 } else {
88 var2 = var_tidnode2->type->type_table[cltype] == idtype;
89 }
90 }
91 if (!var2) {
92 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22943);
93 exit(1);
94 }
95 var3 = NEW_parser_nodes__AIdMethid(&type_parser_nodes__AIdMethid);
96 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AIdMethid__init_aidmethid]))(var3, var_tidnode2) /* init_aidmethid on <var3:AIdMethid>*/;
97 CHECK_NEW_parser_nodes__AIdMethid(var3);
98 var_pmethidnode1 = var3;
99 var_node_list = var_pmethidnode1;
100 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction527> */
101 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
102 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
103 RET_LABEL:;
104 }
105 /* method parser#ReduceAction527#action for (self: Object, Parser) */
106 void VIRTUAL_parser__ReduceAction527__action(val* self, val* p0) {
107 parser__ReduceAction527__action(self, p0);
108 RET_LABEL:;
109 }
110 /* method parser#ReduceAction528#action for (self: ReduceAction528, Parser) */
111 void parser__ReduceAction528__action(val* self, val* p0) {
112 val* var_p /* var p: Parser */;
113 val* var /* : null */;
114 val* var_node_list /* var node_list: nullable Object */;
115 val* var1 /* : nullable Object */;
116 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
117 val* var_tplusnode2 /* var tplusnode2: nullable Object */;
118 short int var2 /* : Bool */;
119 int cltype;
120 int idtype;
121 val* var3 /* : APlusMethid */;
122 val* var_pmethidnode1 /* var pmethidnode1: nullable APlusMethid */;
123 long var4 /* : Int */;
124 long var5 /* : Int */;
125 var_p = p0;
126 var = NULL;
127 var_node_list = var;
128 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
129 var_nodearraylist1 = var1;
130 var_tplusnode2 = var_nodearraylist1;
131 /* <var_tplusnode2:nullable Object> isa nullable TPlus */
132 cltype = type_nullable_parser_nodes__TPlus.color;
133 idtype = type_nullable_parser_nodes__TPlus.id;
134 if(var_tplusnode2 == NULL) {
135 var2 = 1;
136 } else {
137 if(cltype >= var_tplusnode2->type->table_size) {
138 var2 = 0;
139 } else {
140 var2 = var_tplusnode2->type->type_table[cltype] == idtype;
141 }
142 }
143 if (!var2) {
144 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22958);
145 exit(1);
146 }
147 var3 = NEW_parser_nodes__APlusMethid(&type_parser_nodes__APlusMethid);
148 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__APlusMethid__init_aplusmethid]))(var3, var_tplusnode2) /* init_aplusmethid on <var3:APlusMethid>*/;
149 CHECK_NEW_parser_nodes__APlusMethid(var3);
150 var_pmethidnode1 = var3;
151 var_node_list = var_pmethidnode1;
152 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction528> */
153 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
154 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
155 RET_LABEL:;
156 }
157 /* method parser#ReduceAction528#action for (self: Object, Parser) */
158 void VIRTUAL_parser__ReduceAction528__action(val* self, val* p0) {
159 parser__ReduceAction528__action(self, p0);
160 RET_LABEL:;
161 }
162 /* method parser#ReduceAction529#action for (self: ReduceAction529, Parser) */
163 void parser__ReduceAction529__action(val* self, val* p0) {
164 val* var_p /* var p: Parser */;
165 val* var /* : null */;
166 val* var_node_list /* var node_list: nullable Object */;
167 val* var1 /* : nullable Object */;
168 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
169 val* var_tminusnode2 /* var tminusnode2: nullable Object */;
170 short int var2 /* : Bool */;
171 int cltype;
172 int idtype;
173 val* var3 /* : AMinusMethid */;
174 val* var_pmethidnode1 /* var pmethidnode1: nullable AMinusMethid */;
175 long var4 /* : Int */;
176 long var5 /* : Int */;
177 var_p = p0;
178 var = NULL;
179 var_node_list = var;
180 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
181 var_nodearraylist1 = var1;
182 var_tminusnode2 = var_nodearraylist1;
183 /* <var_tminusnode2:nullable Object> isa nullable TMinus */
184 cltype = type_nullable_parser_nodes__TMinus.color;
185 idtype = type_nullable_parser_nodes__TMinus.id;
186 if(var_tminusnode2 == NULL) {
187 var2 = 1;
188 } else {
189 if(cltype >= var_tminusnode2->type->table_size) {
190 var2 = 0;
191 } else {
192 var2 = var_tminusnode2->type->type_table[cltype] == idtype;
193 }
194 }
195 if (!var2) {
196 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22973);
197 exit(1);
198 }
199 var3 = NEW_parser_nodes__AMinusMethid(&type_parser_nodes__AMinusMethid);
200 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AMinusMethid__init_aminusmethid]))(var3, var_tminusnode2) /* init_aminusmethid on <var3:AMinusMethid>*/;
201 CHECK_NEW_parser_nodes__AMinusMethid(var3);
202 var_pmethidnode1 = var3;
203 var_node_list = var_pmethidnode1;
204 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction529> */
205 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
206 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
207 RET_LABEL:;
208 }
209 /* method parser#ReduceAction529#action for (self: Object, Parser) */
210 void VIRTUAL_parser__ReduceAction529__action(val* self, val* p0) {
211 parser__ReduceAction529__action(self, p0);
212 RET_LABEL:;
213 }
214 /* method parser#ReduceAction530#action for (self: ReduceAction530, Parser) */
215 void parser__ReduceAction530__action(val* self, val* p0) {
216 val* var_p /* var p: Parser */;
217 val* var /* : null */;
218 val* var_node_list /* var node_list: nullable Object */;
219 val* var1 /* : nullable Object */;
220 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
221 val* var_tstarnode2 /* var tstarnode2: nullable Object */;
222 short int var2 /* : Bool */;
223 int cltype;
224 int idtype;
225 val* var3 /* : AStarMethid */;
226 val* var_pmethidnode1 /* var pmethidnode1: nullable AStarMethid */;
227 long var4 /* : Int */;
228 long var5 /* : Int */;
229 var_p = p0;
230 var = NULL;
231 var_node_list = var;
232 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
233 var_nodearraylist1 = var1;
234 var_tstarnode2 = var_nodearraylist1;
235 /* <var_tstarnode2:nullable Object> isa nullable TStar */
236 cltype = type_nullable_parser_nodes__TStar.color;
237 idtype = type_nullable_parser_nodes__TStar.id;
238 if(var_tstarnode2 == NULL) {
239 var2 = 1;
240 } else {
241 if(cltype >= var_tstarnode2->type->table_size) {
242 var2 = 0;
243 } else {
244 var2 = var_tstarnode2->type->type_table[cltype] == idtype;
245 }
246 }
247 if (!var2) {
248 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22988);
249 exit(1);
250 }
251 var3 = NEW_parser_nodes__AStarMethid(&type_parser_nodes__AStarMethid);
252 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AStarMethid__init_astarmethid]))(var3, var_tstarnode2) /* init_astarmethid on <var3:AStarMethid>*/;
253 CHECK_NEW_parser_nodes__AStarMethid(var3);
254 var_pmethidnode1 = var3;
255 var_node_list = var_pmethidnode1;
256 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction530> */
257 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
258 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
259 RET_LABEL:;
260 }
261 /* method parser#ReduceAction530#action for (self: Object, Parser) */
262 void VIRTUAL_parser__ReduceAction530__action(val* self, val* p0) {
263 parser__ReduceAction530__action(self, p0);
264 RET_LABEL:;
265 }
266 /* method parser#ReduceAction531#action for (self: ReduceAction531, Parser) */
267 void parser__ReduceAction531__action(val* self, val* p0) {
268 val* var_p /* var p: Parser */;
269 val* var /* : null */;
270 val* var_node_list /* var node_list: nullable Object */;
271 val* var1 /* : nullable Object */;
272 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
273 val* var_tslashnode2 /* var tslashnode2: nullable Object */;
274 short int var2 /* : Bool */;
275 int cltype;
276 int idtype;
277 val* var3 /* : ASlashMethid */;
278 val* var_pmethidnode1 /* var pmethidnode1: nullable ASlashMethid */;
279 long var4 /* : Int */;
280 long var5 /* : Int */;
281 var_p = p0;
282 var = NULL;
283 var_node_list = var;
284 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
285 var_nodearraylist1 = var1;
286 var_tslashnode2 = var_nodearraylist1;
287 /* <var_tslashnode2:nullable Object> isa nullable TSlash */
288 cltype = type_nullable_parser_nodes__TSlash.color;
289 idtype = type_nullable_parser_nodes__TSlash.id;
290 if(var_tslashnode2 == NULL) {
291 var2 = 1;
292 } else {
293 if(cltype >= var_tslashnode2->type->table_size) {
294 var2 = 0;
295 } else {
296 var2 = var_tslashnode2->type->type_table[cltype] == idtype;
297 }
298 }
299 if (!var2) {
300 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23003);
301 exit(1);
302 }
303 var3 = NEW_parser_nodes__ASlashMethid(&type_parser_nodes__ASlashMethid);
304 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__ASlashMethid__init_aslashmethid]))(var3, var_tslashnode2) /* init_aslashmethid on <var3:ASlashMethid>*/;
305 CHECK_NEW_parser_nodes__ASlashMethid(var3);
306 var_pmethidnode1 = var3;
307 var_node_list = var_pmethidnode1;
308 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction531> */
309 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
310 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
311 RET_LABEL:;
312 }
313 /* method parser#ReduceAction531#action for (self: Object, Parser) */
314 void VIRTUAL_parser__ReduceAction531__action(val* self, val* p0) {
315 parser__ReduceAction531__action(self, p0);
316 RET_LABEL:;
317 }
318 /* method parser#ReduceAction532#action for (self: ReduceAction532, Parser) */
319 void parser__ReduceAction532__action(val* self, val* p0) {
320 val* var_p /* var p: Parser */;
321 val* var /* : null */;
322 val* var_node_list /* var node_list: nullable Object */;
323 val* var1 /* : nullable Object */;
324 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
325 val* var_tpercentnode2 /* var tpercentnode2: nullable Object */;
326 short int var2 /* : Bool */;
327 int cltype;
328 int idtype;
329 val* var3 /* : APercentMethid */;
330 val* var_pmethidnode1 /* var pmethidnode1: nullable APercentMethid */;
331 long var4 /* : Int */;
332 long var5 /* : Int */;
333 var_p = p0;
334 var = NULL;
335 var_node_list = var;
336 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
337 var_nodearraylist1 = var1;
338 var_tpercentnode2 = var_nodearraylist1;
339 /* <var_tpercentnode2:nullable Object> isa nullable TPercent */
340 cltype = type_nullable_parser_nodes__TPercent.color;
341 idtype = type_nullable_parser_nodes__TPercent.id;
342 if(var_tpercentnode2 == NULL) {
343 var2 = 1;
344 } else {
345 if(cltype >= var_tpercentnode2->type->table_size) {
346 var2 = 0;
347 } else {
348 var2 = var_tpercentnode2->type->type_table[cltype] == idtype;
349 }
350 }
351 if (!var2) {
352 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23018);
353 exit(1);
354 }
355 var3 = NEW_parser_nodes__APercentMethid(&type_parser_nodes__APercentMethid);
356 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__APercentMethid__init_apercentmethid]))(var3, var_tpercentnode2) /* init_apercentmethid on <var3:APercentMethid>*/;
357 CHECK_NEW_parser_nodes__APercentMethid(var3);
358 var_pmethidnode1 = var3;
359 var_node_list = var_pmethidnode1;
360 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction532> */
361 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
362 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
363 RET_LABEL:;
364 }
365 /* method parser#ReduceAction532#action for (self: Object, Parser) */
366 void VIRTUAL_parser__ReduceAction532__action(val* self, val* p0) {
367 parser__ReduceAction532__action(self, p0);
368 RET_LABEL:;
369 }
370 /* method parser#ReduceAction533#action for (self: ReduceAction533, Parser) */
371 void parser__ReduceAction533__action(val* self, val* p0) {
372 val* var_p /* var p: Parser */;
373 val* var /* : null */;
374 val* var_node_list /* var node_list: nullable Object */;
375 val* var1 /* : nullable Object */;
376 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
377 val* var_teqnode2 /* var teqnode2: nullable Object */;
378 short int var2 /* : Bool */;
379 int cltype;
380 int idtype;
381 val* var3 /* : AEqMethid */;
382 val* var_pmethidnode1 /* var pmethidnode1: nullable AEqMethid */;
383 long var4 /* : Int */;
384 long var5 /* : Int */;
385 var_p = p0;
386 var = NULL;
387 var_node_list = var;
388 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
389 var_nodearraylist1 = var1;
390 var_teqnode2 = var_nodearraylist1;
391 /* <var_teqnode2:nullable Object> isa nullable TEq */
392 cltype = type_nullable_parser_nodes__TEq.color;
393 idtype = type_nullable_parser_nodes__TEq.id;
394 if(var_teqnode2 == NULL) {
395 var2 = 1;
396 } else {
397 if(cltype >= var_teqnode2->type->table_size) {
398 var2 = 0;
399 } else {
400 var2 = var_teqnode2->type->type_table[cltype] == idtype;
401 }
402 }
403 if (!var2) {
404 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23033);
405 exit(1);
406 }
407 var3 = NEW_parser_nodes__AEqMethid(&type_parser_nodes__AEqMethid);
408 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AEqMethid__init_aeqmethid]))(var3, var_teqnode2) /* init_aeqmethid on <var3:AEqMethid>*/;
409 CHECK_NEW_parser_nodes__AEqMethid(var3);
410 var_pmethidnode1 = var3;
411 var_node_list = var_pmethidnode1;
412 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction533> */
413 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
414 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
415 RET_LABEL:;
416 }
417 /* method parser#ReduceAction533#action for (self: Object, Parser) */
418 void VIRTUAL_parser__ReduceAction533__action(val* self, val* p0) {
419 parser__ReduceAction533__action(self, p0);
420 RET_LABEL:;
421 }
422 /* method parser#ReduceAction534#action for (self: ReduceAction534, Parser) */
423 void parser__ReduceAction534__action(val* self, val* p0) {
424 val* var_p /* var p: Parser */;
425 val* var /* : null */;
426 val* var_node_list /* var node_list: nullable Object */;
427 val* var1 /* : nullable Object */;
428 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
429 val* var_tnenode2 /* var tnenode2: nullable Object */;
430 short int var2 /* : Bool */;
431 int cltype;
432 int idtype;
433 val* var3 /* : ANeMethid */;
434 val* var_pmethidnode1 /* var pmethidnode1: nullable ANeMethid */;
435 long var4 /* : Int */;
436 long var5 /* : Int */;
437 var_p = p0;
438 var = NULL;
439 var_node_list = var;
440 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
441 var_nodearraylist1 = var1;
442 var_tnenode2 = var_nodearraylist1;
443 /* <var_tnenode2:nullable Object> isa nullable TNe */
444 cltype = type_nullable_parser_nodes__TNe.color;
445 idtype = type_nullable_parser_nodes__TNe.id;
446 if(var_tnenode2 == NULL) {
447 var2 = 1;
448 } else {
449 if(cltype >= var_tnenode2->type->table_size) {
450 var2 = 0;
451 } else {
452 var2 = var_tnenode2->type->type_table[cltype] == idtype;
453 }
454 }
455 if (!var2) {
456 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23048);
457 exit(1);
458 }
459 var3 = NEW_parser_nodes__ANeMethid(&type_parser_nodes__ANeMethid);
460 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__ANeMethid__init_anemethid]))(var3, var_tnenode2) /* init_anemethid on <var3:ANeMethid>*/;
461 CHECK_NEW_parser_nodes__ANeMethid(var3);
462 var_pmethidnode1 = var3;
463 var_node_list = var_pmethidnode1;
464 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction534> */
465 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
466 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
467 RET_LABEL:;
468 }
469 /* method parser#ReduceAction534#action for (self: Object, Parser) */
470 void VIRTUAL_parser__ReduceAction534__action(val* self, val* p0) {
471 parser__ReduceAction534__action(self, p0);
472 RET_LABEL:;
473 }
474 /* method parser#ReduceAction535#action for (self: ReduceAction535, Parser) */
475 void parser__ReduceAction535__action(val* self, val* p0) {
476 val* var_p /* var p: Parser */;
477 val* var /* : null */;
478 val* var_node_list /* var node_list: nullable Object */;
479 val* var1 /* : nullable Object */;
480 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
481 val* var_tlenode2 /* var tlenode2: nullable Object */;
482 short int var2 /* : Bool */;
483 int cltype;
484 int idtype;
485 val* var3 /* : ALeMethid */;
486 val* var_pmethidnode1 /* var pmethidnode1: nullable ALeMethid */;
487 long var4 /* : Int */;
488 long var5 /* : Int */;
489 var_p = p0;
490 var = NULL;
491 var_node_list = var;
492 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
493 var_nodearraylist1 = var1;
494 var_tlenode2 = var_nodearraylist1;
495 /* <var_tlenode2:nullable Object> isa nullable TLe */
496 cltype = type_nullable_parser_nodes__TLe.color;
497 idtype = type_nullable_parser_nodes__TLe.id;
498 if(var_tlenode2 == NULL) {
499 var2 = 1;
500 } else {
501 if(cltype >= var_tlenode2->type->table_size) {
502 var2 = 0;
503 } else {
504 var2 = var_tlenode2->type->type_table[cltype] == idtype;
505 }
506 }
507 if (!var2) {
508 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23063);
509 exit(1);
510 }
511 var3 = NEW_parser_nodes__ALeMethid(&type_parser_nodes__ALeMethid);
512 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__ALeMethid__init_alemethid]))(var3, var_tlenode2) /* init_alemethid on <var3:ALeMethid>*/;
513 CHECK_NEW_parser_nodes__ALeMethid(var3);
514 var_pmethidnode1 = var3;
515 var_node_list = var_pmethidnode1;
516 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction535> */
517 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
518 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
519 RET_LABEL:;
520 }
521 /* method parser#ReduceAction535#action for (self: Object, Parser) */
522 void VIRTUAL_parser__ReduceAction535__action(val* self, val* p0) {
523 parser__ReduceAction535__action(self, p0);
524 RET_LABEL:;
525 }
526 /* method parser#ReduceAction536#action for (self: ReduceAction536, Parser) */
527 void parser__ReduceAction536__action(val* self, val* p0) {
528 val* var_p /* var p: Parser */;
529 val* var /* : null */;
530 val* var_node_list /* var node_list: nullable Object */;
531 val* var1 /* : nullable Object */;
532 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
533 val* var_tgenode2 /* var tgenode2: nullable Object */;
534 short int var2 /* : Bool */;
535 int cltype;
536 int idtype;
537 val* var3 /* : AGeMethid */;
538 val* var_pmethidnode1 /* var pmethidnode1: nullable AGeMethid */;
539 long var4 /* : Int */;
540 long var5 /* : Int */;
541 var_p = p0;
542 var = NULL;
543 var_node_list = var;
544 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
545 var_nodearraylist1 = var1;
546 var_tgenode2 = var_nodearraylist1;
547 /* <var_tgenode2:nullable Object> isa nullable TGe */
548 cltype = type_nullable_parser_nodes__TGe.color;
549 idtype = type_nullable_parser_nodes__TGe.id;
550 if(var_tgenode2 == NULL) {
551 var2 = 1;
552 } else {
553 if(cltype >= var_tgenode2->type->table_size) {
554 var2 = 0;
555 } else {
556 var2 = var_tgenode2->type->type_table[cltype] == idtype;
557 }
558 }
559 if (!var2) {
560 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23078);
561 exit(1);
562 }
563 var3 = NEW_parser_nodes__AGeMethid(&type_parser_nodes__AGeMethid);
564 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AGeMethid__init_agemethid]))(var3, var_tgenode2) /* init_agemethid on <var3:AGeMethid>*/;
565 CHECK_NEW_parser_nodes__AGeMethid(var3);
566 var_pmethidnode1 = var3;
567 var_node_list = var_pmethidnode1;
568 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction536> */
569 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
570 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
571 RET_LABEL:;
572 }
573 /* method parser#ReduceAction536#action for (self: Object, Parser) */
574 void VIRTUAL_parser__ReduceAction536__action(val* self, val* p0) {
575 parser__ReduceAction536__action(self, p0);
576 RET_LABEL:;
577 }
578 /* method parser#ReduceAction537#action for (self: ReduceAction537, Parser) */
579 void parser__ReduceAction537__action(val* self, val* p0) {
580 val* var_p /* var p: Parser */;
581 val* var /* : null */;
582 val* var_node_list /* var node_list: nullable Object */;
583 val* var1 /* : nullable Object */;
584 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
585 val* var_tltnode2 /* var tltnode2: nullable Object */;
586 short int var2 /* : Bool */;
587 int cltype;
588 int idtype;
589 val* var3 /* : ALtMethid */;
590 val* var_pmethidnode1 /* var pmethidnode1: nullable ALtMethid */;
591 long var4 /* : Int */;
592 long var5 /* : Int */;
593 var_p = p0;
594 var = NULL;
595 var_node_list = var;
596 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
597 var_nodearraylist1 = var1;
598 var_tltnode2 = var_nodearraylist1;
599 /* <var_tltnode2:nullable Object> isa nullable TLt */
600 cltype = type_nullable_parser_nodes__TLt.color;
601 idtype = type_nullable_parser_nodes__TLt.id;
602 if(var_tltnode2 == NULL) {
603 var2 = 1;
604 } else {
605 if(cltype >= var_tltnode2->type->table_size) {
606 var2 = 0;
607 } else {
608 var2 = var_tltnode2->type->type_table[cltype] == idtype;
609 }
610 }
611 if (!var2) {
612 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23093);
613 exit(1);
614 }
615 var3 = NEW_parser_nodes__ALtMethid(&type_parser_nodes__ALtMethid);
616 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__ALtMethid__init_altmethid]))(var3, var_tltnode2) /* init_altmethid on <var3:ALtMethid>*/;
617 CHECK_NEW_parser_nodes__ALtMethid(var3);
618 var_pmethidnode1 = var3;
619 var_node_list = var_pmethidnode1;
620 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction537> */
621 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
622 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
623 RET_LABEL:;
624 }
625 /* method parser#ReduceAction537#action for (self: Object, Parser) */
626 void VIRTUAL_parser__ReduceAction537__action(val* self, val* p0) {
627 parser__ReduceAction537__action(self, p0);
628 RET_LABEL:;
629 }
630 /* method parser#ReduceAction538#action for (self: ReduceAction538, Parser) */
631 void parser__ReduceAction538__action(val* self, val* p0) {
632 val* var_p /* var p: Parser */;
633 val* var /* : null */;
634 val* var_node_list /* var node_list: nullable Object */;
635 val* var1 /* : nullable Object */;
636 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
637 val* var_tgtnode2 /* var tgtnode2: nullable Object */;
638 short int var2 /* : Bool */;
639 int cltype;
640 int idtype;
641 val* var3 /* : AGtMethid */;
642 val* var_pmethidnode1 /* var pmethidnode1: nullable AGtMethid */;
643 long var4 /* : Int */;
644 long var5 /* : Int */;
645 var_p = p0;
646 var = NULL;
647 var_node_list = var;
648 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
649 var_nodearraylist1 = var1;
650 var_tgtnode2 = var_nodearraylist1;
651 /* <var_tgtnode2:nullable Object> isa nullable TGt */
652 cltype = type_nullable_parser_nodes__TGt.color;
653 idtype = type_nullable_parser_nodes__TGt.id;
654 if(var_tgtnode2 == NULL) {
655 var2 = 1;
656 } else {
657 if(cltype >= var_tgtnode2->type->table_size) {
658 var2 = 0;
659 } else {
660 var2 = var_tgtnode2->type->type_table[cltype] == idtype;
661 }
662 }
663 if (!var2) {
664 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23108);
665 exit(1);
666 }
667 var3 = NEW_parser_nodes__AGtMethid(&type_parser_nodes__AGtMethid);
668 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AGtMethid__init_agtmethid]))(var3, var_tgtnode2) /* init_agtmethid on <var3:AGtMethid>*/;
669 CHECK_NEW_parser_nodes__AGtMethid(var3);
670 var_pmethidnode1 = var3;
671 var_node_list = var_pmethidnode1;
672 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction538> */
673 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
674 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
675 RET_LABEL:;
676 }
677 /* method parser#ReduceAction538#action for (self: Object, Parser) */
678 void VIRTUAL_parser__ReduceAction538__action(val* self, val* p0) {
679 parser__ReduceAction538__action(self, p0);
680 RET_LABEL:;
681 }
682 /* method parser#ReduceAction539#action for (self: ReduceAction539, Parser) */
683 void parser__ReduceAction539__action(val* self, val* p0) {
684 val* var_p /* var p: Parser */;
685 val* var /* : null */;
686 val* var_node_list /* var node_list: nullable Object */;
687 val* var1 /* : nullable Object */;
688 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
689 val* var_tllnode2 /* var tllnode2: nullable Object */;
690 short int var2 /* : Bool */;
691 int cltype;
692 int idtype;
693 val* var3 /* : ALlMethid */;
694 val* var_pmethidnode1 /* var pmethidnode1: nullable ALlMethid */;
695 long var4 /* : Int */;
696 long var5 /* : Int */;
697 var_p = p0;
698 var = NULL;
699 var_node_list = var;
700 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
701 var_nodearraylist1 = var1;
702 var_tllnode2 = var_nodearraylist1;
703 /* <var_tllnode2:nullable Object> isa nullable TLl */
704 cltype = type_nullable_parser_nodes__TLl.color;
705 idtype = type_nullable_parser_nodes__TLl.id;
706 if(var_tllnode2 == NULL) {
707 var2 = 1;
708 } else {
709 if(cltype >= var_tllnode2->type->table_size) {
710 var2 = 0;
711 } else {
712 var2 = var_tllnode2->type->type_table[cltype] == idtype;
713 }
714 }
715 if (!var2) {
716 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23123);
717 exit(1);
718 }
719 var3 = NEW_parser_nodes__ALlMethid(&type_parser_nodes__ALlMethid);
720 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__ALlMethid__init_allmethid]))(var3, var_tllnode2) /* init_allmethid on <var3:ALlMethid>*/;
721 CHECK_NEW_parser_nodes__ALlMethid(var3);
722 var_pmethidnode1 = var3;
723 var_node_list = var_pmethidnode1;
724 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction539> */
725 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
726 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
727 RET_LABEL:;
728 }
729 /* method parser#ReduceAction539#action for (self: Object, Parser) */
730 void VIRTUAL_parser__ReduceAction539__action(val* self, val* p0) {
731 parser__ReduceAction539__action(self, p0);
732 RET_LABEL:;
733 }
734 /* method parser#ReduceAction540#action for (self: ReduceAction540, Parser) */
735 void parser__ReduceAction540__action(val* self, val* p0) {
736 val* var_p /* var p: Parser */;
737 val* var /* : null */;
738 val* var_node_list /* var node_list: nullable Object */;
739 val* var1 /* : nullable Object */;
740 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
741 val* var_tggnode2 /* var tggnode2: nullable Object */;
742 short int var2 /* : Bool */;
743 int cltype;
744 int idtype;
745 val* var3 /* : AGgMethid */;
746 val* var_pmethidnode1 /* var pmethidnode1: nullable AGgMethid */;
747 long var4 /* : Int */;
748 long var5 /* : Int */;
749 var_p = p0;
750 var = NULL;
751 var_node_list = var;
752 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
753 var_nodearraylist1 = var1;
754 var_tggnode2 = var_nodearraylist1;
755 /* <var_tggnode2:nullable Object> isa nullable TGg */
756 cltype = type_nullable_parser_nodes__TGg.color;
757 idtype = type_nullable_parser_nodes__TGg.id;
758 if(var_tggnode2 == NULL) {
759 var2 = 1;
760 } else {
761 if(cltype >= var_tggnode2->type->table_size) {
762 var2 = 0;
763 } else {
764 var2 = var_tggnode2->type->type_table[cltype] == idtype;
765 }
766 }
767 if (!var2) {
768 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23138);
769 exit(1);
770 }
771 var3 = NEW_parser_nodes__AGgMethid(&type_parser_nodes__AGgMethid);
772 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AGgMethid__init_aggmethid]))(var3, var_tggnode2) /* init_aggmethid on <var3:AGgMethid>*/;
773 CHECK_NEW_parser_nodes__AGgMethid(var3);
774 var_pmethidnode1 = var3;
775 var_node_list = var_pmethidnode1;
776 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction540> */
777 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
778 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
779 RET_LABEL:;
780 }
781 /* method parser#ReduceAction540#action for (self: Object, Parser) */
782 void VIRTUAL_parser__ReduceAction540__action(val* self, val* p0) {
783 parser__ReduceAction540__action(self, p0);
784 RET_LABEL:;
785 }
786 /* method parser#ReduceAction541#action for (self: ReduceAction541, Parser) */
787 void parser__ReduceAction541__action(val* self, val* p0) {
788 val* var_p /* var p: Parser */;
789 val* var /* : null */;
790 val* var_node_list /* var node_list: nullable Object */;
791 val* var1 /* : nullable Object */;
792 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
793 val* var2 /* : nullable Object */;
794 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
795 val* var_tobranode2 /* var tobranode2: nullable Object */;
796 short int var3 /* : Bool */;
797 int cltype;
798 int idtype;
799 val* var_tcbranode3 /* var tcbranode3: nullable Object */;
800 short int var4 /* : Bool */;
801 int cltype5;
802 int idtype6;
803 val* var7 /* : ABraMethid */;
804 val* var_pmethidnode1 /* var pmethidnode1: nullable ABraMethid */;
805 long var8 /* : Int */;
806 long var9 /* : Int */;
807 var_p = p0;
808 var = NULL;
809 var_node_list = var;
810 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
811 var_nodearraylist2 = var1;
812 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
813 var_nodearraylist1 = var2;
814 var_tobranode2 = var_nodearraylist1;
815 /* <var_tobranode2:nullable Object> isa nullable TObra */
816 cltype = type_nullable_parser_nodes__TObra.color;
817 idtype = type_nullable_parser_nodes__TObra.id;
818 if(var_tobranode2 == NULL) {
819 var3 = 1;
820 } else {
821 if(cltype >= var_tobranode2->type->table_size) {
822 var3 = 0;
823 } else {
824 var3 = var_tobranode2->type->type_table[cltype] == idtype;
825 }
826 }
827 if (!var3) {
828 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23154);
829 exit(1);
830 }
831 var_tcbranode3 = var_nodearraylist2;
832 /* <var_tcbranode3:nullable Object> isa nullable TCbra */
833 cltype5 = type_nullable_parser_nodes__TCbra.color;
834 idtype6 = type_nullable_parser_nodes__TCbra.id;
835 if(var_tcbranode3 == NULL) {
836 var4 = 1;
837 } else {
838 if(cltype5 >= var_tcbranode3->type->table_size) {
839 var4 = 0;
840 } else {
841 var4 = var_tcbranode3->type->type_table[cltype5] == idtype6;
842 }
843 }
844 if (!var4) {
845 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23156);
846 exit(1);
847 }
848 var7 = NEW_parser_nodes__ABraMethid(&type_parser_nodes__ABraMethid);
849 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ABraMethid__init_abramethid]))(var7, var_tobranode2, var_tcbranode3) /* init_abramethid on <var7:ABraMethid>*/;
850 CHECK_NEW_parser_nodes__ABraMethid(var7);
851 var_pmethidnode1 = var7;
852 var_node_list = var_pmethidnode1;
853 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction541> */
854 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
855 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
856 RET_LABEL:;
857 }
858 /* method parser#ReduceAction541#action for (self: Object, Parser) */
859 void VIRTUAL_parser__ReduceAction541__action(val* self, val* p0) {
860 parser__ReduceAction541__action(self, p0);
861 RET_LABEL:;
862 }
863 /* method parser#ReduceAction542#action for (self: ReduceAction542, Parser) */
864 void parser__ReduceAction542__action(val* self, val* p0) {
865 val* var_p /* var p: Parser */;
866 val* var /* : null */;
867 val* var_node_list /* var node_list: nullable Object */;
868 val* var1 /* : nullable Object */;
869 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
870 val* var_tstarshipnode2 /* var tstarshipnode2: nullable Object */;
871 short int var2 /* : Bool */;
872 int cltype;
873 int idtype;
874 val* var3 /* : AStarshipMethid */;
875 val* var_pmethidnode1 /* var pmethidnode1: nullable AStarshipMethid */;
876 long var4 /* : Int */;
877 long var5 /* : Int */;
878 var_p = p0;
879 var = NULL;
880 var_node_list = var;
881 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
882 var_nodearraylist1 = var1;
883 var_tstarshipnode2 = var_nodearraylist1;
884 /* <var_tstarshipnode2:nullable Object> isa nullable TStarship */
885 cltype = type_nullable_parser_nodes__TStarship.color;
886 idtype = type_nullable_parser_nodes__TStarship.id;
887 if(var_tstarshipnode2 == NULL) {
888 var2 = 1;
889 } else {
890 if(cltype >= var_tstarshipnode2->type->table_size) {
891 var2 = 0;
892 } else {
893 var2 = var_tstarshipnode2->type->type_table[cltype] == idtype;
894 }
895 }
896 if (!var2) {
897 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23172);
898 exit(1);
899 }
900 var3 = NEW_parser_nodes__AStarshipMethid(&type_parser_nodes__AStarshipMethid);
901 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AStarshipMethid__init_astarshipmethid]))(var3, var_tstarshipnode2) /* init_astarshipmethid on <var3:AStarshipMethid>*/;
902 CHECK_NEW_parser_nodes__AStarshipMethid(var3);
903 var_pmethidnode1 = var3;
904 var_node_list = var_pmethidnode1;
905 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction542> */
906 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
907 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
908 RET_LABEL:;
909 }
910 /* method parser#ReduceAction542#action for (self: Object, Parser) */
911 void VIRTUAL_parser__ReduceAction542__action(val* self, val* p0) {
912 parser__ReduceAction542__action(self, p0);
913 RET_LABEL:;
914 }
915 /* method parser#ReduceAction543#action for (self: ReduceAction543, Parser) */
916 void parser__ReduceAction543__action(val* self, val* p0) {
917 val* var_p /* var p: Parser */;
918 val* var /* : null */;
919 val* var_node_list /* var node_list: nullable Object */;
920 val* var1 /* : nullable Object */;
921 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
922 val* var2 /* : nullable Object */;
923 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
924 val* var_tidnode2 /* var tidnode2: nullable Object */;
925 short int var3 /* : Bool */;
926 int cltype;
927 int idtype;
928 val* var_tassignnode3 /* var tassignnode3: nullable Object */;
929 short int var4 /* : Bool */;
930 int cltype5;
931 int idtype6;
932 val* var7 /* : AAssignMethid */;
933 val* var_pmethidnode1 /* var pmethidnode1: nullable AAssignMethid */;
934 long var8 /* : Int */;
935 long var9 /* : Int */;
936 var_p = p0;
937 var = NULL;
938 var_node_list = var;
939 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
940 var_nodearraylist2 = var1;
941 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
942 var_nodearraylist1 = var2;
943 var_tidnode2 = var_nodearraylist1;
944 /* <var_tidnode2:nullable Object> isa nullable TId */
945 cltype = type_nullable_parser_nodes__TId.color;
946 idtype = type_nullable_parser_nodes__TId.id;
947 if(var_tidnode2 == NULL) {
948 var3 = 1;
949 } else {
950 if(cltype >= var_tidnode2->type->table_size) {
951 var3 = 0;
952 } else {
953 var3 = var_tidnode2->type->type_table[cltype] == idtype;
954 }
955 }
956 if (!var3) {
957 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23188);
958 exit(1);
959 }
960 var_tassignnode3 = var_nodearraylist2;
961 /* <var_tassignnode3:nullable Object> isa nullable TAssign */
962 cltype5 = type_nullable_parser_nodes__TAssign.color;
963 idtype6 = type_nullable_parser_nodes__TAssign.id;
964 if(var_tassignnode3 == NULL) {
965 var4 = 1;
966 } else {
967 if(cltype5 >= var_tassignnode3->type->table_size) {
968 var4 = 0;
969 } else {
970 var4 = var_tassignnode3->type->type_table[cltype5] == idtype6;
971 }
972 }
973 if (!var4) {
974 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23190);
975 exit(1);
976 }
977 var7 = NEW_parser_nodes__AAssignMethid(&type_parser_nodes__AAssignMethid);
978 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AAssignMethid__init_aassignmethid]))(var7, var_tidnode2, var_tassignnode3) /* init_aassignmethid on <var7:AAssignMethid>*/;
979 CHECK_NEW_parser_nodes__AAssignMethid(var7);
980 var_pmethidnode1 = var7;
981 var_node_list = var_pmethidnode1;
982 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction543> */
983 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
984 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
985 RET_LABEL:;
986 }
987 /* method parser#ReduceAction543#action for (self: Object, Parser) */
988 void VIRTUAL_parser__ReduceAction543__action(val* self, val* p0) {
989 parser__ReduceAction543__action(self, p0);
990 RET_LABEL:;
991 }
992 /* method parser#ReduceAction544#action for (self: ReduceAction544, Parser) */
993 void parser__ReduceAction544__action(val* self, val* p0) {
994 val* var_p /* var p: Parser */;
995 val* var /* : null */;
996 val* var_node_list /* var node_list: nullable Object */;
997 val* var1 /* : nullable Object */;
998 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
999 val* var2 /* : nullable Object */;
1000 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1001 val* var3 /* : nullable Object */;
1002 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1003 val* var_tobranode2 /* var tobranode2: nullable Object */;
1004 short int var4 /* : Bool */;
1005 int cltype;
1006 int idtype;
1007 val* var_tcbranode3 /* var tcbranode3: nullable Object */;
1008 short int var5 /* : Bool */;
1009 int cltype6;
1010 int idtype7;
1011 val* var_tassignnode4 /* var tassignnode4: nullable Object */;
1012 short int var8 /* : Bool */;
1013 int cltype9;
1014 int idtype10;
1015 val* var11 /* : ABraassignMethid */;
1016 val* var_pmethidnode1 /* var pmethidnode1: nullable ABraassignMethid */;
1017 long var12 /* : Int */;
1018 long var13 /* : Int */;
1019 var_p = p0;
1020 var = NULL;
1021 var_node_list = var;
1022 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1023 var_nodearraylist3 = var1;
1024 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1025 var_nodearraylist2 = var2;
1026 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1027 var_nodearraylist1 = var3;
1028 var_tobranode2 = var_nodearraylist1;
1029 /* <var_tobranode2:nullable Object> isa nullable TObra */
1030 cltype = type_nullable_parser_nodes__TObra.color;
1031 idtype = type_nullable_parser_nodes__TObra.id;
1032 if(var_tobranode2 == NULL) {
1033 var4 = 1;
1034 } else {
1035 if(cltype >= var_tobranode2->type->table_size) {
1036 var4 = 0;
1037 } else {
1038 var4 = var_tobranode2->type->type_table[cltype] == idtype;
1039 }
1040 }
1041 if (!var4) {
1042 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23208);
1043 exit(1);
1044 }
1045 var_tcbranode3 = var_nodearraylist2;
1046 /* <var_tcbranode3:nullable Object> isa nullable TCbra */
1047 cltype6 = type_nullable_parser_nodes__TCbra.color;
1048 idtype7 = type_nullable_parser_nodes__TCbra.id;
1049 if(var_tcbranode3 == NULL) {
1050 var5 = 1;
1051 } else {
1052 if(cltype6 >= var_tcbranode3->type->table_size) {
1053 var5 = 0;
1054 } else {
1055 var5 = var_tcbranode3->type->type_table[cltype6] == idtype7;
1056 }
1057 }
1058 if (!var5) {
1059 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23210);
1060 exit(1);
1061 }
1062 var_tassignnode4 = var_nodearraylist3;
1063 /* <var_tassignnode4:nullable Object> isa nullable TAssign */
1064 cltype9 = type_nullable_parser_nodes__TAssign.color;
1065 idtype10 = type_nullable_parser_nodes__TAssign.id;
1066 if(var_tassignnode4 == NULL) {
1067 var8 = 1;
1068 } else {
1069 if(cltype9 >= var_tassignnode4->type->table_size) {
1070 var8 = 0;
1071 } else {
1072 var8 = var_tassignnode4->type->type_table[cltype9] == idtype10;
1073 }
1074 }
1075 if (!var8) {
1076 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23212);
1077 exit(1);
1078 }
1079 var11 = NEW_parser_nodes__ABraassignMethid(&type_parser_nodes__ABraassignMethid);
1080 ((void (*)(val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__ABraassignMethid__init_abraassignmethid]))(var11, var_tobranode2, var_tcbranode3, var_tassignnode4) /* init_abraassignmethid on <var11:ABraassignMethid>*/;
1081 CHECK_NEW_parser_nodes__ABraassignMethid(var11);
1082 var_pmethidnode1 = var11;
1083 var_node_list = var_pmethidnode1;
1084 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction544> */
1085 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
1086 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
1087 RET_LABEL:;
1088 }
1089 /* method parser#ReduceAction544#action for (self: Object, Parser) */
1090 void VIRTUAL_parser__ReduceAction544__action(val* self, val* p0) {
1091 parser__ReduceAction544__action(self, p0);
1092 RET_LABEL:;
1093 }
1094 /* method parser#ReduceAction545#action for (self: ReduceAction545, Parser) */
1095 void parser__ReduceAction545__action(val* self, val* p0) {
1096 val* var_p /* var p: Parser */;
1097 val* var /* : null */;
1098 val* var_node_list /* var node_list: nullable Object */;
1099 val* var1 /* : nullable Object */;
1100 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1101 val* var2 /* : nullable Object */;
1102 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1103 val* var3 /* : nullable Object */;
1104 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1105 val* var4 /* : nullable Object */;
1106 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1107 val* var5 /* : nullable Object */;
1108 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1109 val* var6 /* : Array[Object] */;
1110 val* var_listnode3 /* var listnode3: Array[Object] */;
1111 val* var7 /* : Array[Object] */;
1112 val* var_listnode6 /* var listnode6: Array[Object] */;
1113 val* var_toparnode2 /* var toparnode2: nullable Object */;
1114 short int var8 /* : Bool */;
1115 int cltype;
1116 int idtype;
1117 val* var_tcparnode4 /* var tcparnode4: nullable Object */;
1118 short int var9 /* : Bool */;
1119 int cltype10;
1120 int idtype11;
1121 val* var_ptypenode5 /* var ptypenode5: nullable Object */;
1122 short int var12 /* : Bool */;
1123 int cltype13;
1124 int idtype14;
1125 val* var15 /* : ASignature */;
1126 val* var_psignaturenode1 /* var psignaturenode1: nullable ASignature */;
1127 long var16 /* : Int */;
1128 long var17 /* : Int */;
1129 var_p = p0;
1130 var = NULL;
1131 var_node_list = var;
1132 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1133 var_nodearraylist5 = var1;
1134 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1135 var_nodearraylist4 = var2;
1136 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1137 var_nodearraylist3 = var3;
1138 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1139 var_nodearraylist2 = var4;
1140 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1141 var_nodearraylist1 = var5;
1142 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
1143 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
1144 CHECK_NEW_array__Array(var6);
1145 var_listnode3 = var6;
1146 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
1147 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
1148 CHECK_NEW_array__Array(var7);
1149 var_listnode6 = var7;
1150 var_toparnode2 = var_nodearraylist1;
1151 /* <var_toparnode2:nullable Object> isa nullable TOpar */
1152 cltype = type_nullable_parser_nodes__TOpar.color;
1153 idtype = type_nullable_parser_nodes__TOpar.id;
1154 if(var_toparnode2 == NULL) {
1155 var8 = 1;
1156 } else {
1157 if(cltype >= var_toparnode2->type->table_size) {
1158 var8 = 0;
1159 } else {
1160 var8 = var_toparnode2->type->type_table[cltype] == idtype;
1161 }
1162 }
1163 if (!var8) {
1164 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23235);
1165 exit(1);
1166 }
1167 var_tcparnode4 = var_nodearraylist3;
1168 /* <var_tcparnode4:nullable Object> isa nullable TCpar */
1169 cltype10 = type_nullable_parser_nodes__TCpar.color;
1170 idtype11 = type_nullable_parser_nodes__TCpar.id;
1171 if(var_tcparnode4 == NULL) {
1172 var9 = 1;
1173 } else {
1174 if(cltype10 >= var_tcparnode4->type->table_size) {
1175 var9 = 0;
1176 } else {
1177 var9 = var_tcparnode4->type->type_table[cltype10] == idtype11;
1178 }
1179 }
1180 if (!var9) {
1181 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23237);
1182 exit(1);
1183 }
1184 var_ptypenode5 = var_nodearraylist4;
1185 /* <var_ptypenode5:nullable Object> isa nullable AType */
1186 cltype13 = type_nullable_parser_nodes__AType.color;
1187 idtype14 = type_nullable_parser_nodes__AType.id;
1188 if(var_ptypenode5 == NULL) {
1189 var12 = 1;
1190 } else {
1191 if(cltype13 >= var_ptypenode5->type->table_size) {
1192 var12 = 0;
1193 } else {
1194 var12 = var_ptypenode5->type->type_table[cltype13] == idtype14;
1195 }
1196 }
1197 if (!var12) {
1198 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23239);
1199 exit(1);
1200 }
1201 var15 = NEW_parser_nodes__ASignature(&type_parser_nodes__ASignature);
1202 ((void (*)(val*, val*, val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__ASignature__init_asignature]))(var15, var_toparnode2, var_listnode3, var_tcparnode4, var_ptypenode5, var_listnode6) /* init_asignature on <var15:ASignature>*/;
1203 CHECK_NEW_parser_nodes__ASignature(var15);
1204 var_psignaturenode1 = var15;
1205 var_node_list = var_psignaturenode1;
1206 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction545> */
1207 var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
1208 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
1209 RET_LABEL:;
1210 }
1211 /* method parser#ReduceAction545#action for (self: Object, Parser) */
1212 void VIRTUAL_parser__ReduceAction545__action(val* self, val* p0) {
1213 parser__ReduceAction545__action(self, p0);
1214 RET_LABEL:;
1215 }
1216 /* method parser#ReduceAction546#action for (self: ReduceAction546, Parser) */
1217 void parser__ReduceAction546__action(val* self, val* p0) {
1218 val* var_p /* var p: Parser */;
1219 val* var /* : null */;
1220 val* var_node_list /* var node_list: nullable Object */;
1221 val* var1 /* : nullable Object */;
1222 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
1223 val* var2 /* : nullable Object */;
1224 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1225 val* var3 /* : nullable Object */;
1226 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1227 val* var4 /* : nullable Object */;
1228 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1229 val* var5 /* : nullable Object */;
1230 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1231 val* var6 /* : nullable Object */;
1232 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1233 val* var7 /* : Array[Object] */;
1234 val* var_listnode4 /* var listnode4: Array[Object] */;
1235 val* var8 /* : Array[Object] */;
1236 val* var_listnode7 /* var listnode7: Array[Object] */;
1237 val* var_toparnode2 /* var toparnode2: nullable Object */;
1238 short int var9 /* : Bool */;
1239 int cltype;
1240 int idtype;
1241 val* var_listnode3 /* var listnode3: nullable Object */;
1242 short int var10 /* : Bool */;
1243 int cltype11;
1244 int idtype12;
1245 val* var13 /* : Array[Object] */;
1246 val* var_tcparnode5 /* var tcparnode5: nullable Object */;
1247 short int var14 /* : Bool */;
1248 int cltype15;
1249 int idtype16;
1250 val* var_ptypenode6 /* var ptypenode6: nullable Object */;
1251 short int var17 /* : Bool */;
1252 int cltype18;
1253 int idtype19;
1254 val* var20 /* : ASignature */;
1255 val* var_psignaturenode1 /* var psignaturenode1: nullable ASignature */;
1256 long var21 /* : Int */;
1257 long var22 /* : Int */;
1258 var_p = p0;
1259 var = NULL;
1260 var_node_list = var;
1261 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1262 var_nodearraylist6 = var1;
1263 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1264 var_nodearraylist5 = var2;
1265 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1266 var_nodearraylist4 = var3;
1267 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1268 var_nodearraylist3 = var4;
1269 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1270 var_nodearraylist2 = var5;
1271 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1272 var_nodearraylist1 = var6;
1273 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
1274 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
1275 CHECK_NEW_array__Array(var7);
1276 var_listnode4 = var7;
1277 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
1278 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
1279 CHECK_NEW_array__Array(var8);
1280 var_listnode7 = var8;
1281 var_toparnode2 = var_nodearraylist1;
1282 /* <var_toparnode2:nullable Object> isa nullable TOpar */
1283 cltype = type_nullable_parser_nodes__TOpar.color;
1284 idtype = type_nullable_parser_nodes__TOpar.id;
1285 if(var_toparnode2 == NULL) {
1286 var9 = 1;
1287 } else {
1288 if(cltype >= var_toparnode2->type->table_size) {
1289 var9 = 0;
1290 } else {
1291 var9 = var_toparnode2->type->type_table[cltype] == idtype;
1292 }
1293 }
1294 if (!var9) {
1295 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23265);
1296 exit(1);
1297 }
1298 var_listnode3 = var_nodearraylist3;
1299 /* <var_listnode3:nullable Object> isa Array[Object] */
1300 cltype11 = type_array__Arraykernel__Object.color;
1301 idtype12 = type_array__Arraykernel__Object.id;
1302 if(var_listnode3 == NULL) {
1303 var10 = 0;
1304 } else {
1305 if(cltype11 >= var_listnode3->type->table_size) {
1306 var10 = 0;
1307 } else {
1308 var10 = var_listnode3->type->type_table[cltype11] == idtype12;
1309 }
1310 }
1311 if (!var10) {
1312 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23267);
1313 exit(1);
1314 }
1315 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction546>*/;
1316 var_listnode4 = var13;
1317 var_tcparnode5 = var_nodearraylist4;
1318 /* <var_tcparnode5:nullable Object> isa nullable TCpar */
1319 cltype15 = type_nullable_parser_nodes__TCpar.color;
1320 idtype16 = type_nullable_parser_nodes__TCpar.id;
1321 if(var_tcparnode5 == NULL) {
1322 var14 = 1;
1323 } else {
1324 if(cltype15 >= var_tcparnode5->type->table_size) {
1325 var14 = 0;
1326 } else {
1327 var14 = var_tcparnode5->type->type_table[cltype15] == idtype16;
1328 }
1329 }
1330 if (!var14) {
1331 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23270);
1332 exit(1);
1333 }
1334 var_ptypenode6 = var_nodearraylist5;
1335 /* <var_ptypenode6:nullable Object> isa nullable AType */
1336 cltype18 = type_nullable_parser_nodes__AType.color;
1337 idtype19 = type_nullable_parser_nodes__AType.id;
1338 if(var_ptypenode6 == NULL) {
1339 var17 = 1;
1340 } else {
1341 if(cltype18 >= var_ptypenode6->type->table_size) {
1342 var17 = 0;
1343 } else {
1344 var17 = var_ptypenode6->type->type_table[cltype18] == idtype19;
1345 }
1346 }
1347 if (!var17) {
1348 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23272);
1349 exit(1);
1350 }
1351 var20 = NEW_parser_nodes__ASignature(&type_parser_nodes__ASignature);
1352 ((void (*)(val*, val*, val*, val*, val*, val*))(var20->class->vft[COLOR_parser_prod__ASignature__init_asignature]))(var20, var_toparnode2, var_listnode4, var_tcparnode5, var_ptypenode6, var_listnode7) /* init_asignature on <var20:ASignature>*/;
1353 CHECK_NEW_parser_nodes__ASignature(var20);
1354 var_psignaturenode1 = var20;
1355 var_node_list = var_psignaturenode1;
1356 var21 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction546> */
1357 var22 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var21) /* go_to on <var_p:Parser>*/;
1358 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var22, var_node_list) /* push on <var_p:Parser>*/;
1359 RET_LABEL:;
1360 }
1361 /* method parser#ReduceAction546#action for (self: Object, Parser) */
1362 void VIRTUAL_parser__ReduceAction546__action(val* self, val* p0) {
1363 parser__ReduceAction546__action(self, p0);
1364 RET_LABEL:;
1365 }
1366 /* method parser#ReduceAction547#action for (self: ReduceAction547, Parser) */
1367 void parser__ReduceAction547__action(val* self, val* p0) {
1368 val* var_p /* var p: Parser */;
1369 val* var /* : null */;
1370 val* var_node_list /* var node_list: nullable Object */;
1371 val* var1 /* : nullable Object */;
1372 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
1373 val* var2 /* : nullable Object */;
1374 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1375 val* var3 /* : nullable Object */;
1376 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1377 val* var4 /* : nullable Object */;
1378 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1379 val* var5 /* : nullable Object */;
1380 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1381 val* var6 /* : nullable Object */;
1382 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1383 val* var7 /* : Array[Object] */;
1384 val* var_listnode3 /* var listnode3: Array[Object] */;
1385 val* var8 /* : Array[Object] */;
1386 val* var_listnode7 /* var listnode7: Array[Object] */;
1387 val* var_toparnode2 /* var toparnode2: nullable Object */;
1388 short int var9 /* : Bool */;
1389 int cltype;
1390 int idtype;
1391 val* var_tcparnode4 /* var tcparnode4: nullable Object */;
1392 short int var10 /* : Bool */;
1393 int cltype11;
1394 int idtype12;
1395 val* var_ptypenode5 /* var ptypenode5: nullable Object */;
1396 short int var13 /* : Bool */;
1397 int cltype14;
1398 int idtype15;
1399 val* var_listnode6 /* var listnode6: nullable Object */;
1400 short int var16 /* : Bool */;
1401 int cltype17;
1402 int idtype18;
1403 val* var19 /* : Array[Object] */;
1404 val* var20 /* : ASignature */;
1405 val* var_psignaturenode1 /* var psignaturenode1: nullable ASignature */;
1406 long var21 /* : Int */;
1407 long var22 /* : Int */;
1408 var_p = p0;
1409 var = NULL;
1410 var_node_list = var;
1411 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1412 var_nodearraylist6 = var1;
1413 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1414 var_nodearraylist5 = var2;
1415 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1416 var_nodearraylist4 = var3;
1417 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1418 var_nodearraylist3 = var4;
1419 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1420 var_nodearraylist2 = var5;
1421 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1422 var_nodearraylist1 = var6;
1423 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
1424 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
1425 CHECK_NEW_array__Array(var7);
1426 var_listnode3 = var7;
1427 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
1428 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
1429 CHECK_NEW_array__Array(var8);
1430 var_listnode7 = var8;
1431 var_toparnode2 = var_nodearraylist1;
1432 /* <var_toparnode2:nullable Object> isa nullable TOpar */
1433 cltype = type_nullable_parser_nodes__TOpar.color;
1434 idtype = type_nullable_parser_nodes__TOpar.id;
1435 if(var_toparnode2 == NULL) {
1436 var9 = 1;
1437 } else {
1438 if(cltype >= var_toparnode2->type->table_size) {
1439 var9 = 0;
1440 } else {
1441 var9 = var_toparnode2->type->type_table[cltype] == idtype;
1442 }
1443 }
1444 if (!var9) {
1445 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23298);
1446 exit(1);
1447 }
1448 var_tcparnode4 = var_nodearraylist3;
1449 /* <var_tcparnode4:nullable Object> isa nullable TCpar */
1450 cltype11 = type_nullable_parser_nodes__TCpar.color;
1451 idtype12 = type_nullable_parser_nodes__TCpar.id;
1452 if(var_tcparnode4 == NULL) {
1453 var10 = 1;
1454 } else {
1455 if(cltype11 >= var_tcparnode4->type->table_size) {
1456 var10 = 0;
1457 } else {
1458 var10 = var_tcparnode4->type->type_table[cltype11] == idtype12;
1459 }
1460 }
1461 if (!var10) {
1462 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23300);
1463 exit(1);
1464 }
1465 var_ptypenode5 = var_nodearraylist4;
1466 /* <var_ptypenode5:nullable Object> isa nullable AType */
1467 cltype14 = type_nullable_parser_nodes__AType.color;
1468 idtype15 = type_nullable_parser_nodes__AType.id;
1469 if(var_ptypenode5 == NULL) {
1470 var13 = 1;
1471 } else {
1472 if(cltype14 >= var_ptypenode5->type->table_size) {
1473 var13 = 0;
1474 } else {
1475 var13 = var_ptypenode5->type->type_table[cltype14] == idtype15;
1476 }
1477 }
1478 if (!var13) {
1479 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23302);
1480 exit(1);
1481 }
1482 var_listnode6 = var_nodearraylist6;
1483 /* <var_listnode6:nullable Object> isa Array[Object] */
1484 cltype17 = type_array__Arraykernel__Object.color;
1485 idtype18 = type_array__Arraykernel__Object.id;
1486 if(var_listnode6 == NULL) {
1487 var16 = 0;
1488 } else {
1489 if(cltype17 >= var_listnode6->type->table_size) {
1490 var16 = 0;
1491 } else {
1492 var16 = var_listnode6->type->type_table[cltype17] == idtype18;
1493 }
1494 }
1495 if (!var16) {
1496 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23304);
1497 exit(1);
1498 }
1499 var19 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on <self:ReduceAction547>*/;
1500 var_listnode7 = var19;
1501 var20 = NEW_parser_nodes__ASignature(&type_parser_nodes__ASignature);
1502 ((void (*)(val*, val*, val*, val*, val*, val*))(var20->class->vft[COLOR_parser_prod__ASignature__init_asignature]))(var20, var_toparnode2, var_listnode3, var_tcparnode4, var_ptypenode5, var_listnode7) /* init_asignature on <var20:ASignature>*/;
1503 CHECK_NEW_parser_nodes__ASignature(var20);
1504 var_psignaturenode1 = var20;
1505 var_node_list = var_psignaturenode1;
1506 var21 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction547> */
1507 var22 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var21) /* go_to on <var_p:Parser>*/;
1508 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var22, var_node_list) /* push on <var_p:Parser>*/;
1509 RET_LABEL:;
1510 }
1511 /* method parser#ReduceAction547#action for (self: Object, Parser) */
1512 void VIRTUAL_parser__ReduceAction547__action(val* self, val* p0) {
1513 parser__ReduceAction547__action(self, p0);
1514 RET_LABEL:;
1515 }
1516 /* method parser#ReduceAction548#action for (self: ReduceAction548, Parser) */
1517 void parser__ReduceAction548__action(val* self, val* p0) {
1518 val* var_p /* var p: Parser */;
1519 val* var /* : null */;
1520 val* var_node_list /* var node_list: nullable Object */;
1521 val* var1 /* : nullable Object */;
1522 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
1523 val* var2 /* : nullable Object */;
1524 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
1525 val* var3 /* : nullable Object */;
1526 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1527 val* var4 /* : nullable Object */;
1528 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1529 val* var5 /* : nullable Object */;
1530 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1531 val* var6 /* : nullable Object */;
1532 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1533 val* var7 /* : nullable Object */;
1534 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1535 val* var8 /* : Array[Object] */;
1536 val* var_listnode4 /* var listnode4: Array[Object] */;
1537 val* var9 /* : Array[Object] */;
1538 val* var_listnode8 /* var listnode8: Array[Object] */;
1539 val* var_toparnode2 /* var toparnode2: nullable Object */;
1540 short int var10 /* : Bool */;
1541 int cltype;
1542 int idtype;
1543 val* var_listnode3 /* var listnode3: nullable Object */;
1544 short int var11 /* : Bool */;
1545 int cltype12;
1546 int idtype13;
1547 val* var14 /* : Array[Object] */;
1548 val* var_tcparnode5 /* var tcparnode5: nullable Object */;
1549 short int var15 /* : Bool */;
1550 int cltype16;
1551 int idtype17;
1552 val* var_ptypenode6 /* var ptypenode6: nullable Object */;
1553 short int var18 /* : Bool */;
1554 int cltype19;
1555 int idtype20;
1556 val* var_listnode7 /* var listnode7: nullable Object */;
1557 short int var21 /* : Bool */;
1558 int cltype22;
1559 int idtype23;
1560 val* var24 /* : Array[Object] */;
1561 val* var25 /* : ASignature */;
1562 val* var_psignaturenode1 /* var psignaturenode1: nullable ASignature */;
1563 long var26 /* : Int */;
1564 long var27 /* : Int */;
1565 var_p = p0;
1566 var = NULL;
1567 var_node_list = var;
1568 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1569 var_nodearraylist7 = var1;
1570 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1571 var_nodearraylist6 = var2;
1572 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1573 var_nodearraylist5 = var3;
1574 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1575 var_nodearraylist4 = var4;
1576 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1577 var_nodearraylist3 = var5;
1578 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1579 var_nodearraylist2 = var6;
1580 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1581 var_nodearraylist1 = var7;
1582 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
1583 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
1584 CHECK_NEW_array__Array(var8);
1585 var_listnode4 = var8;
1586 var9 = NEW_array__Array(&type_array__Arraykernel__Object);
1587 ((void (*)(val*))(var9->class->vft[COLOR_array__Array__init]))(var9) /* init on <var9:Array[Object]>*/;
1588 CHECK_NEW_array__Array(var9);
1589 var_listnode8 = var9;
1590 var_toparnode2 = var_nodearraylist1;
1591 /* <var_toparnode2:nullable Object> isa nullable TOpar */
1592 cltype = type_nullable_parser_nodes__TOpar.color;
1593 idtype = type_nullable_parser_nodes__TOpar.id;
1594 if(var_toparnode2 == NULL) {
1595 var10 = 1;
1596 } else {
1597 if(cltype >= var_toparnode2->type->table_size) {
1598 var10 = 0;
1599 } else {
1600 var10 = var_toparnode2->type->type_table[cltype] == idtype;
1601 }
1602 }
1603 if (!var10) {
1604 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23332);
1605 exit(1);
1606 }
1607 var_listnode3 = var_nodearraylist3;
1608 /* <var_listnode3:nullable Object> isa Array[Object] */
1609 cltype12 = type_array__Arraykernel__Object.color;
1610 idtype13 = type_array__Arraykernel__Object.id;
1611 if(var_listnode3 == NULL) {
1612 var11 = 0;
1613 } else {
1614 if(cltype12 >= var_listnode3->type->table_size) {
1615 var11 = 0;
1616 } else {
1617 var11 = var_listnode3->type->type_table[cltype12] == idtype13;
1618 }
1619 }
1620 if (!var11) {
1621 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23334);
1622 exit(1);
1623 }
1624 var14 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction548>*/;
1625 var_listnode4 = var14;
1626 var_tcparnode5 = var_nodearraylist4;
1627 /* <var_tcparnode5:nullable Object> isa nullable TCpar */
1628 cltype16 = type_nullable_parser_nodes__TCpar.color;
1629 idtype17 = type_nullable_parser_nodes__TCpar.id;
1630 if(var_tcparnode5 == NULL) {
1631 var15 = 1;
1632 } else {
1633 if(cltype16 >= var_tcparnode5->type->table_size) {
1634 var15 = 0;
1635 } else {
1636 var15 = var_tcparnode5->type->type_table[cltype16] == idtype17;
1637 }
1638 }
1639 if (!var15) {
1640 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23337);
1641 exit(1);
1642 }
1643 var_ptypenode6 = var_nodearraylist5;
1644 /* <var_ptypenode6:nullable Object> isa nullable AType */
1645 cltype19 = type_nullable_parser_nodes__AType.color;
1646 idtype20 = type_nullable_parser_nodes__AType.id;
1647 if(var_ptypenode6 == NULL) {
1648 var18 = 1;
1649 } else {
1650 if(cltype19 >= var_ptypenode6->type->table_size) {
1651 var18 = 0;
1652 } else {
1653 var18 = var_ptypenode6->type->type_table[cltype19] == idtype20;
1654 }
1655 }
1656 if (!var18) {
1657 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23339);
1658 exit(1);
1659 }
1660 var_listnode7 = var_nodearraylist7;
1661 /* <var_listnode7:nullable Object> isa Array[Object] */
1662 cltype22 = type_array__Arraykernel__Object.color;
1663 idtype23 = type_array__Arraykernel__Object.id;
1664 if(var_listnode7 == NULL) {
1665 var21 = 0;
1666 } else {
1667 if(cltype22 >= var_listnode7->type->table_size) {
1668 var21 = 0;
1669 } else {
1670 var21 = var_listnode7->type->type_table[cltype22] == idtype23;
1671 }
1672 }
1673 if (!var21) {
1674 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23341);
1675 exit(1);
1676 }
1677 var24 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction548>*/;
1678 var_listnode8 = var24;
1679 var25 = NEW_parser_nodes__ASignature(&type_parser_nodes__ASignature);
1680 ((void (*)(val*, val*, val*, val*, val*, val*))(var25->class->vft[COLOR_parser_prod__ASignature__init_asignature]))(var25, var_toparnode2, var_listnode4, var_tcparnode5, var_ptypenode6, var_listnode8) /* init_asignature on <var25:ASignature>*/;
1681 CHECK_NEW_parser_nodes__ASignature(var25);
1682 var_psignaturenode1 = var25;
1683 var_node_list = var_psignaturenode1;
1684 var26 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction548> */
1685 var27 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var26) /* go_to on <var_p:Parser>*/;
1686 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var27, var_node_list) /* push on <var_p:Parser>*/;
1687 RET_LABEL:;
1688 }
1689 /* method parser#ReduceAction548#action for (self: Object, Parser) */
1690 void VIRTUAL_parser__ReduceAction548__action(val* self, val* p0) {
1691 parser__ReduceAction548__action(self, p0);
1692 RET_LABEL:;
1693 }
1694 /* method parser#ReduceAction549#action for (self: ReduceAction549, Parser) */
1695 void parser__ReduceAction549__action(val* self, val* p0) {
1696 val* var_p /* var p: Parser */;
1697 val* var /* : null */;
1698 val* var_node_list /* var node_list: nullable Object */;
1699 val* var1 /* : nullable Object */;
1700 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1701 val* var2 /* : nullable Object */;
1702 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1703 val* var3 /* : nullable Object */;
1704 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1705 val* var4 /* : nullable Object */;
1706 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1707 val* var5 /* : Array[Object] */;
1708 val* var_listnode3 /* var listnode3: Array[Object] */;
1709 val* var6 /* : Array[Object] */;
1710 val* var_listnode6 /* var listnode6: Array[Object] */;
1711 val* var_toparnode2 /* var toparnode2: nullable Object */;
1712 short int var7 /* : Bool */;
1713 int cltype;
1714 int idtype;
1715 val* var_tcparnode4 /* var tcparnode4: nullable Object */;
1716 short int var8 /* : Bool */;
1717 int cltype9;
1718 int idtype10;
1719 val* var11 /* : ASignature */;
1720 val* var12 /* : null */;
1721 val* var_psignaturenode1 /* var psignaturenode1: nullable ASignature */;
1722 long var13 /* : Int */;
1723 long var14 /* : Int */;
1724 var_p = p0;
1725 var = NULL;
1726 var_node_list = var;
1727 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1728 var_nodearraylist4 = var1;
1729 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1730 var_nodearraylist3 = var2;
1731 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1732 var_nodearraylist2 = var3;
1733 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1734 var_nodearraylist1 = var4;
1735 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
1736 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
1737 CHECK_NEW_array__Array(var5);
1738 var_listnode3 = var5;
1739 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
1740 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
1741 CHECK_NEW_array__Array(var6);
1742 var_listnode6 = var6;
1743 var_toparnode2 = var_nodearraylist1;
1744 /* <var_toparnode2:nullable Object> isa nullable TOpar */
1745 cltype = type_nullable_parser_nodes__TOpar.color;
1746 idtype = type_nullable_parser_nodes__TOpar.id;
1747 if(var_toparnode2 == NULL) {
1748 var7 = 1;
1749 } else {
1750 if(cltype >= var_toparnode2->type->table_size) {
1751 var7 = 0;
1752 } else {
1753 var7 = var_toparnode2->type->type_table[cltype] == idtype;
1754 }
1755 }
1756 if (!var7) {
1757 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23366);
1758 exit(1);
1759 }
1760 var_tcparnode4 = var_nodearraylist3;
1761 /* <var_tcparnode4:nullable Object> isa nullable TCpar */
1762 cltype9 = type_nullable_parser_nodes__TCpar.color;
1763 idtype10 = type_nullable_parser_nodes__TCpar.id;
1764 if(var_tcparnode4 == NULL) {
1765 var8 = 1;
1766 } else {
1767 if(cltype9 >= var_tcparnode4->type->table_size) {
1768 var8 = 0;
1769 } else {
1770 var8 = var_tcparnode4->type->type_table[cltype9] == idtype10;
1771 }
1772 }
1773 if (!var8) {
1774 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23368);
1775 exit(1);
1776 }
1777 var11 = NEW_parser_nodes__ASignature(&type_parser_nodes__ASignature);
1778 var12 = NULL;
1779 ((void (*)(val*, val*, val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__ASignature__init_asignature]))(var11, var_toparnode2, var_listnode3, var_tcparnode4, var12, var_listnode6) /* init_asignature on <var11:ASignature>*/;
1780 CHECK_NEW_parser_nodes__ASignature(var11);
1781 var_psignaturenode1 = var11;
1782 var_node_list = var_psignaturenode1;
1783 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction549> */
1784 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
1785 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
1786 RET_LABEL:;
1787 }
1788 /* method parser#ReduceAction549#action for (self: Object, Parser) */
1789 void VIRTUAL_parser__ReduceAction549__action(val* self, val* p0) {
1790 parser__ReduceAction549__action(self, p0);
1791 RET_LABEL:;
1792 }
1793 /* method parser#ReduceAction550#action for (self: ReduceAction550, Parser) */
1794 void parser__ReduceAction550__action(val* self, val* p0) {
1795 val* var_p /* var p: Parser */;
1796 val* var /* : null */;
1797 val* var_node_list /* var node_list: nullable Object */;
1798 val* var1 /* : nullable Object */;
1799 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1800 val* var2 /* : nullable Object */;
1801 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1802 val* var3 /* : nullable Object */;
1803 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1804 val* var4 /* : nullable Object */;
1805 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1806 val* var5 /* : nullable Object */;
1807 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1808 val* var6 /* : Array[Object] */;
1809 val* var_listnode4 /* var listnode4: Array[Object] */;
1810 val* var7 /* : Array[Object] */;
1811 val* var_listnode7 /* var listnode7: Array[Object] */;
1812 val* var_toparnode2 /* var toparnode2: nullable Object */;
1813 short int var8 /* : Bool */;
1814 int cltype;
1815 int idtype;
1816 val* var_listnode3 /* var listnode3: nullable Object */;
1817 short int var9 /* : Bool */;
1818 int cltype10;
1819 int idtype11;
1820 val* var12 /* : Array[Object] */;
1821 val* var_tcparnode5 /* var tcparnode5: nullable Object */;
1822 short int var13 /* : Bool */;
1823 int cltype14;
1824 int idtype15;
1825 val* var16 /* : ASignature */;
1826 val* var17 /* : null */;
1827 val* var_psignaturenode1 /* var psignaturenode1: nullable ASignature */;
1828 long var18 /* : Int */;
1829 long var19 /* : Int */;
1830 var_p = p0;
1831 var = NULL;
1832 var_node_list = var;
1833 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1834 var_nodearraylist5 = var1;
1835 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1836 var_nodearraylist4 = var2;
1837 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1838 var_nodearraylist3 = var3;
1839 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1840 var_nodearraylist2 = var4;
1841 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1842 var_nodearraylist1 = var5;
1843 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
1844 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
1845 CHECK_NEW_array__Array(var6);
1846 var_listnode4 = var6;
1847 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
1848 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
1849 CHECK_NEW_array__Array(var7);
1850 var_listnode7 = var7;
1851 var_toparnode2 = var_nodearraylist1;
1852 /* <var_toparnode2:nullable Object> isa nullable TOpar */
1853 cltype = type_nullable_parser_nodes__TOpar.color;
1854 idtype = type_nullable_parser_nodes__TOpar.id;
1855 if(var_toparnode2 == NULL) {
1856 var8 = 1;
1857 } else {
1858 if(cltype >= var_toparnode2->type->table_size) {
1859 var8 = 0;
1860 } else {
1861 var8 = var_toparnode2->type->type_table[cltype] == idtype;
1862 }
1863 }
1864 if (!var8) {
1865 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23393);
1866 exit(1);
1867 }
1868 var_listnode3 = var_nodearraylist3;
1869 /* <var_listnode3:nullable Object> isa Array[Object] */
1870 cltype10 = type_array__Arraykernel__Object.color;
1871 idtype11 = type_array__Arraykernel__Object.id;
1872 if(var_listnode3 == NULL) {
1873 var9 = 0;
1874 } else {
1875 if(cltype10 >= var_listnode3->type->table_size) {
1876 var9 = 0;
1877 } else {
1878 var9 = var_listnode3->type->type_table[cltype10] == idtype11;
1879 }
1880 }
1881 if (!var9) {
1882 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23395);
1883 exit(1);
1884 }
1885 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction550>*/;
1886 var_listnode4 = var12;
1887 var_tcparnode5 = var_nodearraylist4;
1888 /* <var_tcparnode5:nullable Object> isa nullable TCpar */
1889 cltype14 = type_nullable_parser_nodes__TCpar.color;
1890 idtype15 = type_nullable_parser_nodes__TCpar.id;
1891 if(var_tcparnode5 == NULL) {
1892 var13 = 1;
1893 } else {
1894 if(cltype14 >= var_tcparnode5->type->table_size) {
1895 var13 = 0;
1896 } else {
1897 var13 = var_tcparnode5->type->type_table[cltype14] == idtype15;
1898 }
1899 }
1900 if (!var13) {
1901 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23398);
1902 exit(1);
1903 }
1904 var16 = NEW_parser_nodes__ASignature(&type_parser_nodes__ASignature);
1905 var17 = NULL;
1906 ((void (*)(val*, val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__ASignature__init_asignature]))(var16, var_toparnode2, var_listnode4, var_tcparnode5, var17, var_listnode7) /* init_asignature on <var16:ASignature>*/;
1907 CHECK_NEW_parser_nodes__ASignature(var16);
1908 var_psignaturenode1 = var16;
1909 var_node_list = var_psignaturenode1;
1910 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction550> */
1911 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
1912 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
1913 RET_LABEL:;
1914 }
1915 /* method parser#ReduceAction550#action for (self: Object, Parser) */
1916 void VIRTUAL_parser__ReduceAction550__action(val* self, val* p0) {
1917 parser__ReduceAction550__action(self, p0);
1918 RET_LABEL:;
1919 }
1920 /* method parser#ReduceAction551#action for (self: ReduceAction551, Parser) */
1921 void parser__ReduceAction551__action(val* self, val* p0) {
1922 val* var_p /* var p: Parser */;
1923 val* var /* : null */;
1924 val* var_node_list /* var node_list: nullable Object */;
1925 val* var1 /* : nullable Object */;
1926 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1927 val* var2 /* : nullable Object */;
1928 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1929 val* var3 /* : nullable Object */;
1930 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1931 val* var4 /* : nullable Object */;
1932 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1933 val* var5 /* : nullable Object */;
1934 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1935 val* var6 /* : Array[Object] */;
1936 val* var_listnode3 /* var listnode3: Array[Object] */;
1937 val* var7 /* : Array[Object] */;
1938 val* var_listnode7 /* var listnode7: Array[Object] */;
1939 val* var_toparnode2 /* var toparnode2: nullable Object */;
1940 short int var8 /* : Bool */;
1941 int cltype;
1942 int idtype;
1943 val* var_tcparnode4 /* var tcparnode4: nullable Object */;
1944 short int var9 /* : Bool */;
1945 int cltype10;
1946 int idtype11;
1947 val* var_listnode6 /* var listnode6: nullable Object */;
1948 short int var12 /* : Bool */;
1949 int cltype13;
1950 int idtype14;
1951 val* var15 /* : Array[Object] */;
1952 val* var16 /* : ASignature */;
1953 val* var17 /* : null */;
1954 val* var_psignaturenode1 /* var psignaturenode1: nullable ASignature */;
1955 long var18 /* : Int */;
1956 long var19 /* : Int */;
1957 var_p = p0;
1958 var = NULL;
1959 var_node_list = var;
1960 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1961 var_nodearraylist5 = var1;
1962 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1963 var_nodearraylist4 = var2;
1964 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1965 var_nodearraylist3 = var3;
1966 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1967 var_nodearraylist2 = var4;
1968 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1969 var_nodearraylist1 = var5;
1970 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
1971 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
1972 CHECK_NEW_array__Array(var6);
1973 var_listnode3 = var6;
1974 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
1975 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
1976 CHECK_NEW_array__Array(var7);
1977 var_listnode7 = var7;
1978 var_toparnode2 = var_nodearraylist1;
1979 /* <var_toparnode2:nullable Object> isa nullable TOpar */
1980 cltype = type_nullable_parser_nodes__TOpar.color;
1981 idtype = type_nullable_parser_nodes__TOpar.id;
1982 if(var_toparnode2 == NULL) {
1983 var8 = 1;
1984 } else {
1985 if(cltype >= var_toparnode2->type->table_size) {
1986 var8 = 0;
1987 } else {
1988 var8 = var_toparnode2->type->type_table[cltype] == idtype;
1989 }
1990 }
1991 if (!var8) {
1992 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23423);
1993 exit(1);
1994 }
1995 var_tcparnode4 = var_nodearraylist3;
1996 /* <var_tcparnode4:nullable Object> isa nullable TCpar */
1997 cltype10 = type_nullable_parser_nodes__TCpar.color;
1998 idtype11 = type_nullable_parser_nodes__TCpar.id;
1999 if(var_tcparnode4 == NULL) {
2000 var9 = 1;
2001 } else {
2002 if(cltype10 >= var_tcparnode4->type->table_size) {
2003 var9 = 0;
2004 } else {
2005 var9 = var_tcparnode4->type->type_table[cltype10] == idtype11;
2006 }
2007 }
2008 if (!var9) {
2009 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23425);
2010 exit(1);
2011 }
2012 var_listnode6 = var_nodearraylist5;
2013 /* <var_listnode6:nullable Object> isa Array[Object] */
2014 cltype13 = type_array__Arraykernel__Object.color;
2015 idtype14 = type_array__Arraykernel__Object.id;
2016 if(var_listnode6 == NULL) {
2017 var12 = 0;
2018 } else {
2019 if(cltype13 >= var_listnode6->type->table_size) {
2020 var12 = 0;
2021 } else {
2022 var12 = var_listnode6->type->type_table[cltype13] == idtype14;
2023 }
2024 }
2025 if (!var12) {
2026 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23427);
2027 exit(1);
2028 }
2029 var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on <self:ReduceAction551>*/;
2030 var_listnode7 = var15;
2031 var16 = NEW_parser_nodes__ASignature(&type_parser_nodes__ASignature);
2032 var17 = NULL;
2033 ((void (*)(val*, val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__ASignature__init_asignature]))(var16, var_toparnode2, var_listnode3, var_tcparnode4, var17, var_listnode7) /* init_asignature on <var16:ASignature>*/;
2034 CHECK_NEW_parser_nodes__ASignature(var16);
2035 var_psignaturenode1 = var16;
2036 var_node_list = var_psignaturenode1;
2037 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction551> */
2038 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
2039 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
2040 RET_LABEL:;
2041 }
2042 /* method parser#ReduceAction551#action for (self: Object, Parser) */
2043 void VIRTUAL_parser__ReduceAction551__action(val* self, val* p0) {
2044 parser__ReduceAction551__action(self, p0);
2045 RET_LABEL:;
2046 }
2047 /* method parser#ReduceAction552#action for (self: ReduceAction552, Parser) */
2048 void parser__ReduceAction552__action(val* self, val* p0) {
2049 val* var_p /* var p: Parser */;
2050 val* var /* : null */;
2051 val* var_node_list /* var node_list: nullable Object */;
2052 val* var1 /* : nullable Object */;
2053 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
2054 val* var2 /* : nullable Object */;
2055 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2056 val* var3 /* : nullable Object */;
2057 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2058 val* var4 /* : nullable Object */;
2059 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2060 val* var5 /* : nullable Object */;
2061 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2062 val* var6 /* : nullable Object */;
2063 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2064 val* var7 /* : Array[Object] */;
2065 val* var_listnode4 /* var listnode4: Array[Object] */;
2066 val* var8 /* : Array[Object] */;
2067 val* var_listnode8 /* var listnode8: Array[Object] */;
2068 val* var_toparnode2 /* var toparnode2: nullable Object */;
2069 short int var9 /* : Bool */;
2070 int cltype;
2071 int idtype;
2072 val* var_listnode3 /* var listnode3: nullable Object */;
2073 short int var10 /* : Bool */;
2074 int cltype11;
2075 int idtype12;
2076 val* var13 /* : Array[Object] */;
2077 val* var_tcparnode5 /* var tcparnode5: nullable Object */;
2078 short int var14 /* : Bool */;
2079 int cltype15;
2080 int idtype16;
2081 val* var_listnode7 /* var listnode7: nullable Object */;
2082 short int var17 /* : Bool */;
2083 int cltype18;
2084 int idtype19;
2085 val* var20 /* : Array[Object] */;
2086 val* var21 /* : ASignature */;
2087 val* var22 /* : null */;
2088 val* var_psignaturenode1 /* var psignaturenode1: nullable ASignature */;
2089 long var23 /* : Int */;
2090 long var24 /* : Int */;
2091 var_p = p0;
2092 var = NULL;
2093 var_node_list = var;
2094 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2095 var_nodearraylist6 = var1;
2096 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2097 var_nodearraylist5 = var2;
2098 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2099 var_nodearraylist4 = var3;
2100 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2101 var_nodearraylist3 = var4;
2102 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2103 var_nodearraylist2 = var5;
2104 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2105 var_nodearraylist1 = var6;
2106 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
2107 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
2108 CHECK_NEW_array__Array(var7);
2109 var_listnode4 = var7;
2110 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
2111 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
2112 CHECK_NEW_array__Array(var8);
2113 var_listnode8 = var8;
2114 var_toparnode2 = var_nodearraylist1;
2115 /* <var_toparnode2:nullable Object> isa nullable TOpar */
2116 cltype = type_nullable_parser_nodes__TOpar.color;
2117 idtype = type_nullable_parser_nodes__TOpar.id;
2118 if(var_toparnode2 == NULL) {
2119 var9 = 1;
2120 } else {
2121 if(cltype >= var_toparnode2->type->table_size) {
2122 var9 = 0;
2123 } else {
2124 var9 = var_toparnode2->type->type_table[cltype] == idtype;
2125 }
2126 }
2127 if (!var9) {
2128 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23454);
2129 exit(1);
2130 }
2131 var_listnode3 = var_nodearraylist3;
2132 /* <var_listnode3:nullable Object> isa Array[Object] */
2133 cltype11 = type_array__Arraykernel__Object.color;
2134 idtype12 = type_array__Arraykernel__Object.id;
2135 if(var_listnode3 == NULL) {
2136 var10 = 0;
2137 } else {
2138 if(cltype11 >= var_listnode3->type->table_size) {
2139 var10 = 0;
2140 } else {
2141 var10 = var_listnode3->type->type_table[cltype11] == idtype12;
2142 }
2143 }
2144 if (!var10) {
2145 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23456);
2146 exit(1);
2147 }
2148 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction552>*/;
2149 var_listnode4 = var13;
2150 var_tcparnode5 = var_nodearraylist4;
2151 /* <var_tcparnode5:nullable Object> isa nullable TCpar */
2152 cltype15 = type_nullable_parser_nodes__TCpar.color;
2153 idtype16 = type_nullable_parser_nodes__TCpar.id;
2154 if(var_tcparnode5 == NULL) {
2155 var14 = 1;
2156 } else {
2157 if(cltype15 >= var_tcparnode5->type->table_size) {
2158 var14 = 0;
2159 } else {
2160 var14 = var_tcparnode5->type->type_table[cltype15] == idtype16;
2161 }
2162 }
2163 if (!var14) {
2164 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23459);
2165 exit(1);
2166 }
2167 var_listnode7 = var_nodearraylist6;
2168 /* <var_listnode7:nullable Object> isa Array[Object] */
2169 cltype18 = type_array__Arraykernel__Object.color;
2170 idtype19 = type_array__Arraykernel__Object.id;
2171 if(var_listnode7 == NULL) {
2172 var17 = 0;
2173 } else {
2174 if(cltype18 >= var_listnode7->type->table_size) {
2175 var17 = 0;
2176 } else {
2177 var17 = var_listnode7->type->type_table[cltype18] == idtype19;
2178 }
2179 }
2180 if (!var17) {
2181 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23461);
2182 exit(1);
2183 }
2184 var20 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction552>*/;
2185 var_listnode8 = var20;
2186 var21 = NEW_parser_nodes__ASignature(&type_parser_nodes__ASignature);
2187 var22 = NULL;
2188 ((void (*)(val*, val*, val*, val*, val*, val*))(var21->class->vft[COLOR_parser_prod__ASignature__init_asignature]))(var21, var_toparnode2, var_listnode4, var_tcparnode5, var22, var_listnode8) /* init_asignature on <var21:ASignature>*/;
2189 CHECK_NEW_parser_nodes__ASignature(var21);
2190 var_psignaturenode1 = var21;
2191 var_node_list = var_psignaturenode1;
2192 var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction552> */
2193 var24 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var23) /* go_to on <var_p:Parser>*/;
2194 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var24, var_node_list) /* push on <var_p:Parser>*/;
2195 RET_LABEL:;
2196 }
2197 /* method parser#ReduceAction552#action for (self: Object, Parser) */
2198 void VIRTUAL_parser__ReduceAction552__action(val* self, val* p0) {
2199 parser__ReduceAction552__action(self, p0);
2200 RET_LABEL:;
2201 }
2202 /* method parser#ReduceAction553#action for (self: ReduceAction553, Parser) */
2203 void parser__ReduceAction553__action(val* self, val* p0) {
2204 val* var_p /* var p: Parser */;
2205 val* var /* : null */;
2206 val* var_node_list /* var node_list: nullable Object */;
2207 val* var1 /* : nullable Object */;
2208 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2209 val* var2 /* : nullable Object */;
2210 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2211 val* var3 /* : Array[Object] */;
2212 val* var_listnode3 /* var listnode3: Array[Object] */;
2213 val* var4 /* : Array[Object] */;
2214 val* var_listnode6 /* var listnode6: Array[Object] */;
2215 val* var_ptypenode5 /* var ptypenode5: nullable Object */;
2216 short int var5 /* : Bool */;
2217 int cltype;
2218 int idtype;
2219 val* var6 /* : ASignature */;
2220 val* var7 /* : null */;
2221 val* var8 /* : null */;
2222 val* var_psignaturenode1 /* var psignaturenode1: nullable ASignature */;
2223 long var9 /* : Int */;
2224 long var10 /* : Int */;
2225 var_p = p0;
2226 var = NULL;
2227 var_node_list = var;
2228 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2229 var_nodearraylist2 = var1;
2230 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2231 var_nodearraylist1 = var2;
2232 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
2233 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
2234 CHECK_NEW_array__Array(var3);
2235 var_listnode3 = var3;
2236 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
2237 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
2238 CHECK_NEW_array__Array(var4);
2239 var_listnode6 = var4;
2240 var_ptypenode5 = var_nodearraylist1;
2241 /* <var_ptypenode5:nullable Object> isa nullable AType */
2242 cltype = type_nullable_parser_nodes__AType.color;
2243 idtype = type_nullable_parser_nodes__AType.id;
2244 if(var_ptypenode5 == NULL) {
2245 var5 = 1;
2246 } else {
2247 if(cltype >= var_ptypenode5->type->table_size) {
2248 var5 = 0;
2249 } else {
2250 var5 = var_ptypenode5->type->type_table[cltype] == idtype;
2251 }
2252 }
2253 if (!var5) {
2254 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23484);
2255 exit(1);
2256 }
2257 var6 = NEW_parser_nodes__ASignature(&type_parser_nodes__ASignature);
2258 var7 = NULL;
2259 var8 = NULL;
2260 ((void (*)(val*, val*, val*, val*, val*, val*))(var6->class->vft[COLOR_parser_prod__ASignature__init_asignature]))(var6, var7, var_listnode3, var8, var_ptypenode5, var_listnode6) /* init_asignature on <var6:ASignature>*/;
2261 CHECK_NEW_parser_nodes__ASignature(var6);
2262 var_psignaturenode1 = var6;
2263 var_node_list = var_psignaturenode1;
2264 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction553> */
2265 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
2266 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
2267 RET_LABEL:;
2268 }
2269 /* method parser#ReduceAction553#action for (self: Object, Parser) */
2270 void VIRTUAL_parser__ReduceAction553__action(val* self, val* p0) {
2271 parser__ReduceAction553__action(self, p0);
2272 RET_LABEL:;
2273 }
2274 /* method parser#ReduceAction554#action for (self: ReduceAction554, Parser) */
2275 void parser__ReduceAction554__action(val* self, val* p0) {
2276 val* var_p /* var p: Parser */;
2277 val* var /* : null */;
2278 val* var_node_list /* var node_list: nullable Object */;
2279 val* var1 /* : nullable Object */;
2280 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2281 val* var2 /* : nullable Object */;
2282 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2283 val* var3 /* : nullable Object */;
2284 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2285 val* var4 /* : Array[Object] */;
2286 val* var_listnode3 /* var listnode3: Array[Object] */;
2287 val* var5 /* : Array[Object] */;
2288 val* var_listnode7 /* var listnode7: Array[Object] */;
2289 val* var_ptypenode5 /* var ptypenode5: nullable Object */;
2290 short int var6 /* : Bool */;
2291 int cltype;
2292 int idtype;
2293 val* var_listnode6 /* var listnode6: nullable Object */;
2294 short int var7 /* : Bool */;
2295 int cltype8;
2296 int idtype9;
2297 val* var10 /* : Array[Object] */;
2298 val* var11 /* : ASignature */;
2299 val* var12 /* : null */;
2300 val* var13 /* : null */;
2301 val* var_psignaturenode1 /* var psignaturenode1: nullable ASignature */;
2302 long var14 /* : Int */;
2303 long var15 /* : Int */;
2304 var_p = p0;
2305 var = NULL;
2306 var_node_list = var;
2307 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2308 var_nodearraylist3 = var1;
2309 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2310 var_nodearraylist2 = var2;
2311 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2312 var_nodearraylist1 = var3;
2313 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
2314 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
2315 CHECK_NEW_array__Array(var4);
2316 var_listnode3 = var4;
2317 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
2318 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
2319 CHECK_NEW_array__Array(var5);
2320 var_listnode7 = var5;
2321 var_ptypenode5 = var_nodearraylist1;
2322 /* <var_ptypenode5:nullable Object> isa nullable AType */
2323 cltype = type_nullable_parser_nodes__AType.color;
2324 idtype = type_nullable_parser_nodes__AType.id;
2325 if(var_ptypenode5 == NULL) {
2326 var6 = 1;
2327 } else {
2328 if(cltype >= var_ptypenode5->type->table_size) {
2329 var6 = 0;
2330 } else {
2331 var6 = var_ptypenode5->type->type_table[cltype] == idtype;
2332 }
2333 }
2334 if (!var6) {
2335 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23507);
2336 exit(1);
2337 }
2338 var_listnode6 = var_nodearraylist3;
2339 /* <var_listnode6:nullable Object> isa Array[Object] */
2340 cltype8 = type_array__Arraykernel__Object.color;
2341 idtype9 = type_array__Arraykernel__Object.id;
2342 if(var_listnode6 == NULL) {
2343 var7 = 0;
2344 } else {
2345 if(cltype8 >= var_listnode6->type->table_size) {
2346 var7 = 0;
2347 } else {
2348 var7 = var_listnode6->type->type_table[cltype8] == idtype9;
2349 }
2350 }
2351 if (!var7) {
2352 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23509);
2353 exit(1);
2354 }
2355 var10 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on <self:ReduceAction554>*/;
2356 var_listnode7 = var10;
2357 var11 = NEW_parser_nodes__ASignature(&type_parser_nodes__ASignature);
2358 var12 = NULL;
2359 var13 = NULL;
2360 ((void (*)(val*, val*, val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__ASignature__init_asignature]))(var11, var12, var_listnode3, var13, var_ptypenode5, var_listnode7) /* init_asignature on <var11:ASignature>*/;
2361 CHECK_NEW_parser_nodes__ASignature(var11);
2362 var_psignaturenode1 = var11;
2363 var_node_list = var_psignaturenode1;
2364 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction554> */
2365 var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
2366 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
2367 RET_LABEL:;
2368 }
2369 /* method parser#ReduceAction554#action for (self: Object, Parser) */
2370 void VIRTUAL_parser__ReduceAction554__action(val* self, val* p0) {
2371 parser__ReduceAction554__action(self, p0);
2372 RET_LABEL:;
2373 }
2374 /* method parser#ReduceAction555#action for (self: ReduceAction555, Parser) */
2375 void parser__ReduceAction555__action(val* self, val* p0) {
2376 val* var_p /* var p: Parser */;
2377 val* var /* : null */;
2378 val* var_node_list /* var node_list: nullable Object */;
2379 val* var1 /* : nullable Object */;
2380 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2381 val* var2 /* : Array[Object] */;
2382 val* var_listnode3 /* var listnode3: Array[Object] */;
2383 val* var3 /* : Array[Object] */;
2384 val* var_listnode6 /* var listnode6: Array[Object] */;
2385 val* var4 /* : ASignature */;
2386 val* var5 /* : null */;
2387 val* var6 /* : null */;
2388 val* var7 /* : null */;
2389 val* var_psignaturenode1 /* var psignaturenode1: nullable ASignature */;
2390 long var8 /* : Int */;
2391 long var9 /* : Int */;
2392 var_p = p0;
2393 var = NULL;
2394 var_node_list = var;
2395 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2396 var_nodearraylist1 = var1;
2397 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
2398 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
2399 CHECK_NEW_array__Array(var2);
2400 var_listnode3 = var2;
2401 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
2402 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
2403 CHECK_NEW_array__Array(var3);
2404 var_listnode6 = var3;
2405 var4 = NEW_parser_nodes__ASignature(&type_parser_nodes__ASignature);
2406 var5 = NULL;
2407 var6 = NULL;
2408 var7 = NULL;
2409 ((void (*)(val*, val*, val*, val*, val*, val*))(var4->class->vft[COLOR_parser_prod__ASignature__init_asignature]))(var4, var5, var_listnode3, var6, var7, var_listnode6) /* init_asignature on <var4:ASignature>*/;
2410 CHECK_NEW_parser_nodes__ASignature(var4);
2411 var_psignaturenode1 = var4;
2412 var_node_list = var_psignaturenode1;
2413 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction555> */
2414 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
2415 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
2416 RET_LABEL:;
2417 }
2418 /* method parser#ReduceAction555#action for (self: Object, Parser) */
2419 void VIRTUAL_parser__ReduceAction555__action(val* self, val* p0) {
2420 parser__ReduceAction555__action(self, p0);
2421 RET_LABEL:;
2422 }
2423 /* method parser#ReduceAction556#action for (self: ReduceAction556, Parser) */
2424 void parser__ReduceAction556__action(val* self, val* p0) {
2425 val* var_p /* var p: Parser */;
2426 val* var /* : null */;
2427 val* var_node_list /* var node_list: nullable Object */;
2428 val* var1 /* : nullable Object */;
2429 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2430 val* var2 /* : nullable Object */;
2431 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2432 val* var3 /* : Array[Object] */;
2433 val* var_listnode3 /* var listnode3: Array[Object] */;
2434 val* var4 /* : Array[Object] */;
2435 val* var_listnode7 /* var listnode7: Array[Object] */;
2436 val* var_listnode6 /* var listnode6: nullable Object */;
2437 short int var5 /* : Bool */;
2438 int cltype;
2439 int idtype;
2440 val* var6 /* : Array[Object] */;
2441 val* var7 /* : ASignature */;
2442 val* var8 /* : null */;
2443 val* var9 /* : null */;
2444 val* var10 /* : null */;
2445 val* var_psignaturenode1 /* var psignaturenode1: nullable ASignature */;
2446 long var11 /* : Int */;
2447 long var12 /* : Int */;
2448 var_p = p0;
2449 var = NULL;
2450 var_node_list = var;
2451 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2452 var_nodearraylist2 = var1;
2453 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2454 var_nodearraylist1 = var2;
2455 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
2456 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
2457 CHECK_NEW_array__Array(var3);
2458 var_listnode3 = var3;
2459 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
2460 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
2461 CHECK_NEW_array__Array(var4);
2462 var_listnode7 = var4;
2463 var_listnode6 = var_nodearraylist2;
2464 /* <var_listnode6:nullable Object> isa Array[Object] */
2465 cltype = type_array__Arraykernel__Object.color;
2466 idtype = type_array__Arraykernel__Object.id;
2467 if(var_listnode6 == NULL) {
2468 var5 = 0;
2469 } else {
2470 if(cltype >= var_listnode6->type->table_size) {
2471 var5 = 0;
2472 } else {
2473 var5 = var_listnode6->type->type_table[cltype] == idtype;
2474 }
2475 }
2476 if (!var5) {
2477 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23551);
2478 exit(1);
2479 }
2480 var6 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on <self:ReduceAction556>*/;
2481 var_listnode7 = var6;
2482 var7 = NEW_parser_nodes__ASignature(&type_parser_nodes__ASignature);
2483 var8 = NULL;
2484 var9 = NULL;
2485 var10 = NULL;
2486 ((void (*)(val*, val*, val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ASignature__init_asignature]))(var7, var8, var_listnode3, var9, var10, var_listnode7) /* init_asignature on <var7:ASignature>*/;
2487 CHECK_NEW_parser_nodes__ASignature(var7);
2488 var_psignaturenode1 = var7;
2489 var_node_list = var_psignaturenode1;
2490 var11 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction556> */
2491 var12 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var11) /* go_to on <var_p:Parser>*/;
2492 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var12, var_node_list) /* push on <var_p:Parser>*/;
2493 RET_LABEL:;
2494 }
2495 /* method parser#ReduceAction556#action for (self: Object, Parser) */
2496 void VIRTUAL_parser__ReduceAction556__action(val* self, val* p0) {
2497 parser__ReduceAction556__action(self, p0);
2498 RET_LABEL:;
2499 }
2500 /* method parser#ReduceAction557#action for (self: ReduceAction557, Parser) */
2501 void parser__ReduceAction557__action(val* self, val* p0) {
2502 val* var_p /* var p: Parser */;
2503 val* var /* : null */;
2504 val* var_node_list /* var node_list: nullable Object */;
2505 val* var1 /* : nullable Object */;
2506 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2507 val* var2 /* : nullable Object */;
2508 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2509 val* var3 /* : nullable Object */;
2510 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2511 val* var4 /* : Array[Object] */;
2512 val* var_listnode3 /* var listnode3: Array[Object] */;
2513 val* var5 /* : Array[Object] */;
2514 val* var_listnode6 /* var listnode6: Array[Object] */;
2515 val* var_toparnode2 /* var toparnode2: nullable Object */;
2516 short int var6 /* : Bool */;
2517 int cltype;
2518 int idtype;
2519 val* var_tcparnode4 /* var tcparnode4: nullable Object */;
2520 short int var7 /* : Bool */;
2521 int cltype8;
2522 int idtype9;
2523 val* var10 /* : ASignature */;
2524 val* var11 /* : null */;
2525 val* var_psignaturenode1 /* var psignaturenode1: nullable ASignature */;
2526 long var12 /* : Int */;
2527 long var13 /* : Int */;
2528 var_p = p0;
2529 var = NULL;
2530 var_node_list = var;
2531 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2532 var_nodearraylist3 = var1;
2533 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2534 var_nodearraylist2 = var2;
2535 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2536 var_nodearraylist1 = var3;
2537 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
2538 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
2539 CHECK_NEW_array__Array(var4);
2540 var_listnode3 = var4;
2541 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
2542 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
2543 CHECK_NEW_array__Array(var5);
2544 var_listnode6 = var5;
2545 var_toparnode2 = var_nodearraylist1;
2546 /* <var_toparnode2:nullable Object> isa nullable TOpar */
2547 cltype = type_nullable_parser_nodes__TOpar.color;
2548 idtype = type_nullable_parser_nodes__TOpar.id;
2549 if(var_toparnode2 == NULL) {
2550 var6 = 1;
2551 } else {
2552 if(cltype >= var_toparnode2->type->table_size) {
2553 var6 = 0;
2554 } else {
2555 var6 = var_toparnode2->type->type_table[cltype] == idtype;
2556 }
2557 }
2558 if (!var6) {
2559 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23575);
2560 exit(1);
2561 }
2562 var_tcparnode4 = var_nodearraylist3;
2563 /* <var_tcparnode4:nullable Object> isa nullable TCpar */
2564 cltype8 = type_nullable_parser_nodes__TCpar.color;
2565 idtype9 = type_nullable_parser_nodes__TCpar.id;
2566 if(var_tcparnode4 == NULL) {
2567 var7 = 1;
2568 } else {
2569 if(cltype8 >= var_tcparnode4->type->table_size) {
2570 var7 = 0;
2571 } else {
2572 var7 = var_tcparnode4->type->type_table[cltype8] == idtype9;
2573 }
2574 }
2575 if (!var7) {
2576 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23577);
2577 exit(1);
2578 }
2579 var10 = NEW_parser_nodes__ASignature(&type_parser_nodes__ASignature);
2580 var11 = NULL;
2581 ((void (*)(val*, val*, val*, val*, val*, val*))(var10->class->vft[COLOR_parser_prod__ASignature__init_asignature]))(var10, var_toparnode2, var_listnode3, var_tcparnode4, var11, var_listnode6) /* init_asignature on <var10:ASignature>*/;
2582 CHECK_NEW_parser_nodes__ASignature(var10);
2583 var_psignaturenode1 = var10;
2584 var_node_list = var_psignaturenode1;
2585 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction557> */
2586 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
2587 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
2588 RET_LABEL:;
2589 }
2590 /* method parser#ReduceAction557#action for (self: Object, Parser) */
2591 void VIRTUAL_parser__ReduceAction557__action(val* self, val* p0) {
2592 parser__ReduceAction557__action(self, p0);
2593 RET_LABEL:;
2594 }
2595 /* method parser#ReduceAction558#action for (self: ReduceAction558, Parser) */
2596 void parser__ReduceAction558__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* var5 /* : Array[Object] */;
2609 val* var_listnode4 /* var listnode4: Array[Object] */;
2610 val* var6 /* : Array[Object] */;
2611 val* var_listnode7 /* var listnode7: Array[Object] */;
2612 val* var_toparnode2 /* var toparnode2: nullable Object */;
2613 short int var7 /* : Bool */;
2614 int cltype;
2615 int idtype;
2616 val* var_listnode3 /* var listnode3: nullable Object */;
2617 short int var8 /* : Bool */;
2618 int cltype9;
2619 int idtype10;
2620 val* var11 /* : Array[Object] */;
2621 val* var_tcparnode5 /* var tcparnode5: nullable Object */;
2622 short int var12 /* : Bool */;
2623 int cltype13;
2624 int idtype14;
2625 val* var15 /* : ASignature */;
2626 val* var16 /* : null */;
2627 val* var_psignaturenode1 /* var psignaturenode1: nullable ASignature */;
2628 long var17 /* : Int */;
2629 long var18 /* : Int */;
2630 var_p = p0;
2631 var = NULL;
2632 var_node_list = var;
2633 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2634 var_nodearraylist4 = var1;
2635 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2636 var_nodearraylist3 = var2;
2637 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2638 var_nodearraylist2 = var3;
2639 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2640 var_nodearraylist1 = var4;
2641 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
2642 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
2643 CHECK_NEW_array__Array(var5);
2644 var_listnode4 = var5;
2645 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
2646 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
2647 CHECK_NEW_array__Array(var6);
2648 var_listnode7 = var6;
2649 var_toparnode2 = var_nodearraylist1;
2650 /* <var_toparnode2:nullable Object> isa nullable TOpar */
2651 cltype = type_nullable_parser_nodes__TOpar.color;
2652 idtype = type_nullable_parser_nodes__TOpar.id;
2653 if(var_toparnode2 == NULL) {
2654 var7 = 1;
2655 } else {
2656 if(cltype >= var_toparnode2->type->table_size) {
2657 var7 = 0;
2658 } else {
2659 var7 = var_toparnode2->type->type_table[cltype] == idtype;
2660 }
2661 }
2662 if (!var7) {
2663 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23601);
2664 exit(1);
2665 }
2666 var_listnode3 = var_nodearraylist3;
2667 /* <var_listnode3:nullable Object> isa Array[Object] */
2668 cltype9 = type_array__Arraykernel__Object.color;
2669 idtype10 = type_array__Arraykernel__Object.id;
2670 if(var_listnode3 == NULL) {
2671 var8 = 0;
2672 } else {
2673 if(cltype9 >= var_listnode3->type->table_size) {
2674 var8 = 0;
2675 } else {
2676 var8 = var_listnode3->type->type_table[cltype9] == idtype10;
2677 }
2678 }
2679 if (!var8) {
2680 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23603);
2681 exit(1);
2682 }
2683 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction558>*/;
2684 var_listnode4 = var11;
2685 var_tcparnode5 = var_nodearraylist4;
2686 /* <var_tcparnode5:nullable Object> isa nullable TCpar */
2687 cltype13 = type_nullable_parser_nodes__TCpar.color;
2688 idtype14 = type_nullable_parser_nodes__TCpar.id;
2689 if(var_tcparnode5 == NULL) {
2690 var12 = 1;
2691 } else {
2692 if(cltype13 >= var_tcparnode5->type->table_size) {
2693 var12 = 0;
2694 } else {
2695 var12 = var_tcparnode5->type->type_table[cltype13] == idtype14;
2696 }
2697 }
2698 if (!var12) {
2699 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23606);
2700 exit(1);
2701 }
2702 var15 = NEW_parser_nodes__ASignature(&type_parser_nodes__ASignature);
2703 var16 = NULL;
2704 ((void (*)(val*, val*, val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__ASignature__init_asignature]))(var15, var_toparnode2, var_listnode4, var_tcparnode5, var16, var_listnode7) /* init_asignature on <var15:ASignature>*/;
2705 CHECK_NEW_parser_nodes__ASignature(var15);
2706 var_psignaturenode1 = var15;
2707 var_node_list = var_psignaturenode1;
2708 var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction558> */
2709 var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
2710 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
2711 RET_LABEL:;
2712 }
2713 /* method parser#ReduceAction558#action for (self: Object, Parser) */
2714 void VIRTUAL_parser__ReduceAction558__action(val* self, val* p0) {
2715 parser__ReduceAction558__action(self, p0);
2716 RET_LABEL:;
2717 }
2718 /* method parser#ReduceAction559#action for (self: ReduceAction559, Parser) */
2719 void parser__ReduceAction559__action(val* self, val* p0) {
2720 val* var_p /* var p: Parser */;
2721 val* var /* : null */;
2722 val* var_node_list /* var node_list: nullable Object */;
2723 val* var1 /* : nullable Object */;
2724 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2725 val* var2 /* : nullable Object */;
2726 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2727 val* var3 /* : nullable Object */;
2728 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2729 val* var4 /* : nullable Object */;
2730 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2731 val* var5 /* : Array[Object] */;
2732 val* var_listnode3 /* var listnode3: Array[Object] */;
2733 val* var6 /* : Array[Object] */;
2734 val* var_listnode6 /* var listnode6: Array[Object] */;
2735 val* var_toparnode2 /* var toparnode2: nullable Object */;
2736 short int var7 /* : Bool */;
2737 int cltype;
2738 int idtype;
2739 val* var_tcparnode4 /* var tcparnode4: nullable Object */;
2740 short int var8 /* : Bool */;
2741 int cltype9;
2742 int idtype10;
2743 val* var_ptypenode5 /* var ptypenode5: nullable Object */;
2744 short int var11 /* : Bool */;
2745 int cltype12;
2746 int idtype13;
2747 val* var14 /* : ASignature */;
2748 val* var_psignaturenode1 /* var psignaturenode1: nullable ASignature */;
2749 long var15 /* : Int */;
2750 long var16 /* : Int */;
2751 var_p = p0;
2752 var = NULL;
2753 var_node_list = var;
2754 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2755 var_nodearraylist4 = var1;
2756 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2757 var_nodearraylist3 = var2;
2758 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2759 var_nodearraylist2 = var3;
2760 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2761 var_nodearraylist1 = var4;
2762 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
2763 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
2764 CHECK_NEW_array__Array(var5);
2765 var_listnode3 = var5;
2766 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
2767 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
2768 CHECK_NEW_array__Array(var6);
2769 var_listnode6 = var6;
2770 var_toparnode2 = var_nodearraylist1;
2771 /* <var_toparnode2:nullable Object> isa nullable TOpar */
2772 cltype = type_nullable_parser_nodes__TOpar.color;
2773 idtype = type_nullable_parser_nodes__TOpar.id;
2774 if(var_toparnode2 == NULL) {
2775 var7 = 1;
2776 } else {
2777 if(cltype >= var_toparnode2->type->table_size) {
2778 var7 = 0;
2779 } else {
2780 var7 = var_toparnode2->type->type_table[cltype] == idtype;
2781 }
2782 }
2783 if (!var7) {
2784 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23630);
2785 exit(1);
2786 }
2787 var_tcparnode4 = var_nodearraylist3;
2788 /* <var_tcparnode4:nullable Object> isa nullable TCpar */
2789 cltype9 = type_nullable_parser_nodes__TCpar.color;
2790 idtype10 = type_nullable_parser_nodes__TCpar.id;
2791 if(var_tcparnode4 == NULL) {
2792 var8 = 1;
2793 } else {
2794 if(cltype9 >= var_tcparnode4->type->table_size) {
2795 var8 = 0;
2796 } else {
2797 var8 = var_tcparnode4->type->type_table[cltype9] == idtype10;
2798 }
2799 }
2800 if (!var8) {
2801 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23632);
2802 exit(1);
2803 }
2804 var_ptypenode5 = var_nodearraylist4;
2805 /* <var_ptypenode5:nullable Object> isa nullable AType */
2806 cltype12 = type_nullable_parser_nodes__AType.color;
2807 idtype13 = type_nullable_parser_nodes__AType.id;
2808 if(var_ptypenode5 == NULL) {
2809 var11 = 1;
2810 } else {
2811 if(cltype12 >= var_ptypenode5->type->table_size) {
2812 var11 = 0;
2813 } else {
2814 var11 = var_ptypenode5->type->type_table[cltype12] == idtype13;
2815 }
2816 }
2817 if (!var11) {
2818 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23634);
2819 exit(1);
2820 }
2821 var14 = NEW_parser_nodes__ASignature(&type_parser_nodes__ASignature);
2822 ((void (*)(val*, val*, val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__ASignature__init_asignature]))(var14, var_toparnode2, var_listnode3, var_tcparnode4, var_ptypenode5, var_listnode6) /* init_asignature on <var14:ASignature>*/;
2823 CHECK_NEW_parser_nodes__ASignature(var14);
2824 var_psignaturenode1 = var14;
2825 var_node_list = var_psignaturenode1;
2826 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction559> */
2827 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
2828 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
2829 RET_LABEL:;
2830 }
2831 /* method parser#ReduceAction559#action for (self: Object, Parser) */
2832 void VIRTUAL_parser__ReduceAction559__action(val* self, val* p0) {
2833 parser__ReduceAction559__action(self, p0);
2834 RET_LABEL:;
2835 }
2836 /* method parser#ReduceAction560#action for (self: ReduceAction560, Parser) */
2837 void parser__ReduceAction560__action(val* self, val* p0) {
2838 val* var_p /* var p: Parser */;
2839 val* var /* : null */;
2840 val* var_node_list /* var node_list: nullable Object */;
2841 val* var1 /* : nullable Object */;
2842 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2843 val* var2 /* : nullable Object */;
2844 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2845 val* var3 /* : nullable Object */;
2846 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2847 val* var4 /* : nullable Object */;
2848 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2849 val* var5 /* : nullable Object */;
2850 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2851 val* var6 /* : Array[Object] */;
2852 val* var_listnode4 /* var listnode4: Array[Object] */;
2853 val* var7 /* : Array[Object] */;
2854 val* var_listnode7 /* var listnode7: Array[Object] */;
2855 val* var_toparnode2 /* var toparnode2: nullable Object */;
2856 short int var8 /* : Bool */;
2857 int cltype;
2858 int idtype;
2859 val* var_listnode3 /* var listnode3: nullable Object */;
2860 short int var9 /* : Bool */;
2861 int cltype10;
2862 int idtype11;
2863 val* var12 /* : Array[Object] */;
2864 val* var_tcparnode5 /* var tcparnode5: nullable Object */;
2865 short int var13 /* : Bool */;
2866 int cltype14;
2867 int idtype15;
2868 val* var_ptypenode6 /* var ptypenode6: nullable Object */;
2869 short int var16 /* : Bool */;
2870 int cltype17;
2871 int idtype18;
2872 val* var19 /* : ASignature */;
2873 val* var_psignaturenode1 /* var psignaturenode1: nullable ASignature */;
2874 long var20 /* : Int */;
2875 long var21 /* : Int */;
2876 var_p = p0;
2877 var = NULL;
2878 var_node_list = var;
2879 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2880 var_nodearraylist5 = var1;
2881 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2882 var_nodearraylist4 = var2;
2883 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2884 var_nodearraylist3 = var3;
2885 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2886 var_nodearraylist2 = var4;
2887 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2888 var_nodearraylist1 = var5;
2889 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
2890 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
2891 CHECK_NEW_array__Array(var6);
2892 var_listnode4 = var6;
2893 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
2894 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
2895 CHECK_NEW_array__Array(var7);
2896 var_listnode7 = var7;
2897 var_toparnode2 = var_nodearraylist1;
2898 /* <var_toparnode2:nullable Object> isa nullable TOpar */
2899 cltype = type_nullable_parser_nodes__TOpar.color;
2900 idtype = type_nullable_parser_nodes__TOpar.id;
2901 if(var_toparnode2 == NULL) {
2902 var8 = 1;
2903 } else {
2904 if(cltype >= var_toparnode2->type->table_size) {
2905 var8 = 0;
2906 } else {
2907 var8 = var_toparnode2->type->type_table[cltype] == idtype;
2908 }
2909 }
2910 if (!var8) {
2911 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23659);
2912 exit(1);
2913 }
2914 var_listnode3 = var_nodearraylist3;
2915 /* <var_listnode3:nullable Object> isa Array[Object] */
2916 cltype10 = type_array__Arraykernel__Object.color;
2917 idtype11 = type_array__Arraykernel__Object.id;
2918 if(var_listnode3 == NULL) {
2919 var9 = 0;
2920 } else {
2921 if(cltype10 >= var_listnode3->type->table_size) {
2922 var9 = 0;
2923 } else {
2924 var9 = var_listnode3->type->type_table[cltype10] == idtype11;
2925 }
2926 }
2927 if (!var9) {
2928 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23661);
2929 exit(1);
2930 }
2931 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction560>*/;
2932 var_listnode4 = var12;
2933 var_tcparnode5 = var_nodearraylist4;
2934 /* <var_tcparnode5:nullable Object> isa nullable TCpar */
2935 cltype14 = type_nullable_parser_nodes__TCpar.color;
2936 idtype15 = type_nullable_parser_nodes__TCpar.id;
2937 if(var_tcparnode5 == NULL) {
2938 var13 = 1;
2939 } else {
2940 if(cltype14 >= var_tcparnode5->type->table_size) {
2941 var13 = 0;
2942 } else {
2943 var13 = var_tcparnode5->type->type_table[cltype14] == idtype15;
2944 }
2945 }
2946 if (!var13) {
2947 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23664);
2948 exit(1);
2949 }
2950 var_ptypenode6 = var_nodearraylist5;
2951 /* <var_ptypenode6:nullable Object> isa nullable AType */
2952 cltype17 = type_nullable_parser_nodes__AType.color;
2953 idtype18 = type_nullable_parser_nodes__AType.id;
2954 if(var_ptypenode6 == NULL) {
2955 var16 = 1;
2956 } else {
2957 if(cltype17 >= var_ptypenode6->type->table_size) {
2958 var16 = 0;
2959 } else {
2960 var16 = var_ptypenode6->type->type_table[cltype17] == idtype18;
2961 }
2962 }
2963 if (!var16) {
2964 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23666);
2965 exit(1);
2966 }
2967 var19 = NEW_parser_nodes__ASignature(&type_parser_nodes__ASignature);
2968 ((void (*)(val*, val*, val*, val*, val*, val*))(var19->class->vft[COLOR_parser_prod__ASignature__init_asignature]))(var19, var_toparnode2, var_listnode4, var_tcparnode5, var_ptypenode6, var_listnode7) /* init_asignature on <var19:ASignature>*/;
2969 CHECK_NEW_parser_nodes__ASignature(var19);
2970 var_psignaturenode1 = var19;
2971 var_node_list = var_psignaturenode1;
2972 var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction560> */
2973 var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on <var_p:Parser>*/;
2974 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on <var_p:Parser>*/;
2975 RET_LABEL:;
2976 }
2977 /* method parser#ReduceAction560#action for (self: Object, Parser) */
2978 void VIRTUAL_parser__ReduceAction560__action(val* self, val* p0) {
2979 parser__ReduceAction560__action(self, p0);
2980 RET_LABEL:;
2981 }
2982 /* method parser#ReduceAction561#action for (self: ReduceAction561, Parser) */
2983 void parser__ReduceAction561__action(val* self, val* p0) {
2984 val* var_p /* var p: Parser */;
2985 val* var /* : null */;
2986 val* var_node_list /* var node_list: nullable Object */;
2987 val* var1 /* : Array[Object] */;
2988 val* var_listnode3 /* var listnode3: Array[Object] */;
2989 val* var2 /* : Array[Object] */;
2990 val* var_listnode6 /* var listnode6: Array[Object] */;
2991 val* var3 /* : ASignature */;
2992 val* var4 /* : null */;
2993 val* var5 /* : null */;
2994 val* var6 /* : null */;
2995 val* var_psignaturenode1 /* var psignaturenode1: nullable ASignature */;
2996 long var7 /* : Int */;
2997 long var8 /* : Int */;
2998 var_p = p0;
2999 var = NULL;
3000 var_node_list = var;
3001 var1 = NEW_array__Array(&type_array__Arraykernel__Object);
3002 ((void (*)(val*))(var1->class->vft[COLOR_array__Array__init]))(var1) /* init on <var1:Array[Object]>*/;
3003 CHECK_NEW_array__Array(var1);
3004 var_listnode3 = var1;
3005 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
3006 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
3007 CHECK_NEW_array__Array(var2);
3008 var_listnode6 = var2;
3009 var3 = NEW_parser_nodes__ASignature(&type_parser_nodes__ASignature);
3010 var4 = NULL;
3011 var5 = NULL;
3012 var6 = NULL;
3013 ((void (*)(val*, val*, val*, val*, val*, val*))(var3->class->vft[COLOR_parser_prod__ASignature__init_asignature]))(var3, var4, var_listnode3, var5, var6, var_listnode6) /* init_asignature on <var3:ASignature>*/;
3014 CHECK_NEW_parser_nodes__ASignature(var3);
3015 var_psignaturenode1 = var3;
3016 var_node_list = var_psignaturenode1;
3017 var7 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction561> */
3018 var8 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var7) /* go_to on <var_p:Parser>*/;
3019 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var8, var_node_list) /* push on <var_p:Parser>*/;
3020 RET_LABEL:;
3021 }
3022 /* method parser#ReduceAction561#action for (self: Object, Parser) */
3023 void VIRTUAL_parser__ReduceAction561__action(val* self, val* p0) {
3024 parser__ReduceAction561__action(self, p0);
3025 RET_LABEL:;
3026 }
3027 /* method parser#ReduceAction562#action for (self: ReduceAction562, Parser) */
3028 void parser__ReduceAction562__action(val* self, val* p0) {
3029 val* var_p /* var p: Parser */;
3030 val* var /* : null */;
3031 val* var_node_list /* var node_list: nullable Object */;
3032 val* var1 /* : nullable Object */;
3033 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3034 val* var2 /* : Array[Object] */;
3035 val* var_listnode3 /* var listnode3: Array[Object] */;
3036 val* var3 /* : Array[Object] */;
3037 val* var_listnode6 /* var listnode6: Array[Object] */;
3038 val* var_ptypenode5 /* var ptypenode5: nullable Object */;
3039 short int var4 /* : Bool */;
3040 int cltype;
3041 int idtype;
3042 val* var5 /* : ASignature */;
3043 val* var6 /* : null */;
3044 val* var7 /* : null */;
3045 val* var_psignaturenode1 /* var psignaturenode1: nullable ASignature */;
3046 long var8 /* : Int */;
3047 long var9 /* : Int */;
3048 var_p = p0;
3049 var = NULL;
3050 var_node_list = var;
3051 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3052 var_nodearraylist1 = var1;
3053 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
3054 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
3055 CHECK_NEW_array__Array(var2);
3056 var_listnode3 = var2;
3057 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
3058 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
3059 CHECK_NEW_array__Array(var3);
3060 var_listnode6 = var3;
3061 var_ptypenode5 = var_nodearraylist1;
3062 /* <var_ptypenode5:nullable Object> isa nullable AType */
3063 cltype = type_nullable_parser_nodes__AType.color;
3064 idtype = type_nullable_parser_nodes__AType.id;
3065 if(var_ptypenode5 == NULL) {
3066 var4 = 1;
3067 } else {
3068 if(cltype >= var_ptypenode5->type->table_size) {
3069 var4 = 0;
3070 } else {
3071 var4 = var_ptypenode5->type->type_table[cltype] == idtype;
3072 }
3073 }
3074 if (!var4) {
3075 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23705);
3076 exit(1);
3077 }
3078 var5 = NEW_parser_nodes__ASignature(&type_parser_nodes__ASignature);
3079 var6 = NULL;
3080 var7 = NULL;
3081 ((void (*)(val*, val*, val*, val*, val*, val*))(var5->class->vft[COLOR_parser_prod__ASignature__init_asignature]))(var5, var6, var_listnode3, var7, var_ptypenode5, var_listnode6) /* init_asignature on <var5:ASignature>*/;
3082 CHECK_NEW_parser_nodes__ASignature(var5);
3083 var_psignaturenode1 = var5;
3084 var_node_list = var_psignaturenode1;
3085 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction562> */
3086 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
3087 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
3088 RET_LABEL:;
3089 }
3090 /* method parser#ReduceAction562#action for (self: Object, Parser) */
3091 void VIRTUAL_parser__ReduceAction562__action(val* self, val* p0) {
3092 parser__ReduceAction562__action(self, p0);
3093 RET_LABEL:;
3094 }
3095 /* method parser#ReduceAction563#action for (self: ReduceAction563, Parser) */
3096 void parser__ReduceAction563__action(val* self, val* p0) {
3097 val* var_p /* var p: Parser */;
3098 val* var /* : null */;
3099 val* var_node_list /* var node_list: nullable Object */;
3100 val* var1 /* : nullable Object */;
3101 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3102 val* var2 /* : nullable Object */;
3103 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3104 val* var3 /* : Array[Object] */;
3105 val* var_listnode2 /* var listnode2: Array[Object] */;
3106 val* var_pparamnode1 /* var pparamnode1: nullable Object */;
3107 val* var4 /* : null */;
3108 short int var5 /* : Bool */;
3109 long var6 /* : Int */;
3110 long var7 /* : Int */;
3111 var_p = p0;
3112 var = NULL;
3113 var_node_list = var;
3114 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3115 var_nodearraylist2 = var1;
3116 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3117 var_nodearraylist1 = var2;
3118 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
3119 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
3120 CHECK_NEW_array__Array(var3);
3121 var_listnode2 = var3;
3122 var_pparamnode1 = var_nodearraylist1;
3123 var4 = NULL;
3124 if (var_pparamnode1 == NULL) {
3125 var5 = 0; /* is null */
3126 } else {
3127 var5 = 1; /* arg is null and recv is not */
3128 }
3129 if (var5){
3130 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_pparamnode1) /* add on <var_listnode2:Array[Object]>*/;
3131 } else {
3132 }
3133 var_node_list = var_listnode2;
3134 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction563> */
3135 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
3136 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
3137 RET_LABEL:;
3138 }
3139 /* method parser#ReduceAction563#action for (self: Object, Parser) */
3140 void VIRTUAL_parser__ReduceAction563__action(val* self, val* p0) {
3141 parser__ReduceAction563__action(self, p0);
3142 RET_LABEL:;
3143 }
3144 /* method parser#ReduceAction564#action for (self: ReduceAction564, Parser) */
3145 void parser__ReduceAction564__action(val* self, val* p0) {
3146 val* var_p /* var p: Parser */;
3147 val* var /* : null */;
3148 val* var_node_list /* var node_list: nullable Object */;
3149 val* var1 /* : nullable Object */;
3150 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3151 val* var2 /* : nullable Object */;
3152 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3153 val* var3 /* : nullable Object */;
3154 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3155 val* var4 /* : Array[Object] */;
3156 val* var_listnode3 /* var listnode3: Array[Object] */;
3157 val* var_pparamnode1 /* var pparamnode1: nullable Object */;
3158 val* var_listnode2 /* var listnode2: nullable Object */;
3159 short int var5 /* : Bool */;
3160 int cltype;
3161 int idtype;
3162 val* var6 /* : null */;
3163 short int var7 /* : Bool */;
3164 val* var8 /* : Array[Object] */;
3165 long var9 /* : Int */;
3166 long var10 /* : Int */;
3167 var_p = p0;
3168 var = NULL;
3169 var_node_list = var;
3170 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3171 var_nodearraylist3 = var1;
3172 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3173 var_nodearraylist2 = var2;
3174 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3175 var_nodearraylist1 = var3;
3176 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
3177 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
3178 CHECK_NEW_array__Array(var4);
3179 var_listnode3 = var4;
3180 var_pparamnode1 = var_nodearraylist1;
3181 var_listnode2 = var_nodearraylist2;
3182 /* <var_listnode2:nullable Object> isa Array[Object] */
3183 cltype = type_array__Arraykernel__Object.color;
3184 idtype = type_array__Arraykernel__Object.id;
3185 if(var_listnode2 == NULL) {
3186 var5 = 0;
3187 } else {
3188 if(cltype >= var_listnode2->type->table_size) {
3189 var5 = 0;
3190 } else {
3191 var5 = var_listnode2->type->type_table[cltype] == idtype;
3192 }
3193 }
3194 if (!var5) {
3195 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23744);
3196 exit(1);
3197 }
3198 var6 = NULL;
3199 if (var_pparamnode1 == NULL) {
3200 var7 = 0; /* is null */
3201 } else {
3202 var7 = 1; /* arg is null and recv is not */
3203 }
3204 if (var7){
3205 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pparamnode1) /* add on <var_listnode3:Array[Object]>*/;
3206 } else {
3207 }
3208 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode2) /* concat on <self:ReduceAction564>*/;
3209 var_listnode3 = var8;
3210 var_node_list = var_listnode3;
3211 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction564> */
3212 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
3213 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
3214 RET_LABEL:;
3215 }
3216 /* method parser#ReduceAction564#action for (self: Object, Parser) */
3217 void VIRTUAL_parser__ReduceAction564__action(val* self, val* p0) {
3218 parser__ReduceAction564__action(self, p0);
3219 RET_LABEL:;
3220 }
3221 /* method parser#ReduceAction565#action for (self: ReduceAction565, Parser) */
3222 void parser__ReduceAction565__action(val* self, val* p0) {
3223 val* var_p /* var p: Parser */;
3224 val* var /* : null */;
3225 val* var_node_list /* var node_list: nullable Object */;
3226 val* var1 /* : nullable Object */;
3227 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3228 val* var2 /* : nullable Object */;
3229 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3230 val* var3 /* : nullable Object */;
3231 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3232 val* var_pparamnode1 /* var pparamnode1: nullable Object */;
3233 long var4 /* : Int */;
3234 long var5 /* : Int */;
3235 var_p = p0;
3236 var = NULL;
3237 var_node_list = var;
3238 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3239 var_nodearraylist3 = var1;
3240 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3241 var_nodearraylist2 = var2;
3242 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3243 var_nodearraylist1 = var3;
3244 var_pparamnode1 = var_nodearraylist3;
3245 var_node_list = var_pparamnode1;
3246 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction565> */
3247 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
3248 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
3249 RET_LABEL:;
3250 }
3251 /* method parser#ReduceAction565#action for (self: Object, Parser) */
3252 void VIRTUAL_parser__ReduceAction565__action(val* self, val* p0) {
3253 parser__ReduceAction565__action(self, p0);
3254 RET_LABEL:;
3255 }
3256 /* method parser#ReduceAction566#action for (self: ReduceAction566, Parser) */
3257 void parser__ReduceAction566__action(val* self, val* p0) {
3258 val* var_p /* var p: Parser */;
3259 val* var /* : null */;
3260 val* var_node_list /* var node_list: nullable Object */;
3261 val* var1 /* : nullable Object */;
3262 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3263 val* var_tidnode2 /* var tidnode2: nullable Object */;
3264 short int var2 /* : Bool */;
3265 int cltype;
3266 int idtype;
3267 val* var3 /* : AParam */;
3268 val* var4 /* : null */;
3269 val* var5 /* : null */;
3270 val* var6 /* : null */;
3271 val* var_pparamnode1 /* var pparamnode1: nullable AParam */;
3272 long var7 /* : Int */;
3273 long var8 /* : Int */;
3274 var_p = p0;
3275 var = NULL;
3276 var_node_list = var;
3277 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3278 var_nodearraylist1 = var1;
3279 var_tidnode2 = var_nodearraylist1;
3280 /* <var_tidnode2:nullable Object> isa nullable TId */
3281 cltype = type_nullable_parser_nodes__TId.color;
3282 idtype = type_nullable_parser_nodes__TId.id;
3283 if(var_tidnode2 == NULL) {
3284 var2 = 1;
3285 } else {
3286 if(cltype >= var_tidnode2->type->table_size) {
3287 var2 = 0;
3288 } else {
3289 var2 = var_tidnode2->type->type_table[cltype] == idtype;
3290 }
3291 }
3292 if (!var2) {
3293 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23773);
3294 exit(1);
3295 }
3296 var3 = NEW_parser_nodes__AParam(&type_parser_nodes__AParam);
3297 var4 = NULL;
3298 var5 = NULL;
3299 var6 = NULL;
3300 ((void (*)(val*, val*, val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AParam__init_aparam]))(var3, var_tidnode2, var4, var5, var6) /* init_aparam on <var3:AParam>*/;
3301 CHECK_NEW_parser_nodes__AParam(var3);
3302 var_pparamnode1 = var3;
3303 var_node_list = var_pparamnode1;
3304 var7 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction566> */
3305 var8 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var7) /* go_to on <var_p:Parser>*/;
3306 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var8, var_node_list) /* push on <var_p:Parser>*/;
3307 RET_LABEL:;
3308 }
3309 /* method parser#ReduceAction566#action for (self: Object, Parser) */
3310 void VIRTUAL_parser__ReduceAction566__action(val* self, val* p0) {
3311 parser__ReduceAction566__action(self, p0);
3312 RET_LABEL:;
3313 }
3314 /* method parser#ReduceAction567#action for (self: ReduceAction567, Parser) */
3315 void parser__ReduceAction567__action(val* self, val* p0) {
3316 val* var_p /* var p: Parser */;
3317 val* var /* : null */;
3318 val* var_node_list /* var node_list: nullable Object */;
3319 val* var1 /* : nullable Object */;
3320 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3321 val* var2 /* : nullable Object */;
3322 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3323 val* var_tidnode2 /* var tidnode2: nullable Object */;
3324 short int var3 /* : Bool */;
3325 int cltype;
3326 int idtype;
3327 val* var_pannotationsnode5 /* var pannotationsnode5: nullable Object */;
3328 short int var4 /* : Bool */;
3329 int cltype5;
3330 int idtype6;
3331 val* var7 /* : AParam */;
3332 val* var8 /* : null */;
3333 val* var9 /* : null */;
3334 val* var_pparamnode1 /* var pparamnode1: nullable AParam */;
3335 long var10 /* : Int */;
3336 long var11 /* : Int */;
3337 var_p = p0;
3338 var = NULL;
3339 var_node_list = var;
3340 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3341 var_nodearraylist2 = var1;
3342 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3343 var_nodearraylist1 = var2;
3344 var_tidnode2 = var_nodearraylist1;
3345 /* <var_tidnode2:nullable Object> isa nullable TId */
3346 cltype = type_nullable_parser_nodes__TId.color;
3347 idtype = type_nullable_parser_nodes__TId.id;
3348 if(var_tidnode2 == NULL) {
3349 var3 = 1;
3350 } else {
3351 if(cltype >= var_tidnode2->type->table_size) {
3352 var3 = 0;
3353 } else {
3354 var3 = var_tidnode2->type->type_table[cltype] == idtype;
3355 }
3356 }
3357 if (!var3) {
3358 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23792);
3359 exit(1);
3360 }
3361 var_pannotationsnode5 = var_nodearraylist2;
3362 /* <var_pannotationsnode5:nullable Object> isa nullable AAnnotations */
3363 cltype5 = type_nullable_parser_nodes__AAnnotations.color;
3364 idtype6 = type_nullable_parser_nodes__AAnnotations.id;
3365 if(var_pannotationsnode5 == NULL) {
3366 var4 = 1;
3367 } else {
3368 if(cltype5 >= var_pannotationsnode5->type->table_size) {
3369 var4 = 0;
3370 } else {
3371 var4 = var_pannotationsnode5->type->type_table[cltype5] == idtype6;
3372 }
3373 }
3374 if (!var4) {
3375 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23794);
3376 exit(1);
3377 }
3378 var7 = NEW_parser_nodes__AParam(&type_parser_nodes__AParam);
3379 var8 = NULL;
3380 var9 = NULL;
3381 ((void (*)(val*, val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AParam__init_aparam]))(var7, var_tidnode2, var8, var9, var_pannotationsnode5) /* init_aparam on <var7:AParam>*/;
3382 CHECK_NEW_parser_nodes__AParam(var7);
3383 var_pparamnode1 = var7;
3384 var_node_list = var_pparamnode1;
3385 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction567> */
3386 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
3387 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
3388 RET_LABEL:;
3389 }
3390 /* method parser#ReduceAction567#action for (self: Object, Parser) */
3391 void VIRTUAL_parser__ReduceAction567__action(val* self, val* p0) {
3392 parser__ReduceAction567__action(self, p0);
3393 RET_LABEL:;
3394 }
3395 /* method parser#ReduceAction568#action for (self: ReduceAction568, Parser) */
3396 void parser__ReduceAction568__action(val* self, val* p0) {
3397 val* var_p /* var p: Parser */;
3398 val* var /* : null */;
3399 val* var_node_list /* var node_list: nullable Object */;
3400 val* var1 /* : nullable Object */;
3401 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3402 val* var2 /* : nullable Object */;
3403 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3404 val* var_tidnode2 /* var tidnode2: nullable Object */;
3405 short int var3 /* : Bool */;
3406 int cltype;
3407 int idtype;
3408 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
3409 short int var4 /* : Bool */;
3410 int cltype5;
3411 int idtype6;
3412 val* var7 /* : AParam */;
3413 val* var8 /* : null */;
3414 val* var9 /* : null */;
3415 val* var_pparamnode1 /* var pparamnode1: nullable AParam */;
3416 long var10 /* : Int */;
3417 long var11 /* : Int */;
3418 var_p = p0;
3419 var = NULL;
3420 var_node_list = var;
3421 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3422 var_nodearraylist2 = var1;
3423 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3424 var_nodearraylist1 = var2;
3425 var_tidnode2 = var_nodearraylist1;
3426 /* <var_tidnode2:nullable Object> isa nullable TId */
3427 cltype = type_nullable_parser_nodes__TId.color;
3428 idtype = type_nullable_parser_nodes__TId.id;
3429 if(var_tidnode2 == NULL) {
3430 var3 = 1;
3431 } else {
3432 if(cltype >= var_tidnode2->type->table_size) {
3433 var3 = 0;
3434 } else {
3435 var3 = var_tidnode2->type->type_table[cltype] == idtype;
3436 }
3437 }
3438 if (!var3) {
3439 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23813);
3440 exit(1);
3441 }
3442 var_ptypenode3 = var_nodearraylist2;
3443 /* <var_ptypenode3:nullable Object> isa nullable AType */
3444 cltype5 = type_nullable_parser_nodes__AType.color;
3445 idtype6 = type_nullable_parser_nodes__AType.id;
3446 if(var_ptypenode3 == NULL) {
3447 var4 = 1;
3448 } else {
3449 if(cltype5 >= var_ptypenode3->type->table_size) {
3450 var4 = 0;
3451 } else {
3452 var4 = var_ptypenode3->type->type_table[cltype5] == idtype6;
3453 }
3454 }
3455 if (!var4) {
3456 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23815);
3457 exit(1);
3458 }
3459 var7 = NEW_parser_nodes__AParam(&type_parser_nodes__AParam);
3460 var8 = NULL;
3461 var9 = NULL;
3462 ((void (*)(val*, val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AParam__init_aparam]))(var7, var_tidnode2, var_ptypenode3, var8, var9) /* init_aparam on <var7:AParam>*/;
3463 CHECK_NEW_parser_nodes__AParam(var7);
3464 var_pparamnode1 = var7;
3465 var_node_list = var_pparamnode1;
3466 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction568> */
3467 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
3468 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
3469 RET_LABEL:;
3470 }
3471 /* method parser#ReduceAction568#action for (self: Object, Parser) */
3472 void VIRTUAL_parser__ReduceAction568__action(val* self, val* p0) {
3473 parser__ReduceAction568__action(self, p0);
3474 RET_LABEL:;
3475 }
3476 /* method parser#ReduceAction569#action for (self: ReduceAction569, Parser) */
3477 void parser__ReduceAction569__action(val* self, val* p0) {
3478 val* var_p /* var p: Parser */;
3479 val* var /* : null */;
3480 val* var_node_list /* var node_list: nullable Object */;
3481 val* var1 /* : nullable Object */;
3482 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3483 val* var2 /* : nullable Object */;
3484 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3485 val* var3 /* : nullable Object */;
3486 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3487 val* var_tidnode2 /* var tidnode2: nullable Object */;
3488 short int var4 /* : Bool */;
3489 int cltype;
3490 int idtype;
3491 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
3492 short int var5 /* : Bool */;
3493 int cltype6;
3494 int idtype7;
3495 val* var_pannotationsnode5 /* var pannotationsnode5: nullable Object */;
3496 short int var8 /* : Bool */;
3497 int cltype9;
3498 int idtype10;
3499 val* var11 /* : AParam */;
3500 val* var12 /* : null */;
3501 val* var_pparamnode1 /* var pparamnode1: nullable AParam */;
3502 long var13 /* : Int */;
3503 long var14 /* : Int */;
3504 var_p = p0;
3505 var = NULL;
3506 var_node_list = var;
3507 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3508 var_nodearraylist3 = var1;
3509 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3510 var_nodearraylist2 = var2;
3511 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3512 var_nodearraylist1 = var3;
3513 var_tidnode2 = var_nodearraylist1;
3514 /* <var_tidnode2:nullable Object> isa nullable TId */
3515 cltype = type_nullable_parser_nodes__TId.color;
3516 idtype = type_nullable_parser_nodes__TId.id;
3517 if(var_tidnode2 == NULL) {
3518 var4 = 1;
3519 } else {
3520 if(cltype >= var_tidnode2->type->table_size) {
3521 var4 = 0;
3522 } else {
3523 var4 = var_tidnode2->type->type_table[cltype] == idtype;
3524 }
3525 }
3526 if (!var4) {
3527 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23835);
3528 exit(1);
3529 }
3530 var_ptypenode3 = var_nodearraylist3;
3531 /* <var_ptypenode3:nullable Object> isa nullable AType */
3532 cltype6 = type_nullable_parser_nodes__AType.color;
3533 idtype7 = type_nullable_parser_nodes__AType.id;
3534 if(var_ptypenode3 == NULL) {
3535 var5 = 1;
3536 } else {
3537 if(cltype6 >= var_ptypenode3->type->table_size) {
3538 var5 = 0;
3539 } else {
3540 var5 = var_ptypenode3->type->type_table[cltype6] == idtype7;
3541 }
3542 }
3543 if (!var5) {
3544 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23837);
3545 exit(1);
3546 }
3547 var_pannotationsnode5 = var_nodearraylist2;
3548 /* <var_pannotationsnode5:nullable Object> isa nullable AAnnotations */
3549 cltype9 = type_nullable_parser_nodes__AAnnotations.color;
3550 idtype10 = type_nullable_parser_nodes__AAnnotations.id;
3551 if(var_pannotationsnode5 == NULL) {
3552 var8 = 1;
3553 } else {
3554 if(cltype9 >= var_pannotationsnode5->type->table_size) {
3555 var8 = 0;
3556 } else {
3557 var8 = var_pannotationsnode5->type->type_table[cltype9] == idtype10;
3558 }
3559 }
3560 if (!var8) {
3561 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23839);
3562 exit(1);
3563 }
3564 var11 = NEW_parser_nodes__AParam(&type_parser_nodes__AParam);
3565 var12 = NULL;
3566 ((void (*)(val*, val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AParam__init_aparam]))(var11, var_tidnode2, var_ptypenode3, var12, var_pannotationsnode5) /* init_aparam on <var11:AParam>*/;
3567 CHECK_NEW_parser_nodes__AParam(var11);
3568 var_pparamnode1 = var11;
3569 var_node_list = var_pparamnode1;
3570 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction569> */
3571 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
3572 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
3573 RET_LABEL:;
3574 }
3575 /* method parser#ReduceAction569#action for (self: Object, Parser) */
3576 void VIRTUAL_parser__ReduceAction569__action(val* self, val* p0) {
3577 parser__ReduceAction569__action(self, p0);
3578 RET_LABEL:;
3579 }
3580 /* method parser#ReduceAction570#action for (self: ReduceAction570, Parser) */
3581 void parser__ReduceAction570__action(val* self, val* p0) {
3582 val* var_p /* var p: Parser */;
3583 val* var /* : null */;
3584 val* var_node_list /* var node_list: nullable Object */;
3585 val* var1 /* : nullable Object */;
3586 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3587 val* var2 /* : nullable Object */;
3588 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3589 val* var3 /* : nullable Object */;
3590 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3591 val* var_tidnode2 /* var tidnode2: nullable Object */;
3592 short int var4 /* : Bool */;
3593 int cltype;
3594 int idtype;
3595 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
3596 short int var5 /* : Bool */;
3597 int cltype6;
3598 int idtype7;
3599 val* var_tdotdotdotnode4 /* var tdotdotdotnode4: nullable Object */;
3600 short int var8 /* : Bool */;
3601 int cltype9;
3602 int idtype10;
3603 val* var11 /* : AParam */;
3604 val* var12 /* : null */;
3605 val* var_pparamnode1 /* var pparamnode1: nullable AParam */;
3606 long var13 /* : Int */;
3607 long var14 /* : Int */;
3608 var_p = p0;
3609 var = NULL;
3610 var_node_list = var;
3611 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3612 var_nodearraylist3 = var1;
3613 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3614 var_nodearraylist2 = var2;
3615 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3616 var_nodearraylist1 = var3;
3617 var_tidnode2 = var_nodearraylist1;
3618 /* <var_tidnode2:nullable Object> isa nullable TId */
3619 cltype = type_nullable_parser_nodes__TId.color;
3620 idtype = type_nullable_parser_nodes__TId.id;
3621 if(var_tidnode2 == NULL) {
3622 var4 = 1;
3623 } else {
3624 if(cltype >= var_tidnode2->type->table_size) {
3625 var4 = 0;
3626 } else {
3627 var4 = var_tidnode2->type->type_table[cltype] == idtype;
3628 }
3629 }
3630 if (!var4) {
3631 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23859);
3632 exit(1);
3633 }
3634 var_ptypenode3 = var_nodearraylist2;
3635 /* <var_ptypenode3:nullable Object> isa nullable AType */
3636 cltype6 = type_nullable_parser_nodes__AType.color;
3637 idtype7 = type_nullable_parser_nodes__AType.id;
3638 if(var_ptypenode3 == NULL) {
3639 var5 = 1;
3640 } else {
3641 if(cltype6 >= var_ptypenode3->type->table_size) {
3642 var5 = 0;
3643 } else {
3644 var5 = var_ptypenode3->type->type_table[cltype6] == idtype7;
3645 }
3646 }
3647 if (!var5) {
3648 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23861);
3649 exit(1);
3650 }
3651 var_tdotdotdotnode4 = var_nodearraylist3;
3652 /* <var_tdotdotdotnode4:nullable Object> isa nullable TDotdotdot */
3653 cltype9 = type_nullable_parser_nodes__TDotdotdot.color;
3654 idtype10 = type_nullable_parser_nodes__TDotdotdot.id;
3655 if(var_tdotdotdotnode4 == NULL) {
3656 var8 = 1;
3657 } else {
3658 if(cltype9 >= var_tdotdotdotnode4->type->table_size) {
3659 var8 = 0;
3660 } else {
3661 var8 = var_tdotdotdotnode4->type->type_table[cltype9] == idtype10;
3662 }
3663 }
3664 if (!var8) {
3665 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23863);
3666 exit(1);
3667 }
3668 var11 = NEW_parser_nodes__AParam(&type_parser_nodes__AParam);
3669 var12 = NULL;
3670 ((void (*)(val*, val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AParam__init_aparam]))(var11, var_tidnode2, var_ptypenode3, var_tdotdotdotnode4, var12) /* init_aparam on <var11:AParam>*/;
3671 CHECK_NEW_parser_nodes__AParam(var11);
3672 var_pparamnode1 = var11;
3673 var_node_list = var_pparamnode1;
3674 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction570> */
3675 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
3676 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
3677 RET_LABEL:;
3678 }
3679 /* method parser#ReduceAction570#action for (self: Object, Parser) */
3680 void VIRTUAL_parser__ReduceAction570__action(val* self, val* p0) {
3681 parser__ReduceAction570__action(self, p0);
3682 RET_LABEL:;
3683 }
3684 /* method parser#ReduceAction571#action for (self: ReduceAction571, Parser) */
3685 void parser__ReduceAction571__action(val* self, val* p0) {
3686 val* var_p /* var p: Parser */;
3687 val* var /* : null */;
3688 val* var_node_list /* var node_list: nullable Object */;
3689 val* var1 /* : nullable Object */;
3690 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3691 val* var2 /* : nullable Object */;
3692 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3693 val* var3 /* : nullable Object */;
3694 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3695 val* var4 /* : nullable Object */;
3696 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3697 val* var_tidnode2 /* var tidnode2: nullable Object */;
3698 short int var5 /* : Bool */;
3699 int cltype;
3700 int idtype;
3701 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
3702 short int var6 /* : Bool */;
3703 int cltype7;
3704 int idtype8;
3705 val* var_tdotdotdotnode4 /* var tdotdotdotnode4: nullable Object */;
3706 short int var9 /* : Bool */;
3707 int cltype10;
3708 int idtype11;
3709 val* var_pannotationsnode5 /* var pannotationsnode5: nullable Object */;
3710 short int var12 /* : Bool */;
3711 int cltype13;
3712 int idtype14;
3713 val* var15 /* : AParam */;
3714 val* var_pparamnode1 /* var pparamnode1: nullable AParam */;
3715 long var16 /* : Int */;
3716 long var17 /* : Int */;
3717 var_p = p0;
3718 var = NULL;
3719 var_node_list = var;
3720 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3721 var_nodearraylist4 = var1;
3722 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3723 var_nodearraylist3 = var2;
3724 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3725 var_nodearraylist2 = var3;
3726 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3727 var_nodearraylist1 = var4;
3728 var_tidnode2 = var_nodearraylist1;
3729 /* <var_tidnode2:nullable Object> isa nullable TId */
3730 cltype = type_nullable_parser_nodes__TId.color;
3731 idtype = type_nullable_parser_nodes__TId.id;
3732 if(var_tidnode2 == NULL) {
3733 var5 = 1;
3734 } else {
3735 if(cltype >= var_tidnode2->type->table_size) {
3736 var5 = 0;
3737 } else {
3738 var5 = var_tidnode2->type->type_table[cltype] == idtype;
3739 }
3740 }
3741 if (!var5) {
3742 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23884);
3743 exit(1);
3744 }
3745 var_ptypenode3 = var_nodearraylist3;
3746 /* <var_ptypenode3:nullable Object> isa nullable AType */
3747 cltype7 = type_nullable_parser_nodes__AType.color;
3748 idtype8 = type_nullable_parser_nodes__AType.id;
3749 if(var_ptypenode3 == NULL) {
3750 var6 = 1;
3751 } else {
3752 if(cltype7 >= var_ptypenode3->type->table_size) {
3753 var6 = 0;
3754 } else {
3755 var6 = var_ptypenode3->type->type_table[cltype7] == idtype8;
3756 }
3757 }
3758 if (!var6) {
3759 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23886);
3760 exit(1);
3761 }
3762 var_tdotdotdotnode4 = var_nodearraylist4;
3763 /* <var_tdotdotdotnode4:nullable Object> isa nullable TDotdotdot */
3764 cltype10 = type_nullable_parser_nodes__TDotdotdot.color;
3765 idtype11 = type_nullable_parser_nodes__TDotdotdot.id;
3766 if(var_tdotdotdotnode4 == NULL) {
3767 var9 = 1;
3768 } else {
3769 if(cltype10 >= var_tdotdotdotnode4->type->table_size) {
3770 var9 = 0;
3771 } else {
3772 var9 = var_tdotdotdotnode4->type->type_table[cltype10] == idtype11;
3773 }
3774 }
3775 if (!var9) {
3776 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23888);
3777 exit(1);
3778 }
3779 var_pannotationsnode5 = var_nodearraylist2;
3780 /* <var_pannotationsnode5:nullable Object> isa nullable AAnnotations */
3781 cltype13 = type_nullable_parser_nodes__AAnnotations.color;
3782 idtype14 = type_nullable_parser_nodes__AAnnotations.id;
3783 if(var_pannotationsnode5 == NULL) {
3784 var12 = 1;
3785 } else {
3786 if(cltype13 >= var_pannotationsnode5->type->table_size) {
3787 var12 = 0;
3788 } else {
3789 var12 = var_pannotationsnode5->type->type_table[cltype13] == idtype14;
3790 }
3791 }
3792 if (!var12) {
3793 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23890);
3794 exit(1);
3795 }
3796 var15 = NEW_parser_nodes__AParam(&type_parser_nodes__AParam);
3797 ((void (*)(val*, val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__AParam__init_aparam]))(var15, var_tidnode2, var_ptypenode3, var_tdotdotdotnode4, var_pannotationsnode5) /* init_aparam on <var15:AParam>*/;
3798 CHECK_NEW_parser_nodes__AParam(var15);
3799 var_pparamnode1 = var15;
3800 var_node_list = var_pparamnode1;
3801 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction571> */
3802 var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
3803 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
3804 RET_LABEL:;
3805 }
3806 /* method parser#ReduceAction571#action for (self: Object, Parser) */
3807 void VIRTUAL_parser__ReduceAction571__action(val* self, val* p0) {
3808 parser__ReduceAction571__action(self, p0);
3809 RET_LABEL:;
3810 }
3811 /* method parser#ReduceAction572#action for (self: ReduceAction572, Parser) */
3812 void parser__ReduceAction572__action(val* self, val* p0) {
3813 val* var_p /* var p: Parser */;
3814 val* var /* : null */;
3815 val* var_node_list /* var node_list: nullable Object */;
3816 val* var1 /* : nullable Object */;
3817 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3818 val* var2 /* : Array[Object] */;
3819 val* var_listnode2 /* var listnode2: Array[Object] */;
3820 val* var_listnode1 /* var listnode1: nullable Object */;
3821 short int var3 /* : Bool */;
3822 int cltype;
3823 int idtype;
3824 val* var4 /* : Array[Object] */;
3825 long var5 /* : Int */;
3826 long var6 /* : Int */;
3827 var_p = p0;
3828 var = NULL;
3829 var_node_list = var;
3830 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3831 var_nodearraylist1 = var1;
3832 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
3833 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
3834 CHECK_NEW_array__Array(var2);
3835 var_listnode2 = var2;
3836 var_listnode1 = var_nodearraylist1;
3837 /* <var_listnode1:nullable Object> isa Array[Object] */
3838 cltype = type_array__Arraykernel__Object.color;
3839 idtype = type_array__Arraykernel__Object.id;
3840 if(var_listnode1 == NULL) {
3841 var3 = 0;
3842 } else {
3843 if(cltype >= var_listnode1->type->table_size) {
3844 var3 = 0;
3845 } else {
3846 var3 = var_listnode1->type->type_table[cltype] == idtype;
3847 }
3848 }
3849 if (!var3) {
3850 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23909);
3851 exit(1);
3852 }
3853 var4 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode2, var_listnode1) /* concat on <self:ReduceAction572>*/;
3854 var_listnode2 = var4;
3855 var_node_list = var_listnode2;
3856 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction572> */
3857 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
3858 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
3859 RET_LABEL:;
3860 }
3861 /* method parser#ReduceAction572#action for (self: Object, Parser) */
3862 void VIRTUAL_parser__ReduceAction572__action(val* self, val* p0) {
3863 parser__ReduceAction572__action(self, p0);
3864 RET_LABEL:;
3865 }
3866 /* method parser#ReduceAction573#action for (self: ReduceAction573, Parser) */
3867 void parser__ReduceAction573__action(val* self, val* p0) {
3868 val* var_p /* var p: Parser */;
3869 val* var /* : null */;
3870 val* var_node_list /* var node_list: nullable Object */;
3871 val* var1 /* : nullable Object */;
3872 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3873 val* var2 /* : nullable Object */;
3874 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3875 val* var3 /* : nullable Object */;
3876 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3877 val* var4 /* : nullable Object */;
3878 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3879 val* var_tbangnode3 /* var tbangnode3: nullable Object */;
3880 short int var5 /* : Bool */;
3881 int cltype;
3882 int idtype;
3883 val* var_tidnode4 /* var tidnode4: nullable Object */;
3884 short int var6 /* : Bool */;
3885 int cltype7;
3886 int idtype8;
3887 val* var_psignaturenode5 /* var psignaturenode5: nullable Object */;
3888 short int var9 /* : Bool */;
3889 int cltype10;
3890 int idtype11;
3891 val* var12 /* : AClosureDecl */;
3892 val* var13 /* : null */;
3893 val* var14 /* : null */;
3894 val* var_pclosuredeclnode1 /* var pclosuredeclnode1: nullable AClosureDecl */;
3895 long var15 /* : Int */;
3896 long var16 /* : Int */;
3897 var_p = p0;
3898 var = NULL;
3899 var_node_list = var;
3900 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3901 var_nodearraylist4 = var1;
3902 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3903 var_nodearraylist3 = var2;
3904 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3905 var_nodearraylist2 = var3;
3906 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3907 var_nodearraylist1 = var4;
3908 var_tbangnode3 = var_nodearraylist1;
3909 /* <var_tbangnode3:nullable Object> isa nullable TBang */
3910 cltype = type_nullable_parser_nodes__TBang.color;
3911 idtype = type_nullable_parser_nodes__TBang.id;
3912 if(var_tbangnode3 == NULL) {
3913 var5 = 1;
3914 } else {
3915 if(cltype >= var_tbangnode3->type->table_size) {
3916 var5 = 0;
3917 } else {
3918 var5 = var_tbangnode3->type->type_table[cltype] == idtype;
3919 }
3920 }
3921 if (!var5) {
3922 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23925);
3923 exit(1);
3924 }
3925 var_tidnode4 = var_nodearraylist2;
3926 /* <var_tidnode4:nullable Object> isa nullable TId */
3927 cltype7 = type_nullable_parser_nodes__TId.color;
3928 idtype8 = type_nullable_parser_nodes__TId.id;
3929 if(var_tidnode4 == NULL) {
3930 var6 = 1;
3931 } else {
3932 if(cltype7 >= var_tidnode4->type->table_size) {
3933 var6 = 0;
3934 } else {
3935 var6 = var_tidnode4->type->type_table[cltype7] == idtype8;
3936 }
3937 }
3938 if (!var6) {
3939 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23927);
3940 exit(1);
3941 }
3942 var_psignaturenode5 = var_nodearraylist3;
3943 /* <var_psignaturenode5:nullable Object> isa nullable ASignature */
3944 cltype10 = type_nullable_parser_nodes__ASignature.color;
3945 idtype11 = type_nullable_parser_nodes__ASignature.id;
3946 if(var_psignaturenode5 == NULL) {
3947 var9 = 1;
3948 } else {
3949 if(cltype10 >= var_psignaturenode5->type->table_size) {
3950 var9 = 0;
3951 } else {
3952 var9 = var_psignaturenode5->type->type_table[cltype10] == idtype11;
3953 }
3954 }
3955 if (!var9) {
3956 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23929);
3957 exit(1);
3958 }
3959 var12 = NEW_parser_nodes__AClosureDecl(&type_parser_nodes__AClosureDecl);
3960 var13 = NULL;
3961 var14 = NULL;
3962 ((void (*)(val*, val*, val*, val*, val*, val*))(var12->class->vft[COLOR_parser_prod__AClosureDecl__init_aclosuredecl]))(var12, var13, var_tbangnode3, var_tidnode4, var_psignaturenode5, var14) /* init_aclosuredecl on <var12:AClosureDecl>*/;
3963 CHECK_NEW_parser_nodes__AClosureDecl(var12);
3964 var_pclosuredeclnode1 = var12;
3965 var_node_list = var_pclosuredeclnode1;
3966 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction573> */
3967 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
3968 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
3969 RET_LABEL:;
3970 }
3971 /* method parser#ReduceAction573#action for (self: Object, Parser) */
3972 void VIRTUAL_parser__ReduceAction573__action(val* self, val* p0) {
3973 parser__ReduceAction573__action(self, p0);
3974 RET_LABEL:;
3975 }
3976 /* method parser#ReduceAction574#action for (self: ReduceAction574, Parser) */
3977 void parser__ReduceAction574__action(val* self, val* p0) {
3978 val* var_p /* var p: Parser */;
3979 val* var /* : null */;
3980 val* var_node_list /* var node_list: nullable Object */;
3981 val* var1 /* : nullable Object */;
3982 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
3983 val* var2 /* : nullable Object */;
3984 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3985 val* var3 /* : nullable Object */;
3986 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3987 val* var4 /* : nullable Object */;
3988 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3989 val* var5 /* : nullable Object */;
3990 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3991 val* var_tkwbreaknode2 /* var tkwbreaknode2: nullable Object */;
3992 short int var6 /* : Bool */;
3993 int cltype;
3994 int idtype;
3995 val* var_tbangnode3 /* var tbangnode3: nullable Object */;
3996 short int var7 /* : Bool */;
3997 int cltype8;
3998 int idtype9;
3999 val* var_tidnode4 /* var tidnode4: nullable Object */;
4000 short int var10 /* : Bool */;
4001 int cltype11;
4002 int idtype12;
4003 val* var_psignaturenode5 /* var psignaturenode5: nullable Object */;
4004 short int var13 /* : Bool */;
4005 int cltype14;
4006 int idtype15;
4007 val* var16 /* : AClosureDecl */;
4008 val* var17 /* : null */;
4009 val* var_pclosuredeclnode1 /* var pclosuredeclnode1: nullable AClosureDecl */;
4010 long var18 /* : Int */;
4011 long var19 /* : Int */;
4012 var_p = p0;
4013 var = NULL;
4014 var_node_list = var;
4015 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4016 var_nodearraylist5 = var1;
4017 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4018 var_nodearraylist4 = var2;
4019 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4020 var_nodearraylist3 = var3;
4021 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4022 var_nodearraylist2 = var4;
4023 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4024 var_nodearraylist1 = var5;
4025 var_tkwbreaknode2 = var_nodearraylist1;
4026 /* <var_tkwbreaknode2:nullable Object> isa nullable TKwbreak */
4027 cltype = type_nullable_parser_nodes__TKwbreak.color;
4028 idtype = type_nullable_parser_nodes__TKwbreak.id;
4029 if(var_tkwbreaknode2 == NULL) {
4030 var6 = 1;
4031 } else {
4032 if(cltype >= var_tkwbreaknode2->type->table_size) {
4033 var6 = 0;
4034 } else {
4035 var6 = var_tkwbreaknode2->type->type_table[cltype] == idtype;
4036 }
4037 }
4038 if (!var6) {
4039 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23952);
4040 exit(1);
4041 }
4042 var_tbangnode3 = var_nodearraylist2;
4043 /* <var_tbangnode3:nullable Object> isa nullable TBang */
4044 cltype8 = type_nullable_parser_nodes__TBang.color;
4045 idtype9 = type_nullable_parser_nodes__TBang.id;
4046 if(var_tbangnode3 == NULL) {
4047 var7 = 1;
4048 } else {
4049 if(cltype8 >= var_tbangnode3->type->table_size) {
4050 var7 = 0;
4051 } else {
4052 var7 = var_tbangnode3->type->type_table[cltype8] == idtype9;
4053 }
4054 }
4055 if (!var7) {
4056 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23954);
4057 exit(1);
4058 }
4059 var_tidnode4 = var_nodearraylist3;
4060 /* <var_tidnode4:nullable Object> isa nullable TId */
4061 cltype11 = type_nullable_parser_nodes__TId.color;
4062 idtype12 = type_nullable_parser_nodes__TId.id;
4063 if(var_tidnode4 == NULL) {
4064 var10 = 1;
4065 } else {
4066 if(cltype11 >= var_tidnode4->type->table_size) {
4067 var10 = 0;
4068 } else {
4069 var10 = var_tidnode4->type->type_table[cltype11] == idtype12;
4070 }
4071 }
4072 if (!var10) {
4073 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23956);
4074 exit(1);
4075 }
4076 var_psignaturenode5 = var_nodearraylist4;
4077 /* <var_psignaturenode5:nullable Object> isa nullable ASignature */
4078 cltype14 = type_nullable_parser_nodes__ASignature.color;
4079 idtype15 = type_nullable_parser_nodes__ASignature.id;
4080 if(var_psignaturenode5 == NULL) {
4081 var13 = 1;
4082 } else {
4083 if(cltype14 >= var_psignaturenode5->type->table_size) {
4084 var13 = 0;
4085 } else {
4086 var13 = var_psignaturenode5->type->type_table[cltype14] == idtype15;
4087 }
4088 }
4089 if (!var13) {
4090 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23958);
4091 exit(1);
4092 }
4093 var16 = NEW_parser_nodes__AClosureDecl(&type_parser_nodes__AClosureDecl);
4094 var17 = NULL;
4095 ((void (*)(val*, val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__AClosureDecl__init_aclosuredecl]))(var16, var_tkwbreaknode2, var_tbangnode3, var_tidnode4, var_psignaturenode5, var17) /* init_aclosuredecl on <var16:AClosureDecl>*/;
4096 CHECK_NEW_parser_nodes__AClosureDecl(var16);
4097 var_pclosuredeclnode1 = var16;
4098 var_node_list = var_pclosuredeclnode1;
4099 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction574> */
4100 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
4101 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
4102 RET_LABEL:;
4103 }
4104 /* method parser#ReduceAction574#action for (self: Object, Parser) */
4105 void VIRTUAL_parser__ReduceAction574__action(val* self, val* p0) {
4106 parser__ReduceAction574__action(self, p0);
4107 RET_LABEL:;
4108 }
4109 /* method parser#ReduceAction575#action for (self: ReduceAction575, Parser) */
4110 void parser__ReduceAction575__action(val* self, val* p0) {
4111 val* var_p /* var p: Parser */;
4112 val* var /* : null */;
4113 val* var_node_list /* var node_list: nullable Object */;
4114 val* var1 /* : nullable Object */;
4115 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4116 val* var2 /* : nullable Object */;
4117 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4118 val* var3 /* : nullable Object */;
4119 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4120 val* var4 /* : nullable Object */;
4121 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4122 val* var5 /* : nullable Object */;
4123 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4124 val* var6 /* : nullable Object */;
4125 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4126 val* var_tbangnode3 /* var tbangnode3: nullable Object */;
4127 short int var7 /* : Bool */;
4128 int cltype;
4129 int idtype;
4130 val* var_tidnode4 /* var tidnode4: nullable Object */;
4131 short int var8 /* : Bool */;
4132 int cltype9;
4133 int idtype10;
4134 val* var_psignaturenode5 /* var psignaturenode5: nullable Object */;
4135 short int var11 /* : Bool */;
4136 int cltype12;
4137 int idtype13;
4138 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
4139 short int var14 /* : Bool */;
4140 int cltype15;
4141 int idtype16;
4142 val* var17 /* : AClosureDecl */;
4143 val* var18 /* : null */;
4144 val* var_pclosuredeclnode1 /* var pclosuredeclnode1: nullable AClosureDecl */;
4145 long var19 /* : Int */;
4146 long var20 /* : Int */;
4147 var_p = p0;
4148 var = NULL;
4149 var_node_list = var;
4150 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4151 var_nodearraylist6 = var1;
4152 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4153 var_nodearraylist5 = var2;
4154 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4155 var_nodearraylist4 = var3;
4156 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4157 var_nodearraylist3 = var4;
4158 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4159 var_nodearraylist2 = var5;
4160 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4161 var_nodearraylist1 = var6;
4162 var_tbangnode3 = var_nodearraylist1;
4163 /* <var_tbangnode3:nullable Object> isa nullable TBang */
4164 cltype = type_nullable_parser_nodes__TBang.color;
4165 idtype = type_nullable_parser_nodes__TBang.id;
4166 if(var_tbangnode3 == NULL) {
4167 var7 = 1;
4168 } else {
4169 if(cltype >= var_tbangnode3->type->table_size) {
4170 var7 = 0;
4171 } else {
4172 var7 = var_tbangnode3->type->type_table[cltype] == idtype;
4173 }
4174 }
4175 if (!var7) {
4176 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23982);
4177 exit(1);
4178 }
4179 var_tidnode4 = var_nodearraylist2;
4180 /* <var_tidnode4:nullable Object> isa nullable TId */
4181 cltype9 = type_nullable_parser_nodes__TId.color;
4182 idtype10 = type_nullable_parser_nodes__TId.id;
4183 if(var_tidnode4 == NULL) {
4184 var8 = 1;
4185 } else {
4186 if(cltype9 >= var_tidnode4->type->table_size) {
4187 var8 = 0;
4188 } else {
4189 var8 = var_tidnode4->type->type_table[cltype9] == idtype10;
4190 }
4191 }
4192 if (!var8) {
4193 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23984);
4194 exit(1);
4195 }
4196 var_psignaturenode5 = var_nodearraylist3;
4197 /* <var_psignaturenode5:nullable Object> isa nullable ASignature */
4198 cltype12 = type_nullable_parser_nodes__ASignature.color;
4199 idtype13 = type_nullable_parser_nodes__ASignature.id;
4200 if(var_psignaturenode5 == NULL) {
4201 var11 = 1;
4202 } else {
4203 if(cltype12 >= var_psignaturenode5->type->table_size) {
4204 var11 = 0;
4205 } else {
4206 var11 = var_psignaturenode5->type->type_table[cltype12] == idtype13;
4207 }
4208 }
4209 if (!var11) {
4210 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23986);
4211 exit(1);
4212 }
4213 var_pexprnode6 = var_nodearraylist5;
4214 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
4215 cltype15 = type_nullable_parser_nodes__AExpr.color;
4216 idtype16 = type_nullable_parser_nodes__AExpr.id;
4217 if(var_pexprnode6 == NULL) {
4218 var14 = 1;
4219 } else {
4220 if(cltype15 >= var_pexprnode6->type->table_size) {
4221 var14 = 0;
4222 } else {
4223 var14 = var_pexprnode6->type->type_table[cltype15] == idtype16;
4224 }
4225 }
4226 if (!var14) {
4227 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 23988);
4228 exit(1);
4229 }
4230 var17 = NEW_parser_nodes__AClosureDecl(&type_parser_nodes__AClosureDecl);
4231 var18 = NULL;
4232 ((void (*)(val*, val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AClosureDecl__init_aclosuredecl]))(var17, var18, var_tbangnode3, var_tidnode4, var_psignaturenode5, var_pexprnode6) /* init_aclosuredecl on <var17:AClosureDecl>*/;
4233 CHECK_NEW_parser_nodes__AClosureDecl(var17);
4234 var_pclosuredeclnode1 = var17;
4235 var_node_list = var_pclosuredeclnode1;
4236 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction575> */
4237 var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
4238 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
4239 RET_LABEL:;
4240 }
4241 /* method parser#ReduceAction575#action for (self: Object, Parser) */
4242 void VIRTUAL_parser__ReduceAction575__action(val* self, val* p0) {
4243 parser__ReduceAction575__action(self, p0);
4244 RET_LABEL:;
4245 }
4246 /* method parser#ReduceAction576#action for (self: ReduceAction576, Parser) */
4247 void parser__ReduceAction576__action(val* self, val* p0) {
4248 val* var_p /* var p: Parser */;
4249 val* var /* : null */;
4250 val* var_node_list /* var node_list: nullable Object */;
4251 val* var1 /* : nullable Object */;
4252 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
4253 val* var2 /* : nullable Object */;
4254 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4255 val* var3 /* : nullable Object */;
4256 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4257 val* var4 /* : nullable Object */;
4258 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4259 val* var5 /* : nullable Object */;
4260 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4261 val* var6 /* : nullable Object */;
4262 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4263 val* var7 /* : nullable Object */;
4264 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4265 val* var_tkwbreaknode2 /* var tkwbreaknode2: nullable Object */;
4266 short int var8 /* : Bool */;
4267 int cltype;
4268 int idtype;
4269 val* var_tbangnode3 /* var tbangnode3: nullable Object */;
4270 short int var9 /* : Bool */;
4271 int cltype10;
4272 int idtype11;
4273 val* var_tidnode4 /* var tidnode4: nullable Object */;
4274 short int var12 /* : Bool */;
4275 int cltype13;
4276 int idtype14;
4277 val* var_psignaturenode5 /* var psignaturenode5: nullable Object */;
4278 short int var15 /* : Bool */;
4279 int cltype16;
4280 int idtype17;
4281 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
4282 short int var18 /* : Bool */;
4283 int cltype19;
4284 int idtype20;
4285 val* var21 /* : AClosureDecl */;
4286 val* var_pclosuredeclnode1 /* var pclosuredeclnode1: nullable AClosureDecl */;
4287 long var22 /* : Int */;
4288 long var23 /* : Int */;
4289 var_p = p0;
4290 var = NULL;
4291 var_node_list = var;
4292 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4293 var_nodearraylist7 = var1;
4294 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4295 var_nodearraylist6 = var2;
4296 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4297 var_nodearraylist5 = var3;
4298 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4299 var_nodearraylist4 = var4;
4300 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4301 var_nodearraylist3 = var5;
4302 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4303 var_nodearraylist2 = var6;
4304 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4305 var_nodearraylist1 = var7;
4306 var_tkwbreaknode2 = var_nodearraylist1;
4307 /* <var_tkwbreaknode2:nullable Object> isa nullable TKwbreak */
4308 cltype = type_nullable_parser_nodes__TKwbreak.color;
4309 idtype = type_nullable_parser_nodes__TKwbreak.id;
4310 if(var_tkwbreaknode2 == NULL) {
4311 var8 = 1;
4312 } else {
4313 if(cltype >= var_tkwbreaknode2->type->table_size) {
4314 var8 = 0;
4315 } else {
4316 var8 = var_tkwbreaknode2->type->type_table[cltype] == idtype;
4317 }
4318 }
4319 if (!var8) {
4320 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24013);
4321 exit(1);
4322 }
4323 var_tbangnode3 = var_nodearraylist2;
4324 /* <var_tbangnode3:nullable Object> isa nullable TBang */
4325 cltype10 = type_nullable_parser_nodes__TBang.color;
4326 idtype11 = type_nullable_parser_nodes__TBang.id;
4327 if(var_tbangnode3 == NULL) {
4328 var9 = 1;
4329 } else {
4330 if(cltype10 >= var_tbangnode3->type->table_size) {
4331 var9 = 0;
4332 } else {
4333 var9 = var_tbangnode3->type->type_table[cltype10] == idtype11;
4334 }
4335 }
4336 if (!var9) {
4337 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24015);
4338 exit(1);
4339 }
4340 var_tidnode4 = var_nodearraylist3;
4341 /* <var_tidnode4:nullable Object> isa nullable TId */
4342 cltype13 = type_nullable_parser_nodes__TId.color;
4343 idtype14 = type_nullable_parser_nodes__TId.id;
4344 if(var_tidnode4 == NULL) {
4345 var12 = 1;
4346 } else {
4347 if(cltype13 >= var_tidnode4->type->table_size) {
4348 var12 = 0;
4349 } else {
4350 var12 = var_tidnode4->type->type_table[cltype13] == idtype14;
4351 }
4352 }
4353 if (!var12) {
4354 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24017);
4355 exit(1);
4356 }
4357 var_psignaturenode5 = var_nodearraylist4;
4358 /* <var_psignaturenode5:nullable Object> isa nullable ASignature */
4359 cltype16 = type_nullable_parser_nodes__ASignature.color;
4360 idtype17 = type_nullable_parser_nodes__ASignature.id;
4361 if(var_psignaturenode5 == NULL) {
4362 var15 = 1;
4363 } else {
4364 if(cltype16 >= var_psignaturenode5->type->table_size) {
4365 var15 = 0;
4366 } else {
4367 var15 = var_psignaturenode5->type->type_table[cltype16] == idtype17;
4368 }
4369 }
4370 if (!var15) {
4371 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24019);
4372 exit(1);
4373 }
4374 var_pexprnode6 = var_nodearraylist6;
4375 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
4376 cltype19 = type_nullable_parser_nodes__AExpr.color;
4377 idtype20 = type_nullable_parser_nodes__AExpr.id;
4378 if(var_pexprnode6 == NULL) {
4379 var18 = 1;
4380 } else {
4381 if(cltype19 >= var_pexprnode6->type->table_size) {
4382 var18 = 0;
4383 } else {
4384 var18 = var_pexprnode6->type->type_table[cltype19] == idtype20;
4385 }
4386 }
4387 if (!var18) {
4388 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24021);
4389 exit(1);
4390 }
4391 var21 = NEW_parser_nodes__AClosureDecl(&type_parser_nodes__AClosureDecl);
4392 ((void (*)(val*, val*, val*, val*, val*, val*))(var21->class->vft[COLOR_parser_prod__AClosureDecl__init_aclosuredecl]))(var21, var_tkwbreaknode2, var_tbangnode3, var_tidnode4, var_psignaturenode5, var_pexprnode6) /* init_aclosuredecl on <var21:AClosureDecl>*/;
4393 CHECK_NEW_parser_nodes__AClosureDecl(var21);
4394 var_pclosuredeclnode1 = var21;
4395 var_node_list = var_pclosuredeclnode1;
4396 var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction576> */
4397 var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
4398 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
4399 RET_LABEL:;
4400 }
4401 /* method parser#ReduceAction576#action for (self: Object, Parser) */
4402 void VIRTUAL_parser__ReduceAction576__action(val* self, val* p0) {
4403 parser__ReduceAction576__action(self, p0);
4404 RET_LABEL:;
4405 }
4406 /* method parser#ReduceAction577#action for (self: ReduceAction577, Parser) */
4407 void parser__ReduceAction577__action(val* self, val* p0) {
4408 val* var_p /* var p: Parser */;
4409 val* var /* : null */;
4410 val* var_node_list /* var node_list: nullable Object */;
4411 val* var1 /* : nullable Object */;
4412 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
4413 val* var2 /* : nullable Object */;
4414 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4415 val* var3 /* : nullable Object */;
4416 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4417 val* var4 /* : nullable Object */;
4418 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4419 val* var5 /* : nullable Object */;
4420 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4421 val* var6 /* : nullable Object */;
4422 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4423 val* var7 /* : nullable Object */;
4424 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4425 val* var_tbangnode3 /* var tbangnode3: nullable Object */;
4426 short int var8 /* : Bool */;
4427 int cltype;
4428 int idtype;
4429 val* var_tidnode4 /* var tidnode4: nullable Object */;
4430 short int var9 /* : Bool */;
4431 int cltype10;
4432 int idtype11;
4433 val* var_psignaturenode5 /* var psignaturenode5: nullable Object */;
4434 short int var12 /* : Bool */;
4435 int cltype13;
4436 int idtype14;
4437 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
4438 short int var15 /* : Bool */;
4439 int cltype16;
4440 int idtype17;
4441 val* var18 /* : AClosureDecl */;
4442 val* var19 /* : null */;
4443 val* var_pclosuredeclnode1 /* var pclosuredeclnode1: nullable AClosureDecl */;
4444 long var20 /* : Int */;
4445 long var21 /* : Int */;
4446 var_p = p0;
4447 var = NULL;
4448 var_node_list = var;
4449 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4450 var_nodearraylist7 = var1;
4451 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4452 var_nodearraylist6 = var2;
4453 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4454 var_nodearraylist5 = var3;
4455 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4456 var_nodearraylist4 = var4;
4457 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4458 var_nodearraylist3 = var5;
4459 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4460 var_nodearraylist2 = var6;
4461 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4462 var_nodearraylist1 = var7;
4463 var_tbangnode3 = var_nodearraylist1;
4464 /* <var_tbangnode3:nullable Object> isa nullable TBang */
4465 cltype = type_nullable_parser_nodes__TBang.color;
4466 idtype = type_nullable_parser_nodes__TBang.id;
4467 if(var_tbangnode3 == NULL) {
4468 var8 = 1;
4469 } else {
4470 if(cltype >= var_tbangnode3->type->table_size) {
4471 var8 = 0;
4472 } else {
4473 var8 = var_tbangnode3->type->type_table[cltype] == idtype;
4474 }
4475 }
4476 if (!var8) {
4477 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24046);
4478 exit(1);
4479 }
4480 var_tidnode4 = var_nodearraylist2;
4481 /* <var_tidnode4:nullable Object> isa nullable TId */
4482 cltype10 = type_nullable_parser_nodes__TId.color;
4483 idtype11 = type_nullable_parser_nodes__TId.id;
4484 if(var_tidnode4 == NULL) {
4485 var9 = 1;
4486 } else {
4487 if(cltype10 >= var_tidnode4->type->table_size) {
4488 var9 = 0;
4489 } else {
4490 var9 = var_tidnode4->type->type_table[cltype10] == idtype11;
4491 }
4492 }
4493 if (!var9) {
4494 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24048);
4495 exit(1);
4496 }
4497 var_psignaturenode5 = var_nodearraylist3;
4498 /* <var_psignaturenode5:nullable Object> isa nullable ASignature */
4499 cltype13 = type_nullable_parser_nodes__ASignature.color;
4500 idtype14 = type_nullable_parser_nodes__ASignature.id;
4501 if(var_psignaturenode5 == NULL) {
4502 var12 = 1;
4503 } else {
4504 if(cltype13 >= var_psignaturenode5->type->table_size) {
4505 var12 = 0;
4506 } else {
4507 var12 = var_psignaturenode5->type->type_table[cltype13] == idtype14;
4508 }
4509 }
4510 if (!var12) {
4511 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24050);
4512 exit(1);
4513 }
4514 var_pexprnode6 = var_nodearraylist6;
4515 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
4516 cltype16 = type_nullable_parser_nodes__AExpr.color;
4517 idtype17 = type_nullable_parser_nodes__AExpr.id;
4518 if(var_pexprnode6 == NULL) {
4519 var15 = 1;
4520 } else {
4521 if(cltype16 >= var_pexprnode6->type->table_size) {
4522 var15 = 0;
4523 } else {
4524 var15 = var_pexprnode6->type->type_table[cltype16] == idtype17;
4525 }
4526 }
4527 if (!var15) {
4528 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24052);
4529 exit(1);
4530 }
4531 var18 = NEW_parser_nodes__AClosureDecl(&type_parser_nodes__AClosureDecl);
4532 var19 = NULL;
4533 ((void (*)(val*, val*, val*, val*, val*, val*))(var18->class->vft[COLOR_parser_prod__AClosureDecl__init_aclosuredecl]))(var18, var19, var_tbangnode3, var_tidnode4, var_psignaturenode5, var_pexprnode6) /* init_aclosuredecl on <var18:AClosureDecl>*/;
4534 CHECK_NEW_parser_nodes__AClosureDecl(var18);
4535 var_pclosuredeclnode1 = var18;
4536 var_node_list = var_pclosuredeclnode1;
4537 var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction577> */
4538 var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on <var_p:Parser>*/;
4539 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on <var_p:Parser>*/;
4540 RET_LABEL:;
4541 }
4542 /* method parser#ReduceAction577#action for (self: Object, Parser) */
4543 void VIRTUAL_parser__ReduceAction577__action(val* self, val* p0) {
4544 parser__ReduceAction577__action(self, p0);
4545 RET_LABEL:;
4546 }
4547 /* method parser#ReduceAction578#action for (self: ReduceAction578, Parser) */
4548 void parser__ReduceAction578__action(val* self, val* p0) {
4549 val* var_p /* var p: Parser */;
4550 val* var /* : null */;
4551 val* var_node_list /* var node_list: nullable Object */;
4552 val* var1 /* : nullable Object */;
4553 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
4554 val* var2 /* : nullable Object */;
4555 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
4556 val* var3 /* : nullable Object */;
4557 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4558 val* var4 /* : nullable Object */;
4559 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4560 val* var5 /* : nullable Object */;
4561 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4562 val* var6 /* : nullable Object */;
4563 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4564 val* var7 /* : nullable Object */;
4565 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4566 val* var8 /* : nullable Object */;
4567 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4568 val* var_tkwbreaknode2 /* var tkwbreaknode2: nullable Object */;
4569 short int var9 /* : Bool */;
4570 int cltype;
4571 int idtype;
4572 val* var_tbangnode3 /* var tbangnode3: nullable Object */;
4573 short int var10 /* : Bool */;
4574 int cltype11;
4575 int idtype12;
4576 val* var_tidnode4 /* var tidnode4: nullable Object */;
4577 short int var13 /* : Bool */;
4578 int cltype14;
4579 int idtype15;
4580 val* var_psignaturenode5 /* var psignaturenode5: nullable Object */;
4581 short int var16 /* : Bool */;
4582 int cltype17;
4583 int idtype18;
4584 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
4585 short int var19 /* : Bool */;
4586 int cltype20;
4587 int idtype21;
4588 val* var22 /* : AClosureDecl */;
4589 val* var_pclosuredeclnode1 /* var pclosuredeclnode1: nullable AClosureDecl */;
4590 long var23 /* : Int */;
4591 long var24 /* : Int */;
4592 var_p = p0;
4593 var = NULL;
4594 var_node_list = var;
4595 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4596 var_nodearraylist8 = var1;
4597 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4598 var_nodearraylist7 = var2;
4599 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4600 var_nodearraylist6 = var3;
4601 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4602 var_nodearraylist5 = var4;
4603 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4604 var_nodearraylist4 = var5;
4605 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4606 var_nodearraylist3 = var6;
4607 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4608 var_nodearraylist2 = var7;
4609 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4610 var_nodearraylist1 = var8;
4611 var_tkwbreaknode2 = var_nodearraylist1;
4612 /* <var_tkwbreaknode2:nullable Object> isa nullable TKwbreak */
4613 cltype = type_nullable_parser_nodes__TKwbreak.color;
4614 idtype = type_nullable_parser_nodes__TKwbreak.id;
4615 if(var_tkwbreaknode2 == NULL) {
4616 var9 = 1;
4617 } else {
4618 if(cltype >= var_tkwbreaknode2->type->table_size) {
4619 var9 = 0;
4620 } else {
4621 var9 = var_tkwbreaknode2->type->type_table[cltype] == idtype;
4622 }
4623 }
4624 if (!var9) {
4625 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24078);
4626 exit(1);
4627 }
4628 var_tbangnode3 = var_nodearraylist2;
4629 /* <var_tbangnode3:nullable Object> isa nullable TBang */
4630 cltype11 = type_nullable_parser_nodes__TBang.color;
4631 idtype12 = type_nullable_parser_nodes__TBang.id;
4632 if(var_tbangnode3 == NULL) {
4633 var10 = 1;
4634 } else {
4635 if(cltype11 >= var_tbangnode3->type->table_size) {
4636 var10 = 0;
4637 } else {
4638 var10 = var_tbangnode3->type->type_table[cltype11] == idtype12;
4639 }
4640 }
4641 if (!var10) {
4642 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24080);
4643 exit(1);
4644 }
4645 var_tidnode4 = var_nodearraylist3;
4646 /* <var_tidnode4:nullable Object> isa nullable TId */
4647 cltype14 = type_nullable_parser_nodes__TId.color;
4648 idtype15 = type_nullable_parser_nodes__TId.id;
4649 if(var_tidnode4 == NULL) {
4650 var13 = 1;
4651 } else {
4652 if(cltype14 >= var_tidnode4->type->table_size) {
4653 var13 = 0;
4654 } else {
4655 var13 = var_tidnode4->type->type_table[cltype14] == idtype15;
4656 }
4657 }
4658 if (!var13) {
4659 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24082);
4660 exit(1);
4661 }
4662 var_psignaturenode5 = var_nodearraylist4;
4663 /* <var_psignaturenode5:nullable Object> isa nullable ASignature */
4664 cltype17 = type_nullable_parser_nodes__ASignature.color;
4665 idtype18 = type_nullable_parser_nodes__ASignature.id;
4666 if(var_psignaturenode5 == NULL) {
4667 var16 = 1;
4668 } else {
4669 if(cltype17 >= var_psignaturenode5->type->table_size) {
4670 var16 = 0;
4671 } else {
4672 var16 = var_psignaturenode5->type->type_table[cltype17] == idtype18;
4673 }
4674 }
4675 if (!var16) {
4676 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24084);
4677 exit(1);
4678 }
4679 var_pexprnode6 = var_nodearraylist7;
4680 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
4681 cltype20 = type_nullable_parser_nodes__AExpr.color;
4682 idtype21 = type_nullable_parser_nodes__AExpr.id;
4683 if(var_pexprnode6 == NULL) {
4684 var19 = 1;
4685 } else {
4686 if(cltype20 >= var_pexprnode6->type->table_size) {
4687 var19 = 0;
4688 } else {
4689 var19 = var_pexprnode6->type->type_table[cltype20] == idtype21;
4690 }
4691 }
4692 if (!var19) {
4693 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24086);
4694 exit(1);
4695 }
4696 var22 = NEW_parser_nodes__AClosureDecl(&type_parser_nodes__AClosureDecl);
4697 ((void (*)(val*, val*, val*, val*, val*, val*))(var22->class->vft[COLOR_parser_prod__AClosureDecl__init_aclosuredecl]))(var22, var_tkwbreaknode2, var_tbangnode3, var_tidnode4, var_psignaturenode5, var_pexprnode6) /* init_aclosuredecl on <var22:AClosureDecl>*/;
4698 CHECK_NEW_parser_nodes__AClosureDecl(var22);
4699 var_pclosuredeclnode1 = var22;
4700 var_node_list = var_pclosuredeclnode1;
4701 var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction578> */
4702 var24 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var23) /* go_to on <var_p:Parser>*/;
4703 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var24, var_node_list) /* push on <var_p:Parser>*/;
4704 RET_LABEL:;
4705 }
4706 /* method parser#ReduceAction578#action for (self: Object, Parser) */
4707 void VIRTUAL_parser__ReduceAction578__action(val* self, val* p0) {
4708 parser__ReduceAction578__action(self, p0);
4709 RET_LABEL:;
4710 }
4711 /* method parser#ReduceAction579#action for (self: ReduceAction579, Parser) */
4712 void parser__ReduceAction579__action(val* self, val* p0) {
4713 val* var_p /* var p: Parser */;
4714 val* var /* : null */;
4715 val* var_node_list /* var node_list: nullable Object */;
4716 val* var1 /* : nullable Object */;
4717 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4718 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
4719 short int var2 /* : Bool */;
4720 int cltype;
4721 int idtype;
4722 val* var3 /* : AReturnExpr */;
4723 val* var4 /* : null */;
4724 val* var_pexprnode1 /* var pexprnode1: nullable AReturnExpr */;
4725 long var5 /* : Int */;
4726 long var6 /* : Int */;
4727 var_p = p0;
4728 var = NULL;
4729 var_node_list = var;
4730 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4731 var_nodearraylist1 = var1;
4732 var_pexprnode3 = var_nodearraylist1;
4733 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
4734 cltype = type_nullable_parser_nodes__AExpr.color;
4735 idtype = type_nullable_parser_nodes__AExpr.id;
4736 if(var_pexprnode3 == NULL) {
4737 var2 = 1;
4738 } else {
4739 if(cltype >= var_pexprnode3->type->table_size) {
4740 var2 = 0;
4741 } else {
4742 var2 = var_pexprnode3->type->type_table[cltype] == idtype;
4743 }
4744 }
4745 if (!var2) {
4746 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24105);
4747 exit(1);
4748 }
4749 var3 = NEW_parser_nodes__AReturnExpr(&type_parser_nodes__AReturnExpr);
4750 var4 = NULL;
4751 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AReturnExpr__init_areturnexpr]))(var3, var4, var_pexprnode3) /* init_areturnexpr on <var3:AReturnExpr>*/;
4752 CHECK_NEW_parser_nodes__AReturnExpr(var3);
4753 var_pexprnode1 = var3;
4754 var_node_list = var_pexprnode1;
4755 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction579> */
4756 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
4757 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
4758 RET_LABEL:;
4759 }
4760 /* method parser#ReduceAction579#action for (self: Object, Parser) */
4761 void VIRTUAL_parser__ReduceAction579__action(val* self, val* p0) {
4762 parser__ReduceAction579__action(self, p0);
4763 RET_LABEL:;
4764 }
4765 /* method parser#ReduceAction580#action for (self: ReduceAction580, Parser) */
4766 void parser__ReduceAction580__action(val* self, val* p0) {
4767 val* var_p /* var p: Parser */;
4768 val* var /* : null */;
4769 val* var_node_list /* var node_list: nullable Object */;
4770 val* var1 /* : nullable Object */;
4771 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4772 val* var2 /* : nullable Object */;
4773 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4774 val* var3 /* : nullable Object */;
4775 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4776 val* var4 /* : Array[Object] */;
4777 val* var_listnode4 /* var listnode4: Array[Object] */;
4778 val* var_tkwimportnode2 /* var tkwimportnode2: nullable Object */;
4779 short int var5 /* : Bool */;
4780 int cltype;
4781 int idtype;
4782 val* var_pexterncallnode3 /* var pexterncallnode3: nullable Object */;
4783 short int var6 /* : Bool */;
4784 int cltype7;
4785 int idtype8;
4786 val* var9 /* : null */;
4787 short int var10 /* : Bool */;
4788 val* var11 /* : AExternCalls */;
4789 val* var_pexterncallsnode1 /* var pexterncallsnode1: nullable AExternCalls */;
4790 long var12 /* : Int */;
4791 long var13 /* : Int */;
4792 var_p = p0;
4793 var = NULL;
4794 var_node_list = var;
4795 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4796 var_nodearraylist3 = var1;
4797 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4798 var_nodearraylist2 = var2;
4799 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4800 var_nodearraylist1 = var3;
4801 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
4802 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
4803 CHECK_NEW_array__Array(var4);
4804 var_listnode4 = var4;
4805 var_tkwimportnode2 = var_nodearraylist1;
4806 /* <var_tkwimportnode2:nullable Object> isa nullable TKwimport */
4807 cltype = type_nullable_parser_nodes__TKwimport.color;
4808 idtype = type_nullable_parser_nodes__TKwimport.id;
4809 if(var_tkwimportnode2 == NULL) {
4810 var5 = 1;
4811 } else {
4812 if(cltype >= var_tkwimportnode2->type->table_size) {
4813 var5 = 0;
4814 } else {
4815 var5 = var_tkwimportnode2->type->type_table[cltype] == idtype;
4816 }
4817 }
4818 if (!var5) {
4819 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24124);
4820 exit(1);
4821 }
4822 var_pexterncallnode3 = var_nodearraylist3;
4823 /* <var_pexterncallnode3:nullable Object> isa nullable AExternCall */
4824 cltype7 = type_nullable_parser_nodes__AExternCall.color;
4825 idtype8 = type_nullable_parser_nodes__AExternCall.id;
4826 if(var_pexterncallnode3 == NULL) {
4827 var6 = 1;
4828 } else {
4829 if(cltype7 >= var_pexterncallnode3->type->table_size) {
4830 var6 = 0;
4831 } else {
4832 var6 = var_pexterncallnode3->type->type_table[cltype7] == idtype8;
4833 }
4834 }
4835 if (!var6) {
4836 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24126);
4837 exit(1);
4838 }
4839 var9 = NULL;
4840 if (var_pexterncallnode3 == NULL) {
4841 var10 = 0; /* is null */
4842 } else {
4843 var10 = 1; /* arg is null and recv is not */
4844 }
4845 if (var10){
4846 ((void (*)(val*, val*))(var_listnode4->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode4, var_pexterncallnode3) /* add on <var_listnode4:Array[Object]>*/;
4847 } else {
4848 }
4849 var11 = NEW_parser_nodes__AExternCalls(&type_parser_nodes__AExternCalls);
4850 ((void (*)(val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AExternCalls__init_aexterncalls]))(var11, var_tkwimportnode2, var_listnode4) /* init_aexterncalls on <var11:AExternCalls>*/;
4851 CHECK_NEW_parser_nodes__AExternCalls(var11);
4852 var_pexterncallsnode1 = var11;
4853 var_node_list = var_pexterncallsnode1;
4854 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction580> */
4855 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
4856 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
4857 RET_LABEL:;
4858 }
4859 /* method parser#ReduceAction580#action for (self: Object, Parser) */
4860 void VIRTUAL_parser__ReduceAction580__action(val* self, val* p0) {
4861 parser__ReduceAction580__action(self, p0);
4862 RET_LABEL:;
4863 }
4864 /* method parser#ReduceAction581#action for (self: ReduceAction581, Parser) */
4865 void parser__ReduceAction581__action(val* self, val* p0) {
4866 val* var_p /* var p: Parser */;
4867 val* var /* : null */;
4868 val* var_node_list /* var node_list: nullable Object */;
4869 val* var1 /* : nullable Object */;
4870 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4871 val* var2 /* : nullable Object */;
4872 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4873 val* var3 /* : nullable Object */;
4874 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4875 val* var4 /* : nullable Object */;
4876 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4877 val* var5 /* : Array[Object] */;
4878 val* var_listnode5 /* var listnode5: Array[Object] */;
4879 val* var_tkwimportnode2 /* var tkwimportnode2: nullable Object */;
4880 short int var6 /* : Bool */;
4881 int cltype;
4882 int idtype;
4883 val* var_pexterncallnode3 /* var pexterncallnode3: nullable Object */;
4884 short int var7 /* : Bool */;
4885 int cltype8;
4886 int idtype9;
4887 val* var_listnode4 /* var listnode4: nullable Object */;
4888 short int var10 /* : Bool */;
4889 int cltype11;
4890 int idtype12;
4891 val* var13 /* : null */;
4892 short int var14 /* : Bool */;
4893 val* var15 /* : Array[Object] */;
4894 val* var16 /* : AExternCalls */;
4895 val* var_pexterncallsnode1 /* var pexterncallsnode1: nullable AExternCalls */;
4896 long var17 /* : Int */;
4897 long var18 /* : Int */;
4898 var_p = p0;
4899 var = NULL;
4900 var_node_list = var;
4901 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4902 var_nodearraylist4 = var1;
4903 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4904 var_nodearraylist3 = var2;
4905 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4906 var_nodearraylist2 = var3;
4907 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4908 var_nodearraylist1 = var4;
4909 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
4910 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
4911 CHECK_NEW_array__Array(var5);
4912 var_listnode5 = var5;
4913 var_tkwimportnode2 = var_nodearraylist1;
4914 /* <var_tkwimportnode2:nullable Object> isa nullable TKwimport */
4915 cltype = type_nullable_parser_nodes__TKwimport.color;
4916 idtype = type_nullable_parser_nodes__TKwimport.id;
4917 if(var_tkwimportnode2 == NULL) {
4918 var6 = 1;
4919 } else {
4920 if(cltype >= var_tkwimportnode2->type->table_size) {
4921 var6 = 0;
4922 } else {
4923 var6 = var_tkwimportnode2->type->type_table[cltype] == idtype;
4924 }
4925 }
4926 if (!var6) {
4927 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24149);
4928 exit(1);
4929 }
4930 var_pexterncallnode3 = var_nodearraylist3;
4931 /* <var_pexterncallnode3:nullable Object> isa nullable AExternCall */
4932 cltype8 = type_nullable_parser_nodes__AExternCall.color;
4933 idtype9 = type_nullable_parser_nodes__AExternCall.id;
4934 if(var_pexterncallnode3 == NULL) {
4935 var7 = 1;
4936 } else {
4937 if(cltype8 >= var_pexterncallnode3->type->table_size) {
4938 var7 = 0;
4939 } else {
4940 var7 = var_pexterncallnode3->type->type_table[cltype8] == idtype9;
4941 }
4942 }
4943 if (!var7) {
4944 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24151);
4945 exit(1);
4946 }
4947 var_listnode4 = var_nodearraylist4;
4948 /* <var_listnode4:nullable Object> isa Array[Object] */
4949 cltype11 = type_array__Arraykernel__Object.color;
4950 idtype12 = type_array__Arraykernel__Object.id;
4951 if(var_listnode4 == NULL) {
4952 var10 = 0;
4953 } else {
4954 if(cltype11 >= var_listnode4->type->table_size) {
4955 var10 = 0;
4956 } else {
4957 var10 = var_listnode4->type->type_table[cltype11] == idtype12;
4958 }
4959 }
4960 if (!var10) {
4961 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24153);
4962 exit(1);
4963 }
4964 var13 = NULL;
4965 if (var_pexterncallnode3 == NULL) {
4966 var14 = 0; /* is null */
4967 } else {
4968 var14 = 1; /* arg is null and recv is not */
4969 }
4970 if (var14){
4971 ((void (*)(val*, val*))(var_listnode5->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode5, var_pexterncallnode3) /* add on <var_listnode5:Array[Object]>*/;
4972 } else {
4973 }
4974 var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction581>*/;
4975 var_listnode5 = var15;
4976 var16 = NEW_parser_nodes__AExternCalls(&type_parser_nodes__AExternCalls);
4977 ((void (*)(val*, val*, val*))(var16->class->vft[COLOR_parser_prod__AExternCalls__init_aexterncalls]))(var16, var_tkwimportnode2, var_listnode5) /* init_aexterncalls on <var16:AExternCalls>*/;
4978 CHECK_NEW_parser_nodes__AExternCalls(var16);
4979 var_pexterncallsnode1 = var16;
4980 var_node_list = var_pexterncallsnode1;
4981 var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction581> */
4982 var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
4983 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
4984 RET_LABEL:;
4985 }
4986 /* method parser#ReduceAction581#action for (self: Object, Parser) */
4987 void VIRTUAL_parser__ReduceAction581__action(val* self, val* p0) {
4988 parser__ReduceAction581__action(self, p0);
4989 RET_LABEL:;
4990 }
4991 /* method parser#ReduceAction582#action for (self: ReduceAction582, Parser) */
4992 void parser__ReduceAction582__action(val* self, val* p0) {
4993 val* var_p /* var p: Parser */;
4994 val* var /* : null */;
4995 val* var_node_list /* var node_list: nullable Object */;
4996 val* var1 /* : nullable Object */;
4997 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4998 val* var2 /* : nullable Object */;
4999 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5000 val* var3 /* : nullable Object */;
5001 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5002 val* var_pexterncallnode1 /* var pexterncallnode1: nullable Object */;
5003 long var4 /* : Int */;
5004 long var5 /* : Int */;
5005 var_p = p0;
5006 var = NULL;
5007 var_node_list = var;
5008 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5009 var_nodearraylist3 = var1;
5010 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5011 var_nodearraylist2 = var2;
5012 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5013 var_nodearraylist1 = var3;
5014 var_pexterncallnode1 = var_nodearraylist3;
5015 var_node_list = var_pexterncallnode1;
5016 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction582> */
5017 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
5018 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
5019 RET_LABEL:;
5020 }
5021 /* method parser#ReduceAction582#action for (self: Object, Parser) */
5022 void VIRTUAL_parser__ReduceAction582__action(val* self, val* p0) {
5023 parser__ReduceAction582__action(self, p0);
5024 RET_LABEL:;
5025 }
5026 /* method parser#ReduceAction583#action for (self: ReduceAction583, Parser) */
5027 void parser__ReduceAction583__action(val* self, val* p0) {
5028 val* var_p /* var p: Parser */;
5029 val* var /* : null */;
5030 val* var_node_list /* var node_list: nullable Object */;
5031 val* var1 /* : nullable Object */;
5032 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5033 val* var_pexterncallnode1 /* var pexterncallnode1: nullable Object */;
5034 long var2 /* : Int */;
5035 long var3 /* : Int */;
5036 var_p = p0;
5037 var = NULL;
5038 var_node_list = var;
5039 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5040 var_nodearraylist1 = var1;
5041 var_pexterncallnode1 = var_nodearraylist1;
5042 var_node_list = var_pexterncallnode1;
5043 var2 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction583> */
5044 var3 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var2) /* go_to on <var_p:Parser>*/;
5045 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var3, var_node_list) /* push on <var_p:Parser>*/;
5046 RET_LABEL:;
5047 }
5048 /* method parser#ReduceAction583#action for (self: Object, Parser) */
5049 void VIRTUAL_parser__ReduceAction583__action(val* self, val* p0) {
5050 parser__ReduceAction583__action(self, p0);
5051 RET_LABEL:;
5052 }
5053 /* method parser#ReduceAction585#action for (self: ReduceAction585, Parser) */
5054 void parser__ReduceAction585__action(val* self, val* p0) {
5055 val* var_p /* var p: Parser */;
5056 val* var /* : null */;
5057 val* var_node_list /* var node_list: nullable Object */;
5058 val* var1 /* : nullable Object */;
5059 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5060 val* var_tkwsupernode2 /* var tkwsupernode2: nullable Object */;
5061 short int var2 /* : Bool */;
5062 int cltype;
5063 int idtype;
5064 val* var3 /* : ASuperExternCall */;
5065 val* var_pexterncallnode1 /* var pexterncallnode1: nullable ASuperExternCall */;
5066 long var4 /* : Int */;
5067 long var5 /* : Int */;
5068 var_p = p0;
5069 var = NULL;
5070 var_node_list = var;
5071 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5072 var_nodearraylist1 = var1;
5073 var_tkwsupernode2 = var_nodearraylist1;
5074 /* <var_tkwsupernode2:nullable Object> isa nullable TKwsuper */
5075 cltype = type_nullable_parser_nodes__TKwsuper.color;
5076 idtype = type_nullable_parser_nodes__TKwsuper.id;
5077 if(var_tkwsupernode2 == NULL) {
5078 var2 = 1;
5079 } else {
5080 if(cltype >= var_tkwsupernode2->type->table_size) {
5081 var2 = 0;
5082 } else {
5083 var2 = var_tkwsupernode2->type->type_table[cltype] == idtype;
5084 }
5085 }
5086 if (!var2) {
5087 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24197);
5088 exit(1);
5089 }
5090 var3 = NEW_parser_nodes__ASuperExternCall(&type_parser_nodes__ASuperExternCall);
5091 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__ASuperExternCall__init_asuperexterncall]))(var3, var_tkwsupernode2) /* init_asuperexterncall on <var3:ASuperExternCall>*/;
5092 CHECK_NEW_parser_nodes__ASuperExternCall(var3);
5093 var_pexterncallnode1 = var3;
5094 var_node_list = var_pexterncallnode1;
5095 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction585> */
5096 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
5097 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
5098 RET_LABEL:;
5099 }
5100 /* method parser#ReduceAction585#action for (self: Object, Parser) */
5101 void VIRTUAL_parser__ReduceAction585__action(val* self, val* p0) {
5102 parser__ReduceAction585__action(self, p0);
5103 RET_LABEL:;
5104 }
5105 /* method parser#ReduceAction586#action for (self: ReduceAction586, Parser) */
5106 void parser__ReduceAction586__action(val* self, val* p0) {
5107 val* var_p /* var p: Parser */;
5108 val* var /* : null */;
5109 val* var_node_list /* var node_list: nullable Object */;
5110 val* var1 /* : nullable Object */;
5111 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5112 val* var_pmethidnode2 /* var pmethidnode2: nullable Object */;
5113 short int var2 /* : Bool */;
5114 int cltype;
5115 int idtype;
5116 val* var3 /* : ALocalPropExternCall */;
5117 val* var_pexterncallnode1 /* var pexterncallnode1: nullable ALocalPropExternCall */;
5118 long var4 /* : Int */;
5119 long var5 /* : Int */;
5120 var_p = p0;
5121 var = NULL;
5122 var_node_list = var;
5123 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5124 var_nodearraylist1 = var1;
5125 var_pmethidnode2 = var_nodearraylist1;
5126 /* <var_pmethidnode2:nullable Object> isa nullable AMethid */
5127 cltype = type_nullable_parser_nodes__AMethid.color;
5128 idtype = type_nullable_parser_nodes__AMethid.id;
5129 if(var_pmethidnode2 == NULL) {
5130 var2 = 1;
5131 } else {
5132 if(cltype >= var_pmethidnode2->type->table_size) {
5133 var2 = 0;
5134 } else {
5135 var2 = var_pmethidnode2->type->type_table[cltype] == idtype;
5136 }
5137 }
5138 if (!var2) {
5139 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24212);
5140 exit(1);
5141 }
5142 var3 = NEW_parser_nodes__ALocalPropExternCall(&type_parser_nodes__ALocalPropExternCall);
5143 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__ALocalPropExternCall__init_alocalpropexterncall]))(var3, var_pmethidnode2) /* init_alocalpropexterncall on <var3:ALocalPropExternCall>*/;
5144 CHECK_NEW_parser_nodes__ALocalPropExternCall(var3);
5145 var_pexterncallnode1 = var3;
5146 var_node_list = var_pexterncallnode1;
5147 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction586> */
5148 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
5149 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
5150 RET_LABEL:;
5151 }
5152 /* method parser#ReduceAction586#action for (self: Object, Parser) */
5153 void VIRTUAL_parser__ReduceAction586__action(val* self, val* p0) {
5154 parser__ReduceAction586__action(self, p0);
5155 RET_LABEL:;
5156 }
5157 /* method parser#ReduceAction587#action for (self: ReduceAction587, Parser) */
5158 void parser__ReduceAction587__action(val* self, val* p0) {
5159 val* var_p /* var p: Parser */;
5160 val* var /* : null */;
5161 val* var_node_list /* var node_list: nullable Object */;
5162 val* var1 /* : nullable Object */;
5163 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5164 val* var2 /* : nullable Object */;
5165 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5166 val* var3 /* : nullable Object */;
5167 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5168 val* var_tclassidnode2 /* var tclassidnode2: nullable Object */;
5169 short int var4 /* : Bool */;
5170 int cltype;
5171 int idtype;
5172 val* var_tquadnode3 /* var tquadnode3: nullable Object */;
5173 short int var5 /* : Bool */;
5174 int cltype6;
5175 int idtype7;
5176 val* var_pmethidnode4 /* var pmethidnode4: nullable Object */;
5177 short int var8 /* : Bool */;
5178 int cltype9;
5179 int idtype10;
5180 val* var11 /* : AFullPropExternCall */;
5181 val* var_pexterncallnode1 /* var pexterncallnode1: nullable AFullPropExternCall */;
5182 long var12 /* : Int */;
5183 long var13 /* : Int */;
5184 var_p = p0;
5185 var = NULL;
5186 var_node_list = var;
5187 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5188 var_nodearraylist3 = var1;
5189 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5190 var_nodearraylist2 = var2;
5191 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5192 var_nodearraylist1 = var3;
5193 var_tclassidnode2 = var_nodearraylist1;
5194 /* <var_tclassidnode2:nullable Object> isa nullable TClassid */
5195 cltype = type_nullable_parser_nodes__TClassid.color;
5196 idtype = type_nullable_parser_nodes__TClassid.id;
5197 if(var_tclassidnode2 == NULL) {
5198 var4 = 1;
5199 } else {
5200 if(cltype >= var_tclassidnode2->type->table_size) {
5201 var4 = 0;
5202 } else {
5203 var4 = var_tclassidnode2->type->type_table[cltype] == idtype;
5204 }
5205 }
5206 if (!var4) {
5207 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24229);
5208 exit(1);
5209 }
5210 var_tquadnode3 = var_nodearraylist2;
5211 /* <var_tquadnode3:nullable Object> isa nullable TQuad */
5212 cltype6 = type_nullable_parser_nodes__TQuad.color;
5213 idtype7 = type_nullable_parser_nodes__TQuad.id;
5214 if(var_tquadnode3 == NULL) {
5215 var5 = 1;
5216 } else {
5217 if(cltype6 >= var_tquadnode3->type->table_size) {
5218 var5 = 0;
5219 } else {
5220 var5 = var_tquadnode3->type->type_table[cltype6] == idtype7;
5221 }
5222 }
5223 if (!var5) {
5224 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24231);
5225 exit(1);
5226 }
5227 var_pmethidnode4 = var_nodearraylist3;
5228 /* <var_pmethidnode4:nullable Object> isa nullable AMethid */
5229 cltype9 = type_nullable_parser_nodes__AMethid.color;
5230 idtype10 = type_nullable_parser_nodes__AMethid.id;
5231 if(var_pmethidnode4 == NULL) {
5232 var8 = 1;
5233 } else {
5234 if(cltype9 >= var_pmethidnode4->type->table_size) {
5235 var8 = 0;
5236 } else {
5237 var8 = var_pmethidnode4->type->type_table[cltype9] == idtype10;
5238 }
5239 }
5240 if (!var8) {
5241 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24233);
5242 exit(1);
5243 }
5244 var11 = NEW_parser_nodes__AFullPropExternCall(&type_parser_nodes__AFullPropExternCall);
5245 ((void (*)(val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AFullPropExternCall__init_afullpropexterncall]))(var11, var_tclassidnode2, var_tquadnode3, var_pmethidnode4) /* init_afullpropexterncall on <var11:AFullPropExternCall>*/;
5246 CHECK_NEW_parser_nodes__AFullPropExternCall(var11);
5247 var_pexterncallnode1 = var11;
5248 var_node_list = var_pexterncallnode1;
5249 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction587> */
5250 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
5251 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
5252 RET_LABEL:;
5253 }
5254 /* method parser#ReduceAction587#action for (self: Object, Parser) */
5255 void VIRTUAL_parser__ReduceAction587__action(val* self, val* p0) {
5256 parser__ReduceAction587__action(self, p0);
5257 RET_LABEL:;
5258 }
5259 /* method parser#ReduceAction588#action for (self: ReduceAction588, Parser) */
5260 void parser__ReduceAction588__action(val* self, val* p0) {
5261 val* var_p /* var p: Parser */;
5262 val* var /* : null */;
5263 val* var_node_list /* var node_list: nullable Object */;
5264 val* var1 /* : nullable Object */;
5265 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5266 val* var_tclassidnode2 /* var tclassidnode2: nullable Object */;
5267 short int var2 /* : Bool */;
5268 int cltype;
5269 int idtype;
5270 val* var3 /* : AInitPropExternCall */;
5271 val* var_pexterncallnode1 /* var pexterncallnode1: nullable AInitPropExternCall */;
5272 long var4 /* : Int */;
5273 long var5 /* : Int */;
5274 var_p = p0;
5275 var = NULL;
5276 var_node_list = var;
5277 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5278 var_nodearraylist1 = var1;
5279 var_tclassidnode2 = var_nodearraylist1;
5280 /* <var_tclassidnode2:nullable Object> isa nullable TClassid */
5281 cltype = type_nullable_parser_nodes__TClassid.color;
5282 idtype = type_nullable_parser_nodes__TClassid.id;
5283 if(var_tclassidnode2 == NULL) {
5284 var2 = 1;
5285 } else {
5286 if(cltype >= var_tclassidnode2->type->table_size) {
5287 var2 = 0;
5288 } else {
5289 var2 = var_tclassidnode2->type->type_table[cltype] == idtype;
5290 }
5291 }
5292 if (!var2) {
5293 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24250);
5294 exit(1);
5295 }
5296 var3 = NEW_parser_nodes__AInitPropExternCall(&type_parser_nodes__AInitPropExternCall);
5297 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AInitPropExternCall__init_ainitpropexterncall]))(var3, var_tclassidnode2) /* init_ainitpropexterncall on <var3:AInitPropExternCall>*/;
5298 CHECK_NEW_parser_nodes__AInitPropExternCall(var3);
5299 var_pexterncallnode1 = var3;
5300 var_node_list = var_pexterncallnode1;
5301 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction588> */
5302 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
5303 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
5304 RET_LABEL:;
5305 }
5306 /* method parser#ReduceAction588#action for (self: Object, Parser) */
5307 void VIRTUAL_parser__ReduceAction588__action(val* self, val* p0) {
5308 parser__ReduceAction588__action(self, p0);
5309 RET_LABEL:;
5310 }
5311 /* method parser#ReduceAction589#action for (self: ReduceAction589, Parser) */
5312 void parser__ReduceAction589__action(val* self, val* p0) {
5313 val* var_p /* var p: Parser */;
5314 val* var /* : null */;
5315 val* var_node_list /* var node_list: nullable Object */;
5316 val* var1 /* : nullable Object */;
5317 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
5318 val* var2 /* : nullable Object */;
5319 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
5320 val* var3 /* : nullable Object */;
5321 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5322 val* var4 /* : nullable Object */;
5323 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5324 val* var5 /* : nullable Object */;
5325 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5326 val* var6 /* : nullable Object */;
5327 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5328 val* var7 /* : nullable Object */;
5329 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5330 val* var8 /* : nullable Object */;
5331 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5332 val* var_ptypenode2 /* var ptypenode2: nullable Object */;
5333 short int var9 /* : Bool */;
5334 int cltype;
5335 int idtype;
5336 val* var_tkwasnode3 /* var tkwasnode3: nullable Object */;
5337 short int var10 /* : Bool */;
5338 int cltype11;
5339 int idtype12;
5340 val* var_ptypenode4 /* var ptypenode4: nullable Object */;
5341 short int var13 /* : Bool */;
5342 int cltype14;
5343 int idtype15;
5344 val* var16 /* : ACastAsExternCall */;
5345 val* var_pexterncallnode1 /* var pexterncallnode1: nullable ACastAsExternCall */;
5346 long var17 /* : Int */;
5347 long var18 /* : Int */;
5348 var_p = p0;
5349 var = NULL;
5350 var_node_list = var;
5351 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5352 var_nodearraylist8 = var1;
5353 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5354 var_nodearraylist7 = var2;
5355 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5356 var_nodearraylist6 = var3;
5357 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5358 var_nodearraylist5 = var4;
5359 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5360 var_nodearraylist4 = var5;
5361 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5362 var_nodearraylist3 = var6;
5363 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5364 var_nodearraylist2 = var7;
5365 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5366 var_nodearraylist1 = var8;
5367 var_ptypenode2 = var_nodearraylist1;
5368 /* <var_ptypenode2:nullable Object> isa nullable AType */
5369 cltype = type_nullable_parser_nodes__AType.color;
5370 idtype = type_nullable_parser_nodes__AType.id;
5371 if(var_ptypenode2 == NULL) {
5372 var9 = 1;
5373 } else {
5374 if(cltype >= var_ptypenode2->type->table_size) {
5375 var9 = 0;
5376 } else {
5377 var9 = var_ptypenode2->type->type_table[cltype] == idtype;
5378 }
5379 }
5380 if (!var9) {
5381 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24272);
5382 exit(1);
5383 }
5384 var_tkwasnode3 = var_nodearraylist2;
5385 /* <var_tkwasnode3:nullable Object> isa nullable TKwas */
5386 cltype11 = type_nullable_parser_nodes__TKwas.color;
5387 idtype12 = type_nullable_parser_nodes__TKwas.id;
5388 if(var_tkwasnode3 == NULL) {
5389 var10 = 1;
5390 } else {
5391 if(cltype11 >= var_tkwasnode3->type->table_size) {
5392 var10 = 0;
5393 } else {
5394 var10 = var_tkwasnode3->type->type_table[cltype11] == idtype12;
5395 }
5396 }
5397 if (!var10) {
5398 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24274);
5399 exit(1);
5400 }
5401 var_ptypenode4 = var_nodearraylist6;
5402 /* <var_ptypenode4:nullable Object> isa nullable AType */
5403 cltype14 = type_nullable_parser_nodes__AType.color;
5404 idtype15 = type_nullable_parser_nodes__AType.id;
5405 if(var_ptypenode4 == NULL) {
5406 var13 = 1;
5407 } else {
5408 if(cltype14 >= var_ptypenode4->type->table_size) {
5409 var13 = 0;
5410 } else {
5411 var13 = var_ptypenode4->type->type_table[cltype14] == idtype15;
5412 }
5413 }
5414 if (!var13) {
5415 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24276);
5416 exit(1);
5417 }
5418 var16 = NEW_parser_nodes__ACastAsExternCall(&type_parser_nodes__ACastAsExternCall);
5419 ((void (*)(val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__ACastAsExternCall__init_acastasexterncall]))(var16, var_ptypenode2, var_tkwasnode3, var_ptypenode4) /* init_acastasexterncall on <var16:ACastAsExternCall>*/;
5420 CHECK_NEW_parser_nodes__ACastAsExternCall(var16);
5421 var_pexterncallnode1 = var16;
5422 var_node_list = var_pexterncallnode1;
5423 var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction589> */
5424 var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
5425 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
5426 RET_LABEL:;
5427 }
5428 /* method parser#ReduceAction589#action for (self: Object, Parser) */
5429 void VIRTUAL_parser__ReduceAction589__action(val* self, val* p0) {
5430 parser__ReduceAction589__action(self, p0);
5431 RET_LABEL:;
5432 }
5433 /* method parser#ReduceAction590#action for (self: ReduceAction590, Parser) */
5434 void parser__ReduceAction590__action(val* self, val* p0) {
5435 val* var_p /* var p: Parser */;
5436 val* var /* : null */;
5437 val* var_node_list /* var node_list: nullable Object */;
5438 val* var1 /* : nullable Object */;
5439 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5440 val* var2 /* : nullable Object */;
5441 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5442 val* var3 /* : nullable Object */;
5443 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5444 val* var4 /* : nullable Object */;
5445 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5446 val* var_ptypenode2 /* var ptypenode2: nullable Object */;
5447 short int var5 /* : Bool */;
5448 int cltype;
5449 int idtype;
5450 val* var_tkwasnode3 /* var tkwasnode3: nullable Object */;
5451 short int var6 /* : Bool */;
5452 int cltype7;
5453 int idtype8;
5454 val* var_tkwnullablenode4 /* var tkwnullablenode4: nullable Object */;
5455 short int var9 /* : Bool */;
5456 int cltype10;
5457 int idtype11;
5458 val* var12 /* : AAsNullableExternCall */;
5459 val* var_pexterncallnode1 /* var pexterncallnode1: nullable AAsNullableExternCall */;
5460 long var13 /* : Int */;
5461 long var14 /* : Int */;
5462 var_p = p0;
5463 var = NULL;
5464 var_node_list = var;
5465 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5466 var_nodearraylist4 = var1;
5467 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5468 var_nodearraylist3 = var2;
5469 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5470 var_nodearraylist2 = var3;
5471 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5472 var_nodearraylist1 = var4;
5473 var_ptypenode2 = var_nodearraylist1;
5474 /* <var_ptypenode2:nullable Object> isa nullable AType */
5475 cltype = type_nullable_parser_nodes__AType.color;
5476 idtype = type_nullable_parser_nodes__AType.id;
5477 if(var_ptypenode2 == NULL) {
5478 var5 = 1;
5479 } else {
5480 if(cltype >= var_ptypenode2->type->table_size) {
5481 var5 = 0;
5482 } else {
5483 var5 = var_ptypenode2->type->type_table[cltype] == idtype;
5484 }
5485 }
5486 if (!var5) {
5487 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24296);
5488 exit(1);
5489 }
5490 var_tkwasnode3 = var_nodearraylist2;
5491 /* <var_tkwasnode3:nullable Object> isa nullable TKwas */
5492 cltype7 = type_nullable_parser_nodes__TKwas.color;
5493 idtype8 = type_nullable_parser_nodes__TKwas.id;
5494 if(var_tkwasnode3 == NULL) {
5495 var6 = 1;
5496 } else {
5497 if(cltype7 >= var_tkwasnode3->type->table_size) {
5498 var6 = 0;
5499 } else {
5500 var6 = var_tkwasnode3->type->type_table[cltype7] == idtype8;
5501 }
5502 }
5503 if (!var6) {
5504 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24298);
5505 exit(1);
5506 }
5507 var_tkwnullablenode4 = var_nodearraylist4;
5508 /* <var_tkwnullablenode4:nullable Object> isa nullable TKwnullable */
5509 cltype10 = type_nullable_parser_nodes__TKwnullable.color;
5510 idtype11 = type_nullable_parser_nodes__TKwnullable.id;
5511 if(var_tkwnullablenode4 == NULL) {
5512 var9 = 1;
5513 } else {
5514 if(cltype10 >= var_tkwnullablenode4->type->table_size) {
5515 var9 = 0;
5516 } else {
5517 var9 = var_tkwnullablenode4->type->type_table[cltype10] == idtype11;
5518 }
5519 }
5520 if (!var9) {
5521 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24300);
5522 exit(1);
5523 }
5524 var12 = NEW_parser_nodes__AAsNullableExternCall(&type_parser_nodes__AAsNullableExternCall);
5525 ((void (*)(val*, val*, val*, val*))(var12->class->vft[COLOR_parser_prod__AAsNullableExternCall__init_aasnullableexterncall]))(var12, var_ptypenode2, var_tkwasnode3, var_tkwnullablenode4) /* init_aasnullableexterncall on <var12:AAsNullableExternCall>*/;
5526 CHECK_NEW_parser_nodes__AAsNullableExternCall(var12);
5527 var_pexterncallnode1 = var12;
5528 var_node_list = var_pexterncallnode1;
5529 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction590> */
5530 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
5531 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
5532 RET_LABEL:;
5533 }
5534 /* method parser#ReduceAction590#action for (self: Object, Parser) */
5535 void VIRTUAL_parser__ReduceAction590__action(val* self, val* p0) {
5536 parser__ReduceAction590__action(self, p0);
5537 RET_LABEL:;
5538 }
5539 /* method parser#ReduceAction591#action for (self: ReduceAction591, Parser) */
5540 void parser__ReduceAction591__action(val* self, val* p0) {
5541 val* var_p /* var p: Parser */;
5542 val* var /* : null */;
5543 val* var_node_list /* var node_list: nullable Object */;
5544 val* var1 /* : nullable Object */;
5545 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5546 val* var2 /* : nullable Object */;
5547 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5548 val* var3 /* : nullable Object */;
5549 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5550 val* var4 /* : nullable Object */;
5551 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5552 val* var5 /* : nullable Object */;
5553 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5554 val* var6 /* : nullable Object */;
5555 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5556 val* var_ptypenode2 /* var ptypenode2: nullable Object */;
5557 short int var7 /* : Bool */;
5558 int cltype;
5559 int idtype;
5560 val* var_tkwasnode3 /* var tkwasnode3: nullable Object */;
5561 short int var8 /* : Bool */;
5562 int cltype9;
5563 int idtype10;
5564 val* var_tkwnotnode4 /* var tkwnotnode4: nullable Object */;
5565 short int var11 /* : Bool */;
5566 int cltype12;
5567 int idtype13;
5568 val* var_tkwnullablenode5 /* var tkwnullablenode5: nullable Object */;
5569 short int var14 /* : Bool */;
5570 int cltype15;
5571 int idtype16;
5572 val* var17 /* : AAsNotNullableExternCall */;
5573 val* var_pexterncallnode1 /* var pexterncallnode1: nullable AAsNotNullableExternCall */;
5574 long var18 /* : Int */;
5575 long var19 /* : Int */;
5576 var_p = p0;
5577 var = NULL;
5578 var_node_list = var;
5579 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5580 var_nodearraylist6 = var1;
5581 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5582 var_nodearraylist5 = var2;
5583 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5584 var_nodearraylist4 = var3;
5585 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5586 var_nodearraylist3 = var4;
5587 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5588 var_nodearraylist2 = var5;
5589 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5590 var_nodearraylist1 = var6;
5591 var_ptypenode2 = var_nodearraylist1;
5592 /* <var_ptypenode2:nullable Object> isa nullable AType */
5593 cltype = type_nullable_parser_nodes__AType.color;
5594 idtype = type_nullable_parser_nodes__AType.id;
5595 if(var_ptypenode2 == NULL) {
5596 var7 = 1;
5597 } else {
5598 if(cltype >= var_ptypenode2->type->table_size) {
5599 var7 = 0;
5600 } else {
5601 var7 = var_ptypenode2->type->type_table[cltype] == idtype;
5602 }
5603 }
5604 if (!var7) {
5605 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24322);
5606 exit(1);
5607 }
5608 var_tkwasnode3 = var_nodearraylist2;
5609 /* <var_tkwasnode3:nullable Object> isa nullable TKwas */
5610 cltype9 = type_nullable_parser_nodes__TKwas.color;
5611 idtype10 = type_nullable_parser_nodes__TKwas.id;
5612 if(var_tkwasnode3 == NULL) {
5613 var8 = 1;
5614 } else {
5615 if(cltype9 >= var_tkwasnode3->type->table_size) {
5616 var8 = 0;
5617 } else {
5618 var8 = var_tkwasnode3->type->type_table[cltype9] == idtype10;
5619 }
5620 }
5621 if (!var8) {
5622 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24324);
5623 exit(1);
5624 }
5625 var_tkwnotnode4 = var_nodearraylist4;
5626 /* <var_tkwnotnode4:nullable Object> isa nullable TKwnot */
5627 cltype12 = type_nullable_parser_nodes__TKwnot.color;
5628 idtype13 = type_nullable_parser_nodes__TKwnot.id;
5629 if(var_tkwnotnode4 == NULL) {
5630 var11 = 1;
5631 } else {
5632 if(cltype12 >= var_tkwnotnode4->type->table_size) {
5633 var11 = 0;
5634 } else {
5635 var11 = var_tkwnotnode4->type->type_table[cltype12] == idtype13;
5636 }
5637 }
5638 if (!var11) {
5639 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24326);
5640 exit(1);
5641 }
5642 var_tkwnullablenode5 = var_nodearraylist6;
5643 /* <var_tkwnullablenode5:nullable Object> isa nullable TKwnullable */
5644 cltype15 = type_nullable_parser_nodes__TKwnullable.color;
5645 idtype16 = type_nullable_parser_nodes__TKwnullable.id;
5646 if(var_tkwnullablenode5 == NULL) {
5647 var14 = 1;
5648 } else {
5649 if(cltype15 >= var_tkwnullablenode5->type->table_size) {
5650 var14 = 0;
5651 } else {
5652 var14 = var_tkwnullablenode5->type->type_table[cltype15] == idtype16;
5653 }
5654 }
5655 if (!var14) {
5656 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24328);
5657 exit(1);
5658 }
5659 var17 = NEW_parser_nodes__AAsNotNullableExternCall(&type_parser_nodes__AAsNotNullableExternCall);
5660 ((void (*)(val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AAsNotNullableExternCall__init_aasnotnullableexterncall]))(var17, var_ptypenode2, var_tkwasnode3, var_tkwnotnode4, var_tkwnullablenode5) /* init_aasnotnullableexterncall on <var17:AAsNotNullableExternCall>*/;
5661 CHECK_NEW_parser_nodes__AAsNotNullableExternCall(var17);
5662 var_pexterncallnode1 = var17;
5663 var_node_list = var_pexterncallnode1;
5664 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction591> */
5665 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
5666 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
5667 RET_LABEL:;
5668 }
5669 /* method parser#ReduceAction591#action for (self: Object, Parser) */
5670 void VIRTUAL_parser__ReduceAction591__action(val* self, val* p0) {
5671 parser__ReduceAction591__action(self, p0);
5672 RET_LABEL:;
5673 }
5674 /* method parser#ReduceAction592#action for (self: ReduceAction592, Parser) */
5675 void parser__ReduceAction592__action(val* self, val* p0) {
5676 val* var_p /* var p: Parser */;
5677 val* var /* : null */;
5678 val* var_node_list /* var node_list: nullable Object */;
5679 val* var1 /* : nullable Object */;
5680 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5681 val* var2 /* : nullable Object */;
5682 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5683 val* var_tkwinnode2 /* var tkwinnode2: nullable Object */;
5684 short int var3 /* : Bool */;
5685 int cltype;
5686 int idtype;
5687 val* var_tstringnode3 /* var tstringnode3: nullable Object */;
5688 short int var4 /* : Bool */;
5689 int cltype5;
5690 int idtype6;
5691 val* var7 /* : AInLanguage */;
5692 val* var_pinlanguagenode1 /* var pinlanguagenode1: nullable AInLanguage */;
5693 long var8 /* : Int */;
5694 long var9 /* : Int */;
5695 var_p = p0;
5696 var = NULL;
5697 var_node_list = var;
5698 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5699 var_nodearraylist2 = var1;
5700 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5701 var_nodearraylist1 = var2;
5702 var_tkwinnode2 = var_nodearraylist1;
5703 /* <var_tkwinnode2:nullable Object> isa nullable TKwin */
5704 cltype = type_nullable_parser_nodes__TKwin.color;
5705 idtype = type_nullable_parser_nodes__TKwin.id;
5706 if(var_tkwinnode2 == NULL) {
5707 var3 = 1;
5708 } else {
5709 if(cltype >= var_tkwinnode2->type->table_size) {
5710 var3 = 0;
5711 } else {
5712 var3 = var_tkwinnode2->type->type_table[cltype] == idtype;
5713 }
5714 }
5715 if (!var3) {
5716 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24347);
5717 exit(1);
5718 }
5719 var_tstringnode3 = var_nodearraylist2;
5720 /* <var_tstringnode3:nullable Object> isa nullable TString */
5721 cltype5 = type_nullable_parser_nodes__TString.color;
5722 idtype6 = type_nullable_parser_nodes__TString.id;
5723 if(var_tstringnode3 == NULL) {
5724 var4 = 1;
5725 } else {
5726 if(cltype5 >= var_tstringnode3->type->table_size) {
5727 var4 = 0;
5728 } else {
5729 var4 = var_tstringnode3->type->type_table[cltype5] == idtype6;
5730 }
5731 }
5732 if (!var4) {
5733 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24349);
5734 exit(1);
5735 }
5736 var7 = NEW_parser_nodes__AInLanguage(&type_parser_nodes__AInLanguage);
5737 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AInLanguage__init_ainlanguage]))(var7, var_tkwinnode2, var_tstringnode3) /* init_ainlanguage on <var7:AInLanguage>*/;
5738 CHECK_NEW_parser_nodes__AInLanguage(var7);
5739 var_pinlanguagenode1 = var7;
5740 var_node_list = var_pinlanguagenode1;
5741 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction592> */
5742 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
5743 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
5744 RET_LABEL:;
5745 }
5746 /* method parser#ReduceAction592#action for (self: Object, Parser) */
5747 void VIRTUAL_parser__ReduceAction592__action(val* self, val* p0) {
5748 parser__ReduceAction592__action(self, p0);
5749 RET_LABEL:;
5750 }
5751 /* method parser#ReduceAction593#action for (self: ReduceAction593, Parser) */
5752 void parser__ReduceAction593__action(val* self, val* p0) {
5753 val* var_p /* var p: Parser */;
5754 val* var /* : null */;
5755 val* var_node_list /* var node_list: nullable Object */;
5756 val* var1 /* : nullable Object */;
5757 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5758 val* var_texterncodesegmentnode3 /* var texterncodesegmentnode3: nullable Object */;
5759 short int var2 /* : Bool */;
5760 int cltype;
5761 int idtype;
5762 val* var3 /* : AExternCodeBlock */;
5763 val* var4 /* : null */;
5764 val* var_pexterncodeblocknode1 /* var pexterncodeblocknode1: nullable AExternCodeBlock */;
5765 long var5 /* : Int */;
5766 long var6 /* : Int */;
5767 var_p = p0;
5768 var = NULL;
5769 var_node_list = var;
5770 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5771 var_nodearraylist1 = var1;
5772 var_texterncodesegmentnode3 = var_nodearraylist1;
5773 /* <var_texterncodesegmentnode3:nullable Object> isa nullable TExternCodeSegment */
5774 cltype = type_nullable_parser_nodes__TExternCodeSegment.color;
5775 idtype = type_nullable_parser_nodes__TExternCodeSegment.id;
5776 if(var_texterncodesegmentnode3 == NULL) {
5777 var2 = 1;
5778 } else {
5779 if(cltype >= var_texterncodesegmentnode3->type->table_size) {
5780 var2 = 0;
5781 } else {
5782 var2 = var_texterncodesegmentnode3->type->type_table[cltype] == idtype;
5783 }
5784 }
5785 if (!var2) {
5786 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24365);
5787 exit(1);
5788 }
5789 var3 = NEW_parser_nodes__AExternCodeBlock(&type_parser_nodes__AExternCodeBlock);
5790 var4 = NULL;
5791 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AExternCodeBlock__init_aexterncodeblock]))(var3, var4, var_texterncodesegmentnode3) /* init_aexterncodeblock on <var3:AExternCodeBlock>*/;
5792 CHECK_NEW_parser_nodes__AExternCodeBlock(var3);
5793 var_pexterncodeblocknode1 = var3;
5794 var_node_list = var_pexterncodeblocknode1;
5795 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction593> */
5796 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
5797 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
5798 RET_LABEL:;
5799 }
5800 /* method parser#ReduceAction593#action for (self: Object, Parser) */
5801 void VIRTUAL_parser__ReduceAction593__action(val* self, val* p0) {
5802 parser__ReduceAction593__action(self, p0);
5803 RET_LABEL:;
5804 }
5805 /* method parser#ReduceAction594#action for (self: ReduceAction594, Parser) */
5806 void parser__ReduceAction594__action(val* self, val* p0) {
5807 val* var_p /* var p: Parser */;
5808 val* var /* : null */;
5809 val* var_node_list /* var node_list: nullable Object */;
5810 val* var1 /* : nullable Object */;
5811 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5812 val* var2 /* : nullable Object */;
5813 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5814 val* var_pinlanguagenode2 /* var pinlanguagenode2: nullable Object */;
5815 short int var3 /* : Bool */;
5816 int cltype;
5817 int idtype;
5818 val* var_texterncodesegmentnode3 /* var texterncodesegmentnode3: nullable Object */;
5819 short int var4 /* : Bool */;
5820 int cltype5;
5821 int idtype6;
5822 val* var7 /* : AExternCodeBlock */;
5823 val* var_pexterncodeblocknode1 /* var pexterncodeblocknode1: nullable AExternCodeBlock */;
5824 long var8 /* : Int */;
5825 long var9 /* : Int */;
5826 var_p = p0;
5827 var = NULL;
5828 var_node_list = var;
5829 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5830 var_nodearraylist2 = var1;
5831 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5832 var_nodearraylist1 = var2;
5833 var_pinlanguagenode2 = var_nodearraylist1;
5834 /* <var_pinlanguagenode2:nullable Object> isa nullable AInLanguage */
5835 cltype = type_nullable_parser_nodes__AInLanguage.color;
5836 idtype = type_nullable_parser_nodes__AInLanguage.id;
5837 if(var_pinlanguagenode2 == NULL) {
5838 var3 = 1;
5839 } else {
5840 if(cltype >= var_pinlanguagenode2->type->table_size) {
5841 var3 = 0;
5842 } else {
5843 var3 = var_pinlanguagenode2->type->type_table[cltype] == idtype;
5844 }
5845 }
5846 if (!var3) {
5847 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24382);
5848 exit(1);
5849 }
5850 var_texterncodesegmentnode3 = var_nodearraylist2;
5851 /* <var_texterncodesegmentnode3:nullable Object> isa nullable TExternCodeSegment */
5852 cltype5 = type_nullable_parser_nodes__TExternCodeSegment.color;
5853 idtype6 = type_nullable_parser_nodes__TExternCodeSegment.id;
5854 if(var_texterncodesegmentnode3 == NULL) {
5855 var4 = 1;
5856 } else {
5857 if(cltype5 >= var_texterncodesegmentnode3->type->table_size) {
5858 var4 = 0;
5859 } else {
5860 var4 = var_texterncodesegmentnode3->type->type_table[cltype5] == idtype6;
5861 }
5862 }
5863 if (!var4) {
5864 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24384);
5865 exit(1);
5866 }
5867 var7 = NEW_parser_nodes__AExternCodeBlock(&type_parser_nodes__AExternCodeBlock);
5868 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AExternCodeBlock__init_aexterncodeblock]))(var7, var_pinlanguagenode2, var_texterncodesegmentnode3) /* init_aexterncodeblock on <var7:AExternCodeBlock>*/;
5869 CHECK_NEW_parser_nodes__AExternCodeBlock(var7);
5870 var_pexterncodeblocknode1 = var7;
5871 var_node_list = var_pexterncodeblocknode1;
5872 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction594> */
5873 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
5874 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
5875 RET_LABEL:;
5876 }
5877 /* method parser#ReduceAction594#action for (self: Object, Parser) */
5878 void VIRTUAL_parser__ReduceAction594__action(val* self, val* p0) {
5879 parser__ReduceAction594__action(self, p0);
5880 RET_LABEL:;
5881 }
5882 /* method parser#ReduceAction595#action for (self: ReduceAction595, Parser) */
5883 void parser__ReduceAction595__action(val* self, val* p0) {
5884 val* var_p /* var p: Parser */;
5885 val* var /* : null */;
5886 val* var_node_list /* var node_list: nullable Object */;
5887 val* var1 /* : nullable Object */;
5888 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5889 val* var2 /* : nullable Object */;
5890 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5891 val* var_pexterncodeblocknode1 /* var pexterncodeblocknode1: nullable Object */;
5892 long var3 /* : Int */;
5893 long var4 /* : Int */;
5894 var_p = p0;
5895 var = NULL;
5896 var_node_list = var;
5897 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5898 var_nodearraylist2 = var1;
5899 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5900 var_nodearraylist1 = var2;
5901 var_pexterncodeblocknode1 = var_nodearraylist2;
5902 var_node_list = var_pexterncodeblocknode1;
5903 var3 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction595> */
5904 var4 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var3) /* go_to on <var_p:Parser>*/;
5905 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var4, var_node_list) /* push on <var_p:Parser>*/;
5906 RET_LABEL:;
5907 }
5908 /* method parser#ReduceAction595#action for (self: Object, Parser) */
5909 void VIRTUAL_parser__ReduceAction595__action(val* self, val* p0) {
5910 parser__ReduceAction595__action(self, p0);
5911 RET_LABEL:;
5912 }
5913 /* method parser#ReduceAction596#action for (self: ReduceAction596, Parser) */
5914 void parser__ReduceAction596__action(val* self, val* p0) {
5915 val* var_p /* var p: Parser */;
5916 val* var /* : null */;
5917 val* var_node_list /* var node_list: nullable Object */;
5918 val* var1 /* : nullable Object */;
5919 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5920 val* var2 /* : Array[Object] */;
5921 val* var_listnode4 /* var listnode4: Array[Object] */;
5922 val* var_tclassidnode3 /* var tclassidnode3: nullable Object */;
5923 short int var3 /* : Bool */;
5924 int cltype;
5925 int idtype;
5926 val* var4 /* : AType */;
5927 val* var5 /* : null */;
5928 val* var6 /* : null */;
5929 val* var_ptypenode1 /* var ptypenode1: nullable AType */;
5930 long var7 /* : Int */;
5931 long var8 /* : Int */;
5932 var_p = p0;
5933 var = NULL;
5934 var_node_list = var;
5935 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5936 var_nodearraylist1 = var1;
5937 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
5938 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
5939 CHECK_NEW_array__Array(var2);
5940 var_listnode4 = var2;
5941 var_tclassidnode3 = var_nodearraylist1;
5942 /* <var_tclassidnode3:nullable Object> isa nullable TClassid */
5943 cltype = type_nullable_parser_nodes__TClassid.color;
5944 idtype = type_nullable_parser_nodes__TClassid.id;
5945 if(var_tclassidnode3 == NULL) {
5946 var3 = 1;
5947 } else {
5948 if(cltype >= var_tclassidnode3->type->table_size) {
5949 var3 = 0;
5950 } else {
5951 var3 = var_tclassidnode3->type->type_table[cltype] == idtype;
5952 }
5953 }
5954 if (!var3) {
5955 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24413);
5956 exit(1);
5957 }
5958 var4 = NEW_parser_nodes__AType(&type_parser_nodes__AType);
5959 var5 = NULL;
5960 var6 = NULL;
5961 ((void (*)(val*, val*, val*, val*, val*))(var4->class->vft[COLOR_parser_prod__AType__init_atype]))(var4, var5, var_tclassidnode3, var_listnode4, var6) /* init_atype on <var4:AType>*/;
5962 CHECK_NEW_parser_nodes__AType(var4);
5963 var_ptypenode1 = var4;
5964 var_node_list = var_ptypenode1;
5965 var7 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction596> */
5966 var8 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var7) /* go_to on <var_p:Parser>*/;
5967 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var8, var_node_list) /* push on <var_p:Parser>*/;
5968 RET_LABEL:;
5969 }
5970 /* method parser#ReduceAction596#action for (self: Object, Parser) */
5971 void VIRTUAL_parser__ReduceAction596__action(val* self, val* p0) {
5972 parser__ReduceAction596__action(self, p0);
5973 RET_LABEL:;
5974 }
5975 /* method parser#ReduceAction597#action for (self: ReduceAction597, Parser) */
5976 void parser__ReduceAction597__action(val* self, val* p0) {
5977 val* var_p /* var p: Parser */;
5978 val* var /* : null */;
5979 val* var_node_list /* var node_list: nullable Object */;
5980 val* var1 /* : nullable Object */;
5981 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5982 val* var2 /* : nullable Object */;
5983 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5984 val* var3 /* : Array[Object] */;
5985 val* var_listnode4 /* var listnode4: Array[Object] */;
5986 val* var_tkwnullablenode2 /* var tkwnullablenode2: nullable Object */;
5987 short int var4 /* : Bool */;
5988 int cltype;
5989 int idtype;
5990 val* var_tclassidnode3 /* var tclassidnode3: nullable Object */;
5991 short int var5 /* : Bool */;
5992 int cltype6;
5993 int idtype7;
5994 val* var8 /* : AType */;
5995 val* var9 /* : null */;
5996 val* var_ptypenode1 /* var ptypenode1: nullable AType */;
5997 long var10 /* : Int */;
5998 long var11 /* : Int */;
5999 var_p = p0;
6000 var = NULL;
6001 var_node_list = var;
6002 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6003 var_nodearraylist2 = var1;
6004 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6005 var_nodearraylist1 = var2;
6006 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
6007 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
6008 CHECK_NEW_array__Array(var3);
6009 var_listnode4 = var3;
6010 var_tkwnullablenode2 = var_nodearraylist1;
6011 /* <var_tkwnullablenode2:nullable Object> isa nullable TKwnullable */
6012 cltype = type_nullable_parser_nodes__TKwnullable.color;
6013 idtype = type_nullable_parser_nodes__TKwnullable.id;
6014 if(var_tkwnullablenode2 == NULL) {
6015 var4 = 1;
6016 } else {
6017 if(cltype >= var_tkwnullablenode2->type->table_size) {
6018 var4 = 0;
6019 } else {
6020 var4 = var_tkwnullablenode2->type->type_table[cltype] == idtype;
6021 }
6022 }
6023 if (!var4) {
6024 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24433);
6025 exit(1);
6026 }
6027 var_tclassidnode3 = var_nodearraylist2;
6028 /* <var_tclassidnode3:nullable Object> isa nullable TClassid */
6029 cltype6 = type_nullable_parser_nodes__TClassid.color;
6030 idtype7 = type_nullable_parser_nodes__TClassid.id;
6031 if(var_tclassidnode3 == NULL) {
6032 var5 = 1;
6033 } else {
6034 if(cltype6 >= var_tclassidnode3->type->table_size) {
6035 var5 = 0;
6036 } else {
6037 var5 = var_tclassidnode3->type->type_table[cltype6] == idtype7;
6038 }
6039 }
6040 if (!var5) {
6041 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24435);
6042 exit(1);
6043 }
6044 var8 = NEW_parser_nodes__AType(&type_parser_nodes__AType);
6045 var9 = NULL;
6046 ((void (*)(val*, val*, val*, val*, val*))(var8->class->vft[COLOR_parser_prod__AType__init_atype]))(var8, var_tkwnullablenode2, var_tclassidnode3, var_listnode4, var9) /* init_atype on <var8:AType>*/;
6047 CHECK_NEW_parser_nodes__AType(var8);
6048 var_ptypenode1 = var8;
6049 var_node_list = var_ptypenode1;
6050 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction597> */
6051 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
6052 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
6053 RET_LABEL:;
6054 }
6055 /* method parser#ReduceAction597#action for (self: Object, Parser) */
6056 void VIRTUAL_parser__ReduceAction597__action(val* self, val* p0) {
6057 parser__ReduceAction597__action(self, p0);
6058 RET_LABEL:;
6059 }
6060 /* method parser#ReduceAction598#action for (self: ReduceAction598, Parser) */
6061 void parser__ReduceAction598__action(val* self, val* p0) {
6062 val* var_p /* var p: Parser */;
6063 val* var /* : null */;
6064 val* var_node_list /* var node_list: nullable Object */;
6065 val* var1 /* : nullable Object */;
6066 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6067 val* var2 /* : nullable Object */;
6068 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6069 val* var3 /* : Array[Object] */;
6070 val* var_listnode4 /* var listnode4: Array[Object] */;
6071 val* var_tclassidnode3 /* var tclassidnode3: nullable Object */;
6072 short int var4 /* : Bool */;
6073 int cltype;
6074 int idtype;
6075 val* var_pannotationsnode5 /* var pannotationsnode5: nullable Object */;
6076 short int var5 /* : Bool */;
6077 int cltype6;
6078 int idtype7;
6079 val* var8 /* : AType */;
6080 val* var9 /* : null */;
6081 val* var_ptypenode1 /* var ptypenode1: nullable AType */;
6082 long var10 /* : Int */;
6083 long var11 /* : Int */;
6084 var_p = p0;
6085 var = NULL;
6086 var_node_list = var;
6087 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6088 var_nodearraylist2 = var1;
6089 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6090 var_nodearraylist1 = var2;
6091 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
6092 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
6093 CHECK_NEW_array__Array(var3);
6094 var_listnode4 = var3;
6095 var_tclassidnode3 = var_nodearraylist1;
6096 /* <var_tclassidnode3:nullable Object> isa nullable TClassid */
6097 cltype = type_nullable_parser_nodes__TClassid.color;
6098 idtype = type_nullable_parser_nodes__TClassid.id;
6099 if(var_tclassidnode3 == NULL) {
6100 var4 = 1;
6101 } else {
6102 if(cltype >= var_tclassidnode3->type->table_size) {
6103 var4 = 0;
6104 } else {
6105 var4 = var_tclassidnode3->type->type_table[cltype] == idtype;
6106 }
6107 }
6108 if (!var4) {
6109 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24455);
6110 exit(1);
6111 }
6112 var_pannotationsnode5 = var_nodearraylist2;
6113 /* <var_pannotationsnode5:nullable Object> isa nullable AAnnotations */
6114 cltype6 = type_nullable_parser_nodes__AAnnotations.color;
6115 idtype7 = type_nullable_parser_nodes__AAnnotations.id;
6116 if(var_pannotationsnode5 == NULL) {
6117 var5 = 1;
6118 } else {
6119 if(cltype6 >= var_pannotationsnode5->type->table_size) {
6120 var5 = 0;
6121 } else {
6122 var5 = var_pannotationsnode5->type->type_table[cltype6] == idtype7;
6123 }
6124 }
6125 if (!var5) {
6126 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24457);
6127 exit(1);
6128 }
6129 var8 = NEW_parser_nodes__AType(&type_parser_nodes__AType);
6130 var9 = NULL;
6131 ((void (*)(val*, val*, val*, val*, val*))(var8->class->vft[COLOR_parser_prod__AType__init_atype]))(var8, var9, var_tclassidnode3, var_listnode4, var_pannotationsnode5) /* init_atype on <var8:AType>*/;
6132 CHECK_NEW_parser_nodes__AType(var8);
6133 var_ptypenode1 = var8;
6134 var_node_list = var_ptypenode1;
6135 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction598> */
6136 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
6137 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
6138 RET_LABEL:;
6139 }
6140 /* method parser#ReduceAction598#action for (self: Object, Parser) */
6141 void VIRTUAL_parser__ReduceAction598__action(val* self, val* p0) {
6142 parser__ReduceAction598__action(self, p0);
6143 RET_LABEL:;
6144 }
6145 /* method parser#ReduceAction599#action for (self: ReduceAction599, Parser) */
6146 void parser__ReduceAction599__action(val* self, val* p0) {
6147 val* var_p /* var p: Parser */;
6148 val* var /* : null */;
6149 val* var_node_list /* var node_list: nullable Object */;
6150 val* var1 /* : nullable Object */;
6151 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6152 val* var2 /* : nullable Object */;
6153 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6154 val* var3 /* : nullable Object */;
6155 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6156 val* var4 /* : Array[Object] */;
6157 val* var_listnode4 /* var listnode4: Array[Object] */;
6158 val* var_tkwnullablenode2 /* var tkwnullablenode2: nullable Object */;
6159 short int var5 /* : Bool */;
6160 int cltype;
6161 int idtype;
6162 val* var_tclassidnode3 /* var tclassidnode3: nullable Object */;
6163 short int var6 /* : Bool */;
6164 int cltype7;
6165 int idtype8;
6166 val* var_pannotationsnode5 /* var pannotationsnode5: nullable Object */;
6167 short int var9 /* : Bool */;
6168 int cltype10;
6169 int idtype11;
6170 val* var12 /* : AType */;
6171 val* var_ptypenode1 /* var ptypenode1: nullable AType */;
6172 long var13 /* : Int */;
6173 long var14 /* : Int */;
6174 var_p = p0;
6175 var = NULL;
6176 var_node_list = var;
6177 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6178 var_nodearraylist3 = var1;
6179 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6180 var_nodearraylist2 = var2;
6181 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6182 var_nodearraylist1 = var3;
6183 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
6184 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
6185 CHECK_NEW_array__Array(var4);
6186 var_listnode4 = var4;
6187 var_tkwnullablenode2 = var_nodearraylist1;
6188 /* <var_tkwnullablenode2:nullable Object> isa nullable TKwnullable */
6189 cltype = type_nullable_parser_nodes__TKwnullable.color;
6190 idtype = type_nullable_parser_nodes__TKwnullable.id;
6191 if(var_tkwnullablenode2 == NULL) {
6192 var5 = 1;
6193 } else {
6194 if(cltype >= var_tkwnullablenode2->type->table_size) {
6195 var5 = 0;
6196 } else {
6197 var5 = var_tkwnullablenode2->type->type_table[cltype] == idtype;
6198 }
6199 }
6200 if (!var5) {
6201 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24478);
6202 exit(1);
6203 }
6204 var_tclassidnode3 = var_nodearraylist2;
6205 /* <var_tclassidnode3:nullable Object> isa nullable TClassid */
6206 cltype7 = type_nullable_parser_nodes__TClassid.color;
6207 idtype8 = type_nullable_parser_nodes__TClassid.id;
6208 if(var_tclassidnode3 == NULL) {
6209 var6 = 1;
6210 } else {
6211 if(cltype7 >= var_tclassidnode3->type->table_size) {
6212 var6 = 0;
6213 } else {
6214 var6 = var_tclassidnode3->type->type_table[cltype7] == idtype8;
6215 }
6216 }
6217 if (!var6) {
6218 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24480);
6219 exit(1);
6220 }
6221 var_pannotationsnode5 = var_nodearraylist3;
6222 /* <var_pannotationsnode5:nullable Object> isa nullable AAnnotations */
6223 cltype10 = type_nullable_parser_nodes__AAnnotations.color;
6224 idtype11 = type_nullable_parser_nodes__AAnnotations.id;
6225 if(var_pannotationsnode5 == NULL) {
6226 var9 = 1;
6227 } else {
6228 if(cltype10 >= var_pannotationsnode5->type->table_size) {
6229 var9 = 0;
6230 } else {
6231 var9 = var_pannotationsnode5->type->type_table[cltype10] == idtype11;
6232 }
6233 }
6234 if (!var9) {
6235 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24482);
6236 exit(1);
6237 }
6238 var12 = NEW_parser_nodes__AType(&type_parser_nodes__AType);
6239 ((void (*)(val*, val*, val*, val*, val*))(var12->class->vft[COLOR_parser_prod__AType__init_atype]))(var12, var_tkwnullablenode2, var_tclassidnode3, var_listnode4, var_pannotationsnode5) /* init_atype on <var12:AType>*/;
6240 CHECK_NEW_parser_nodes__AType(var12);
6241 var_ptypenode1 = var12;
6242 var_node_list = var_ptypenode1;
6243 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction599> */
6244 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
6245 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
6246 RET_LABEL:;
6247 }
6248 /* method parser#ReduceAction599#action for (self: Object, Parser) */
6249 void VIRTUAL_parser__ReduceAction599__action(val* self, val* p0) {
6250 parser__ReduceAction599__action(self, p0);
6251 RET_LABEL:;
6252 }
6253 /* method parser#ReduceAction600#action for (self: ReduceAction600, Parser) */
6254 void parser__ReduceAction600__action(val* self, val* p0) {
6255 val* var_p /* var p: Parser */;
6256 val* var /* : null */;
6257 val* var_node_list /* var node_list: nullable Object */;
6258 val* var1 /* : nullable Object */;
6259 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6260 val* var2 /* : nullable Object */;
6261 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6262 val* var3 /* : nullable Object */;
6263 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6264 val* var4 /* : nullable Object */;
6265 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6266 val* var5 /* : nullable Object */;
6267 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6268 val* var6 /* : nullable Object */;
6269 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6270 val* var7 /* : Array[Object] */;
6271 val* var_listnode5 /* var listnode5: Array[Object] */;
6272 val* var_tclassidnode3 /* var tclassidnode3: nullable Object */;
6273 short int var8 /* : Bool */;
6274 int cltype;
6275 int idtype;
6276 val* var_listnode4 /* var listnode4: nullable Object */;
6277 short int var9 /* : Bool */;
6278 int cltype10;
6279 int idtype11;
6280 val* var12 /* : Array[Object] */;
6281 val* var13 /* : AType */;
6282 val* var14 /* : null */;
6283 val* var15 /* : null */;
6284 val* var_ptypenode1 /* var ptypenode1: nullable AType */;
6285 long var16 /* : Int */;
6286 long var17 /* : Int */;
6287 var_p = p0;
6288 var = NULL;
6289 var_node_list = var;
6290 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6291 var_nodearraylist6 = var1;
6292 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6293 var_nodearraylist5 = var2;
6294 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6295 var_nodearraylist4 = var3;
6296 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6297 var_nodearraylist3 = var4;
6298 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6299 var_nodearraylist2 = var5;
6300 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6301 var_nodearraylist1 = var6;
6302 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
6303 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
6304 CHECK_NEW_array__Array(var7);
6305 var_listnode5 = var7;
6306 var_tclassidnode3 = var_nodearraylist1;
6307 /* <var_tclassidnode3:nullable Object> isa nullable TClassid */
6308 cltype = type_nullable_parser_nodes__TClassid.color;
6309 idtype = type_nullable_parser_nodes__TClassid.id;
6310 if(var_tclassidnode3 == NULL) {
6311 var8 = 1;
6312 } else {
6313 if(cltype >= var_tclassidnode3->type->table_size) {
6314 var8 = 0;
6315 } else {
6316 var8 = var_tclassidnode3->type->type_table[cltype] == idtype;
6317 }
6318 }
6319 if (!var8) {
6320 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24506);
6321 exit(1);
6322 }
6323 var_listnode4 = var_nodearraylist4;
6324 /* <var_listnode4:nullable Object> isa Array[Object] */
6325 cltype10 = type_array__Arraykernel__Object.color;
6326 idtype11 = type_array__Arraykernel__Object.id;
6327 if(var_listnode4 == NULL) {
6328 var9 = 0;
6329 } else {
6330 if(cltype10 >= var_listnode4->type->table_size) {
6331 var9 = 0;
6332 } else {
6333 var9 = var_listnode4->type->type_table[cltype10] == idtype11;
6334 }
6335 }
6336 if (!var9) {
6337 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24508);
6338 exit(1);
6339 }
6340 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction600>*/;
6341 var_listnode5 = var12;
6342 var13 = NEW_parser_nodes__AType(&type_parser_nodes__AType);
6343 var14 = NULL;
6344 var15 = NULL;
6345 ((void (*)(val*, val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__AType__init_atype]))(var13, var14, var_tclassidnode3, var_listnode5, var15) /* init_atype on <var13:AType>*/;
6346 CHECK_NEW_parser_nodes__AType(var13);
6347 var_ptypenode1 = var13;
6348 var_node_list = var_ptypenode1;
6349 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction600> */
6350 var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
6351 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
6352 RET_LABEL:;
6353 }
6354 /* method parser#ReduceAction600#action for (self: Object, Parser) */
6355 void VIRTUAL_parser__ReduceAction600__action(val* self, val* p0) {
6356 parser__ReduceAction600__action(self, p0);
6357 RET_LABEL:;
6358 }
6359 /* method parser#ReduceAction601#action for (self: ReduceAction601, Parser) */
6360 void parser__ReduceAction601__action(val* self, val* p0) {
6361 val* var_p /* var p: Parser */;
6362 val* var /* : null */;
6363 val* var_node_list /* var node_list: nullable Object */;
6364 val* var1 /* : nullable Object */;
6365 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
6366 val* var2 /* : nullable Object */;
6367 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6368 val* var3 /* : nullable Object */;
6369 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6370 val* var4 /* : nullable Object */;
6371 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6372 val* var5 /* : nullable Object */;
6373 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6374 val* var6 /* : nullable Object */;
6375 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6376 val* var7 /* : nullable Object */;
6377 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6378 val* var8 /* : Array[Object] */;
6379 val* var_listnode5 /* var listnode5: Array[Object] */;
6380 val* var_tkwnullablenode2 /* var tkwnullablenode2: nullable Object */;
6381 short int var9 /* : Bool */;
6382 int cltype;
6383 int idtype;
6384 val* var_tclassidnode3 /* var tclassidnode3: nullable Object */;
6385 short int var10 /* : Bool */;
6386 int cltype11;
6387 int idtype12;
6388 val* var_listnode4 /* var listnode4: nullable Object */;
6389 short int var13 /* : Bool */;
6390 int cltype14;
6391 int idtype15;
6392 val* var16 /* : Array[Object] */;
6393 val* var17 /* : AType */;
6394 val* var18 /* : null */;
6395 val* var_ptypenode1 /* var ptypenode1: nullable AType */;
6396 long var19 /* : Int */;
6397 long var20 /* : Int */;
6398 var_p = p0;
6399 var = NULL;
6400 var_node_list = var;
6401 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6402 var_nodearraylist7 = var1;
6403 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6404 var_nodearraylist6 = var2;
6405 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6406 var_nodearraylist5 = var3;
6407 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6408 var_nodearraylist4 = var4;
6409 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6410 var_nodearraylist3 = var5;
6411 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6412 var_nodearraylist2 = var6;
6413 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6414 var_nodearraylist1 = var7;
6415 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
6416 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
6417 CHECK_NEW_array__Array(var8);
6418 var_listnode5 = var8;
6419 var_tkwnullablenode2 = var_nodearraylist1;
6420 /* <var_tkwnullablenode2:nullable Object> isa nullable TKwnullable */
6421 cltype = type_nullable_parser_nodes__TKwnullable.color;
6422 idtype = type_nullable_parser_nodes__TKwnullable.id;
6423 if(var_tkwnullablenode2 == NULL) {
6424 var9 = 1;
6425 } else {
6426 if(cltype >= var_tkwnullablenode2->type->table_size) {
6427 var9 = 0;
6428 } else {
6429 var9 = var_tkwnullablenode2->type->type_table[cltype] == idtype;
6430 }
6431 }
6432 if (!var9) {
6433 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24534);
6434 exit(1);
6435 }
6436 var_tclassidnode3 = var_nodearraylist2;
6437 /* <var_tclassidnode3:nullable Object> isa nullable TClassid */
6438 cltype11 = type_nullable_parser_nodes__TClassid.color;
6439 idtype12 = type_nullable_parser_nodes__TClassid.id;
6440 if(var_tclassidnode3 == NULL) {
6441 var10 = 1;
6442 } else {
6443 if(cltype11 >= var_tclassidnode3->type->table_size) {
6444 var10 = 0;
6445 } else {
6446 var10 = var_tclassidnode3->type->type_table[cltype11] == idtype12;
6447 }
6448 }
6449 if (!var10) {
6450 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24536);
6451 exit(1);
6452 }
6453 var_listnode4 = var_nodearraylist5;
6454 /* <var_listnode4:nullable Object> isa Array[Object] */
6455 cltype14 = type_array__Arraykernel__Object.color;
6456 idtype15 = type_array__Arraykernel__Object.id;
6457 if(var_listnode4 == NULL) {
6458 var13 = 0;
6459 } else {
6460 if(cltype14 >= var_listnode4->type->table_size) {
6461 var13 = 0;
6462 } else {
6463 var13 = var_listnode4->type->type_table[cltype14] == idtype15;
6464 }
6465 }
6466 if (!var13) {
6467 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24538);
6468 exit(1);
6469 }
6470 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction601>*/;
6471 var_listnode5 = var16;
6472 var17 = NEW_parser_nodes__AType(&type_parser_nodes__AType);
6473 var18 = NULL;
6474 ((void (*)(val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AType__init_atype]))(var17, var_tkwnullablenode2, var_tclassidnode3, var_listnode5, var18) /* init_atype on <var17:AType>*/;
6475 CHECK_NEW_parser_nodes__AType(var17);
6476 var_ptypenode1 = var17;
6477 var_node_list = var_ptypenode1;
6478 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction601> */
6479 var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
6480 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
6481 RET_LABEL:;
6482 }
6483 /* method parser#ReduceAction601#action for (self: Object, Parser) */
6484 void VIRTUAL_parser__ReduceAction601__action(val* self, val* p0) {
6485 parser__ReduceAction601__action(self, p0);
6486 RET_LABEL:;
6487 }
6488 /* method parser#ReduceAction602#action for (self: ReduceAction602, Parser) */
6489 void parser__ReduceAction602__action(val* self, val* p0) {
6490 val* var_p /* var p: Parser */;
6491 val* var /* : null */;
6492 val* var_node_list /* var node_list: nullable Object */;
6493 val* var1 /* : nullable Object */;
6494 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
6495 val* var2 /* : nullable Object */;
6496 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6497 val* var3 /* : nullable Object */;
6498 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6499 val* var4 /* : nullable Object */;
6500 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6501 val* var5 /* : nullable Object */;
6502 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6503 val* var6 /* : nullable Object */;
6504 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6505 val* var7 /* : nullable Object */;
6506 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6507 val* var8 /* : Array[Object] */;
6508 val* var_listnode5 /* var listnode5: Array[Object] */;
6509 val* var_tclassidnode3 /* var tclassidnode3: nullable Object */;
6510 short int var9 /* : Bool */;
6511 int cltype;
6512 int idtype;
6513 val* var_listnode4 /* var listnode4: nullable Object */;
6514 short int var10 /* : Bool */;
6515 int cltype11;
6516 int idtype12;
6517 val* var13 /* : Array[Object] */;
6518 val* var_pannotationsnode6 /* var pannotationsnode6: nullable Object */;
6519 short int var14 /* : Bool */;
6520 int cltype15;
6521 int idtype16;
6522 val* var17 /* : AType */;
6523 val* var18 /* : null */;
6524 val* var_ptypenode1 /* var ptypenode1: nullable AType */;
6525 long var19 /* : Int */;
6526 long var20 /* : Int */;
6527 var_p = p0;
6528 var = NULL;
6529 var_node_list = var;
6530 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6531 var_nodearraylist7 = var1;
6532 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6533 var_nodearraylist6 = var2;
6534 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6535 var_nodearraylist5 = var3;
6536 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6537 var_nodearraylist4 = var4;
6538 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6539 var_nodearraylist3 = var5;
6540 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6541 var_nodearraylist2 = var6;
6542 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6543 var_nodearraylist1 = var7;
6544 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
6545 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
6546 CHECK_NEW_array__Array(var8);
6547 var_listnode5 = var8;
6548 var_tclassidnode3 = var_nodearraylist1;
6549 /* <var_tclassidnode3:nullable Object> isa nullable TClassid */
6550 cltype = type_nullable_parser_nodes__TClassid.color;
6551 idtype = type_nullable_parser_nodes__TClassid.id;
6552 if(var_tclassidnode3 == NULL) {
6553 var9 = 1;
6554 } else {
6555 if(cltype >= var_tclassidnode3->type->table_size) {
6556 var9 = 0;
6557 } else {
6558 var9 = var_tclassidnode3->type->type_table[cltype] == idtype;
6559 }
6560 }
6561 if (!var9) {
6562 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24564);
6563 exit(1);
6564 }
6565 var_listnode4 = var_nodearraylist4;
6566 /* <var_listnode4:nullable Object> isa Array[Object] */
6567 cltype11 = type_array__Arraykernel__Object.color;
6568 idtype12 = type_array__Arraykernel__Object.id;
6569 if(var_listnode4 == NULL) {
6570 var10 = 0;
6571 } else {
6572 if(cltype11 >= var_listnode4->type->table_size) {
6573 var10 = 0;
6574 } else {
6575 var10 = var_listnode4->type->type_table[cltype11] == idtype12;
6576 }
6577 }
6578 if (!var10) {
6579 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24566);
6580 exit(1);
6581 }
6582 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction602>*/;
6583 var_listnode5 = var13;
6584 var_pannotationsnode6 = var_nodearraylist7;
6585 /* <var_pannotationsnode6:nullable Object> isa nullable AAnnotations */
6586 cltype15 = type_nullable_parser_nodes__AAnnotations.color;
6587 idtype16 = type_nullable_parser_nodes__AAnnotations.id;
6588 if(var_pannotationsnode6 == NULL) {
6589 var14 = 1;
6590 } else {
6591 if(cltype15 >= var_pannotationsnode6->type->table_size) {
6592 var14 = 0;
6593 } else {
6594 var14 = var_pannotationsnode6->type->type_table[cltype15] == idtype16;
6595 }
6596 }
6597 if (!var14) {
6598 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24569);
6599 exit(1);
6600 }
6601 var17 = NEW_parser_nodes__AType(&type_parser_nodes__AType);
6602 var18 = NULL;
6603 ((void (*)(val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AType__init_atype]))(var17, var18, var_tclassidnode3, var_listnode5, var_pannotationsnode6) /* init_atype on <var17:AType>*/;
6604 CHECK_NEW_parser_nodes__AType(var17);
6605 var_ptypenode1 = var17;
6606 var_node_list = var_ptypenode1;
6607 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction602> */
6608 var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
6609 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
6610 RET_LABEL:;
6611 }
6612 /* method parser#ReduceAction602#action for (self: Object, Parser) */
6613 void VIRTUAL_parser__ReduceAction602__action(val* self, val* p0) {
6614 parser__ReduceAction602__action(self, p0);
6615 RET_LABEL:;
6616 }
6617 /* method parser#ReduceAction603#action for (self: ReduceAction603, Parser) */
6618 void parser__ReduceAction603__action(val* self, val* p0) {
6619 val* var_p /* var p: Parser */;
6620 val* var /* : null */;
6621 val* var_node_list /* var node_list: nullable Object */;
6622 val* var1 /* : nullable Object */;
6623 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
6624 val* var2 /* : nullable Object */;
6625 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
6626 val* var3 /* : nullable Object */;
6627 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6628 val* var4 /* : nullable Object */;
6629 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6630 val* var5 /* : nullable Object */;
6631 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6632 val* var6 /* : nullable Object */;
6633 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6634 val* var7 /* : nullable Object */;
6635 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6636 val* var8 /* : nullable Object */;
6637 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6638 val* var9 /* : Array[Object] */;
6639 val* var_listnode5 /* var listnode5: Array[Object] */;
6640 val* var_tkwnullablenode2 /* var tkwnullablenode2: nullable Object */;
6641 short int var10 /* : Bool */;
6642 int cltype;
6643 int idtype;
6644 val* var_tclassidnode3 /* var tclassidnode3: nullable Object */;
6645 short int var11 /* : Bool */;
6646 int cltype12;
6647 int idtype13;
6648 val* var_listnode4 /* var listnode4: nullable Object */;
6649 short int var14 /* : Bool */;
6650 int cltype15;
6651 int idtype16;
6652 val* var17 /* : Array[Object] */;
6653 val* var_pannotationsnode6 /* var pannotationsnode6: nullable Object */;
6654 short int var18 /* : Bool */;
6655 int cltype19;
6656 int idtype20;
6657 val* var21 /* : AType */;
6658 val* var_ptypenode1 /* var ptypenode1: nullable AType */;
6659 long var22 /* : Int */;
6660 long var23 /* : Int */;
6661 var_p = p0;
6662 var = NULL;
6663 var_node_list = var;
6664 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6665 var_nodearraylist8 = var1;
6666 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6667 var_nodearraylist7 = var2;
6668 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6669 var_nodearraylist6 = var3;
6670 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6671 var_nodearraylist5 = var4;
6672 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6673 var_nodearraylist4 = var5;
6674 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6675 var_nodearraylist3 = var6;
6676 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6677 var_nodearraylist2 = var7;
6678 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6679 var_nodearraylist1 = var8;
6680 var9 = NEW_array__Array(&type_array__Arraykernel__Object);
6681 ((void (*)(val*))(var9->class->vft[COLOR_array__Array__init]))(var9) /* init on <var9:Array[Object]>*/;
6682 CHECK_NEW_array__Array(var9);
6683 var_listnode5 = var9;
6684 var_tkwnullablenode2 = var_nodearraylist1;
6685 /* <var_tkwnullablenode2:nullable Object> isa nullable TKwnullable */
6686 cltype = type_nullable_parser_nodes__TKwnullable.color;
6687 idtype = type_nullable_parser_nodes__TKwnullable.id;
6688 if(var_tkwnullablenode2 == NULL) {
6689 var10 = 1;
6690 } else {
6691 if(cltype >= var_tkwnullablenode2->type->table_size) {
6692 var10 = 0;
6693 } else {
6694 var10 = var_tkwnullablenode2->type->type_table[cltype] == idtype;
6695 }
6696 }
6697 if (!var10) {
6698 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24595);
6699 exit(1);
6700 }
6701 var_tclassidnode3 = var_nodearraylist2;
6702 /* <var_tclassidnode3:nullable Object> isa nullable TClassid */
6703 cltype12 = type_nullable_parser_nodes__TClassid.color;
6704 idtype13 = type_nullable_parser_nodes__TClassid.id;
6705 if(var_tclassidnode3 == NULL) {
6706 var11 = 1;
6707 } else {
6708 if(cltype12 >= var_tclassidnode3->type->table_size) {
6709 var11 = 0;
6710 } else {
6711 var11 = var_tclassidnode3->type->type_table[cltype12] == idtype13;
6712 }
6713 }
6714 if (!var11) {
6715 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24597);
6716 exit(1);
6717 }
6718 var_listnode4 = var_nodearraylist5;
6719 /* <var_listnode4:nullable Object> isa Array[Object] */
6720 cltype15 = type_array__Arraykernel__Object.color;
6721 idtype16 = type_array__Arraykernel__Object.id;
6722 if(var_listnode4 == NULL) {
6723 var14 = 0;
6724 } else {
6725 if(cltype15 >= var_listnode4->type->table_size) {
6726 var14 = 0;
6727 } else {
6728 var14 = var_listnode4->type->type_table[cltype15] == idtype16;
6729 }
6730 }
6731 if (!var14) {
6732 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24599);
6733 exit(1);
6734 }
6735 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction603>*/;
6736 var_listnode5 = var17;
6737 var_pannotationsnode6 = var_nodearraylist8;
6738 /* <var_pannotationsnode6:nullable Object> isa nullable AAnnotations */
6739 cltype19 = type_nullable_parser_nodes__AAnnotations.color;
6740 idtype20 = type_nullable_parser_nodes__AAnnotations.id;
6741 if(var_pannotationsnode6 == NULL) {
6742 var18 = 1;
6743 } else {
6744 if(cltype19 >= var_pannotationsnode6->type->table_size) {
6745 var18 = 0;
6746 } else {
6747 var18 = var_pannotationsnode6->type->type_table[cltype19] == idtype20;
6748 }
6749 }
6750 if (!var18) {
6751 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24602);
6752 exit(1);
6753 }
6754 var21 = NEW_parser_nodes__AType(&type_parser_nodes__AType);
6755 ((void (*)(val*, val*, val*, val*, val*))(var21->class->vft[COLOR_parser_prod__AType__init_atype]))(var21, var_tkwnullablenode2, var_tclassidnode3, var_listnode5, var_pannotationsnode6) /* init_atype on <var21:AType>*/;
6756 CHECK_NEW_parser_nodes__AType(var21);
6757 var_ptypenode1 = var21;
6758 var_node_list = var_ptypenode1;
6759 var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction603> */
6760 var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
6761 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
6762 RET_LABEL:;
6763 }
6764 /* method parser#ReduceAction603#action for (self: Object, Parser) */
6765 void VIRTUAL_parser__ReduceAction603__action(val* self, val* p0) {
6766 parser__ReduceAction603__action(self, p0);
6767 RET_LABEL:;
6768 }
6769 /* method parser#ReduceAction604#action for (self: ReduceAction604, Parser) */
6770 void parser__ReduceAction604__action(val* self, val* p0) {
6771 val* var_p /* var p: Parser */;
6772 val* var /* : null */;
6773 val* var_node_list /* var node_list: nullable Object */;
6774 val* var1 /* : nullable Object */;
6775 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6776 val* var2 /* : Array[Object] */;
6777 val* var_listnode2 /* var listnode2: Array[Object] */;
6778 val* var_ptypenode1 /* var ptypenode1: nullable Object */;
6779 val* var3 /* : null */;
6780 short int var4 /* : Bool */;
6781 long var5 /* : Int */;
6782 long var6 /* : Int */;
6783 var_p = p0;
6784 var = NULL;
6785 var_node_list = var;
6786 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6787 var_nodearraylist1 = var1;
6788 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
6789 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
6790 CHECK_NEW_array__Array(var2);
6791 var_listnode2 = var2;
6792 var_ptypenode1 = var_nodearraylist1;
6793 var3 = NULL;
6794 if (var_ptypenode1 == NULL) {
6795 var4 = 0; /* is null */
6796 } else {
6797 var4 = 1; /* arg is null and recv is not */
6798 }
6799 if (var4){
6800 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_ptypenode1) /* add on <var_listnode2:Array[Object]>*/;
6801 } else {
6802 }
6803 var_node_list = var_listnode2;
6804 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction604> */
6805 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
6806 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
6807 RET_LABEL:;
6808 }
6809 /* method parser#ReduceAction604#action for (self: Object, Parser) */
6810 void VIRTUAL_parser__ReduceAction604__action(val* self, val* p0) {
6811 parser__ReduceAction604__action(self, p0);
6812 RET_LABEL:;
6813 }
6814 /* method parser#ReduceAction605#action for (self: ReduceAction605, Parser) */
6815 void parser__ReduceAction605__action(val* self, val* p0) {
6816 val* var_p /* var p: Parser */;
6817 val* var /* : null */;
6818 val* var_node_list /* var node_list: nullable Object */;
6819 val* var1 /* : nullable Object */;
6820 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6821 val* var2 /* : nullable Object */;
6822 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6823 val* var3 /* : Array[Object] */;
6824 val* var_listnode3 /* var listnode3: Array[Object] */;
6825 val* var_ptypenode1 /* var ptypenode1: nullable Object */;
6826 val* var_listnode2 /* var listnode2: nullable Object */;
6827 short int var4 /* : Bool */;
6828 int cltype;
6829 int idtype;
6830 val* var5 /* : null */;
6831 short int var6 /* : Bool */;
6832 val* var7 /* : Array[Object] */;
6833 long var8 /* : Int */;
6834 long var9 /* : Int */;
6835 var_p = p0;
6836 var = NULL;
6837 var_node_list = var;
6838 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6839 var_nodearraylist2 = var1;
6840 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6841 var_nodearraylist1 = var2;
6842 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
6843 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
6844 CHECK_NEW_array__Array(var3);
6845 var_listnode3 = var3;
6846 var_ptypenode1 = var_nodearraylist1;
6847 var_listnode2 = var_nodearraylist2;
6848 /* <var_listnode2:nullable Object> isa Array[Object] */
6849 cltype = type_array__Arraykernel__Object.color;
6850 idtype = type_array__Arraykernel__Object.id;
6851 if(var_listnode2 == NULL) {
6852 var4 = 0;
6853 } else {
6854 if(cltype >= var_listnode2->type->table_size) {
6855 var4 = 0;
6856 } else {
6857 var4 = var_listnode2->type->type_table[cltype] == idtype;
6858 }
6859 }
6860 if (!var4) {
6861 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24638);
6862 exit(1);
6863 }
6864 var5 = NULL;
6865 if (var_ptypenode1 == NULL) {
6866 var6 = 0; /* is null */
6867 } else {
6868 var6 = 1; /* arg is null and recv is not */
6869 }
6870 if (var6){
6871 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_ptypenode1) /* add on <var_listnode3:Array[Object]>*/;
6872 } else {
6873 }
6874 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode2) /* concat on <self:ReduceAction605>*/;
6875 var_listnode3 = var7;
6876 var_node_list = var_listnode3;
6877 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction605> */
6878 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
6879 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
6880 RET_LABEL:;
6881 }
6882 /* method parser#ReduceAction605#action for (self: Object, Parser) */
6883 void VIRTUAL_parser__ReduceAction605__action(val* self, val* p0) {
6884 parser__ReduceAction605__action(self, p0);
6885 RET_LABEL:;
6886 }
6887 /* method parser#ReduceAction606#action for (self: ReduceAction606, Parser) */
6888 void parser__ReduceAction606__action(val* self, val* p0) {
6889 val* var_p /* var p: Parser */;
6890 val* var /* : null */;
6891 val* var_node_list /* var node_list: nullable Object */;
6892 val* var1 /* : nullable Object */;
6893 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6894 val* var2 /* : nullable Object */;
6895 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6896 val* var3 /* : nullable Object */;
6897 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6898 val* var_ptypenode1 /* var ptypenode1: nullable Object */;
6899 long var4 /* : Int */;
6900 long var5 /* : Int */;
6901 var_p = p0;
6902 var = NULL;
6903 var_node_list = var;
6904 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6905 var_nodearraylist3 = var1;
6906 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6907 var_nodearraylist2 = var2;
6908 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6909 var_nodearraylist1 = var3;
6910 var_ptypenode1 = var_nodearraylist3;
6911 var_node_list = var_ptypenode1;
6912 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction606> */
6913 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
6914 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
6915 RET_LABEL:;
6916 }
6917 /* method parser#ReduceAction606#action for (self: Object, Parser) */
6918 void VIRTUAL_parser__ReduceAction606__action(val* self, val* p0) {
6919 parser__ReduceAction606__action(self, p0);
6920 RET_LABEL:;
6921 }
6922 /* method parser#ReduceAction608#action for (self: ReduceAction608, Parser) */
6923 void parser__ReduceAction608__action(val* self, val* p0) {
6924 val* var_p /* var p: Parser */;
6925 val* var /* : null */;
6926 val* var_node_list /* var node_list: nullable Object */;
6927 val* var1 /* : nullable Object */;
6928 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6929 val* var2 /* : nullable Object */;
6930 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6931 val* var_pexprnode1 /* var pexprnode1: nullable Object */;
6932 long var3 /* : Int */;
6933 long var4 /* : Int */;
6934 var_p = p0;
6935 var = NULL;
6936 var_node_list = var;
6937 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6938 var_nodearraylist2 = var1;
6939 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6940 var_nodearraylist1 = var2;
6941 var_pexprnode1 = var_nodearraylist2;
6942 var_node_list = var_pexprnode1;
6943 var3 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction608> */
6944 var4 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var3) /* go_to on <var_p:Parser>*/;
6945 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var4, var_node_list) /* push on <var_p:Parser>*/;
6946 RET_LABEL:;
6947 }
6948 /* method parser#ReduceAction608#action for (self: Object, Parser) */
6949 void VIRTUAL_parser__ReduceAction608__action(val* self, val* p0) {
6950 parser__ReduceAction608__action(self, p0);
6951 RET_LABEL:;
6952 }
6953 /* method parser#ReduceAction609#action for (self: ReduceAction609, Parser) */
6954 void parser__ReduceAction609__action(val* self, val* p0) {
6955 val* var_p /* var p: Parser */;
6956 val* var /* : null */;
6957 val* var_node_list /* var node_list: nullable Object */;
6958 val* var1 /* : nullable Object */;
6959 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6960 val* var2 /* : nullable Object */;
6961 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6962 val* var3 /* : Array[Object] */;
6963 val* var_listnode2 /* var listnode2: Array[Object] */;
6964 val* var_tkwendnode3 /* var tkwendnode3: nullable Object */;
6965 short int var4 /* : Bool */;
6966 int cltype;
6967 int idtype;
6968 val* var5 /* : ABlockExpr */;
6969 val* var_pexprnode1 /* var pexprnode1: nullable ABlockExpr */;
6970 long var6 /* : Int */;
6971 long var7 /* : Int */;
6972 var_p = p0;
6973 var = NULL;
6974 var_node_list = var;
6975 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6976 var_nodearraylist2 = var1;
6977 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6978 var_nodearraylist1 = var2;
6979 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
6980 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
6981 CHECK_NEW_array__Array(var3);
6982 var_listnode2 = var3;
6983 var_tkwendnode3 = var_nodearraylist2;
6984 /* <var_tkwendnode3:nullable Object> isa nullable TKwend */
6985 cltype = type_nullable_parser_nodes__TKwend.color;
6986 idtype = type_nullable_parser_nodes__TKwend.id;
6987 if(var_tkwendnode3 == NULL) {
6988 var4 = 1;
6989 } else {
6990 if(cltype >= var_tkwendnode3->type->table_size) {
6991 var4 = 0;
6992 } else {
6993 var4 = var_tkwendnode3->type->type_table[cltype] == idtype;
6994 }
6995 }
6996 if (!var4) {
6997 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24681);
6998 exit(1);
6999 }
7000 var5 = NEW_parser_nodes__ABlockExpr(&type_parser_nodes__ABlockExpr);
7001 ((void (*)(val*, val*, val*))(var5->class->vft[COLOR_parser_prod__ABlockExpr__init_ablockexpr]))(var5, var_listnode2, var_tkwendnode3) /* init_ablockexpr on <var5:ABlockExpr>*/;
7002 CHECK_NEW_parser_nodes__ABlockExpr(var5);
7003 var_pexprnode1 = var5;
7004 var_node_list = var_pexprnode1;
7005 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction609> */
7006 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
7007 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
7008 RET_LABEL:;
7009 }
7010 /* method parser#ReduceAction609#action for (self: Object, Parser) */
7011 void VIRTUAL_parser__ReduceAction609__action(val* self, val* p0) {
7012 parser__ReduceAction609__action(self, p0);
7013 RET_LABEL:;
7014 }
7015 /* method parser#ReduceAction610#action for (self: ReduceAction610, Parser) */
7016 void parser__ReduceAction610__action(val* self, val* p0) {
7017 val* var_p /* var p: Parser */;
7018 val* var /* : null */;
7019 val* var_node_list /* var node_list: nullable Object */;
7020 val* var1 /* : nullable Object */;
7021 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7022 val* var2 /* : Array[Object] */;
7023 val* var_listnode2 /* var listnode2: Array[Object] */;
7024 val* var_tkwendnode3 /* var tkwendnode3: nullable Object */;
7025 short int var3 /* : Bool */;
7026 int cltype;
7027 int idtype;
7028 val* var4 /* : ABlockExpr */;
7029 val* var_pexprnode1 /* var pexprnode1: nullable ABlockExpr */;
7030 long var5 /* : Int */;
7031 long var6 /* : Int */;
7032 var_p = p0;
7033 var = NULL;
7034 var_node_list = var;
7035 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7036 var_nodearraylist1 = var1;
7037 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
7038 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
7039 CHECK_NEW_array__Array(var2);
7040 var_listnode2 = var2;
7041 var_tkwendnode3 = var_nodearraylist1;
7042 /* <var_tkwendnode3:nullable Object> isa nullable TKwend */
7043 cltype = type_nullable_parser_nodes__TKwend.color;
7044 idtype = type_nullable_parser_nodes__TKwend.id;
7045 if(var_tkwendnode3 == NULL) {
7046 var3 = 1;
7047 } else {
7048 if(cltype >= var_tkwendnode3->type->table_size) {
7049 var3 = 0;
7050 } else {
7051 var3 = var_tkwendnode3->type->type_table[cltype] == idtype;
7052 }
7053 }
7054 if (!var3) {
7055 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24698);
7056 exit(1);
7057 }
7058 var4 = NEW_parser_nodes__ABlockExpr(&type_parser_nodes__ABlockExpr);
7059 ((void (*)(val*, val*, val*))(var4->class->vft[COLOR_parser_prod__ABlockExpr__init_ablockexpr]))(var4, var_listnode2, var_tkwendnode3) /* init_ablockexpr on <var4:ABlockExpr>*/;
7060 CHECK_NEW_parser_nodes__ABlockExpr(var4);
7061 var_pexprnode1 = var4;
7062 var_node_list = var_pexprnode1;
7063 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction610> */
7064 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
7065 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
7066 RET_LABEL:;
7067 }
7068 /* method parser#ReduceAction610#action for (self: Object, Parser) */
7069 void VIRTUAL_parser__ReduceAction610__action(val* self, val* p0) {
7070 parser__ReduceAction610__action(self, p0);
7071 RET_LABEL:;
7072 }
7073 /* method parser#ReduceAction611#action for (self: ReduceAction611, Parser) */
7074 void parser__ReduceAction611__action(val* self, val* p0) {
7075 val* var_p /* var p: Parser */;
7076 val* var /* : null */;
7077 val* var_node_list /* var node_list: nullable Object */;
7078 val* var1 /* : nullable Object */;
7079 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7080 val* var_pexprnode1 /* var pexprnode1: nullable Object */;
7081 long var2 /* : Int */;
7082 long var3 /* : Int */;
7083 var_p = p0;
7084 var = NULL;
7085 var_node_list = var;
7086 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7087 var_nodearraylist1 = var1;
7088 var_pexprnode1 = var_nodearraylist1;
7089 var_node_list = var_pexprnode1;
7090 var2 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction611> */
7091 var3 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var2) /* go_to on <var_p:Parser>*/;
7092 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var3, var_node_list) /* push on <var_p:Parser>*/;
7093 RET_LABEL:;
7094 }
7095 /* method parser#ReduceAction611#action for (self: Object, Parser) */
7096 void VIRTUAL_parser__ReduceAction611__action(val* self, val* p0) {
7097 parser__ReduceAction611__action(self, p0);
7098 RET_LABEL:;
7099 }
7100 /* method parser#ReduceAction612#action for (self: ReduceAction612, Parser) */
7101 void parser__ReduceAction612__action(val* self, val* p0) {
7102 val* var_p /* var p: Parser */;
7103 val* var /* : null */;
7104 val* var_node_list /* var node_list: nullable Object */;
7105 val* var1 /* : nullable Object */;
7106 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7107 val* var2 /* : Array[Object] */;
7108 val* var_listnode3 /* var listnode3: Array[Object] */;
7109 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7110 short int var3 /* : Bool */;
7111 int cltype;
7112 int idtype;
7113 val* var4 /* : null */;
7114 short int var5 /* : Bool */;
7115 val* var6 /* : ABlockExpr */;
7116 val* var7 /* : null */;
7117 val* var_pexprnode1 /* var pexprnode1: nullable ABlockExpr */;
7118 long var8 /* : Int */;
7119 long var9 /* : Int */;
7120 var_p = p0;
7121 var = NULL;
7122 var_node_list = var;
7123 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7124 var_nodearraylist1 = var1;
7125 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
7126 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
7127 CHECK_NEW_array__Array(var2);
7128 var_listnode3 = var2;
7129 var_pexprnode2 = var_nodearraylist1;
7130 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7131 cltype = type_nullable_parser_nodes__AExpr.color;
7132 idtype = type_nullable_parser_nodes__AExpr.id;
7133 if(var_pexprnode2 == NULL) {
7134 var3 = 1;
7135 } else {
7136 if(cltype >= var_pexprnode2->type->table_size) {
7137 var3 = 0;
7138 } else {
7139 var3 = var_pexprnode2->type->type_table[cltype] == idtype;
7140 }
7141 }
7142 if (!var3) {
7143 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24726);
7144 exit(1);
7145 }
7146 var4 = NULL;
7147 if (var_pexprnode2 == NULL) {
7148 var5 = 0; /* is null */
7149 } else {
7150 var5 = 1; /* arg is null and recv is not */
7151 }
7152 if (var5){
7153 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pexprnode2) /* add on <var_listnode3:Array[Object]>*/;
7154 } else {
7155 }
7156 var6 = NEW_parser_nodes__ABlockExpr(&type_parser_nodes__ABlockExpr);
7157 var7 = NULL;
7158 ((void (*)(val*, val*, val*))(var6->class->vft[COLOR_parser_prod__ABlockExpr__init_ablockexpr]))(var6, var_listnode3, var7) /* init_ablockexpr on <var6:ABlockExpr>*/;
7159 CHECK_NEW_parser_nodes__ABlockExpr(var6);
7160 var_pexprnode1 = var6;
7161 var_node_list = var_pexprnode1;
7162 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction612> */
7163 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
7164 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
7165 RET_LABEL:;
7166 }
7167 /* method parser#ReduceAction612#action for (self: Object, Parser) */
7168 void VIRTUAL_parser__ReduceAction612__action(val* self, val* p0) {
7169 parser__ReduceAction612__action(self, p0);
7170 RET_LABEL:;
7171 }
7172 /* method parser#ReduceAction613#action for (self: ReduceAction613, Parser) */
7173 void parser__ReduceAction613__action(val* self, val* p0) {
7174 val* var_p /* var p: Parser */;
7175 val* var /* : null */;
7176 val* var_node_list /* var node_list: nullable Object */;
7177 val* var1 /* : nullable Object */;
7178 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7179 val* var2 /* : nullable Object */;
7180 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7181 val* var3 /* : Array[Object] */;
7182 val* var_listnode4 /* var listnode4: Array[Object] */;
7183 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7184 short int var4 /* : Bool */;
7185 int cltype;
7186 int idtype;
7187 val* var_listnode3 /* var listnode3: nullable Object */;
7188 short int var5 /* : Bool */;
7189 int cltype6;
7190 int idtype7;
7191 val* var8 /* : null */;
7192 short int var9 /* : Bool */;
7193 val* var10 /* : Array[Object] */;
7194 val* var11 /* : ABlockExpr */;
7195 val* var12 /* : null */;
7196 val* var_pexprnode1 /* var pexprnode1: nullable ABlockExpr */;
7197 long var13 /* : Int */;
7198 long var14 /* : Int */;
7199 var_p = p0;
7200 var = NULL;
7201 var_node_list = var;
7202 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7203 var_nodearraylist2 = var1;
7204 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7205 var_nodearraylist1 = var2;
7206 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
7207 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
7208 CHECK_NEW_array__Array(var3);
7209 var_listnode4 = var3;
7210 var_pexprnode2 = var_nodearraylist1;
7211 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7212 cltype = type_nullable_parser_nodes__AExpr.color;
7213 idtype = type_nullable_parser_nodes__AExpr.id;
7214 if(var_pexprnode2 == NULL) {
7215 var4 = 1;
7216 } else {
7217 if(cltype >= var_pexprnode2->type->table_size) {
7218 var4 = 0;
7219 } else {
7220 var4 = var_pexprnode2->type->type_table[cltype] == idtype;
7221 }
7222 }
7223 if (!var4) {
7224 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24747);
7225 exit(1);
7226 }
7227 var_listnode3 = var_nodearraylist2;
7228 /* <var_listnode3:nullable Object> isa Array[Object] */
7229 cltype6 = type_array__Arraykernel__Object.color;
7230 idtype7 = type_array__Arraykernel__Object.id;
7231 if(var_listnode3 == NULL) {
7232 var5 = 0;
7233 } else {
7234 if(cltype6 >= var_listnode3->type->table_size) {
7235 var5 = 0;
7236 } else {
7237 var5 = var_listnode3->type->type_table[cltype6] == idtype7;
7238 }
7239 }
7240 if (!var5) {
7241 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24749);
7242 exit(1);
7243 }
7244 var8 = NULL;
7245 if (var_pexprnode2 == NULL) {
7246 var9 = 0; /* is null */
7247 } else {
7248 var9 = 1; /* arg is null and recv is not */
7249 }
7250 if (var9){
7251 ((void (*)(val*, val*))(var_listnode4->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode4, var_pexprnode2) /* add on <var_listnode4:Array[Object]>*/;
7252 } else {
7253 }
7254 var10 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction613>*/;
7255 var_listnode4 = var10;
7256 var11 = NEW_parser_nodes__ABlockExpr(&type_parser_nodes__ABlockExpr);
7257 var12 = NULL;
7258 ((void (*)(val*, val*, val*))(var11->class->vft[COLOR_parser_prod__ABlockExpr__init_ablockexpr]))(var11, var_listnode4, var12) /* init_ablockexpr on <var11:ABlockExpr>*/;
7259 CHECK_NEW_parser_nodes__ABlockExpr(var11);
7260 var_pexprnode1 = var11;
7261 var_node_list = var_pexprnode1;
7262 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction613> */
7263 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
7264 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
7265 RET_LABEL:;
7266 }
7267 /* method parser#ReduceAction613#action for (self: Object, Parser) */
7268 void VIRTUAL_parser__ReduceAction613__action(val* self, val* p0) {
7269 parser__ReduceAction613__action(self, p0);
7270 RET_LABEL:;
7271 }
7272 /* method parser#ReduceAction614#action for (self: ReduceAction614, Parser) */
7273 void parser__ReduceAction614__action(val* self, val* p0) {
7274 val* var_p /* var p: Parser */;
7275 val* var /* : null */;
7276 val* var_node_list /* var node_list: nullable Object */;
7277 val* var1 /* : nullable Object */;
7278 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7279 val* var2 /* : nullable Object */;
7280 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7281 val* var3 /* : Array[Object] */;
7282 val* var_listnode3 /* var listnode3: Array[Object] */;
7283 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7284 short int var4 /* : Bool */;
7285 int cltype;
7286 int idtype;
7287 val* var5 /* : null */;
7288 short int var6 /* : Bool */;
7289 val* var7 /* : ABlockExpr */;
7290 val* var8 /* : null */;
7291 val* var_pexprnode1 /* var pexprnode1: nullable ABlockExpr */;
7292 long var9 /* : Int */;
7293 long var10 /* : Int */;
7294 var_p = p0;
7295 var = NULL;
7296 var_node_list = var;
7297 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7298 var_nodearraylist2 = var1;
7299 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7300 var_nodearraylist1 = var2;
7301 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
7302 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
7303 CHECK_NEW_array__Array(var3);
7304 var_listnode3 = var3;
7305 var_pexprnode2 = var_nodearraylist1;
7306 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7307 cltype = type_nullable_parser_nodes__AExpr.color;
7308 idtype = type_nullable_parser_nodes__AExpr.id;
7309 if(var_pexprnode2 == NULL) {
7310 var4 = 1;
7311 } else {
7312 if(cltype >= var_pexprnode2->type->table_size) {
7313 var4 = 0;
7314 } else {
7315 var4 = var_pexprnode2->type->type_table[cltype] == idtype;
7316 }
7317 }
7318 if (!var4) {
7319 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24771);
7320 exit(1);
7321 }
7322 var5 = NULL;
7323 if (var_pexprnode2 == NULL) {
7324 var6 = 0; /* is null */
7325 } else {
7326 var6 = 1; /* arg is null and recv is not */
7327 }
7328 if (var6){
7329 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pexprnode2) /* add on <var_listnode3:Array[Object]>*/;
7330 } else {
7331 }
7332 var7 = NEW_parser_nodes__ABlockExpr(&type_parser_nodes__ABlockExpr);
7333 var8 = NULL;
7334 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ABlockExpr__init_ablockexpr]))(var7, var_listnode3, var8) /* init_ablockexpr on <var7:ABlockExpr>*/;
7335 CHECK_NEW_parser_nodes__ABlockExpr(var7);
7336 var_pexprnode1 = var7;
7337 var_node_list = var_pexprnode1;
7338 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction614> */
7339 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
7340 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
7341 RET_LABEL:;
7342 }
7343 /* method parser#ReduceAction614#action for (self: Object, Parser) */
7344 void VIRTUAL_parser__ReduceAction614__action(val* self, val* p0) {
7345 parser__ReduceAction614__action(self, p0);
7346 RET_LABEL:;
7347 }
7348 /* method parser#ReduceAction615#action for (self: ReduceAction615, Parser) */
7349 void parser__ReduceAction615__action(val* self, val* p0) {
7350 val* var_p /* var p: Parser */;
7351 val* var /* : null */;
7352 val* var_node_list /* var node_list: nullable Object */;
7353 val* var1 /* : nullable Object */;
7354 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7355 val* var2 /* : nullable Object */;
7356 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7357 val* var3 /* : nullable Object */;
7358 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7359 val* var4 /* : Array[Object] */;
7360 val* var_listnode4 /* var listnode4: Array[Object] */;
7361 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7362 short int var5 /* : Bool */;
7363 int cltype;
7364 int idtype;
7365 val* var_listnode3 /* var listnode3: nullable Object */;
7366 short int var6 /* : Bool */;
7367 int cltype7;
7368 int idtype8;
7369 val* var9 /* : null */;
7370 short int var10 /* : Bool */;
7371 val* var11 /* : Array[Object] */;
7372 val* var12 /* : ABlockExpr */;
7373 val* var13 /* : null */;
7374 val* var_pexprnode1 /* var pexprnode1: nullable ABlockExpr */;
7375 long var14 /* : Int */;
7376 long var15 /* : Int */;
7377 var_p = p0;
7378 var = NULL;
7379 var_node_list = var;
7380 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7381 var_nodearraylist3 = var1;
7382 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7383 var_nodearraylist2 = var2;
7384 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7385 var_nodearraylist1 = var3;
7386 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
7387 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
7388 CHECK_NEW_array__Array(var4);
7389 var_listnode4 = var4;
7390 var_pexprnode2 = var_nodearraylist1;
7391 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7392 cltype = type_nullable_parser_nodes__AExpr.color;
7393 idtype = type_nullable_parser_nodes__AExpr.id;
7394 if(var_pexprnode2 == NULL) {
7395 var5 = 1;
7396 } else {
7397 if(cltype >= var_pexprnode2->type->table_size) {
7398 var5 = 0;
7399 } else {
7400 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
7401 }
7402 }
7403 if (!var5) {
7404 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24793);
7405 exit(1);
7406 }
7407 var_listnode3 = var_nodearraylist2;
7408 /* <var_listnode3:nullable Object> isa Array[Object] */
7409 cltype7 = type_array__Arraykernel__Object.color;
7410 idtype8 = type_array__Arraykernel__Object.id;
7411 if(var_listnode3 == NULL) {
7412 var6 = 0;
7413 } else {
7414 if(cltype7 >= var_listnode3->type->table_size) {
7415 var6 = 0;
7416 } else {
7417 var6 = var_listnode3->type->type_table[cltype7] == idtype8;
7418 }
7419 }
7420 if (!var6) {
7421 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24795);
7422 exit(1);
7423 }
7424 var9 = NULL;
7425 if (var_pexprnode2 == NULL) {
7426 var10 = 0; /* is null */
7427 } else {
7428 var10 = 1; /* arg is null and recv is not */
7429 }
7430 if (var10){
7431 ((void (*)(val*, val*))(var_listnode4->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode4, var_pexprnode2) /* add on <var_listnode4:Array[Object]>*/;
7432 } else {
7433 }
7434 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction615>*/;
7435 var_listnode4 = var11;
7436 var12 = NEW_parser_nodes__ABlockExpr(&type_parser_nodes__ABlockExpr);
7437 var13 = NULL;
7438 ((void (*)(val*, val*, val*))(var12->class->vft[COLOR_parser_prod__ABlockExpr__init_ablockexpr]))(var12, var_listnode4, var13) /* init_ablockexpr on <var12:ABlockExpr>*/;
7439 CHECK_NEW_parser_nodes__ABlockExpr(var12);
7440 var_pexprnode1 = var12;
7441 var_node_list = var_pexprnode1;
7442 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction615> */
7443 var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
7444 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
7445 RET_LABEL:;
7446 }
7447 /* method parser#ReduceAction615#action for (self: Object, Parser) */
7448 void VIRTUAL_parser__ReduceAction615__action(val* self, val* p0) {
7449 parser__ReduceAction615__action(self, p0);
7450 RET_LABEL:;
7451 }
7452 /* method parser#ReduceAction616#action for (self: ReduceAction616, Parser) */
7453 void parser__ReduceAction616__action(val* self, val* p0) {
7454 val* var_p /* var p: Parser */;
7455 val* var /* : null */;
7456 val* var_node_list /* var node_list: nullable Object */;
7457 val* var1 /* : nullable Object */;
7458 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7459 val* var2 /* : nullable Object */;
7460 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7461 val* var3 /* : nullable Object */;
7462 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7463 val* var4 /* : Array[Object] */;
7464 val* var_listnode3 /* var listnode3: Array[Object] */;
7465 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7466 short int var5 /* : Bool */;
7467 int cltype;
7468 int idtype;
7469 val* var6 /* : null */;
7470 short int var7 /* : Bool */;
7471 val* var_tkwendnode4 /* var tkwendnode4: nullable Object */;
7472 short int var8 /* : Bool */;
7473 int cltype9;
7474 int idtype10;
7475 val* var11 /* : ABlockExpr */;
7476 val* var_pexprnode1 /* var pexprnode1: nullable ABlockExpr */;
7477 long var12 /* : Int */;
7478 long var13 /* : Int */;
7479 var_p = p0;
7480 var = NULL;
7481 var_node_list = var;
7482 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7483 var_nodearraylist3 = var1;
7484 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7485 var_nodearraylist2 = var2;
7486 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7487 var_nodearraylist1 = var3;
7488 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
7489 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
7490 CHECK_NEW_array__Array(var4);
7491 var_listnode3 = var4;
7492 var_pexprnode2 = var_nodearraylist1;
7493 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7494 cltype = type_nullable_parser_nodes__AExpr.color;
7495 idtype = type_nullable_parser_nodes__AExpr.id;
7496 if(var_pexprnode2 == NULL) {
7497 var5 = 1;
7498 } else {
7499 if(cltype >= var_pexprnode2->type->table_size) {
7500 var5 = 0;
7501 } else {
7502 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
7503 }
7504 }
7505 if (!var5) {
7506 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24818);
7507 exit(1);
7508 }
7509 var6 = NULL;
7510 if (var_pexprnode2 == NULL) {
7511 var7 = 0; /* is null */
7512 } else {
7513 var7 = 1; /* arg is null and recv is not */
7514 }
7515 if (var7){
7516 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pexprnode2) /* add on <var_listnode3:Array[Object]>*/;
7517 } else {
7518 }
7519 var_tkwendnode4 = var_nodearraylist3;
7520 /* <var_tkwendnode4:nullable Object> isa nullable TKwend */
7521 cltype9 = type_nullable_parser_nodes__TKwend.color;
7522 idtype10 = type_nullable_parser_nodes__TKwend.id;
7523 if(var_tkwendnode4 == NULL) {
7524 var8 = 1;
7525 } else {
7526 if(cltype9 >= var_tkwendnode4->type->table_size) {
7527 var8 = 0;
7528 } else {
7529 var8 = var_tkwendnode4->type->type_table[cltype9] == idtype10;
7530 }
7531 }
7532 if (!var8) {
7533 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24823);
7534 exit(1);
7535 }
7536 var11 = NEW_parser_nodes__ABlockExpr(&type_parser_nodes__ABlockExpr);
7537 ((void (*)(val*, val*, val*))(var11->class->vft[COLOR_parser_prod__ABlockExpr__init_ablockexpr]))(var11, var_listnode3, var_tkwendnode4) /* init_ablockexpr on <var11:ABlockExpr>*/;
7538 CHECK_NEW_parser_nodes__ABlockExpr(var11);
7539 var_pexprnode1 = var11;
7540 var_node_list = var_pexprnode1;
7541 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction616> */
7542 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
7543 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
7544 RET_LABEL:;
7545 }
7546 /* method parser#ReduceAction616#action for (self: Object, Parser) */
7547 void VIRTUAL_parser__ReduceAction616__action(val* self, val* p0) {
7548 parser__ReduceAction616__action(self, p0);
7549 RET_LABEL:;
7550 }
7551 /* method parser#ReduceAction617#action for (self: ReduceAction617, Parser) */
7552 void parser__ReduceAction617__action(val* self, val* p0) {
7553 val* var_p /* var p: Parser */;
7554 val* var /* : null */;
7555 val* var_node_list /* var node_list: nullable Object */;
7556 val* var1 /* : nullable Object */;
7557 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7558 val* var2 /* : nullable Object */;
7559 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7560 val* var3 /* : nullable Object */;
7561 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7562 val* var4 /* : nullable Object */;
7563 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7564 val* var5 /* : Array[Object] */;
7565 val* var_listnode4 /* var listnode4: Array[Object] */;
7566 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7567 short int var6 /* : Bool */;
7568 int cltype;
7569 int idtype;
7570 val* var_listnode3 /* var listnode3: nullable Object */;
7571 short int var7 /* : Bool */;
7572 int cltype8;
7573 int idtype9;
7574 val* var10 /* : null */;
7575 short int var11 /* : Bool */;
7576 val* var12 /* : Array[Object] */;
7577 val* var_tkwendnode5 /* var tkwendnode5: nullable Object */;
7578 short int var13 /* : Bool */;
7579 int cltype14;
7580 int idtype15;
7581 val* var16 /* : ABlockExpr */;
7582 val* var_pexprnode1 /* var pexprnode1: nullable ABlockExpr */;
7583 long var17 /* : Int */;
7584 long var18 /* : Int */;
7585 var_p = p0;
7586 var = NULL;
7587 var_node_list = var;
7588 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7589 var_nodearraylist4 = var1;
7590 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7591 var_nodearraylist3 = var2;
7592 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7593 var_nodearraylist2 = var3;
7594 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7595 var_nodearraylist1 = var4;
7596 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
7597 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
7598 CHECK_NEW_array__Array(var5);
7599 var_listnode4 = var5;
7600 var_pexprnode2 = var_nodearraylist1;
7601 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7602 cltype = type_nullable_parser_nodes__AExpr.color;
7603 idtype = type_nullable_parser_nodes__AExpr.id;
7604 if(var_pexprnode2 == NULL) {
7605 var6 = 1;
7606 } else {
7607 if(cltype >= var_pexprnode2->type->table_size) {
7608 var6 = 0;
7609 } else {
7610 var6 = var_pexprnode2->type->type_table[cltype] == idtype;
7611 }
7612 }
7613 if (!var6) {
7614 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24843);
7615 exit(1);
7616 }
7617 var_listnode3 = var_nodearraylist2;
7618 /* <var_listnode3:nullable Object> isa Array[Object] */
7619 cltype8 = type_array__Arraykernel__Object.color;
7620 idtype9 = type_array__Arraykernel__Object.id;
7621 if(var_listnode3 == NULL) {
7622 var7 = 0;
7623 } else {
7624 if(cltype8 >= var_listnode3->type->table_size) {
7625 var7 = 0;
7626 } else {
7627 var7 = var_listnode3->type->type_table[cltype8] == idtype9;
7628 }
7629 }
7630 if (!var7) {
7631 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24845);
7632 exit(1);
7633 }
7634 var10 = NULL;
7635 if (var_pexprnode2 == NULL) {
7636 var11 = 0; /* is null */
7637 } else {
7638 var11 = 1; /* arg is null and recv is not */
7639 }
7640 if (var11){
7641 ((void (*)(val*, val*))(var_listnode4->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode4, var_pexprnode2) /* add on <var_listnode4:Array[Object]>*/;
7642 } else {
7643 }
7644 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction617>*/;
7645 var_listnode4 = var12;
7646 var_tkwendnode5 = var_nodearraylist4;
7647 /* <var_tkwendnode5:nullable Object> isa nullable TKwend */
7648 cltype14 = type_nullable_parser_nodes__TKwend.color;
7649 idtype15 = type_nullable_parser_nodes__TKwend.id;
7650 if(var_tkwendnode5 == NULL) {
7651 var13 = 1;
7652 } else {
7653 if(cltype14 >= var_tkwendnode5->type->table_size) {
7654 var13 = 0;
7655 } else {
7656 var13 = var_tkwendnode5->type->type_table[cltype14] == idtype15;
7657 }
7658 }
7659 if (!var13) {
7660 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24851);
7661 exit(1);
7662 }
7663 var16 = NEW_parser_nodes__ABlockExpr(&type_parser_nodes__ABlockExpr);
7664 ((void (*)(val*, val*, val*))(var16->class->vft[COLOR_parser_prod__ABlockExpr__init_ablockexpr]))(var16, var_listnode4, var_tkwendnode5) /* init_ablockexpr on <var16:ABlockExpr>*/;
7665 CHECK_NEW_parser_nodes__ABlockExpr(var16);
7666 var_pexprnode1 = var16;
7667 var_node_list = var_pexprnode1;
7668 var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction617> */
7669 var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
7670 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
7671 RET_LABEL:;
7672 }
7673 /* method parser#ReduceAction617#action for (self: Object, Parser) */
7674 void VIRTUAL_parser__ReduceAction617__action(val* self, val* p0) {
7675 parser__ReduceAction617__action(self, p0);
7676 RET_LABEL:;
7677 }
7678 /* method parser#ReduceAction621#action for (self: ReduceAction621, Parser) */
7679 void parser__ReduceAction621__action(val* self, val* p0) {
7680 val* var_p /* var p: Parser */;
7681 val* var /* : null */;
7682 val* var_node_list /* var node_list: nullable Object */;
7683 val* var1 /* : nullable Object */;
7684 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7685 val* var_tkwreturnnode2 /* var tkwreturnnode2: nullable Object */;
7686 short int var2 /* : Bool */;
7687 int cltype;
7688 int idtype;
7689 val* var3 /* : AReturnExpr */;
7690 val* var4 /* : null */;
7691 val* var_pexprnode1 /* var pexprnode1: nullable AReturnExpr */;
7692 long var5 /* : Int */;
7693 long var6 /* : Int */;
7694 var_p = p0;
7695 var = NULL;
7696 var_node_list = var;
7697 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7698 var_nodearraylist1 = var1;
7699 var_tkwreturnnode2 = var_nodearraylist1;
7700 /* <var_tkwreturnnode2:nullable Object> isa nullable TKwreturn */
7701 cltype = type_nullable_parser_nodes__TKwreturn.color;
7702 idtype = type_nullable_parser_nodes__TKwreturn.id;
7703 if(var_tkwreturnnode2 == NULL) {
7704 var2 = 1;
7705 } else {
7706 if(cltype >= var_tkwreturnnode2->type->table_size) {
7707 var2 = 0;
7708 } else {
7709 var2 = var_tkwreturnnode2->type->type_table[cltype] == idtype;
7710 }
7711 }
7712 if (!var2) {
7713 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24867);
7714 exit(1);
7715 }
7716 var3 = NEW_parser_nodes__AReturnExpr(&type_parser_nodes__AReturnExpr);
7717 var4 = NULL;
7718 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AReturnExpr__init_areturnexpr]))(var3, var_tkwreturnnode2, var4) /* init_areturnexpr on <var3:AReturnExpr>*/;
7719 CHECK_NEW_parser_nodes__AReturnExpr(var3);
7720 var_pexprnode1 = var3;
7721 var_node_list = var_pexprnode1;
7722 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction621> */
7723 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
7724 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
7725 RET_LABEL:;
7726 }
7727 /* method parser#ReduceAction621#action for (self: Object, Parser) */
7728 void VIRTUAL_parser__ReduceAction621__action(val* self, val* p0) {
7729 parser__ReduceAction621__action(self, p0);
7730 RET_LABEL:;
7731 }
7732 /* method parser#ReduceAction622#action for (self: ReduceAction622, Parser) */
7733 void parser__ReduceAction622__action(val* self, val* p0) {
7734 val* var_p /* var p: Parser */;
7735 val* var /* : null */;
7736 val* var_node_list /* var node_list: nullable Object */;
7737 val* var1 /* : nullable Object */;
7738 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7739 val* var2 /* : nullable Object */;
7740 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7741 val* var_tkwreturnnode2 /* var tkwreturnnode2: nullable Object */;
7742 short int var3 /* : Bool */;
7743 int cltype;
7744 int idtype;
7745 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
7746 short int var4 /* : Bool */;
7747 int cltype5;
7748 int idtype6;
7749 val* var7 /* : AReturnExpr */;
7750 val* var_pexprnode1 /* var pexprnode1: nullable AReturnExpr */;
7751 long var8 /* : Int */;
7752 long var9 /* : Int */;
7753 var_p = p0;
7754 var = NULL;
7755 var_node_list = var;
7756 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7757 var_nodearraylist2 = var1;
7758 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7759 var_nodearraylist1 = var2;
7760 var_tkwreturnnode2 = var_nodearraylist1;
7761 /* <var_tkwreturnnode2:nullable Object> isa nullable TKwreturn */
7762 cltype = type_nullable_parser_nodes__TKwreturn.color;
7763 idtype = type_nullable_parser_nodes__TKwreturn.id;
7764 if(var_tkwreturnnode2 == NULL) {
7765 var3 = 1;
7766 } else {
7767 if(cltype >= var_tkwreturnnode2->type->table_size) {
7768 var3 = 0;
7769 } else {
7770 var3 = var_tkwreturnnode2->type->type_table[cltype] == idtype;
7771 }
7772 }
7773 if (!var3) {
7774 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24884);
7775 exit(1);
7776 }
7777 var_pexprnode3 = var_nodearraylist2;
7778 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
7779 cltype5 = type_nullable_parser_nodes__AExpr.color;
7780 idtype6 = type_nullable_parser_nodes__AExpr.id;
7781 if(var_pexprnode3 == NULL) {
7782 var4 = 1;
7783 } else {
7784 if(cltype5 >= var_pexprnode3->type->table_size) {
7785 var4 = 0;
7786 } else {
7787 var4 = var_pexprnode3->type->type_table[cltype5] == idtype6;
7788 }
7789 }
7790 if (!var4) {
7791 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24886);
7792 exit(1);
7793 }
7794 var7 = NEW_parser_nodes__AReturnExpr(&type_parser_nodes__AReturnExpr);
7795 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AReturnExpr__init_areturnexpr]))(var7, var_tkwreturnnode2, var_pexprnode3) /* init_areturnexpr on <var7:AReturnExpr>*/;
7796 CHECK_NEW_parser_nodes__AReturnExpr(var7);
7797 var_pexprnode1 = var7;
7798 var_node_list = var_pexprnode1;
7799 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction622> */
7800 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
7801 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
7802 RET_LABEL:;
7803 }
7804 /* method parser#ReduceAction622#action for (self: Object, Parser) */
7805 void VIRTUAL_parser__ReduceAction622__action(val* self, val* p0) {
7806 parser__ReduceAction622__action(self, p0);
7807 RET_LABEL:;
7808 }
7809 /* method parser#ReduceAction623#action for (self: ReduceAction623, Parser) */
7810 void parser__ReduceAction623__action(val* self, val* p0) {
7811 val* var_p /* var p: Parser */;
7812 val* var /* : null */;
7813 val* var_node_list /* var node_list: nullable Object */;
7814 val* var1 /* : nullable Object */;
7815 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7816 val* var_tkwbreaknode2 /* var tkwbreaknode2: nullable Object */;
7817 short int var2 /* : Bool */;
7818 int cltype;
7819 int idtype;
7820 val* var3 /* : ABreakExpr */;
7821 val* var4 /* : null */;
7822 val* var5 /* : null */;
7823 val* var_pexprnode1 /* var pexprnode1: nullable ABreakExpr */;
7824 long var6 /* : Int */;
7825 long var7 /* : Int */;
7826 var_p = p0;
7827 var = NULL;
7828 var_node_list = var;
7829 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7830 var_nodearraylist1 = var1;
7831 var_tkwbreaknode2 = var_nodearraylist1;
7832 /* <var_tkwbreaknode2:nullable Object> isa nullable TKwbreak */
7833 cltype = type_nullable_parser_nodes__TKwbreak.color;
7834 idtype = type_nullable_parser_nodes__TKwbreak.id;
7835 if(var_tkwbreaknode2 == NULL) {
7836 var2 = 1;
7837 } else {
7838 if(cltype >= var_tkwbreaknode2->type->table_size) {
7839 var2 = 0;
7840 } else {
7841 var2 = var_tkwbreaknode2->type->type_table[cltype] == idtype;
7842 }
7843 }
7844 if (!var2) {
7845 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24902);
7846 exit(1);
7847 }
7848 var3 = NEW_parser_nodes__ABreakExpr(&type_parser_nodes__ABreakExpr);
7849 var4 = NULL;
7850 var5 = NULL;
7851 ((void (*)(val*, val*, val*, val*))(var3->class->vft[COLOR_parser_prod__ABreakExpr__init_abreakexpr]))(var3, var_tkwbreaknode2, var4, var5) /* init_abreakexpr on <var3:ABreakExpr>*/;
7852 CHECK_NEW_parser_nodes__ABreakExpr(var3);
7853 var_pexprnode1 = var3;
7854 var_node_list = var_pexprnode1;
7855 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction623> */
7856 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
7857 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
7858 RET_LABEL:;
7859 }
7860 /* method parser#ReduceAction623#action for (self: Object, Parser) */
7861 void VIRTUAL_parser__ReduceAction623__action(val* self, val* p0) {
7862 parser__ReduceAction623__action(self, p0);
7863 RET_LABEL:;
7864 }
7865 /* method parser#ReduceAction624#action for (self: ReduceAction624, Parser) */
7866 void parser__ReduceAction624__action(val* self, val* p0) {
7867 val* var_p /* var p: Parser */;
7868 val* var /* : null */;
7869 val* var_node_list /* var node_list: nullable Object */;
7870 val* var1 /* : nullable Object */;
7871 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7872 val* var2 /* : nullable Object */;
7873 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7874 val* var_tkwbreaknode2 /* var tkwbreaknode2: nullable Object */;
7875 short int var3 /* : Bool */;
7876 int cltype;
7877 int idtype;
7878 val* var_plabelnode3 /* var plabelnode3: nullable Object */;
7879 short int var4 /* : Bool */;
7880 int cltype5;
7881 int idtype6;
7882 val* var7 /* : ABreakExpr */;
7883 val* var8 /* : null */;
7884 val* var_pexprnode1 /* var pexprnode1: nullable ABreakExpr */;
7885 long var9 /* : Int */;
7886 long var10 /* : Int */;
7887 var_p = p0;
7888 var = NULL;
7889 var_node_list = var;
7890 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7891 var_nodearraylist2 = var1;
7892 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7893 var_nodearraylist1 = var2;
7894 var_tkwbreaknode2 = var_nodearraylist1;
7895 /* <var_tkwbreaknode2:nullable Object> isa nullable TKwbreak */
7896 cltype = type_nullable_parser_nodes__TKwbreak.color;
7897 idtype = type_nullable_parser_nodes__TKwbreak.id;
7898 if(var_tkwbreaknode2 == NULL) {
7899 var3 = 1;
7900 } else {
7901 if(cltype >= var_tkwbreaknode2->type->table_size) {
7902 var3 = 0;
7903 } else {
7904 var3 = var_tkwbreaknode2->type->type_table[cltype] == idtype;
7905 }
7906 }
7907 if (!var3) {
7908 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24920);
7909 exit(1);
7910 }
7911 var_plabelnode3 = var_nodearraylist2;
7912 /* <var_plabelnode3:nullable Object> isa nullable ALabel */
7913 cltype5 = type_nullable_parser_nodes__ALabel.color;
7914 idtype6 = type_nullable_parser_nodes__ALabel.id;
7915 if(var_plabelnode3 == NULL) {
7916 var4 = 1;
7917 } else {
7918 if(cltype5 >= var_plabelnode3->type->table_size) {
7919 var4 = 0;
7920 } else {
7921 var4 = var_plabelnode3->type->type_table[cltype5] == idtype6;
7922 }
7923 }
7924 if (!var4) {
7925 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24922);
7926 exit(1);
7927 }
7928 var7 = NEW_parser_nodes__ABreakExpr(&type_parser_nodes__ABreakExpr);
7929 var8 = NULL;
7930 ((void (*)(val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ABreakExpr__init_abreakexpr]))(var7, var_tkwbreaknode2, var_plabelnode3, var8) /* init_abreakexpr on <var7:ABreakExpr>*/;
7931 CHECK_NEW_parser_nodes__ABreakExpr(var7);
7932 var_pexprnode1 = var7;
7933 var_node_list = var_pexprnode1;
7934 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction624> */
7935 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
7936 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
7937 RET_LABEL:;
7938 }
7939 /* method parser#ReduceAction624#action for (self: Object, Parser) */
7940 void VIRTUAL_parser__ReduceAction624__action(val* self, val* p0) {
7941 parser__ReduceAction624__action(self, p0);
7942 RET_LABEL:;
7943 }
7944 /* method parser#ReduceAction625#action for (self: ReduceAction625, Parser) */
7945 void parser__ReduceAction625__action(val* self, val* p0) {
7946 val* var_p /* var p: Parser */;
7947 val* var /* : null */;
7948 val* var_node_list /* var node_list: nullable Object */;
7949 val* var1 /* : nullable Object */;
7950 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7951 val* var2 /* : nullable Object */;
7952 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7953 val* var_tkwbreaknode2 /* var tkwbreaknode2: nullable Object */;
7954 short int var3 /* : Bool */;
7955 int cltype;
7956 int idtype;
7957 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
7958 short int var4 /* : Bool */;
7959 int cltype5;
7960 int idtype6;
7961 val* var7 /* : ABreakExpr */;
7962 val* var8 /* : null */;
7963 val* var_pexprnode1 /* var pexprnode1: nullable ABreakExpr */;
7964 long var9 /* : Int */;
7965 long var10 /* : Int */;
7966 var_p = p0;
7967 var = NULL;
7968 var_node_list = var;
7969 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7970 var_nodearraylist2 = var1;
7971 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7972 var_nodearraylist1 = var2;
7973 var_tkwbreaknode2 = var_nodearraylist1;
7974 /* <var_tkwbreaknode2:nullable Object> isa nullable TKwbreak */
7975 cltype = type_nullable_parser_nodes__TKwbreak.color;
7976 idtype = type_nullable_parser_nodes__TKwbreak.id;
7977 if(var_tkwbreaknode2 == NULL) {
7978 var3 = 1;
7979 } else {
7980 if(cltype >= var_tkwbreaknode2->type->table_size) {
7981 var3 = 0;
7982 } else {
7983 var3 = var_tkwbreaknode2->type->type_table[cltype] == idtype;
7984 }
7985 }
7986 if (!var3) {
7987 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24940);
7988 exit(1);
7989 }
7990 var_pexprnode4 = var_nodearraylist2;
7991 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
7992 cltype5 = type_nullable_parser_nodes__AExpr.color;
7993 idtype6 = type_nullable_parser_nodes__AExpr.id;
7994 if(var_pexprnode4 == NULL) {
7995 var4 = 1;
7996 } else {
7997 if(cltype5 >= var_pexprnode4->type->table_size) {
7998 var4 = 0;
7999 } else {
8000 var4 = var_pexprnode4->type->type_table[cltype5] == idtype6;
8001 }
8002 }
8003 if (!var4) {
8004 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24942);
8005 exit(1);
8006 }
8007 var7 = NEW_parser_nodes__ABreakExpr(&type_parser_nodes__ABreakExpr);
8008 var8 = NULL;
8009 ((void (*)(val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ABreakExpr__init_abreakexpr]))(var7, var_tkwbreaknode2, var8, var_pexprnode4) /* init_abreakexpr on <var7:ABreakExpr>*/;
8010 CHECK_NEW_parser_nodes__ABreakExpr(var7);
8011 var_pexprnode1 = var7;
8012 var_node_list = var_pexprnode1;
8013 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction625> */
8014 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
8015 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
8016 RET_LABEL:;
8017 }
8018 /* method parser#ReduceAction625#action for (self: Object, Parser) */
8019 void VIRTUAL_parser__ReduceAction625__action(val* self, val* p0) {
8020 parser__ReduceAction625__action(self, p0);
8021 RET_LABEL:;
8022 }
8023 /* method parser#ReduceAction626#action for (self: ReduceAction626, Parser) */
8024 void parser__ReduceAction626__action(val* self, val* p0) {
8025 val* var_p /* var p: Parser */;
8026 val* var /* : null */;
8027 val* var_node_list /* var node_list: nullable Object */;
8028 val* var1 /* : nullable Object */;
8029 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8030 val* var2 /* : nullable Object */;
8031 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8032 val* var3 /* : nullable Object */;
8033 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8034 val* var_tkwbreaknode2 /* var tkwbreaknode2: nullable Object */;
8035 short int var4 /* : Bool */;
8036 int cltype;
8037 int idtype;
8038 val* var_plabelnode3 /* var plabelnode3: nullable Object */;
8039 short int var5 /* : Bool */;
8040 int cltype6;
8041 int idtype7;
8042 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
8043 short int var8 /* : Bool */;
8044 int cltype9;
8045 int idtype10;
8046 val* var11 /* : ABreakExpr */;
8047 val* var_pexprnode1 /* var pexprnode1: nullable ABreakExpr */;
8048 long var12 /* : Int */;
8049 long var13 /* : Int */;
8050 var_p = p0;
8051 var = NULL;
8052 var_node_list = var;
8053 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8054 var_nodearraylist3 = var1;
8055 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8056 var_nodearraylist2 = var2;
8057 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8058 var_nodearraylist1 = var3;
8059 var_tkwbreaknode2 = var_nodearraylist1;
8060 /* <var_tkwbreaknode2:nullable Object> isa nullable TKwbreak */
8061 cltype = type_nullable_parser_nodes__TKwbreak.color;
8062 idtype = type_nullable_parser_nodes__TKwbreak.id;
8063 if(var_tkwbreaknode2 == NULL) {
8064 var4 = 1;
8065 } else {
8066 if(cltype >= var_tkwbreaknode2->type->table_size) {
8067 var4 = 0;
8068 } else {
8069 var4 = var_tkwbreaknode2->type->type_table[cltype] == idtype;
8070 }
8071 }
8072 if (!var4) {
8073 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24961);
8074 exit(1);
8075 }
8076 var_plabelnode3 = var_nodearraylist2;
8077 /* <var_plabelnode3:nullable Object> isa nullable ALabel */
8078 cltype6 = type_nullable_parser_nodes__ALabel.color;
8079 idtype7 = type_nullable_parser_nodes__ALabel.id;
8080 if(var_plabelnode3 == NULL) {
8081 var5 = 1;
8082 } else {
8083 if(cltype6 >= var_plabelnode3->type->table_size) {
8084 var5 = 0;
8085 } else {
8086 var5 = var_plabelnode3->type->type_table[cltype6] == idtype7;
8087 }
8088 }
8089 if (!var5) {
8090 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24963);
8091 exit(1);
8092 }
8093 var_pexprnode4 = var_nodearraylist3;
8094 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
8095 cltype9 = type_nullable_parser_nodes__AExpr.color;
8096 idtype10 = type_nullable_parser_nodes__AExpr.id;
8097 if(var_pexprnode4 == NULL) {
8098 var8 = 1;
8099 } else {
8100 if(cltype9 >= var_pexprnode4->type->table_size) {
8101 var8 = 0;
8102 } else {
8103 var8 = var_pexprnode4->type->type_table[cltype9] == idtype10;
8104 }
8105 }
8106 if (!var8) {
8107 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24965);
8108 exit(1);
8109 }
8110 var11 = NEW_parser_nodes__ABreakExpr(&type_parser_nodes__ABreakExpr);
8111 ((void (*)(val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__ABreakExpr__init_abreakexpr]))(var11, var_tkwbreaknode2, var_plabelnode3, var_pexprnode4) /* init_abreakexpr on <var11:ABreakExpr>*/;
8112 CHECK_NEW_parser_nodes__ABreakExpr(var11);
8113 var_pexprnode1 = var11;
8114 var_node_list = var_pexprnode1;
8115 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction626> */
8116 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
8117 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
8118 RET_LABEL:;
8119 }
8120 /* method parser#ReduceAction626#action for (self: Object, Parser) */
8121 void VIRTUAL_parser__ReduceAction626__action(val* self, val* p0) {
8122 parser__ReduceAction626__action(self, p0);
8123 RET_LABEL:;
8124 }
8125 /* method parser#ReduceAction627#action for (self: ReduceAction627, Parser) */
8126 void parser__ReduceAction627__action(val* self, val* p0) {
8127 val* var_p /* var p: Parser */;
8128 val* var /* : null */;
8129 val* var_node_list /* var node_list: nullable Object */;
8130 val* var1 /* : nullable Object */;
8131 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8132 val* var_tkwabortnode2 /* var tkwabortnode2: nullable Object */;
8133 short int var2 /* : Bool */;
8134 int cltype;
8135 int idtype;
8136 val* var3 /* : AAbortExpr */;
8137 val* var_pexprnode1 /* var pexprnode1: nullable AAbortExpr */;
8138 long var4 /* : Int */;
8139 long var5 /* : Int */;
8140 var_p = p0;
8141 var = NULL;
8142 var_node_list = var;
8143 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8144 var_nodearraylist1 = var1;
8145 var_tkwabortnode2 = var_nodearraylist1;
8146 /* <var_tkwabortnode2:nullable Object> isa nullable TKwabort */
8147 cltype = type_nullable_parser_nodes__TKwabort.color;
8148 idtype = type_nullable_parser_nodes__TKwabort.id;
8149 if(var_tkwabortnode2 == NULL) {
8150 var2 = 1;
8151 } else {
8152 if(cltype >= var_tkwabortnode2->type->table_size) {
8153 var2 = 0;
8154 } else {
8155 var2 = var_tkwabortnode2->type->type_table[cltype] == idtype;
8156 }
8157 }
8158 if (!var2) {
8159 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24982);
8160 exit(1);
8161 }
8162 var3 = NEW_parser_nodes__AAbortExpr(&type_parser_nodes__AAbortExpr);
8163 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AAbortExpr__init_aabortexpr]))(var3, var_tkwabortnode2) /* init_aabortexpr on <var3:AAbortExpr>*/;
8164 CHECK_NEW_parser_nodes__AAbortExpr(var3);
8165 var_pexprnode1 = var3;
8166 var_node_list = var_pexprnode1;
8167 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction627> */
8168 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
8169 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
8170 RET_LABEL:;
8171 }
8172 /* method parser#ReduceAction627#action for (self: Object, Parser) */
8173 void VIRTUAL_parser__ReduceAction627__action(val* self, val* p0) {
8174 parser__ReduceAction627__action(self, p0);
8175 RET_LABEL:;
8176 }
8177 /* method parser#ReduceAction628#action for (self: ReduceAction628, Parser) */
8178 void parser__ReduceAction628__action(val* self, val* p0) {
8179 val* var_p /* var p: Parser */;
8180 val* var /* : null */;
8181 val* var_node_list /* var node_list: nullable Object */;
8182 val* var1 /* : nullable Object */;
8183 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8184 val* var_tkwcontinuenode2 /* var tkwcontinuenode2: nullable Object */;
8185 short int var2 /* : Bool */;
8186 int cltype;
8187 int idtype;
8188 val* var3 /* : AContinueExpr */;
8189 val* var4 /* : null */;
8190 val* var5 /* : null */;
8191 val* var_pexprnode1 /* var pexprnode1: nullable AContinueExpr */;
8192 long var6 /* : Int */;
8193 long var7 /* : Int */;
8194 var_p = p0;
8195 var = NULL;
8196 var_node_list = var;
8197 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8198 var_nodearraylist1 = var1;
8199 var_tkwcontinuenode2 = var_nodearraylist1;
8200 /* <var_tkwcontinuenode2:nullable Object> isa nullable TKwcontinue */
8201 cltype = type_nullable_parser_nodes__TKwcontinue.color;
8202 idtype = type_nullable_parser_nodes__TKwcontinue.id;
8203 if(var_tkwcontinuenode2 == NULL) {
8204 var2 = 1;
8205 } else {
8206 if(cltype >= var_tkwcontinuenode2->type->table_size) {
8207 var2 = 0;
8208 } else {
8209 var2 = var_tkwcontinuenode2->type->type_table[cltype] == idtype;
8210 }
8211 }
8212 if (!var2) {
8213 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 24997);
8214 exit(1);
8215 }
8216 var3 = NEW_parser_nodes__AContinueExpr(&type_parser_nodes__AContinueExpr);
8217 var4 = NULL;
8218 var5 = NULL;
8219 ((void (*)(val*, val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AContinueExpr__init_acontinueexpr]))(var3, var_tkwcontinuenode2, var4, var5) /* init_acontinueexpr on <var3:AContinueExpr>*/;
8220 CHECK_NEW_parser_nodes__AContinueExpr(var3);
8221 var_pexprnode1 = var3;
8222 var_node_list = var_pexprnode1;
8223 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction628> */
8224 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
8225 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
8226 RET_LABEL:;
8227 }
8228 /* method parser#ReduceAction628#action for (self: Object, Parser) */
8229 void VIRTUAL_parser__ReduceAction628__action(val* self, val* p0) {
8230 parser__ReduceAction628__action(self, p0);
8231 RET_LABEL:;
8232 }
8233 /* method parser#ReduceAction629#action for (self: ReduceAction629, Parser) */
8234 void parser__ReduceAction629__action(val* self, val* p0) {
8235 val* var_p /* var p: Parser */;
8236 val* var /* : null */;
8237 val* var_node_list /* var node_list: nullable Object */;
8238 val* var1 /* : nullable Object */;
8239 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8240 val* var2 /* : nullable Object */;
8241 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8242 val* var_tkwcontinuenode2 /* var tkwcontinuenode2: nullable Object */;
8243 short int var3 /* : Bool */;
8244 int cltype;
8245 int idtype;
8246 val* var_plabelnode3 /* var plabelnode3: nullable Object */;
8247 short int var4 /* : Bool */;
8248 int cltype5;
8249 int idtype6;
8250 val* var7 /* : AContinueExpr */;
8251 val* var8 /* : null */;
8252 val* var_pexprnode1 /* var pexprnode1: nullable AContinueExpr */;
8253 long var9 /* : Int */;
8254 long var10 /* : Int */;
8255 var_p = p0;
8256 var = NULL;
8257 var_node_list = var;
8258 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8259 var_nodearraylist2 = var1;
8260 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8261 var_nodearraylist1 = var2;
8262 var_tkwcontinuenode2 = var_nodearraylist1;
8263 /* <var_tkwcontinuenode2:nullable Object> isa nullable TKwcontinue */
8264 cltype = type_nullable_parser_nodes__TKwcontinue.color;
8265 idtype = type_nullable_parser_nodes__TKwcontinue.id;
8266 if(var_tkwcontinuenode2 == NULL) {
8267 var3 = 1;
8268 } else {
8269 if(cltype >= var_tkwcontinuenode2->type->table_size) {
8270 var3 = 0;
8271 } else {
8272 var3 = var_tkwcontinuenode2->type->type_table[cltype] == idtype;
8273 }
8274 }
8275 if (!var3) {
8276 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25015);
8277 exit(1);
8278 }
8279 var_plabelnode3 = var_nodearraylist2;
8280 /* <var_plabelnode3:nullable Object> isa nullable ALabel */
8281 cltype5 = type_nullable_parser_nodes__ALabel.color;
8282 idtype6 = type_nullable_parser_nodes__ALabel.id;
8283 if(var_plabelnode3 == NULL) {
8284 var4 = 1;
8285 } else {
8286 if(cltype5 >= var_plabelnode3->type->table_size) {
8287 var4 = 0;
8288 } else {
8289 var4 = var_plabelnode3->type->type_table[cltype5] == idtype6;
8290 }
8291 }
8292 if (!var4) {
8293 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25017);
8294 exit(1);
8295 }
8296 var7 = NEW_parser_nodes__AContinueExpr(&type_parser_nodes__AContinueExpr);
8297 var8 = NULL;
8298 ((void (*)(val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AContinueExpr__init_acontinueexpr]))(var7, var_tkwcontinuenode2, var_plabelnode3, var8) /* init_acontinueexpr on <var7:AContinueExpr>*/;
8299 CHECK_NEW_parser_nodes__AContinueExpr(var7);
8300 var_pexprnode1 = var7;
8301 var_node_list = var_pexprnode1;
8302 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction629> */
8303 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
8304 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
8305 RET_LABEL:;
8306 }
8307 /* method parser#ReduceAction629#action for (self: Object, Parser) */
8308 void VIRTUAL_parser__ReduceAction629__action(val* self, val* p0) {
8309 parser__ReduceAction629__action(self, p0);
8310 RET_LABEL:;
8311 }
8312 /* method parser#ReduceAction630#action for (self: ReduceAction630, Parser) */
8313 void parser__ReduceAction630__action(val* self, val* p0) {
8314 val* var_p /* var p: Parser */;
8315 val* var /* : null */;
8316 val* var_node_list /* var node_list: nullable Object */;
8317 val* var1 /* : nullable Object */;
8318 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8319 val* var2 /* : nullable Object */;
8320 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8321 val* var_tkwcontinuenode2 /* var tkwcontinuenode2: nullable Object */;
8322 short int var3 /* : Bool */;
8323 int cltype;
8324 int idtype;
8325 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
8326 short int var4 /* : Bool */;
8327 int cltype5;
8328 int idtype6;
8329 val* var7 /* : AContinueExpr */;
8330 val* var8 /* : null */;
8331 val* var_pexprnode1 /* var pexprnode1: nullable AContinueExpr */;
8332 long var9 /* : Int */;
8333 long var10 /* : Int */;
8334 var_p = p0;
8335 var = NULL;
8336 var_node_list = var;
8337 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8338 var_nodearraylist2 = var1;
8339 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8340 var_nodearraylist1 = var2;
8341 var_tkwcontinuenode2 = var_nodearraylist1;
8342 /* <var_tkwcontinuenode2:nullable Object> isa nullable TKwcontinue */
8343 cltype = type_nullable_parser_nodes__TKwcontinue.color;
8344 idtype = type_nullable_parser_nodes__TKwcontinue.id;
8345 if(var_tkwcontinuenode2 == NULL) {
8346 var3 = 1;
8347 } else {
8348 if(cltype >= var_tkwcontinuenode2->type->table_size) {
8349 var3 = 0;
8350 } else {
8351 var3 = var_tkwcontinuenode2->type->type_table[cltype] == idtype;
8352 }
8353 }
8354 if (!var3) {
8355 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25035);
8356 exit(1);
8357 }
8358 var_pexprnode4 = var_nodearraylist2;
8359 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
8360 cltype5 = type_nullable_parser_nodes__AExpr.color;
8361 idtype6 = type_nullable_parser_nodes__AExpr.id;
8362 if(var_pexprnode4 == NULL) {
8363 var4 = 1;
8364 } else {
8365 if(cltype5 >= var_pexprnode4->type->table_size) {
8366 var4 = 0;
8367 } else {
8368 var4 = var_pexprnode4->type->type_table[cltype5] == idtype6;
8369 }
8370 }
8371 if (!var4) {
8372 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25037);
8373 exit(1);
8374 }
8375 var7 = NEW_parser_nodes__AContinueExpr(&type_parser_nodes__AContinueExpr);
8376 var8 = NULL;
8377 ((void (*)(val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AContinueExpr__init_acontinueexpr]))(var7, var_tkwcontinuenode2, var8, var_pexprnode4) /* init_acontinueexpr on <var7:AContinueExpr>*/;
8378 CHECK_NEW_parser_nodes__AContinueExpr(var7);
8379 var_pexprnode1 = var7;
8380 var_node_list = var_pexprnode1;
8381 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction630> */
8382 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
8383 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
8384 RET_LABEL:;
8385 }
8386 /* method parser#ReduceAction630#action for (self: Object, Parser) */
8387 void VIRTUAL_parser__ReduceAction630__action(val* self, val* p0) {
8388 parser__ReduceAction630__action(self, p0);
8389 RET_LABEL:;
8390 }
8391 /* method parser#ReduceAction631#action for (self: ReduceAction631, Parser) */
8392 void parser__ReduceAction631__action(val* self, val* p0) {
8393 val* var_p /* var p: Parser */;
8394 val* var /* : null */;
8395 val* var_node_list /* var node_list: nullable Object */;
8396 val* var1 /* : nullable Object */;
8397 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8398 val* var2 /* : nullable Object */;
8399 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8400 val* var3 /* : nullable Object */;
8401 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8402 val* var_tkwcontinuenode2 /* var tkwcontinuenode2: nullable Object */;
8403 short int var4 /* : Bool */;
8404 int cltype;
8405 int idtype;
8406 val* var_plabelnode3 /* var plabelnode3: nullable Object */;
8407 short int var5 /* : Bool */;
8408 int cltype6;
8409 int idtype7;
8410 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
8411 short int var8 /* : Bool */;
8412 int cltype9;
8413 int idtype10;
8414 val* var11 /* : AContinueExpr */;
8415 val* var_pexprnode1 /* var pexprnode1: nullable AContinueExpr */;
8416 long var12 /* : Int */;
8417 long var13 /* : Int */;
8418 var_p = p0;
8419 var = NULL;
8420 var_node_list = var;
8421 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8422 var_nodearraylist3 = var1;
8423 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8424 var_nodearraylist2 = var2;
8425 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8426 var_nodearraylist1 = var3;
8427 var_tkwcontinuenode2 = var_nodearraylist1;
8428 /* <var_tkwcontinuenode2:nullable Object> isa nullable TKwcontinue */
8429 cltype = type_nullable_parser_nodes__TKwcontinue.color;
8430 idtype = type_nullable_parser_nodes__TKwcontinue.id;
8431 if(var_tkwcontinuenode2 == NULL) {
8432 var4 = 1;
8433 } else {
8434 if(cltype >= var_tkwcontinuenode2->type->table_size) {
8435 var4 = 0;
8436 } else {
8437 var4 = var_tkwcontinuenode2->type->type_table[cltype] == idtype;
8438 }
8439 }
8440 if (!var4) {
8441 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25056);
8442 exit(1);
8443 }
8444 var_plabelnode3 = var_nodearraylist2;
8445 /* <var_plabelnode3:nullable Object> isa nullable ALabel */
8446 cltype6 = type_nullable_parser_nodes__ALabel.color;
8447 idtype7 = type_nullable_parser_nodes__ALabel.id;
8448 if(var_plabelnode3 == NULL) {
8449 var5 = 1;
8450 } else {
8451 if(cltype6 >= var_plabelnode3->type->table_size) {
8452 var5 = 0;
8453 } else {
8454 var5 = var_plabelnode3->type->type_table[cltype6] == idtype7;
8455 }
8456 }
8457 if (!var5) {
8458 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25058);
8459 exit(1);
8460 }
8461 var_pexprnode4 = var_nodearraylist3;
8462 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
8463 cltype9 = type_nullable_parser_nodes__AExpr.color;
8464 idtype10 = type_nullable_parser_nodes__AExpr.id;
8465 if(var_pexprnode4 == NULL) {
8466 var8 = 1;
8467 } else {
8468 if(cltype9 >= var_pexprnode4->type->table_size) {
8469 var8 = 0;
8470 } else {
8471 var8 = var_pexprnode4->type->type_table[cltype9] == idtype10;
8472 }
8473 }
8474 if (!var8) {
8475 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25060);
8476 exit(1);
8477 }
8478 var11 = NEW_parser_nodes__AContinueExpr(&type_parser_nodes__AContinueExpr);
8479 ((void (*)(val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AContinueExpr__init_acontinueexpr]))(var11, var_tkwcontinuenode2, var_plabelnode3, var_pexprnode4) /* init_acontinueexpr on <var11:AContinueExpr>*/;
8480 CHECK_NEW_parser_nodes__AContinueExpr(var11);
8481 var_pexprnode1 = var11;
8482 var_node_list = var_pexprnode1;
8483 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction631> */
8484 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
8485 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
8486 RET_LABEL:;
8487 }
8488 /* method parser#ReduceAction631#action for (self: Object, Parser) */
8489 void VIRTUAL_parser__ReduceAction631__action(val* self, val* p0) {
8490 parser__ReduceAction631__action(self, p0);
8491 RET_LABEL:;
8492 }
8493 /* method parser#ReduceAction638#action for (self: ReduceAction638, Parser) */
8494 void parser__ReduceAction638__action(val* self, val* p0) {
8495 val* var_p /* var p: Parser */;
8496 val* var /* : null */;
8497 val* var_node_list /* var node_list: nullable Object */;
8498 val* var1 /* : nullable Object */;
8499 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
8500 val* var2 /* : nullable Object */;
8501 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8502 val* var3 /* : nullable Object */;
8503 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8504 val* var4 /* : nullable Object */;
8505 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8506 val* var5 /* : nullable Object */;
8507 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8508 val* var6 /* : Array[Object] */;
8509 val* var_listnode5 /* var listnode5: Array[Object] */;
8510 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
8511 short int var7 /* : Bool */;
8512 int cltype;
8513 int idtype;
8514 val* var_tidnode3 /* var tidnode3: nullable Object */;
8515 short int var8 /* : Bool */;
8516 int cltype9;
8517 int idtype10;
8518 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
8519 short int var11 /* : Bool */;
8520 int cltype12;
8521 int idtype13;
8522 val* var14 /* : ACallExpr */;
8523 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
8524 long var15 /* : Int */;
8525 long var16 /* : Int */;
8526 var_p = p0;
8527 var = NULL;
8528 var_node_list = var;
8529 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8530 var_nodearraylist5 = var1;
8531 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8532 var_nodearraylist4 = var2;
8533 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8534 var_nodearraylist3 = var3;
8535 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8536 var_nodearraylist2 = var4;
8537 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8538 var_nodearraylist1 = var5;
8539 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
8540 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
8541 CHECK_NEW_array__Array(var6);
8542 var_listnode5 = var6;
8543 var_pexprnode2 = var_nodearraylist1;
8544 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
8545 cltype = type_nullable_parser_nodes__AExpr.color;
8546 idtype = type_nullable_parser_nodes__AExpr.id;
8547 if(var_pexprnode2 == NULL) {
8548 var7 = 1;
8549 } else {
8550 if(cltype >= var_pexprnode2->type->table_size) {
8551 var7 = 0;
8552 } else {
8553 var7 = var_pexprnode2->type->type_table[cltype] == idtype;
8554 }
8555 }
8556 if (!var7) {
8557 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25082);
8558 exit(1);
8559 }
8560 var_tidnode3 = var_nodearraylist4;
8561 /* <var_tidnode3:nullable Object> isa nullable TId */
8562 cltype9 = type_nullable_parser_nodes__TId.color;
8563 idtype10 = type_nullable_parser_nodes__TId.id;
8564 if(var_tidnode3 == NULL) {
8565 var8 = 1;
8566 } else {
8567 if(cltype9 >= var_tidnode3->type->table_size) {
8568 var8 = 0;
8569 } else {
8570 var8 = var_tidnode3->type->type_table[cltype9] == idtype10;
8571 }
8572 }
8573 if (!var8) {
8574 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25084);
8575 exit(1);
8576 }
8577 var_pexprsnode4 = var_nodearraylist5;
8578 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
8579 cltype12 = type_nullable_parser_nodes__AExprs.color;
8580 idtype13 = type_nullable_parser_nodes__AExprs.id;
8581 if(var_pexprsnode4 == NULL) {
8582 var11 = 1;
8583 } else {
8584 if(cltype12 >= var_pexprsnode4->type->table_size) {
8585 var11 = 0;
8586 } else {
8587 var11 = var_pexprsnode4->type->type_table[cltype12] == idtype13;
8588 }
8589 }
8590 if (!var11) {
8591 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25086);
8592 exit(1);
8593 }
8594 var14 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
8595 ((void (*)(val*, val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__ACallExpr__init_acallexpr]))(var14, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_listnode5) /* init_acallexpr on <var14:ACallExpr>*/;
8596 CHECK_NEW_parser_nodes__ACallExpr(var14);
8597 var_pexprnode1 = var14;
8598 var_node_list = var_pexprnode1;
8599 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction638> */
8600 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
8601 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
8602 RET_LABEL:;
8603 }
8604 /* method parser#ReduceAction638#action for (self: Object, Parser) */
8605 void VIRTUAL_parser__ReduceAction638__action(val* self, val* p0) {
8606 parser__ReduceAction638__action(self, p0);
8607 RET_LABEL:;
8608 }
8609 /* method parser#ReduceAction639#action for (self: ReduceAction639, Parser) */
8610 void parser__ReduceAction639__action(val* self, val* p0) {
8611 val* var_p /* var p: Parser */;
8612 val* var /* : null */;
8613 val* var_node_list /* var node_list: nullable Object */;
8614 val* var1 /* : nullable Object */;
8615 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8616 val* var2 /* : nullable Object */;
8617 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8618 val* var3 /* : Array[Object] */;
8619 val* var_listnode5 /* var listnode5: Array[Object] */;
8620 val* var4 /* : AImplicitSelfExpr */;
8621 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
8622 val* var_tidnode3 /* var tidnode3: nullable Object */;
8623 short int var5 /* : Bool */;
8624 int cltype;
8625 int idtype;
8626 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
8627 short int var6 /* : Bool */;
8628 int cltype7;
8629 int idtype8;
8630 val* var9 /* : ACallExpr */;
8631 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
8632 long var10 /* : Int */;
8633 long var11 /* : Int */;
8634 var_p = p0;
8635 var = NULL;
8636 var_node_list = var;
8637 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8638 var_nodearraylist2 = var1;
8639 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8640 var_nodearraylist1 = var2;
8641 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
8642 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
8643 CHECK_NEW_array__Array(var3);
8644 var_listnode5 = var3;
8645 var4 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
8646 ((void (*)(val*))(var4->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var4) /* init_aimplicitselfexpr on <var4:AImplicitSelfExpr>*/;
8647 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var4);
8648 var_pexprnode2 = var4;
8649 var_tidnode3 = var_nodearraylist1;
8650 /* <var_tidnode3:nullable Object> isa nullable TId */
8651 cltype = type_nullable_parser_nodes__TId.color;
8652 idtype = type_nullable_parser_nodes__TId.id;
8653 if(var_tidnode3 == NULL) {
8654 var5 = 1;
8655 } else {
8656 if(cltype >= var_tidnode3->type->table_size) {
8657 var5 = 0;
8658 } else {
8659 var5 = var_tidnode3->type->type_table[cltype] == idtype;
8660 }
8661 }
8662 if (!var5) {
8663 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25107);
8664 exit(1);
8665 }
8666 var_pexprsnode4 = var_nodearraylist2;
8667 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
8668 cltype7 = type_nullable_parser_nodes__AExprs.color;
8669 idtype8 = type_nullable_parser_nodes__AExprs.id;
8670 if(var_pexprsnode4 == NULL) {
8671 var6 = 1;
8672 } else {
8673 if(cltype7 >= var_pexprsnode4->type->table_size) {
8674 var6 = 0;
8675 } else {
8676 var6 = var_pexprsnode4->type->type_table[cltype7] == idtype8;
8677 }
8678 }
8679 if (!var6) {
8680 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25109);
8681 exit(1);
8682 }
8683 var9 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
8684 ((void (*)(val*, val*, val*, val*, val*))(var9->class->vft[COLOR_parser_prod__ACallExpr__init_acallexpr]))(var9, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_listnode5) /* init_acallexpr on <var9:ACallExpr>*/;
8685 CHECK_NEW_parser_nodes__ACallExpr(var9);
8686 var_pexprnode1 = var9;
8687 var_node_list = var_pexprnode1;
8688 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction639> */
8689 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
8690 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
8691 RET_LABEL:;
8692 }
8693 /* method parser#ReduceAction639#action for (self: Object, Parser) */
8694 void VIRTUAL_parser__ReduceAction639__action(val* self, val* p0) {
8695 parser__ReduceAction639__action(self, p0);
8696 RET_LABEL:;
8697 }
8698 /* method parser#ReduceAction640#action for (self: ReduceAction640, Parser) */
8699 void parser__ReduceAction640__action(val* self, val* p0) {
8700 val* var_p /* var p: Parser */;
8701 val* var /* : null */;
8702 val* var_node_list /* var node_list: nullable Object */;
8703 val* var1 /* : nullable Object */;
8704 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
8705 val* var2 /* : nullable Object */;
8706 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
8707 val* var3 /* : nullable Object */;
8708 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8709 val* var4 /* : nullable Object */;
8710 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8711 val* var5 /* : nullable Object */;
8712 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8713 val* var6 /* : nullable Object */;
8714 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8715 val* var7 /* : Array[Object] */;
8716 val* var_listnode5 /* var listnode5: Array[Object] */;
8717 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
8718 short int var8 /* : Bool */;
8719 int cltype;
8720 int idtype;
8721 val* var_tidnode3 /* var tidnode3: nullable Object */;
8722 short int var9 /* : Bool */;
8723 int cltype10;
8724 int idtype11;
8725 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
8726 short int var12 /* : Bool */;
8727 int cltype13;
8728 int idtype14;
8729 val* var15 /* : ACallExpr */;
8730 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
8731 long var16 /* : Int */;
8732 long var17 /* : Int */;
8733 var_p = p0;
8734 var = NULL;
8735 var_node_list = var;
8736 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8737 var_nodearraylist6 = var1;
8738 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8739 var_nodearraylist5 = var2;
8740 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8741 var_nodearraylist4 = var3;
8742 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8743 var_nodearraylist3 = var4;
8744 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8745 var_nodearraylist2 = var5;
8746 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8747 var_nodearraylist1 = var6;
8748 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
8749 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
8750 CHECK_NEW_array__Array(var7);
8751 var_listnode5 = var7;
8752 var_pexprnode2 = var_nodearraylist1;
8753 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
8754 cltype = type_nullable_parser_nodes__AExpr.color;
8755 idtype = type_nullable_parser_nodes__AExpr.id;
8756 if(var_pexprnode2 == NULL) {
8757 var8 = 1;
8758 } else {
8759 if(cltype >= var_pexprnode2->type->table_size) {
8760 var8 = 0;
8761 } else {
8762 var8 = var_pexprnode2->type->type_table[cltype] == idtype;
8763 }
8764 }
8765 if (!var8) {
8766 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25133);
8767 exit(1);
8768 }
8769 var_tidnode3 = var_nodearraylist5;
8770 /* <var_tidnode3:nullable Object> isa nullable TId */
8771 cltype10 = type_nullable_parser_nodes__TId.color;
8772 idtype11 = type_nullable_parser_nodes__TId.id;
8773 if(var_tidnode3 == NULL) {
8774 var9 = 1;
8775 } else {
8776 if(cltype10 >= var_tidnode3->type->table_size) {
8777 var9 = 0;
8778 } else {
8779 var9 = var_tidnode3->type->type_table[cltype10] == idtype11;
8780 }
8781 }
8782 if (!var9) {
8783 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25135);
8784 exit(1);
8785 }
8786 var_pexprsnode4 = var_nodearraylist6;
8787 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
8788 cltype13 = type_nullable_parser_nodes__AExprs.color;
8789 idtype14 = type_nullable_parser_nodes__AExprs.id;
8790 if(var_pexprsnode4 == NULL) {
8791 var12 = 1;
8792 } else {
8793 if(cltype13 >= var_pexprsnode4->type->table_size) {
8794 var12 = 0;
8795 } else {
8796 var12 = var_pexprsnode4->type->type_table[cltype13] == idtype14;
8797 }
8798 }
8799 if (!var12) {
8800 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25137);
8801 exit(1);
8802 }
8803 var15 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
8804 ((void (*)(val*, val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__ACallExpr__init_acallexpr]))(var15, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_listnode5) /* init_acallexpr on <var15:ACallExpr>*/;
8805 CHECK_NEW_parser_nodes__ACallExpr(var15);
8806 var_pexprnode1 = var15;
8807 var_node_list = var_pexprnode1;
8808 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction640> */
8809 var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
8810 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
8811 RET_LABEL:;
8812 }
8813 /* method parser#ReduceAction640#action for (self: Object, Parser) */
8814 void VIRTUAL_parser__ReduceAction640__action(val* self, val* p0) {
8815 parser__ReduceAction640__action(self, p0);
8816 RET_LABEL:;
8817 }
8818 /* method parser#ReduceAction641#action for (self: ReduceAction641, Parser) */
8819 void parser__ReduceAction641__action(val* self, val* p0) {
8820 val* var_p /* var p: Parser */;
8821 val* var /* : null */;
8822 val* var_node_list /* var node_list: nullable Object */;
8823 val* var1 /* : nullable Object */;
8824 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
8825 val* var2 /* : nullable Object */;
8826 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
8827 val* var3 /* : nullable Object */;
8828 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
8829 val* var4 /* : nullable Object */;
8830 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8831 val* var5 /* : nullable Object */;
8832 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8833 val* var6 /* : nullable Object */;
8834 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8835 val* var7 /* : nullable Object */;
8836 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8837 val* var8 /* : Array[Object] */;
8838 val* var_listnode5 /* var listnode5: Array[Object] */;
8839 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
8840 short int var9 /* : Bool */;
8841 int cltype;
8842 int idtype;
8843 val* var_tidnode3 /* var tidnode3: nullable Object */;
8844 short int var10 /* : Bool */;
8845 int cltype11;
8846 int idtype12;
8847 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
8848 short int var13 /* : Bool */;
8849 int cltype14;
8850 int idtype15;
8851 val* var16 /* : ACallExpr */;
8852 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
8853 long var17 /* : Int */;
8854 long var18 /* : Int */;
8855 var_p = p0;
8856 var = NULL;
8857 var_node_list = var;
8858 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8859 var_nodearraylist7 = var1;
8860 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8861 var_nodearraylist6 = var2;
8862 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8863 var_nodearraylist5 = var3;
8864 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8865 var_nodearraylist4 = var4;
8866 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8867 var_nodearraylist3 = var5;
8868 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8869 var_nodearraylist2 = var6;
8870 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8871 var_nodearraylist1 = var7;
8872 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
8873 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
8874 CHECK_NEW_array__Array(var8);
8875 var_listnode5 = var8;
8876 var_pexprnode2 = var_nodearraylist1;
8877 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
8878 cltype = type_nullable_parser_nodes__AExpr.color;
8879 idtype = type_nullable_parser_nodes__AExpr.id;
8880 if(var_pexprnode2 == NULL) {
8881 var9 = 1;
8882 } else {
8883 if(cltype >= var_pexprnode2->type->table_size) {
8884 var9 = 0;
8885 } else {
8886 var9 = var_pexprnode2->type->type_table[cltype] == idtype;
8887 }
8888 }
8889 if (!var9) {
8890 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25162);
8891 exit(1);
8892 }
8893 var_tidnode3 = var_nodearraylist6;
8894 /* <var_tidnode3:nullable Object> isa nullable TId */
8895 cltype11 = type_nullable_parser_nodes__TId.color;
8896 idtype12 = type_nullable_parser_nodes__TId.id;
8897 if(var_tidnode3 == NULL) {
8898 var10 = 1;
8899 } else {
8900 if(cltype11 >= var_tidnode3->type->table_size) {
8901 var10 = 0;
8902 } else {
8903 var10 = var_tidnode3->type->type_table[cltype11] == idtype12;
8904 }
8905 }
8906 if (!var10) {
8907 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25164);
8908 exit(1);
8909 }
8910 var_pexprsnode4 = var_nodearraylist7;
8911 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
8912 cltype14 = type_nullable_parser_nodes__AExprs.color;
8913 idtype15 = type_nullable_parser_nodes__AExprs.id;
8914 if(var_pexprsnode4 == NULL) {
8915 var13 = 1;
8916 } else {
8917 if(cltype14 >= var_pexprsnode4->type->table_size) {
8918 var13 = 0;
8919 } else {
8920 var13 = var_pexprsnode4->type->type_table[cltype14] == idtype15;
8921 }
8922 }
8923 if (!var13) {
8924 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25166);
8925 exit(1);
8926 }
8927 var16 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
8928 ((void (*)(val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__ACallExpr__init_acallexpr]))(var16, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_listnode5) /* init_acallexpr on <var16:ACallExpr>*/;
8929 CHECK_NEW_parser_nodes__ACallExpr(var16);
8930 var_pexprnode1 = var16;
8931 var_node_list = var_pexprnode1;
8932 var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction641> */
8933 var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
8934 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
8935 RET_LABEL:;
8936 }
8937 /* method parser#ReduceAction641#action for (self: Object, Parser) */
8938 void VIRTUAL_parser__ReduceAction641__action(val* self, val* p0) {
8939 parser__ReduceAction641__action(self, p0);
8940 RET_LABEL:;
8941 }
8942 /* method parser#ReduceAction643#action for (self: ReduceAction643, Parser) */
8943 void parser__ReduceAction643__action(val* self, val* p0) {
8944 val* var_p /* var p: Parser */;
8945 val* var /* : null */;
8946 val* var_node_list /* var node_list: nullable Object */;
8947 val* var1 /* : nullable Object */;
8948 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8949 val* var2 /* : nullable Object */;
8950 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8951 val* var3 /* : nullable Object */;
8952 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8953 val* var4 /* : Array[Object] */;
8954 val* var_listnode5 /* var listnode5: Array[Object] */;
8955 val* var5 /* : AImplicitSelfExpr */;
8956 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
8957 val* var_tidnode3 /* var tidnode3: nullable Object */;
8958 short int var6 /* : Bool */;
8959 int cltype;
8960 int idtype;
8961 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
8962 short int var7 /* : Bool */;
8963 int cltype8;
8964 int idtype9;
8965 val* var10 /* : ACallExpr */;
8966 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
8967 long var11 /* : Int */;
8968 long var12 /* : Int */;
8969 var_p = p0;
8970 var = NULL;
8971 var_node_list = var;
8972 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8973 var_nodearraylist3 = var1;
8974 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8975 var_nodearraylist2 = var2;
8976 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8977 var_nodearraylist1 = var3;
8978 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
8979 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
8980 CHECK_NEW_array__Array(var4);
8981 var_listnode5 = var4;
8982 var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
8983 ((void (*)(val*))(var5->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var5) /* init_aimplicitselfexpr on <var5:AImplicitSelfExpr>*/;
8984 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var5);
8985 var_pexprnode2 = var5;
8986 var_tidnode3 = var_nodearraylist2;
8987 /* <var_tidnode3:nullable Object> isa nullable TId */
8988 cltype = type_nullable_parser_nodes__TId.color;
8989 idtype = type_nullable_parser_nodes__TId.id;
8990 if(var_tidnode3 == NULL) {
8991 var6 = 1;
8992 } else {
8993 if(cltype >= var_tidnode3->type->table_size) {
8994 var6 = 0;
8995 } else {
8996 var6 = var_tidnode3->type->type_table[cltype] == idtype;
8997 }
8998 }
8999 if (!var6) {
9000 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25188);
9001 exit(1);
9002 }
9003 var_pexprsnode4 = var_nodearraylist3;
9004 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
9005 cltype8 = type_nullable_parser_nodes__AExprs.color;
9006 idtype9 = type_nullable_parser_nodes__AExprs.id;
9007 if(var_pexprsnode4 == NULL) {
9008 var7 = 1;
9009 } else {
9010 if(cltype8 >= var_pexprsnode4->type->table_size) {
9011 var7 = 0;
9012 } else {
9013 var7 = var_pexprsnode4->type->type_table[cltype8] == idtype9;
9014 }
9015 }
9016 if (!var7) {
9017 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25190);
9018 exit(1);
9019 }
9020 var10 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
9021 ((void (*)(val*, val*, val*, val*, val*))(var10->class->vft[COLOR_parser_prod__ACallExpr__init_acallexpr]))(var10, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_listnode5) /* init_acallexpr on <var10:ACallExpr>*/;
9022 CHECK_NEW_parser_nodes__ACallExpr(var10);
9023 var_pexprnode1 = var10;
9024 var_node_list = var_pexprnode1;
9025 var11 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction643> */
9026 var12 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var11) /* go_to on <var_p:Parser>*/;
9027 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var12, var_node_list) /* push on <var_p:Parser>*/;
9028 RET_LABEL:;
9029 }
9030 /* method parser#ReduceAction643#action for (self: Object, Parser) */
9031 void VIRTUAL_parser__ReduceAction643__action(val* self, val* p0) {
9032 parser__ReduceAction643__action(self, p0);
9033 RET_LABEL:;
9034 }
9035 /* method parser#ReduceAction644#action for (self: ReduceAction644, Parser) */
9036 void parser__ReduceAction644__action(val* self, val* p0) {
9037 val* var_p /* var p: Parser */;
9038 val* var /* : null */;
9039 val* var_node_list /* var node_list: nullable Object */;
9040 val* var1 /* : nullable Object */;
9041 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9042 val* var2 /* : nullable Object */;
9043 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9044 val* var3 /* : nullable Object */;
9045 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9046 val* var4 /* : nullable Object */;
9047 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9048 val* var5 /* : Array[Object] */;
9049 val* var_listnode5 /* var listnode5: Array[Object] */;
9050 val* var6 /* : AImplicitSelfExpr */;
9051 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
9052 val* var_tidnode3 /* var tidnode3: nullable Object */;
9053 short int var7 /* : Bool */;
9054 int cltype;
9055 int idtype;
9056 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
9057 short int var8 /* : Bool */;
9058 int cltype9;
9059 int idtype10;
9060 val* var11 /* : ACallExpr */;
9061 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
9062 long var12 /* : Int */;
9063 long var13 /* : Int */;
9064 var_p = p0;
9065 var = NULL;
9066 var_node_list = var;
9067 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9068 var_nodearraylist4 = var1;
9069 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9070 var_nodearraylist3 = var2;
9071 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9072 var_nodearraylist2 = var3;
9073 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9074 var_nodearraylist1 = var4;
9075 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
9076 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
9077 CHECK_NEW_array__Array(var5);
9078 var_listnode5 = var5;
9079 var6 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
9080 ((void (*)(val*))(var6->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var6) /* init_aimplicitselfexpr on <var6:AImplicitSelfExpr>*/;
9081 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var6);
9082 var_pexprnode2 = var6;
9083 var_tidnode3 = var_nodearraylist3;
9084 /* <var_tidnode3:nullable Object> isa nullable TId */
9085 cltype = type_nullable_parser_nodes__TId.color;
9086 idtype = type_nullable_parser_nodes__TId.id;
9087 if(var_tidnode3 == NULL) {
9088 var7 = 1;
9089 } else {
9090 if(cltype >= var_tidnode3->type->table_size) {
9091 var7 = 0;
9092 } else {
9093 var7 = var_tidnode3->type->type_table[cltype] == idtype;
9094 }
9095 }
9096 if (!var7) {
9097 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25213);
9098 exit(1);
9099 }
9100 var_pexprsnode4 = var_nodearraylist4;
9101 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
9102 cltype9 = type_nullable_parser_nodes__AExprs.color;
9103 idtype10 = type_nullable_parser_nodes__AExprs.id;
9104 if(var_pexprsnode4 == NULL) {
9105 var8 = 1;
9106 } else {
9107 if(cltype9 >= var_pexprsnode4->type->table_size) {
9108 var8 = 0;
9109 } else {
9110 var8 = var_pexprsnode4->type->type_table[cltype9] == idtype10;
9111 }
9112 }
9113 if (!var8) {
9114 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25215);
9115 exit(1);
9116 }
9117 var11 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
9118 ((void (*)(val*, val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__ACallExpr__init_acallexpr]))(var11, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_listnode5) /* init_acallexpr on <var11:ACallExpr>*/;
9119 CHECK_NEW_parser_nodes__ACallExpr(var11);
9120 var_pexprnode1 = var11;
9121 var_node_list = var_pexprnode1;
9122 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction644> */
9123 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
9124 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
9125 RET_LABEL:;
9126 }
9127 /* method parser#ReduceAction644#action for (self: Object, Parser) */
9128 void VIRTUAL_parser__ReduceAction644__action(val* self, val* p0) {
9129 parser__ReduceAction644__action(self, p0);
9130 RET_LABEL:;
9131 }
9132 /* method parser#ReduceAction646#action for (self: ReduceAction646, Parser) */
9133 void parser__ReduceAction646__action(val* self, val* p0) {
9134 val* var_p /* var p: Parser */;
9135 val* var /* : null */;
9136 val* var_node_list /* var node_list: nullable Object */;
9137 val* var1 /* : nullable Object */;
9138 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
9139 val* var2 /* : nullable Object */;
9140 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9141 val* var3 /* : nullable Object */;
9142 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9143 val* var4 /* : nullable Object */;
9144 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9145 val* var5 /* : nullable Object */;
9146 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9147 val* var6 /* : nullable Object */;
9148 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9149 val* var7 /* : Array[Object] */;
9150 val* var_listnode6 /* var listnode6: Array[Object] */;
9151 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
9152 short int var8 /* : Bool */;
9153 int cltype;
9154 int idtype;
9155 val* var_tidnode3 /* var tidnode3: nullable Object */;
9156 short int var9 /* : Bool */;
9157 int cltype10;
9158 int idtype11;
9159 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
9160 short int var12 /* : Bool */;
9161 int cltype13;
9162 int idtype14;
9163 val* var_listnode5 /* var listnode5: nullable Object */;
9164 short int var15 /* : Bool */;
9165 int cltype16;
9166 int idtype17;
9167 val* var18 /* : Array[Object] */;
9168 val* var19 /* : ACallExpr */;
9169 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
9170 long var20 /* : Int */;
9171 long var21 /* : Int */;
9172 var_p = p0;
9173 var = NULL;
9174 var_node_list = var;
9175 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9176 var_nodearraylist6 = var1;
9177 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9178 var_nodearraylist5 = var2;
9179 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9180 var_nodearraylist4 = var3;
9181 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9182 var_nodearraylist3 = var4;
9183 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9184 var_nodearraylist2 = var5;
9185 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9186 var_nodearraylist1 = var6;
9187 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
9188 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
9189 CHECK_NEW_array__Array(var7);
9190 var_listnode6 = var7;
9191 var_pexprnode2 = var_nodearraylist1;
9192 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
9193 cltype = type_nullable_parser_nodes__AExpr.color;
9194 idtype = type_nullable_parser_nodes__AExpr.id;
9195 if(var_pexprnode2 == NULL) {
9196 var8 = 1;
9197 } else {
9198 if(cltype >= var_pexprnode2->type->table_size) {
9199 var8 = 0;
9200 } else {
9201 var8 = var_pexprnode2->type->type_table[cltype] == idtype;
9202 }
9203 }
9204 if (!var8) {
9205 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25239);
9206 exit(1);
9207 }
9208 var_tidnode3 = var_nodearraylist4;
9209 /* <var_tidnode3:nullable Object> isa nullable TId */
9210 cltype10 = type_nullable_parser_nodes__TId.color;
9211 idtype11 = type_nullable_parser_nodes__TId.id;
9212 if(var_tidnode3 == NULL) {
9213 var9 = 1;
9214 } else {
9215 if(cltype10 >= var_tidnode3->type->table_size) {
9216 var9 = 0;
9217 } else {
9218 var9 = var_tidnode3->type->type_table[cltype10] == idtype11;
9219 }
9220 }
9221 if (!var9) {
9222 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25241);
9223 exit(1);
9224 }
9225 var_pexprsnode4 = var_nodearraylist5;
9226 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
9227 cltype13 = type_nullable_parser_nodes__AExprs.color;
9228 idtype14 = type_nullable_parser_nodes__AExprs.id;
9229 if(var_pexprsnode4 == NULL) {
9230 var12 = 1;
9231 } else {
9232 if(cltype13 >= var_pexprsnode4->type->table_size) {
9233 var12 = 0;
9234 } else {
9235 var12 = var_pexprsnode4->type->type_table[cltype13] == idtype14;
9236 }
9237 }
9238 if (!var12) {
9239 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25243);
9240 exit(1);
9241 }
9242 var_listnode5 = var_nodearraylist6;
9243 /* <var_listnode5:nullable Object> isa Array[Object] */
9244 cltype16 = type_array__Arraykernel__Object.color;
9245 idtype17 = type_array__Arraykernel__Object.id;
9246 if(var_listnode5 == NULL) {
9247 var15 = 0;
9248 } else {
9249 if(cltype16 >= var_listnode5->type->table_size) {
9250 var15 = 0;
9251 } else {
9252 var15 = var_listnode5->type->type_table[cltype16] == idtype17;
9253 }
9254 }
9255 if (!var15) {
9256 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25245);
9257 exit(1);
9258 }
9259 var18 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction646>*/;
9260 var_listnode6 = var18;
9261 var19 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
9262 ((void (*)(val*, val*, val*, val*, val*))(var19->class->vft[COLOR_parser_prod__ACallExpr__init_acallexpr]))(var19, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_listnode6) /* init_acallexpr on <var19:ACallExpr>*/;
9263 CHECK_NEW_parser_nodes__ACallExpr(var19);
9264 var_pexprnode1 = var19;
9265 var_node_list = var_pexprnode1;
9266 var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction646> */
9267 var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on <var_p:Parser>*/;
9268 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on <var_p:Parser>*/;
9269 RET_LABEL:;
9270 }
9271 /* method parser#ReduceAction646#action for (self: Object, Parser) */
9272 void VIRTUAL_parser__ReduceAction646__action(val* self, val* p0) {
9273 parser__ReduceAction646__action(self, p0);
9274 RET_LABEL:;
9275 }
9276 /* method parser#ReduceAction647#action for (self: ReduceAction647, Parser) */
9277 void parser__ReduceAction647__action(val* self, val* p0) {
9278 val* var_p /* var p: Parser */;
9279 val* var /* : null */;
9280 val* var_node_list /* var node_list: nullable Object */;
9281 val* var1 /* : nullable Object */;
9282 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9283 val* var2 /* : nullable Object */;
9284 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9285 val* var3 /* : nullable Object */;
9286 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9287 val* var4 /* : Array[Object] */;
9288 val* var_listnode6 /* var listnode6: Array[Object] */;
9289 val* var5 /* : AImplicitSelfExpr */;
9290 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
9291 val* var_tidnode3 /* var tidnode3: nullable Object */;
9292 short int var6 /* : Bool */;
9293 int cltype;
9294 int idtype;
9295 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
9296 short int var7 /* : Bool */;
9297 int cltype8;
9298 int idtype9;
9299 val* var_listnode5 /* var listnode5: nullable Object */;
9300 short int var10 /* : Bool */;
9301 int cltype11;
9302 int idtype12;
9303 val* var13 /* : Array[Object] */;
9304 val* var14 /* : ACallExpr */;
9305 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
9306 long var15 /* : Int */;
9307 long var16 /* : Int */;
9308 var_p = p0;
9309 var = NULL;
9310 var_node_list = var;
9311 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9312 var_nodearraylist3 = var1;
9313 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9314 var_nodearraylist2 = var2;
9315 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9316 var_nodearraylist1 = var3;
9317 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
9318 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
9319 CHECK_NEW_array__Array(var4);
9320 var_listnode6 = var4;
9321 var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
9322 ((void (*)(val*))(var5->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var5) /* init_aimplicitselfexpr on <var5:AImplicitSelfExpr>*/;
9323 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var5);
9324 var_pexprnode2 = var5;
9325 var_tidnode3 = var_nodearraylist1;
9326 /* <var_tidnode3:nullable Object> isa nullable TId */
9327 cltype = type_nullable_parser_nodes__TId.color;
9328 idtype = type_nullable_parser_nodes__TId.id;
9329 if(var_tidnode3 == NULL) {
9330 var6 = 1;
9331 } else {
9332 if(cltype >= var_tidnode3->type->table_size) {
9333 var6 = 0;
9334 } else {
9335 var6 = var_tidnode3->type->type_table[cltype] == idtype;
9336 }
9337 }
9338 if (!var6) {
9339 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25268);
9340 exit(1);
9341 }
9342 var_pexprsnode4 = var_nodearraylist2;
9343 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
9344 cltype8 = type_nullable_parser_nodes__AExprs.color;
9345 idtype9 = type_nullable_parser_nodes__AExprs.id;
9346 if(var_pexprsnode4 == NULL) {
9347 var7 = 1;
9348 } else {
9349 if(cltype8 >= var_pexprsnode4->type->table_size) {
9350 var7 = 0;
9351 } else {
9352 var7 = var_pexprsnode4->type->type_table[cltype8] == idtype9;
9353 }
9354 }
9355 if (!var7) {
9356 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25270);
9357 exit(1);
9358 }
9359 var_listnode5 = var_nodearraylist3;
9360 /* <var_listnode5:nullable Object> isa Array[Object] */
9361 cltype11 = type_array__Arraykernel__Object.color;
9362 idtype12 = type_array__Arraykernel__Object.id;
9363 if(var_listnode5 == NULL) {
9364 var10 = 0;
9365 } else {
9366 if(cltype11 >= var_listnode5->type->table_size) {
9367 var10 = 0;
9368 } else {
9369 var10 = var_listnode5->type->type_table[cltype11] == idtype12;
9370 }
9371 }
9372 if (!var10) {
9373 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25272);
9374 exit(1);
9375 }
9376 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction647>*/;
9377 var_listnode6 = var13;
9378 var14 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
9379 ((void (*)(val*, val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__ACallExpr__init_acallexpr]))(var14, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_listnode6) /* init_acallexpr on <var14:ACallExpr>*/;
9380 CHECK_NEW_parser_nodes__ACallExpr(var14);
9381 var_pexprnode1 = var14;
9382 var_node_list = var_pexprnode1;
9383 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction647> */
9384 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
9385 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
9386 RET_LABEL:;
9387 }
9388 /* method parser#ReduceAction647#action for (self: Object, Parser) */
9389 void VIRTUAL_parser__ReduceAction647__action(val* self, val* p0) {
9390 parser__ReduceAction647__action(self, p0);
9391 RET_LABEL:;
9392 }
9393 /* method parser#ReduceAction648#action for (self: ReduceAction648, Parser) */
9394 void parser__ReduceAction648__action(val* self, val* p0) {
9395 val* var_p /* var p: Parser */;
9396 val* var /* : null */;
9397 val* var_node_list /* var node_list: nullable Object */;
9398 val* var1 /* : nullable Object */;
9399 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
9400 val* var2 /* : nullable Object */;
9401 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
9402 val* var3 /* : nullable Object */;
9403 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9404 val* var4 /* : nullable Object */;
9405 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9406 val* var5 /* : nullable Object */;
9407 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9408 val* var6 /* : nullable Object */;
9409 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9410 val* var7 /* : nullable Object */;
9411 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9412 val* var8 /* : Array[Object] */;
9413 val* var_listnode6 /* var listnode6: Array[Object] */;
9414 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
9415 short int var9 /* : Bool */;
9416 int cltype;
9417 int idtype;
9418 val* var_tidnode3 /* var tidnode3: nullable Object */;
9419 short int var10 /* : Bool */;
9420 int cltype11;
9421 int idtype12;
9422 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
9423 short int var13 /* : Bool */;
9424 int cltype14;
9425 int idtype15;
9426 val* var_listnode5 /* var listnode5: nullable Object */;
9427 short int var16 /* : Bool */;
9428 int cltype17;
9429 int idtype18;
9430 val* var19 /* : Array[Object] */;
9431 val* var20 /* : ACallExpr */;
9432 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
9433 long var21 /* : Int */;
9434 long var22 /* : Int */;
9435 var_p = p0;
9436 var = NULL;
9437 var_node_list = var;
9438 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9439 var_nodearraylist7 = var1;
9440 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9441 var_nodearraylist6 = var2;
9442 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9443 var_nodearraylist5 = var3;
9444 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9445 var_nodearraylist4 = var4;
9446 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9447 var_nodearraylist3 = var5;
9448 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9449 var_nodearraylist2 = var6;
9450 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9451 var_nodearraylist1 = var7;
9452 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
9453 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
9454 CHECK_NEW_array__Array(var8);
9455 var_listnode6 = var8;
9456 var_pexprnode2 = var_nodearraylist1;
9457 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
9458 cltype = type_nullable_parser_nodes__AExpr.color;
9459 idtype = type_nullable_parser_nodes__AExpr.id;
9460 if(var_pexprnode2 == NULL) {
9461 var9 = 1;
9462 } else {
9463 if(cltype >= var_pexprnode2->type->table_size) {
9464 var9 = 0;
9465 } else {
9466 var9 = var_pexprnode2->type->type_table[cltype] == idtype;
9467 }
9468 }
9469 if (!var9) {
9470 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25298);
9471 exit(1);
9472 }
9473 var_tidnode3 = var_nodearraylist5;
9474 /* <var_tidnode3:nullable Object> isa nullable TId */
9475 cltype11 = type_nullable_parser_nodes__TId.color;
9476 idtype12 = type_nullable_parser_nodes__TId.id;
9477 if(var_tidnode3 == NULL) {
9478 var10 = 1;
9479 } else {
9480 if(cltype11 >= var_tidnode3->type->table_size) {
9481 var10 = 0;
9482 } else {
9483 var10 = var_tidnode3->type->type_table[cltype11] == idtype12;
9484 }
9485 }
9486 if (!var10) {
9487 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25300);
9488 exit(1);
9489 }
9490 var_pexprsnode4 = var_nodearraylist6;
9491 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
9492 cltype14 = type_nullable_parser_nodes__AExprs.color;
9493 idtype15 = type_nullable_parser_nodes__AExprs.id;
9494 if(var_pexprsnode4 == NULL) {
9495 var13 = 1;
9496 } else {
9497 if(cltype14 >= var_pexprsnode4->type->table_size) {
9498 var13 = 0;
9499 } else {
9500 var13 = var_pexprsnode4->type->type_table[cltype14] == idtype15;
9501 }
9502 }
9503 if (!var13) {
9504 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25302);
9505 exit(1);
9506 }
9507 var_listnode5 = var_nodearraylist7;
9508 /* <var_listnode5:nullable Object> isa Array[Object] */
9509 cltype17 = type_array__Arraykernel__Object.color;
9510 idtype18 = type_array__Arraykernel__Object.id;
9511 if(var_listnode5 == NULL) {
9512 var16 = 0;
9513 } else {
9514 if(cltype17 >= var_listnode5->type->table_size) {
9515 var16 = 0;
9516 } else {
9517 var16 = var_listnode5->type->type_table[cltype17] == idtype18;
9518 }
9519 }
9520 if (!var16) {
9521 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25304);
9522 exit(1);
9523 }
9524 var19 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction648>*/;
9525 var_listnode6 = var19;
9526 var20 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
9527 ((void (*)(val*, val*, val*, val*, val*))(var20->class->vft[COLOR_parser_prod__ACallExpr__init_acallexpr]))(var20, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_listnode6) /* init_acallexpr on <var20:ACallExpr>*/;
9528 CHECK_NEW_parser_nodes__ACallExpr(var20);
9529 var_pexprnode1 = var20;
9530 var_node_list = var_pexprnode1;
9531 var21 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction648> */
9532 var22 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var21) /* go_to on <var_p:Parser>*/;
9533 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var22, var_node_list) /* push on <var_p:Parser>*/;
9534 RET_LABEL:;
9535 }
9536 /* method parser#ReduceAction648#action for (self: Object, Parser) */
9537 void VIRTUAL_parser__ReduceAction648__action(val* self, val* p0) {
9538 parser__ReduceAction648__action(self, p0);
9539 RET_LABEL:;
9540 }
9541 /* method parser#ReduceAction649#action for (self: ReduceAction649, Parser) */
9542 void parser__ReduceAction649__action(val* self, val* p0) {
9543 val* var_p /* var p: Parser */;
9544 val* var /* : null */;
9545 val* var_node_list /* var node_list: nullable Object */;
9546 val* var1 /* : nullable Object */;
9547 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
9548 val* var2 /* : nullable Object */;
9549 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
9550 val* var3 /* : nullable Object */;
9551 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
9552 val* var4 /* : nullable Object */;
9553 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9554 val* var5 /* : nullable Object */;
9555 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9556 val* var6 /* : nullable Object */;
9557 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9558 val* var7 /* : nullable Object */;
9559 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9560 val* var8 /* : nullable Object */;
9561 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9562 val* var9 /* : Array[Object] */;
9563 val* var_listnode6 /* var listnode6: Array[Object] */;
9564 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
9565 short int var10 /* : Bool */;
9566 int cltype;
9567 int idtype;
9568 val* var_tidnode3 /* var tidnode3: nullable Object */;
9569 short int var11 /* : Bool */;
9570 int cltype12;
9571 int idtype13;
9572 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
9573 short int var14 /* : Bool */;
9574 int cltype15;
9575 int idtype16;
9576 val* var_listnode5 /* var listnode5: nullable Object */;
9577 short int var17 /* : Bool */;
9578 int cltype18;
9579 int idtype19;
9580 val* var20 /* : Array[Object] */;
9581 val* var21 /* : ACallExpr */;
9582 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
9583 long var22 /* : Int */;
9584 long var23 /* : Int */;
9585 var_p = p0;
9586 var = NULL;
9587 var_node_list = var;
9588 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9589 var_nodearraylist8 = var1;
9590 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9591 var_nodearraylist7 = var2;
9592 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9593 var_nodearraylist6 = var3;
9594 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9595 var_nodearraylist5 = var4;
9596 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9597 var_nodearraylist4 = var5;
9598 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9599 var_nodearraylist3 = var6;
9600 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9601 var_nodearraylist2 = var7;
9602 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9603 var_nodearraylist1 = var8;
9604 var9 = NEW_array__Array(&type_array__Arraykernel__Object);
9605 ((void (*)(val*))(var9->class->vft[COLOR_array__Array__init]))(var9) /* init on <var9:Array[Object]>*/;
9606 CHECK_NEW_array__Array(var9);
9607 var_listnode6 = var9;
9608 var_pexprnode2 = var_nodearraylist1;
9609 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
9610 cltype = type_nullable_parser_nodes__AExpr.color;
9611 idtype = type_nullable_parser_nodes__AExpr.id;
9612 if(var_pexprnode2 == NULL) {
9613 var10 = 1;
9614 } else {
9615 if(cltype >= var_pexprnode2->type->table_size) {
9616 var10 = 0;
9617 } else {
9618 var10 = var_pexprnode2->type->type_table[cltype] == idtype;
9619 }
9620 }
9621 if (!var10) {
9622 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25331);
9623 exit(1);
9624 }
9625 var_tidnode3 = var_nodearraylist6;
9626 /* <var_tidnode3:nullable Object> isa nullable TId */
9627 cltype12 = type_nullable_parser_nodes__TId.color;
9628 idtype13 = type_nullable_parser_nodes__TId.id;
9629 if(var_tidnode3 == NULL) {
9630 var11 = 1;
9631 } else {
9632 if(cltype12 >= var_tidnode3->type->table_size) {
9633 var11 = 0;
9634 } else {
9635 var11 = var_tidnode3->type->type_table[cltype12] == idtype13;
9636 }
9637 }
9638 if (!var11) {
9639 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25333);
9640 exit(1);
9641 }
9642 var_pexprsnode4 = var_nodearraylist7;
9643 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
9644 cltype15 = type_nullable_parser_nodes__AExprs.color;
9645 idtype16 = type_nullable_parser_nodes__AExprs.id;
9646 if(var_pexprsnode4 == NULL) {
9647 var14 = 1;
9648 } else {
9649 if(cltype15 >= var_pexprsnode4->type->table_size) {
9650 var14 = 0;
9651 } else {
9652 var14 = var_pexprsnode4->type->type_table[cltype15] == idtype16;
9653 }
9654 }
9655 if (!var14) {
9656 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25335);
9657 exit(1);
9658 }
9659 var_listnode5 = var_nodearraylist8;
9660 /* <var_listnode5:nullable Object> isa Array[Object] */
9661 cltype18 = type_array__Arraykernel__Object.color;
9662 idtype19 = type_array__Arraykernel__Object.id;
9663 if(var_listnode5 == NULL) {
9664 var17 = 0;
9665 } else {
9666 if(cltype18 >= var_listnode5->type->table_size) {
9667 var17 = 0;
9668 } else {
9669 var17 = var_listnode5->type->type_table[cltype18] == idtype19;
9670 }
9671 }
9672 if (!var17) {
9673 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25337);
9674 exit(1);
9675 }
9676 var20 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction649>*/;
9677 var_listnode6 = var20;
9678 var21 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
9679 ((void (*)(val*, val*, val*, val*, val*))(var21->class->vft[COLOR_parser_prod__ACallExpr__init_acallexpr]))(var21, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_listnode6) /* init_acallexpr on <var21:ACallExpr>*/;
9680 CHECK_NEW_parser_nodes__ACallExpr(var21);
9681 var_pexprnode1 = var21;
9682 var_node_list = var_pexprnode1;
9683 var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction649> */
9684 var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
9685 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
9686 RET_LABEL:;
9687 }
9688 /* method parser#ReduceAction649#action for (self: Object, Parser) */
9689 void VIRTUAL_parser__ReduceAction649__action(val* self, val* p0) {
9690 parser__ReduceAction649__action(self, p0);
9691 RET_LABEL:;
9692 }
9693 /* method parser#ReduceAction651#action for (self: ReduceAction651, Parser) */
9694 void parser__ReduceAction651__action(val* self, val* p0) {
9695 val* var_p /* var p: Parser */;
9696 val* var /* : null */;
9697 val* var_node_list /* var node_list: nullable Object */;
9698 val* var1 /* : nullable Object */;
9699 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9700 val* var2 /* : nullable Object */;
9701 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9702 val* var3 /* : nullable Object */;
9703 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9704 val* var4 /* : nullable Object */;
9705 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9706 val* var5 /* : Array[Object] */;
9707 val* var_listnode6 /* var listnode6: Array[Object] */;
9708 val* var6 /* : AImplicitSelfExpr */;
9709 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
9710 val* var_tidnode3 /* var tidnode3: nullable Object */;
9711 short int var7 /* : Bool */;
9712 int cltype;
9713 int idtype;
9714 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
9715 short int var8 /* : Bool */;
9716 int cltype9;
9717 int idtype10;
9718 val* var_listnode5 /* var listnode5: nullable Object */;
9719 short int var11 /* : Bool */;
9720 int cltype12;
9721 int idtype13;
9722 val* var14 /* : Array[Object] */;
9723 val* var15 /* : ACallExpr */;
9724 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
9725 long var16 /* : Int */;
9726 long var17 /* : Int */;
9727 var_p = p0;
9728 var = NULL;
9729 var_node_list = var;
9730 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9731 var_nodearraylist4 = var1;
9732 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9733 var_nodearraylist3 = var2;
9734 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9735 var_nodearraylist2 = var3;
9736 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9737 var_nodearraylist1 = var4;
9738 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
9739 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
9740 CHECK_NEW_array__Array(var5);
9741 var_listnode6 = var5;
9742 var6 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
9743 ((void (*)(val*))(var6->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var6) /* init_aimplicitselfexpr on <var6:AImplicitSelfExpr>*/;
9744 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var6);
9745 var_pexprnode2 = var6;
9746 var_tidnode3 = var_nodearraylist2;
9747 /* <var_tidnode3:nullable Object> isa nullable TId */
9748 cltype = type_nullable_parser_nodes__TId.color;
9749 idtype = type_nullable_parser_nodes__TId.id;
9750 if(var_tidnode3 == NULL) {
9751 var7 = 1;
9752 } else {
9753 if(cltype >= var_tidnode3->type->table_size) {
9754 var7 = 0;
9755 } else {
9756 var7 = var_tidnode3->type->type_table[cltype] == idtype;
9757 }
9758 }
9759 if (!var7) {
9760 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25361);
9761 exit(1);
9762 }
9763 var_pexprsnode4 = var_nodearraylist3;
9764 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
9765 cltype9 = type_nullable_parser_nodes__AExprs.color;
9766 idtype10 = type_nullable_parser_nodes__AExprs.id;
9767 if(var_pexprsnode4 == NULL) {
9768 var8 = 1;
9769 } else {
9770 if(cltype9 >= var_pexprsnode4->type->table_size) {
9771 var8 = 0;
9772 } else {
9773 var8 = var_pexprsnode4->type->type_table[cltype9] == idtype10;
9774 }
9775 }
9776 if (!var8) {
9777 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25363);
9778 exit(1);
9779 }
9780 var_listnode5 = var_nodearraylist4;
9781 /* <var_listnode5:nullable Object> isa Array[Object] */
9782 cltype12 = type_array__Arraykernel__Object.color;
9783 idtype13 = type_array__Arraykernel__Object.id;
9784 if(var_listnode5 == NULL) {
9785 var11 = 0;
9786 } else {
9787 if(cltype12 >= var_listnode5->type->table_size) {
9788 var11 = 0;
9789 } else {
9790 var11 = var_listnode5->type->type_table[cltype12] == idtype13;
9791 }
9792 }
9793 if (!var11) {
9794 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25365);
9795 exit(1);
9796 }
9797 var14 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction651>*/;
9798 var_listnode6 = var14;
9799 var15 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
9800 ((void (*)(val*, val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__ACallExpr__init_acallexpr]))(var15, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_listnode6) /* init_acallexpr on <var15:ACallExpr>*/;
9801 CHECK_NEW_parser_nodes__ACallExpr(var15);
9802 var_pexprnode1 = var15;
9803 var_node_list = var_pexprnode1;
9804 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction651> */
9805 var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
9806 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
9807 RET_LABEL:;
9808 }
9809 /* method parser#ReduceAction651#action for (self: Object, Parser) */
9810 void VIRTUAL_parser__ReduceAction651__action(val* self, val* p0) {
9811 parser__ReduceAction651__action(self, p0);
9812 RET_LABEL:;
9813 }
9814 /* method parser#ReduceAction652#action for (self: ReduceAction652, Parser) */
9815 void parser__ReduceAction652__action(val* self, val* p0) {
9816 val* var_p /* var p: Parser */;
9817 val* var /* : null */;
9818 val* var_node_list /* var node_list: nullable Object */;
9819 val* var1 /* : nullable Object */;
9820 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9821 val* var2 /* : nullable Object */;
9822 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9823 val* var3 /* : nullable Object */;
9824 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9825 val* var4 /* : nullable Object */;
9826 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9827 val* var5 /* : nullable Object */;
9828 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9829 val* var6 /* : Array[Object] */;
9830 val* var_listnode6 /* var listnode6: Array[Object] */;
9831 val* var7 /* : AImplicitSelfExpr */;
9832 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
9833 val* var_tidnode3 /* var tidnode3: nullable Object */;
9834 short int var8 /* : Bool */;
9835 int cltype;
9836 int idtype;
9837 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
9838 short int var9 /* : Bool */;
9839 int cltype10;
9840 int idtype11;
9841 val* var_listnode5 /* var listnode5: nullable Object */;
9842 short int var12 /* : Bool */;
9843 int cltype13;
9844 int idtype14;
9845 val* var15 /* : Array[Object] */;
9846 val* var16 /* : ACallExpr */;
9847 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
9848 long var17 /* : Int */;
9849 long var18 /* : Int */;
9850 var_p = p0;
9851 var = NULL;
9852 var_node_list = var;
9853 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9854 var_nodearraylist5 = var1;
9855 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9856 var_nodearraylist4 = var2;
9857 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9858 var_nodearraylist3 = var3;
9859 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9860 var_nodearraylist2 = var4;
9861 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9862 var_nodearraylist1 = var5;
9863 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
9864 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
9865 CHECK_NEW_array__Array(var6);
9866 var_listnode6 = var6;
9867 var7 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
9868 ((void (*)(val*))(var7->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var7) /* init_aimplicitselfexpr on <var7:AImplicitSelfExpr>*/;
9869 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var7);
9870 var_pexprnode2 = var7;
9871 var_tidnode3 = var_nodearraylist3;
9872 /* <var_tidnode3:nullable Object> isa nullable TId */
9873 cltype = type_nullable_parser_nodes__TId.color;
9874 idtype = type_nullable_parser_nodes__TId.id;
9875 if(var_tidnode3 == NULL) {
9876 var8 = 1;
9877 } else {
9878 if(cltype >= var_tidnode3->type->table_size) {
9879 var8 = 0;
9880 } else {
9881 var8 = var_tidnode3->type->type_table[cltype] == idtype;
9882 }
9883 }
9884 if (!var8) {
9885 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25390);
9886 exit(1);
9887 }
9888 var_pexprsnode4 = var_nodearraylist4;
9889 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
9890 cltype10 = type_nullable_parser_nodes__AExprs.color;
9891 idtype11 = type_nullable_parser_nodes__AExprs.id;
9892 if(var_pexprsnode4 == NULL) {
9893 var9 = 1;
9894 } else {
9895 if(cltype10 >= var_pexprsnode4->type->table_size) {
9896 var9 = 0;
9897 } else {
9898 var9 = var_pexprsnode4->type->type_table[cltype10] == idtype11;
9899 }
9900 }
9901 if (!var9) {
9902 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25392);
9903 exit(1);
9904 }
9905 var_listnode5 = var_nodearraylist5;
9906 /* <var_listnode5:nullable Object> isa Array[Object] */
9907 cltype13 = type_array__Arraykernel__Object.color;
9908 idtype14 = type_array__Arraykernel__Object.id;
9909 if(var_listnode5 == NULL) {
9910 var12 = 0;
9911 } else {
9912 if(cltype13 >= var_listnode5->type->table_size) {
9913 var12 = 0;
9914 } else {
9915 var12 = var_listnode5->type->type_table[cltype13] == idtype14;
9916 }
9917 }
9918 if (!var12) {
9919 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 25394);
9920 exit(1);
9921 }
9922 var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction652>*/;
9923 var_listnode6 = var15;
9924 var16 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
9925 ((void (*)(val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__ACallExpr__init_acallexpr]))(var16, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_listnode6) /* init_acallexpr on <var16:ACallExpr>*/;
9926 CHECK_NEW_parser_nodes__ACallExpr(var16);
9927 var_pexprnode1 = var16;
9928 var_node_list = var_pexprnode1;
9929 var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction652> */
9930 var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
9931 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
9932 RET_LABEL:;
9933 }
9934 /* method parser#ReduceAction652#action for (self: Object, Parser) */
9935 void VIRTUAL_parser__ReduceAction652__action(val* self, val* p0) {
9936 parser__ReduceAction652__action(self, p0);
9937 RET_LABEL:;
9938 }