frontend: intro the serialization phase
[nit.git] / c_src / parser.sep.13.c
1 #include "parser.sep.0.h"
2 /* method parser#ReduceAction504#action for (self: ReduceAction504, Parser) */
3 void parser__ReduceAction504__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_nodearraylist8 /* var nodearraylist8: nullable Object */;
9 val* var2 /* : nullable Object */;
10 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
11 val* var3 /* : nullable Object */;
12 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
13 val* var4 /* : nullable Object */;
14 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
15 val* var5 /* : nullable Object */;
16 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
17 val* var6 /* : nullable Object */;
18 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
19 val* var7 /* : nullable Object */;
20 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
21 val* var8 /* : nullable Object */;
22 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
23 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
24 short int var9 /* : Bool */;
25 int cltype;
26 int idtype;
27 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
28 short int var10 /* : Bool */;
29 int cltype11;
30 int idtype12;
31 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
32 short int var13 /* : Bool */;
33 int cltype14;
34 int idtype15;
35 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
36 short int var16 /* : Bool */;
37 int cltype17;
38 int idtype18;
39 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
40 short int var19 /* : Bool */;
41 int cltype20;
42 int idtype21;
43 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
44 short int var22 /* : Bool */;
45 int cltype23;
46 int idtype24;
47 val* var_tstringnode8 /* var tstringnode8: nullable Object */;
48 short int var25 /* : Bool */;
49 int cltype26;
50 int idtype27;
51 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
52 short int var28 /* : Bool */;
53 int cltype29;
54 int idtype30;
55 val* var31 /* : AExternInitPropdef */;
56 val* var32 /* : null */;
57 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
58 long var33 /* : Int */;
59 long var34 /* : Int */;
60 var_p = p0;
61 var = NULL;
62 var_node_list = var;
63 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
64 var_nodearraylist8 = var1;
65 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
66 var_nodearraylist7 = var2;
67 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
68 var_nodearraylist6 = var3;
69 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
70 var_nodearraylist5 = var4;
71 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
72 var_nodearraylist4 = var5;
73 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
74 var_nodearraylist3 = var6;
75 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
76 var_nodearraylist2 = var7;
77 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
78 var_nodearraylist1 = var8;
79 var_pdocnode2 = var_nodearraylist1;
80 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
81 cltype = type_nullable_parser_nodes__ADoc.color;
82 idtype = type_nullable_parser_nodes__ADoc.id;
83 if(var_pdocnode2 == NULL) {
84 var9 = 1;
85 } else {
86 if(cltype >= var_pdocnode2->type->table_size) {
87 var9 = 0;
88 } else {
89 var9 = var_pdocnode2->type->type_table[cltype] == idtype;
90 }
91 }
92 if (!var9) {
93 fprintf(stderr, "Runtime error: %s", "Assert failed");
94 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22118);
95 exit(1);
96 }
97 var_tkwredefnode3 = var_nodearraylist2;
98 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
99 cltype11 = type_nullable_parser_nodes__TKwredef.color;
100 idtype12 = type_nullable_parser_nodes__TKwredef.id;
101 if(var_tkwredefnode3 == NULL) {
102 var10 = 1;
103 } else {
104 if(cltype11 >= var_tkwredefnode3->type->table_size) {
105 var10 = 0;
106 } else {
107 var10 = var_tkwredefnode3->type->type_table[cltype11] == idtype12;
108 }
109 }
110 if (!var10) {
111 fprintf(stderr, "Runtime error: %s", "Assert failed");
112 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22120);
113 exit(1);
114 }
115 var_pvisibilitynode4 = var_nodearraylist3;
116 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
117 cltype14 = type_nullable_parser_nodes__AVisibility.color;
118 idtype15 = type_nullable_parser_nodes__AVisibility.id;
119 if(var_pvisibilitynode4 == NULL) {
120 var13 = 1;
121 } else {
122 if(cltype14 >= var_pvisibilitynode4->type->table_size) {
123 var13 = 0;
124 } else {
125 var13 = var_pvisibilitynode4->type->type_table[cltype14] == idtype15;
126 }
127 }
128 if (!var13) {
129 fprintf(stderr, "Runtime error: %s", "Assert failed");
130 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22122);
131 exit(1);
132 }
133 var_tkwnewnode5 = var_nodearraylist4;
134 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
135 cltype17 = type_nullable_parser_nodes__TKwnew.color;
136 idtype18 = type_nullable_parser_nodes__TKwnew.id;
137 if(var_tkwnewnode5 == NULL) {
138 var16 = 1;
139 } else {
140 if(cltype17 >= var_tkwnewnode5->type->table_size) {
141 var16 = 0;
142 } else {
143 var16 = var_tkwnewnode5->type->type_table[cltype17] == idtype18;
144 }
145 }
146 if (!var16) {
147 fprintf(stderr, "Runtime error: %s", "Assert failed");
148 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22124);
149 exit(1);
150 }
151 var_pmethidnode6 = var_nodearraylist5;
152 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
153 cltype20 = type_nullable_parser_nodes__AMethid.color;
154 idtype21 = type_nullable_parser_nodes__AMethid.id;
155 if(var_pmethidnode6 == NULL) {
156 var19 = 1;
157 } else {
158 if(cltype20 >= var_pmethidnode6->type->table_size) {
159 var19 = 0;
160 } else {
161 var19 = var_pmethidnode6->type->type_table[cltype20] == idtype21;
162 }
163 }
164 if (!var19) {
165 fprintf(stderr, "Runtime error: %s", "Assert failed");
166 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22126);
167 exit(1);
168 }
169 var_psignaturenode7 = var_nodearraylist6;
170 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
171 cltype23 = type_nullable_parser_nodes__ASignature.color;
172 idtype24 = type_nullable_parser_nodes__ASignature.id;
173 if(var_psignaturenode7 == NULL) {
174 var22 = 1;
175 } else {
176 if(cltype23 >= var_psignaturenode7->type->table_size) {
177 var22 = 0;
178 } else {
179 var22 = var_psignaturenode7->type->type_table[cltype23] == idtype24;
180 }
181 }
182 if (!var22) {
183 fprintf(stderr, "Runtime error: %s", "Assert failed");
184 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22128);
185 exit(1);
186 }
187 var_tstringnode8 = var_nodearraylist7;
188 /* <var_tstringnode8:nullable Object> isa nullable TString */
189 cltype26 = type_nullable_parser_nodes__TString.color;
190 idtype27 = type_nullable_parser_nodes__TString.id;
191 if(var_tstringnode8 == NULL) {
192 var25 = 1;
193 } else {
194 if(cltype26 >= var_tstringnode8->type->table_size) {
195 var25 = 0;
196 } else {
197 var25 = var_tstringnode8->type->type_table[cltype26] == idtype27;
198 }
199 }
200 if (!var25) {
201 fprintf(stderr, "Runtime error: %s", "Assert failed");
202 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22130);
203 exit(1);
204 }
205 var_pexterncodeblocknode10 = var_nodearraylist8;
206 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
207 cltype29 = type_nullable_parser_nodes__AExternCodeBlock.color;
208 idtype30 = type_nullable_parser_nodes__AExternCodeBlock.id;
209 if(var_pexterncodeblocknode10 == NULL) {
210 var28 = 1;
211 } else {
212 if(cltype29 >= var_pexterncodeblocknode10->type->table_size) {
213 var28 = 0;
214 } else {
215 var28 = var_pexterncodeblocknode10->type->type_table[cltype29] == idtype30;
216 }
217 }
218 if (!var28) {
219 fprintf(stderr, "Runtime error: %s", "Assert failed");
220 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22132);
221 exit(1);
222 }
223 var31 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
224 var32 = NULL;
225 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var31->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var31, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwnewnode5, var_pmethidnode6, var_psignaturenode7, var_tstringnode8, var32, var_pexterncodeblocknode10) /* init_aexterninitpropdef on <var31:AExternInitPropdef>*/;
226 CHECK_NEW_parser_nodes__AExternInitPropdef(var31);
227 var_ppropdefnode1 = var31;
228 var_node_list = var_ppropdefnode1;
229 var33 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction504> */
230 var34 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var33) /* go_to on <var_p:Parser>*/;
231 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var34, var_node_list) /* push on <var_p:Parser>*/;
232 RET_LABEL:;
233 }
234 /* method parser#ReduceAction504#action for (self: Object, Parser) */
235 void VIRTUAL_parser__ReduceAction504__action(val* self, val* p0) {
236 parser__ReduceAction504__action(self, p0);
237 RET_LABEL:;
238 }
239 /* method parser#ReduceAction505#action for (self: ReduceAction505, Parser) */
240 void parser__ReduceAction505__action(val* self, val* p0) {
241 val* var_p /* var p: Parser */;
242 val* var /* : null */;
243 val* var_node_list /* var node_list: nullable Object */;
244 val* var1 /* : nullable Object */;
245 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
246 val* var2 /* : nullable Object */;
247 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
248 val* var3 /* : nullable Object */;
249 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
250 val* var4 /* : nullable Object */;
251 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
252 val* var5 /* : nullable Object */;
253 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
254 val* var6 /* : nullable Object */;
255 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
256 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
257 short int var7 /* : Bool */;
258 int cltype;
259 int idtype;
260 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
261 short int var8 /* : Bool */;
262 int cltype9;
263 int idtype10;
264 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
265 short int var11 /* : Bool */;
266 int cltype12;
267 int idtype13;
268 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
269 short int var14 /* : Bool */;
270 int cltype15;
271 int idtype16;
272 val* var_pexterncallsnode9 /* var pexterncallsnode9: nullable Object */;
273 short int var17 /* : Bool */;
274 int cltype18;
275 int idtype19;
276 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
277 short int var20 /* : Bool */;
278 int cltype21;
279 int idtype22;
280 val* var23 /* : AExternInitPropdef */;
281 val* var24 /* : null */;
282 val* var25 /* : null */;
283 val* var26 /* : null */;
284 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
285 long var27 /* : Int */;
286 long var28 /* : Int */;
287 var_p = p0;
288 var = NULL;
289 var_node_list = var;
290 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
291 var_nodearraylist6 = var1;
292 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
293 var_nodearraylist5 = var2;
294 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
295 var_nodearraylist4 = var3;
296 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
297 var_nodearraylist3 = var4;
298 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
299 var_nodearraylist2 = var5;
300 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
301 var_nodearraylist1 = var6;
302 var_pdocnode2 = var_nodearraylist1;
303 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
304 cltype = type_nullable_parser_nodes__ADoc.color;
305 idtype = type_nullable_parser_nodes__ADoc.id;
306 if(var_pdocnode2 == NULL) {
307 var7 = 1;
308 } else {
309 if(cltype >= var_pdocnode2->type->table_size) {
310 var7 = 0;
311 } else {
312 var7 = var_pdocnode2->type->type_table[cltype] == idtype;
313 }
314 }
315 if (!var7) {
316 fprintf(stderr, "Runtime error: %s", "Assert failed");
317 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22160);
318 exit(1);
319 }
320 var_pvisibilitynode4 = var_nodearraylist2;
321 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
322 cltype9 = type_nullable_parser_nodes__AVisibility.color;
323 idtype10 = type_nullable_parser_nodes__AVisibility.id;
324 if(var_pvisibilitynode4 == NULL) {
325 var8 = 1;
326 } else {
327 if(cltype9 >= var_pvisibilitynode4->type->table_size) {
328 var8 = 0;
329 } else {
330 var8 = var_pvisibilitynode4->type->type_table[cltype9] == idtype10;
331 }
332 }
333 if (!var8) {
334 fprintf(stderr, "Runtime error: %s", "Assert failed");
335 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22162);
336 exit(1);
337 }
338 var_tkwnewnode5 = var_nodearraylist3;
339 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
340 cltype12 = type_nullable_parser_nodes__TKwnew.color;
341 idtype13 = type_nullable_parser_nodes__TKwnew.id;
342 if(var_tkwnewnode5 == NULL) {
343 var11 = 1;
344 } else {
345 if(cltype12 >= var_tkwnewnode5->type->table_size) {
346 var11 = 0;
347 } else {
348 var11 = var_tkwnewnode5->type->type_table[cltype12] == idtype13;
349 }
350 }
351 if (!var11) {
352 fprintf(stderr, "Runtime error: %s", "Assert failed");
353 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22164);
354 exit(1);
355 }
356 var_psignaturenode7 = var_nodearraylist4;
357 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
358 cltype15 = type_nullable_parser_nodes__ASignature.color;
359 idtype16 = type_nullable_parser_nodes__ASignature.id;
360 if(var_psignaturenode7 == NULL) {
361 var14 = 1;
362 } else {
363 if(cltype15 >= var_psignaturenode7->type->table_size) {
364 var14 = 0;
365 } else {
366 var14 = var_psignaturenode7->type->type_table[cltype15] == idtype16;
367 }
368 }
369 if (!var14) {
370 fprintf(stderr, "Runtime error: %s", "Assert failed");
371 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22166);
372 exit(1);
373 }
374 var_pexterncallsnode9 = var_nodearraylist5;
375 /* <var_pexterncallsnode9:nullable Object> isa nullable AExternCalls */
376 cltype18 = type_nullable_parser_nodes__AExternCalls.color;
377 idtype19 = type_nullable_parser_nodes__AExternCalls.id;
378 if(var_pexterncallsnode9 == NULL) {
379 var17 = 1;
380 } else {
381 if(cltype18 >= var_pexterncallsnode9->type->table_size) {
382 var17 = 0;
383 } else {
384 var17 = var_pexterncallsnode9->type->type_table[cltype18] == idtype19;
385 }
386 }
387 if (!var17) {
388 fprintf(stderr, "Runtime error: %s", "Assert failed");
389 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22168);
390 exit(1);
391 }
392 var_pexterncodeblocknode10 = var_nodearraylist6;
393 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
394 cltype21 = type_nullable_parser_nodes__AExternCodeBlock.color;
395 idtype22 = type_nullable_parser_nodes__AExternCodeBlock.id;
396 if(var_pexterncodeblocknode10 == NULL) {
397 var20 = 1;
398 } else {
399 if(cltype21 >= var_pexterncodeblocknode10->type->table_size) {
400 var20 = 0;
401 } else {
402 var20 = var_pexterncodeblocknode10->type->type_table[cltype21] == idtype22;
403 }
404 }
405 if (!var20) {
406 fprintf(stderr, "Runtime error: %s", "Assert failed");
407 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22170);
408 exit(1);
409 }
410 var23 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
411 var24 = NULL;
412 var25 = NULL;
413 var26 = NULL;
414 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var23->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var23, var_pdocnode2, var24, var_pvisibilitynode4, var_tkwnewnode5, var25, var_psignaturenode7, var26, var_pexterncallsnode9, var_pexterncodeblocknode10) /* init_aexterninitpropdef on <var23:AExternInitPropdef>*/;
415 CHECK_NEW_parser_nodes__AExternInitPropdef(var23);
416 var_ppropdefnode1 = var23;
417 var_node_list = var_ppropdefnode1;
418 var27 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction505> */
419 var28 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var27) /* go_to on <var_p:Parser>*/;
420 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var28, var_node_list) /* push on <var_p:Parser>*/;
421 RET_LABEL:;
422 }
423 /* method parser#ReduceAction505#action for (self: Object, Parser) */
424 void VIRTUAL_parser__ReduceAction505__action(val* self, val* p0) {
425 parser__ReduceAction505__action(self, p0);
426 RET_LABEL:;
427 }
428 /* method parser#ReduceAction506#action for (self: ReduceAction506, Parser) */
429 void parser__ReduceAction506__action(val* self, val* p0) {
430 val* var_p /* var p: Parser */;
431 val* var /* : null */;
432 val* var_node_list /* var node_list: nullable Object */;
433 val* var1 /* : nullable Object */;
434 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
435 val* var2 /* : nullable Object */;
436 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
437 val* var3 /* : nullable Object */;
438 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
439 val* var4 /* : nullable Object */;
440 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
441 val* var5 /* : nullable Object */;
442 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
443 val* var6 /* : nullable Object */;
444 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
445 val* var7 /* : nullable Object */;
446 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
447 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
448 short int var8 /* : Bool */;
449 int cltype;
450 int idtype;
451 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
452 short int var9 /* : Bool */;
453 int cltype10;
454 int idtype11;
455 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
456 short int var12 /* : Bool */;
457 int cltype13;
458 int idtype14;
459 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
460 short int var15 /* : Bool */;
461 int cltype16;
462 int idtype17;
463 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
464 short int var18 /* : Bool */;
465 int cltype19;
466 int idtype20;
467 val* var_pexterncallsnode9 /* var pexterncallsnode9: nullable Object */;
468 short int var21 /* : Bool */;
469 int cltype22;
470 int idtype23;
471 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
472 short int var24 /* : Bool */;
473 int cltype25;
474 int idtype26;
475 val* var27 /* : AExternInitPropdef */;
476 val* var28 /* : null */;
477 val* var29 /* : null */;
478 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
479 long var30 /* : Int */;
480 long var31 /* : Int */;
481 var_p = p0;
482 var = NULL;
483 var_node_list = var;
484 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
485 var_nodearraylist7 = var1;
486 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
487 var_nodearraylist6 = var2;
488 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
489 var_nodearraylist5 = var3;
490 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
491 var_nodearraylist4 = var4;
492 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
493 var_nodearraylist3 = var5;
494 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
495 var_nodearraylist2 = var6;
496 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
497 var_nodearraylist1 = var7;
498 var_pdocnode2 = var_nodearraylist1;
499 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
500 cltype = type_nullable_parser_nodes__ADoc.color;
501 idtype = type_nullable_parser_nodes__ADoc.id;
502 if(var_pdocnode2 == NULL) {
503 var8 = 1;
504 } else {
505 if(cltype >= var_pdocnode2->type->table_size) {
506 var8 = 0;
507 } else {
508 var8 = var_pdocnode2->type->type_table[cltype] == idtype;
509 }
510 }
511 if (!var8) {
512 fprintf(stderr, "Runtime error: %s", "Assert failed");
513 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22199);
514 exit(1);
515 }
516 var_tkwredefnode3 = var_nodearraylist2;
517 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
518 cltype10 = type_nullable_parser_nodes__TKwredef.color;
519 idtype11 = type_nullable_parser_nodes__TKwredef.id;
520 if(var_tkwredefnode3 == NULL) {
521 var9 = 1;
522 } else {
523 if(cltype10 >= var_tkwredefnode3->type->table_size) {
524 var9 = 0;
525 } else {
526 var9 = var_tkwredefnode3->type->type_table[cltype10] == idtype11;
527 }
528 }
529 if (!var9) {
530 fprintf(stderr, "Runtime error: %s", "Assert failed");
531 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22201);
532 exit(1);
533 }
534 var_pvisibilitynode4 = var_nodearraylist3;
535 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
536 cltype13 = type_nullable_parser_nodes__AVisibility.color;
537 idtype14 = type_nullable_parser_nodes__AVisibility.id;
538 if(var_pvisibilitynode4 == NULL) {
539 var12 = 1;
540 } else {
541 if(cltype13 >= var_pvisibilitynode4->type->table_size) {
542 var12 = 0;
543 } else {
544 var12 = var_pvisibilitynode4->type->type_table[cltype13] == idtype14;
545 }
546 }
547 if (!var12) {
548 fprintf(stderr, "Runtime error: %s", "Assert failed");
549 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22203);
550 exit(1);
551 }
552 var_tkwnewnode5 = var_nodearraylist4;
553 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
554 cltype16 = type_nullable_parser_nodes__TKwnew.color;
555 idtype17 = type_nullable_parser_nodes__TKwnew.id;
556 if(var_tkwnewnode5 == NULL) {
557 var15 = 1;
558 } else {
559 if(cltype16 >= var_tkwnewnode5->type->table_size) {
560 var15 = 0;
561 } else {
562 var15 = var_tkwnewnode5->type->type_table[cltype16] == idtype17;
563 }
564 }
565 if (!var15) {
566 fprintf(stderr, "Runtime error: %s", "Assert failed");
567 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22205);
568 exit(1);
569 }
570 var_psignaturenode7 = var_nodearraylist5;
571 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
572 cltype19 = type_nullable_parser_nodes__ASignature.color;
573 idtype20 = type_nullable_parser_nodes__ASignature.id;
574 if(var_psignaturenode7 == NULL) {
575 var18 = 1;
576 } else {
577 if(cltype19 >= var_psignaturenode7->type->table_size) {
578 var18 = 0;
579 } else {
580 var18 = var_psignaturenode7->type->type_table[cltype19] == idtype20;
581 }
582 }
583 if (!var18) {
584 fprintf(stderr, "Runtime error: %s", "Assert failed");
585 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22207);
586 exit(1);
587 }
588 var_pexterncallsnode9 = var_nodearraylist6;
589 /* <var_pexterncallsnode9:nullable Object> isa nullable AExternCalls */
590 cltype22 = type_nullable_parser_nodes__AExternCalls.color;
591 idtype23 = type_nullable_parser_nodes__AExternCalls.id;
592 if(var_pexterncallsnode9 == NULL) {
593 var21 = 1;
594 } else {
595 if(cltype22 >= var_pexterncallsnode9->type->table_size) {
596 var21 = 0;
597 } else {
598 var21 = var_pexterncallsnode9->type->type_table[cltype22] == idtype23;
599 }
600 }
601 if (!var21) {
602 fprintf(stderr, "Runtime error: %s", "Assert failed");
603 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22209);
604 exit(1);
605 }
606 var_pexterncodeblocknode10 = var_nodearraylist7;
607 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
608 cltype25 = type_nullable_parser_nodes__AExternCodeBlock.color;
609 idtype26 = type_nullable_parser_nodes__AExternCodeBlock.id;
610 if(var_pexterncodeblocknode10 == NULL) {
611 var24 = 1;
612 } else {
613 if(cltype25 >= var_pexterncodeblocknode10->type->table_size) {
614 var24 = 0;
615 } else {
616 var24 = var_pexterncodeblocknode10->type->type_table[cltype25] == idtype26;
617 }
618 }
619 if (!var24) {
620 fprintf(stderr, "Runtime error: %s", "Assert failed");
621 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22211);
622 exit(1);
623 }
624 var27 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
625 var28 = NULL;
626 var29 = NULL;
627 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var27->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var27, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwnewnode5, var28, var_psignaturenode7, var29, var_pexterncallsnode9, var_pexterncodeblocknode10) /* init_aexterninitpropdef on <var27:AExternInitPropdef>*/;
628 CHECK_NEW_parser_nodes__AExternInitPropdef(var27);
629 var_ppropdefnode1 = var27;
630 var_node_list = var_ppropdefnode1;
631 var30 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction506> */
632 var31 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var30) /* go_to on <var_p:Parser>*/;
633 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var31, var_node_list) /* push on <var_p:Parser>*/;
634 RET_LABEL:;
635 }
636 /* method parser#ReduceAction506#action for (self: Object, Parser) */
637 void VIRTUAL_parser__ReduceAction506__action(val* self, val* p0) {
638 parser__ReduceAction506__action(self, p0);
639 RET_LABEL:;
640 }
641 /* method parser#ReduceAction507#action for (self: ReduceAction507, Parser) */
642 void parser__ReduceAction507__action(val* self, val* p0) {
643 val* var_p /* var p: Parser */;
644 val* var /* : null */;
645 val* var_node_list /* var node_list: nullable Object */;
646 val* var1 /* : nullable Object */;
647 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
648 val* var2 /* : nullable Object */;
649 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
650 val* var3 /* : nullable Object */;
651 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
652 val* var4 /* : nullable Object */;
653 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
654 val* var5 /* : nullable Object */;
655 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
656 val* var6 /* : nullable Object */;
657 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
658 val* var7 /* : nullable Object */;
659 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
660 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
661 short int var8 /* : Bool */;
662 int cltype;
663 int idtype;
664 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
665 short int var9 /* : Bool */;
666 int cltype10;
667 int idtype11;
668 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
669 short int var12 /* : Bool */;
670 int cltype13;
671 int idtype14;
672 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
673 short int var15 /* : Bool */;
674 int cltype16;
675 int idtype17;
676 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
677 short int var18 /* : Bool */;
678 int cltype19;
679 int idtype20;
680 val* var_pexterncallsnode9 /* var pexterncallsnode9: nullable Object */;
681 short int var21 /* : Bool */;
682 int cltype22;
683 int idtype23;
684 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
685 short int var24 /* : Bool */;
686 int cltype25;
687 int idtype26;
688 val* var27 /* : AExternInitPropdef */;
689 val* var28 /* : null */;
690 val* var29 /* : null */;
691 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
692 long var30 /* : Int */;
693 long var31 /* : Int */;
694 var_p = p0;
695 var = NULL;
696 var_node_list = var;
697 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
698 var_nodearraylist7 = var1;
699 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
700 var_nodearraylist6 = var2;
701 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
702 var_nodearraylist5 = var3;
703 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
704 var_nodearraylist4 = var4;
705 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
706 var_nodearraylist3 = var5;
707 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
708 var_nodearraylist2 = var6;
709 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
710 var_nodearraylist1 = var7;
711 var_pdocnode2 = var_nodearraylist1;
712 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
713 cltype = type_nullable_parser_nodes__ADoc.color;
714 idtype = type_nullable_parser_nodes__ADoc.id;
715 if(var_pdocnode2 == NULL) {
716 var8 = 1;
717 } else {
718 if(cltype >= var_pdocnode2->type->table_size) {
719 var8 = 0;
720 } else {
721 var8 = var_pdocnode2->type->type_table[cltype] == idtype;
722 }
723 }
724 if (!var8) {
725 fprintf(stderr, "Runtime error: %s", "Assert failed");
726 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22240);
727 exit(1);
728 }
729 var_pvisibilitynode4 = var_nodearraylist2;
730 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
731 cltype10 = type_nullable_parser_nodes__AVisibility.color;
732 idtype11 = type_nullable_parser_nodes__AVisibility.id;
733 if(var_pvisibilitynode4 == NULL) {
734 var9 = 1;
735 } else {
736 if(cltype10 >= var_pvisibilitynode4->type->table_size) {
737 var9 = 0;
738 } else {
739 var9 = var_pvisibilitynode4->type->type_table[cltype10] == idtype11;
740 }
741 }
742 if (!var9) {
743 fprintf(stderr, "Runtime error: %s", "Assert failed");
744 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22242);
745 exit(1);
746 }
747 var_tkwnewnode5 = var_nodearraylist3;
748 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
749 cltype13 = type_nullable_parser_nodes__TKwnew.color;
750 idtype14 = type_nullable_parser_nodes__TKwnew.id;
751 if(var_tkwnewnode5 == NULL) {
752 var12 = 1;
753 } else {
754 if(cltype13 >= var_tkwnewnode5->type->table_size) {
755 var12 = 0;
756 } else {
757 var12 = var_tkwnewnode5->type->type_table[cltype13] == idtype14;
758 }
759 }
760 if (!var12) {
761 fprintf(stderr, "Runtime error: %s", "Assert failed");
762 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22244);
763 exit(1);
764 }
765 var_pmethidnode6 = var_nodearraylist4;
766 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
767 cltype16 = type_nullable_parser_nodes__AMethid.color;
768 idtype17 = type_nullable_parser_nodes__AMethid.id;
769 if(var_pmethidnode6 == NULL) {
770 var15 = 1;
771 } else {
772 if(cltype16 >= var_pmethidnode6->type->table_size) {
773 var15 = 0;
774 } else {
775 var15 = var_pmethidnode6->type->type_table[cltype16] == idtype17;
776 }
777 }
778 if (!var15) {
779 fprintf(stderr, "Runtime error: %s", "Assert failed");
780 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22246);
781 exit(1);
782 }
783 var_psignaturenode7 = var_nodearraylist5;
784 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
785 cltype19 = type_nullable_parser_nodes__ASignature.color;
786 idtype20 = type_nullable_parser_nodes__ASignature.id;
787 if(var_psignaturenode7 == NULL) {
788 var18 = 1;
789 } else {
790 if(cltype19 >= var_psignaturenode7->type->table_size) {
791 var18 = 0;
792 } else {
793 var18 = var_psignaturenode7->type->type_table[cltype19] == idtype20;
794 }
795 }
796 if (!var18) {
797 fprintf(stderr, "Runtime error: %s", "Assert failed");
798 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22248);
799 exit(1);
800 }
801 var_pexterncallsnode9 = var_nodearraylist6;
802 /* <var_pexterncallsnode9:nullable Object> isa nullable AExternCalls */
803 cltype22 = type_nullable_parser_nodes__AExternCalls.color;
804 idtype23 = type_nullable_parser_nodes__AExternCalls.id;
805 if(var_pexterncallsnode9 == NULL) {
806 var21 = 1;
807 } else {
808 if(cltype22 >= var_pexterncallsnode9->type->table_size) {
809 var21 = 0;
810 } else {
811 var21 = var_pexterncallsnode9->type->type_table[cltype22] == idtype23;
812 }
813 }
814 if (!var21) {
815 fprintf(stderr, "Runtime error: %s", "Assert failed");
816 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22250);
817 exit(1);
818 }
819 var_pexterncodeblocknode10 = var_nodearraylist7;
820 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
821 cltype25 = type_nullable_parser_nodes__AExternCodeBlock.color;
822 idtype26 = type_nullable_parser_nodes__AExternCodeBlock.id;
823 if(var_pexterncodeblocknode10 == NULL) {
824 var24 = 1;
825 } else {
826 if(cltype25 >= var_pexterncodeblocknode10->type->table_size) {
827 var24 = 0;
828 } else {
829 var24 = var_pexterncodeblocknode10->type->type_table[cltype25] == idtype26;
830 }
831 }
832 if (!var24) {
833 fprintf(stderr, "Runtime error: %s", "Assert failed");
834 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22252);
835 exit(1);
836 }
837 var27 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
838 var28 = NULL;
839 var29 = NULL;
840 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var27->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var27, var_pdocnode2, var28, var_pvisibilitynode4, var_tkwnewnode5, var_pmethidnode6, var_psignaturenode7, var29, var_pexterncallsnode9, var_pexterncodeblocknode10) /* init_aexterninitpropdef on <var27:AExternInitPropdef>*/;
841 CHECK_NEW_parser_nodes__AExternInitPropdef(var27);
842 var_ppropdefnode1 = var27;
843 var_node_list = var_ppropdefnode1;
844 var30 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction507> */
845 var31 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var30) /* go_to on <var_p:Parser>*/;
846 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var31, var_node_list) /* push on <var_p:Parser>*/;
847 RET_LABEL:;
848 }
849 /* method parser#ReduceAction507#action for (self: Object, Parser) */
850 void VIRTUAL_parser__ReduceAction507__action(val* self, val* p0) {
851 parser__ReduceAction507__action(self, p0);
852 RET_LABEL:;
853 }
854 /* method parser#ReduceAction508#action for (self: ReduceAction508, Parser) */
855 void parser__ReduceAction508__action(val* self, val* p0) {
856 val* var_p /* var p: Parser */;
857 val* var /* : null */;
858 val* var_node_list /* var node_list: nullable Object */;
859 val* var1 /* : nullable Object */;
860 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
861 val* var2 /* : nullable Object */;
862 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
863 val* var3 /* : nullable Object */;
864 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
865 val* var4 /* : nullable Object */;
866 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
867 val* var5 /* : nullable Object */;
868 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
869 val* var6 /* : nullable Object */;
870 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
871 val* var7 /* : nullable Object */;
872 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
873 val* var8 /* : nullable Object */;
874 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
875 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
876 short int var9 /* : Bool */;
877 int cltype;
878 int idtype;
879 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
880 short int var10 /* : Bool */;
881 int cltype11;
882 int idtype12;
883 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
884 short int var13 /* : Bool */;
885 int cltype14;
886 int idtype15;
887 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
888 short int var16 /* : Bool */;
889 int cltype17;
890 int idtype18;
891 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
892 short int var19 /* : Bool */;
893 int cltype20;
894 int idtype21;
895 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
896 short int var22 /* : Bool */;
897 int cltype23;
898 int idtype24;
899 val* var_pexterncallsnode9 /* var pexterncallsnode9: nullable Object */;
900 short int var25 /* : Bool */;
901 int cltype26;
902 int idtype27;
903 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
904 short int var28 /* : Bool */;
905 int cltype29;
906 int idtype30;
907 val* var31 /* : AExternInitPropdef */;
908 val* var32 /* : null */;
909 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
910 long var33 /* : Int */;
911 long var34 /* : Int */;
912 var_p = p0;
913 var = NULL;
914 var_node_list = var;
915 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
916 var_nodearraylist8 = var1;
917 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
918 var_nodearraylist7 = var2;
919 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
920 var_nodearraylist6 = var3;
921 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
922 var_nodearraylist5 = var4;
923 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
924 var_nodearraylist4 = var5;
925 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
926 var_nodearraylist3 = var6;
927 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
928 var_nodearraylist2 = var7;
929 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
930 var_nodearraylist1 = var8;
931 var_pdocnode2 = var_nodearraylist1;
932 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
933 cltype = type_nullable_parser_nodes__ADoc.color;
934 idtype = type_nullable_parser_nodes__ADoc.id;
935 if(var_pdocnode2 == NULL) {
936 var9 = 1;
937 } else {
938 if(cltype >= var_pdocnode2->type->table_size) {
939 var9 = 0;
940 } else {
941 var9 = var_pdocnode2->type->type_table[cltype] == idtype;
942 }
943 }
944 if (!var9) {
945 fprintf(stderr, "Runtime error: %s", "Assert failed");
946 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22282);
947 exit(1);
948 }
949 var_tkwredefnode3 = var_nodearraylist2;
950 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
951 cltype11 = type_nullable_parser_nodes__TKwredef.color;
952 idtype12 = type_nullable_parser_nodes__TKwredef.id;
953 if(var_tkwredefnode3 == NULL) {
954 var10 = 1;
955 } else {
956 if(cltype11 >= var_tkwredefnode3->type->table_size) {
957 var10 = 0;
958 } else {
959 var10 = var_tkwredefnode3->type->type_table[cltype11] == idtype12;
960 }
961 }
962 if (!var10) {
963 fprintf(stderr, "Runtime error: %s", "Assert failed");
964 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22284);
965 exit(1);
966 }
967 var_pvisibilitynode4 = var_nodearraylist3;
968 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
969 cltype14 = type_nullable_parser_nodes__AVisibility.color;
970 idtype15 = type_nullable_parser_nodes__AVisibility.id;
971 if(var_pvisibilitynode4 == NULL) {
972 var13 = 1;
973 } else {
974 if(cltype14 >= var_pvisibilitynode4->type->table_size) {
975 var13 = 0;
976 } else {
977 var13 = var_pvisibilitynode4->type->type_table[cltype14] == idtype15;
978 }
979 }
980 if (!var13) {
981 fprintf(stderr, "Runtime error: %s", "Assert failed");
982 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22286);
983 exit(1);
984 }
985 var_tkwnewnode5 = var_nodearraylist4;
986 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
987 cltype17 = type_nullable_parser_nodes__TKwnew.color;
988 idtype18 = type_nullable_parser_nodes__TKwnew.id;
989 if(var_tkwnewnode5 == NULL) {
990 var16 = 1;
991 } else {
992 if(cltype17 >= var_tkwnewnode5->type->table_size) {
993 var16 = 0;
994 } else {
995 var16 = var_tkwnewnode5->type->type_table[cltype17] == idtype18;
996 }
997 }
998 if (!var16) {
999 fprintf(stderr, "Runtime error: %s", "Assert failed");
1000 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22288);
1001 exit(1);
1002 }
1003 var_pmethidnode6 = var_nodearraylist5;
1004 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
1005 cltype20 = type_nullable_parser_nodes__AMethid.color;
1006 idtype21 = type_nullable_parser_nodes__AMethid.id;
1007 if(var_pmethidnode6 == NULL) {
1008 var19 = 1;
1009 } else {
1010 if(cltype20 >= var_pmethidnode6->type->table_size) {
1011 var19 = 0;
1012 } else {
1013 var19 = var_pmethidnode6->type->type_table[cltype20] == idtype21;
1014 }
1015 }
1016 if (!var19) {
1017 fprintf(stderr, "Runtime error: %s", "Assert failed");
1018 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22290);
1019 exit(1);
1020 }
1021 var_psignaturenode7 = var_nodearraylist6;
1022 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
1023 cltype23 = type_nullable_parser_nodes__ASignature.color;
1024 idtype24 = type_nullable_parser_nodes__ASignature.id;
1025 if(var_psignaturenode7 == NULL) {
1026 var22 = 1;
1027 } else {
1028 if(cltype23 >= var_psignaturenode7->type->table_size) {
1029 var22 = 0;
1030 } else {
1031 var22 = var_psignaturenode7->type->type_table[cltype23] == idtype24;
1032 }
1033 }
1034 if (!var22) {
1035 fprintf(stderr, "Runtime error: %s", "Assert failed");
1036 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22292);
1037 exit(1);
1038 }
1039 var_pexterncallsnode9 = var_nodearraylist7;
1040 /* <var_pexterncallsnode9:nullable Object> isa nullable AExternCalls */
1041 cltype26 = type_nullable_parser_nodes__AExternCalls.color;
1042 idtype27 = type_nullable_parser_nodes__AExternCalls.id;
1043 if(var_pexterncallsnode9 == NULL) {
1044 var25 = 1;
1045 } else {
1046 if(cltype26 >= var_pexterncallsnode9->type->table_size) {
1047 var25 = 0;
1048 } else {
1049 var25 = var_pexterncallsnode9->type->type_table[cltype26] == idtype27;
1050 }
1051 }
1052 if (!var25) {
1053 fprintf(stderr, "Runtime error: %s", "Assert failed");
1054 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22294);
1055 exit(1);
1056 }
1057 var_pexterncodeblocknode10 = var_nodearraylist8;
1058 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
1059 cltype29 = type_nullable_parser_nodes__AExternCodeBlock.color;
1060 idtype30 = type_nullable_parser_nodes__AExternCodeBlock.id;
1061 if(var_pexterncodeblocknode10 == NULL) {
1062 var28 = 1;
1063 } else {
1064 if(cltype29 >= var_pexterncodeblocknode10->type->table_size) {
1065 var28 = 0;
1066 } else {
1067 var28 = var_pexterncodeblocknode10->type->type_table[cltype29] == idtype30;
1068 }
1069 }
1070 if (!var28) {
1071 fprintf(stderr, "Runtime error: %s", "Assert failed");
1072 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22296);
1073 exit(1);
1074 }
1075 var31 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
1076 var32 = NULL;
1077 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var31->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var31, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwnewnode5, var_pmethidnode6, var_psignaturenode7, var32, var_pexterncallsnode9, var_pexterncodeblocknode10) /* init_aexterninitpropdef on <var31:AExternInitPropdef>*/;
1078 CHECK_NEW_parser_nodes__AExternInitPropdef(var31);
1079 var_ppropdefnode1 = var31;
1080 var_node_list = var_ppropdefnode1;
1081 var33 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction508> */
1082 var34 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var33) /* go_to on <var_p:Parser>*/;
1083 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var34, var_node_list) /* push on <var_p:Parser>*/;
1084 RET_LABEL:;
1085 }
1086 /* method parser#ReduceAction508#action for (self: Object, Parser) */
1087 void VIRTUAL_parser__ReduceAction508__action(val* self, val* p0) {
1088 parser__ReduceAction508__action(self, p0);
1089 RET_LABEL:;
1090 }
1091 /* method parser#ReduceAction509#action for (self: ReduceAction509, Parser) */
1092 void parser__ReduceAction509__action(val* self, val* p0) {
1093 val* var_p /* var p: Parser */;
1094 val* var /* : null */;
1095 val* var_node_list /* var node_list: nullable Object */;
1096 val* var1 /* : nullable Object */;
1097 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
1098 val* var2 /* : nullable Object */;
1099 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
1100 val* var3 /* : nullable Object */;
1101 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1102 val* var4 /* : nullable Object */;
1103 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1104 val* var5 /* : nullable Object */;
1105 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1106 val* var6 /* : nullable Object */;
1107 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1108 val* var7 /* : nullable Object */;
1109 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1110 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
1111 short int var8 /* : Bool */;
1112 int cltype;
1113 int idtype;
1114 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
1115 short int var9 /* : Bool */;
1116 int cltype10;
1117 int idtype11;
1118 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
1119 short int var12 /* : Bool */;
1120 int cltype13;
1121 int idtype14;
1122 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
1123 short int var15 /* : Bool */;
1124 int cltype16;
1125 int idtype17;
1126 val* var_tstringnode8 /* var tstringnode8: nullable Object */;
1127 short int var18 /* : Bool */;
1128 int cltype19;
1129 int idtype20;
1130 val* var_pexterncallsnode9 /* var pexterncallsnode9: nullable Object */;
1131 short int var21 /* : Bool */;
1132 int cltype22;
1133 int idtype23;
1134 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
1135 short int var24 /* : Bool */;
1136 int cltype25;
1137 int idtype26;
1138 val* var27 /* : AExternInitPropdef */;
1139 val* var28 /* : null */;
1140 val* var29 /* : null */;
1141 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
1142 long var30 /* : Int */;
1143 long var31 /* : Int */;
1144 var_p = p0;
1145 var = NULL;
1146 var_node_list = var;
1147 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1148 var_nodearraylist7 = var1;
1149 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1150 var_nodearraylist6 = var2;
1151 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1152 var_nodearraylist5 = var3;
1153 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1154 var_nodearraylist4 = var4;
1155 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1156 var_nodearraylist3 = var5;
1157 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1158 var_nodearraylist2 = var6;
1159 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1160 var_nodearraylist1 = var7;
1161 var_pdocnode2 = var_nodearraylist1;
1162 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
1163 cltype = type_nullable_parser_nodes__ADoc.color;
1164 idtype = type_nullable_parser_nodes__ADoc.id;
1165 if(var_pdocnode2 == NULL) {
1166 var8 = 1;
1167 } else {
1168 if(cltype >= var_pdocnode2->type->table_size) {
1169 var8 = 0;
1170 } else {
1171 var8 = var_pdocnode2->type->type_table[cltype] == idtype;
1172 }
1173 }
1174 if (!var8) {
1175 fprintf(stderr, "Runtime error: %s", "Assert failed");
1176 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22325);
1177 exit(1);
1178 }
1179 var_pvisibilitynode4 = var_nodearraylist2;
1180 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
1181 cltype10 = type_nullable_parser_nodes__AVisibility.color;
1182 idtype11 = type_nullable_parser_nodes__AVisibility.id;
1183 if(var_pvisibilitynode4 == NULL) {
1184 var9 = 1;
1185 } else {
1186 if(cltype10 >= var_pvisibilitynode4->type->table_size) {
1187 var9 = 0;
1188 } else {
1189 var9 = var_pvisibilitynode4->type->type_table[cltype10] == idtype11;
1190 }
1191 }
1192 if (!var9) {
1193 fprintf(stderr, "Runtime error: %s", "Assert failed");
1194 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22327);
1195 exit(1);
1196 }
1197 var_tkwnewnode5 = var_nodearraylist3;
1198 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
1199 cltype13 = type_nullable_parser_nodes__TKwnew.color;
1200 idtype14 = type_nullable_parser_nodes__TKwnew.id;
1201 if(var_tkwnewnode5 == NULL) {
1202 var12 = 1;
1203 } else {
1204 if(cltype13 >= var_tkwnewnode5->type->table_size) {
1205 var12 = 0;
1206 } else {
1207 var12 = var_tkwnewnode5->type->type_table[cltype13] == idtype14;
1208 }
1209 }
1210 if (!var12) {
1211 fprintf(stderr, "Runtime error: %s", "Assert failed");
1212 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22329);
1213 exit(1);
1214 }
1215 var_psignaturenode7 = var_nodearraylist4;
1216 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
1217 cltype16 = type_nullable_parser_nodes__ASignature.color;
1218 idtype17 = type_nullable_parser_nodes__ASignature.id;
1219 if(var_psignaturenode7 == NULL) {
1220 var15 = 1;
1221 } else {
1222 if(cltype16 >= var_psignaturenode7->type->table_size) {
1223 var15 = 0;
1224 } else {
1225 var15 = var_psignaturenode7->type->type_table[cltype16] == idtype17;
1226 }
1227 }
1228 if (!var15) {
1229 fprintf(stderr, "Runtime error: %s", "Assert failed");
1230 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22331);
1231 exit(1);
1232 }
1233 var_tstringnode8 = var_nodearraylist5;
1234 /* <var_tstringnode8:nullable Object> isa nullable TString */
1235 cltype19 = type_nullable_parser_nodes__TString.color;
1236 idtype20 = type_nullable_parser_nodes__TString.id;
1237 if(var_tstringnode8 == NULL) {
1238 var18 = 1;
1239 } else {
1240 if(cltype19 >= var_tstringnode8->type->table_size) {
1241 var18 = 0;
1242 } else {
1243 var18 = var_tstringnode8->type->type_table[cltype19] == idtype20;
1244 }
1245 }
1246 if (!var18) {
1247 fprintf(stderr, "Runtime error: %s", "Assert failed");
1248 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22333);
1249 exit(1);
1250 }
1251 var_pexterncallsnode9 = var_nodearraylist6;
1252 /* <var_pexterncallsnode9:nullable Object> isa nullable AExternCalls */
1253 cltype22 = type_nullable_parser_nodes__AExternCalls.color;
1254 idtype23 = type_nullable_parser_nodes__AExternCalls.id;
1255 if(var_pexterncallsnode9 == NULL) {
1256 var21 = 1;
1257 } else {
1258 if(cltype22 >= var_pexterncallsnode9->type->table_size) {
1259 var21 = 0;
1260 } else {
1261 var21 = var_pexterncallsnode9->type->type_table[cltype22] == idtype23;
1262 }
1263 }
1264 if (!var21) {
1265 fprintf(stderr, "Runtime error: %s", "Assert failed");
1266 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22335);
1267 exit(1);
1268 }
1269 var_pexterncodeblocknode10 = var_nodearraylist7;
1270 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
1271 cltype25 = type_nullable_parser_nodes__AExternCodeBlock.color;
1272 idtype26 = type_nullable_parser_nodes__AExternCodeBlock.id;
1273 if(var_pexterncodeblocknode10 == NULL) {
1274 var24 = 1;
1275 } else {
1276 if(cltype25 >= var_pexterncodeblocknode10->type->table_size) {
1277 var24 = 0;
1278 } else {
1279 var24 = var_pexterncodeblocknode10->type->type_table[cltype25] == idtype26;
1280 }
1281 }
1282 if (!var24) {
1283 fprintf(stderr, "Runtime error: %s", "Assert failed");
1284 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22337);
1285 exit(1);
1286 }
1287 var27 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
1288 var28 = NULL;
1289 var29 = NULL;
1290 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var27->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var27, var_pdocnode2, var28, var_pvisibilitynode4, var_tkwnewnode5, var29, var_psignaturenode7, var_tstringnode8, var_pexterncallsnode9, var_pexterncodeblocknode10) /* init_aexterninitpropdef on <var27:AExternInitPropdef>*/;
1291 CHECK_NEW_parser_nodes__AExternInitPropdef(var27);
1292 var_ppropdefnode1 = var27;
1293 var_node_list = var_ppropdefnode1;
1294 var30 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction509> */
1295 var31 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var30) /* go_to on <var_p:Parser>*/;
1296 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var31, var_node_list) /* push on <var_p:Parser>*/;
1297 RET_LABEL:;
1298 }
1299 /* method parser#ReduceAction509#action for (self: Object, Parser) */
1300 void VIRTUAL_parser__ReduceAction509__action(val* self, val* p0) {
1301 parser__ReduceAction509__action(self, p0);
1302 RET_LABEL:;
1303 }
1304 /* method parser#ReduceAction510#action for (self: ReduceAction510, Parser) */
1305 void parser__ReduceAction510__action(val* self, val* p0) {
1306 val* var_p /* var p: Parser */;
1307 val* var /* : null */;
1308 val* var_node_list /* var node_list: nullable Object */;
1309 val* var1 /* : nullable Object */;
1310 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
1311 val* var2 /* : nullable Object */;
1312 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
1313 val* var3 /* : nullable Object */;
1314 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
1315 val* var4 /* : nullable Object */;
1316 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1317 val* var5 /* : nullable Object */;
1318 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1319 val* var6 /* : nullable Object */;
1320 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1321 val* var7 /* : nullable Object */;
1322 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1323 val* var8 /* : nullable Object */;
1324 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1325 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
1326 short int var9 /* : Bool */;
1327 int cltype;
1328 int idtype;
1329 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
1330 short int var10 /* : Bool */;
1331 int cltype11;
1332 int idtype12;
1333 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
1334 short int var13 /* : Bool */;
1335 int cltype14;
1336 int idtype15;
1337 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
1338 short int var16 /* : Bool */;
1339 int cltype17;
1340 int idtype18;
1341 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
1342 short int var19 /* : Bool */;
1343 int cltype20;
1344 int idtype21;
1345 val* var_tstringnode8 /* var tstringnode8: nullable Object */;
1346 short int var22 /* : Bool */;
1347 int cltype23;
1348 int idtype24;
1349 val* var_pexterncallsnode9 /* var pexterncallsnode9: nullable Object */;
1350 short int var25 /* : Bool */;
1351 int cltype26;
1352 int idtype27;
1353 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
1354 short int var28 /* : Bool */;
1355 int cltype29;
1356 int idtype30;
1357 val* var31 /* : AExternInitPropdef */;
1358 val* var32 /* : null */;
1359 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
1360 long var33 /* : Int */;
1361 long var34 /* : Int */;
1362 var_p = p0;
1363 var = NULL;
1364 var_node_list = var;
1365 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1366 var_nodearraylist8 = var1;
1367 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1368 var_nodearraylist7 = var2;
1369 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1370 var_nodearraylist6 = var3;
1371 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1372 var_nodearraylist5 = var4;
1373 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1374 var_nodearraylist4 = var5;
1375 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1376 var_nodearraylist3 = var6;
1377 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1378 var_nodearraylist2 = var7;
1379 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1380 var_nodearraylist1 = var8;
1381 var_pdocnode2 = var_nodearraylist1;
1382 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
1383 cltype = type_nullable_parser_nodes__ADoc.color;
1384 idtype = type_nullable_parser_nodes__ADoc.id;
1385 if(var_pdocnode2 == NULL) {
1386 var9 = 1;
1387 } else {
1388 if(cltype >= var_pdocnode2->type->table_size) {
1389 var9 = 0;
1390 } else {
1391 var9 = var_pdocnode2->type->type_table[cltype] == idtype;
1392 }
1393 }
1394 if (!var9) {
1395 fprintf(stderr, "Runtime error: %s", "Assert failed");
1396 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22367);
1397 exit(1);
1398 }
1399 var_tkwredefnode3 = var_nodearraylist2;
1400 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
1401 cltype11 = type_nullable_parser_nodes__TKwredef.color;
1402 idtype12 = type_nullable_parser_nodes__TKwredef.id;
1403 if(var_tkwredefnode3 == NULL) {
1404 var10 = 1;
1405 } else {
1406 if(cltype11 >= var_tkwredefnode3->type->table_size) {
1407 var10 = 0;
1408 } else {
1409 var10 = var_tkwredefnode3->type->type_table[cltype11] == idtype12;
1410 }
1411 }
1412 if (!var10) {
1413 fprintf(stderr, "Runtime error: %s", "Assert failed");
1414 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22369);
1415 exit(1);
1416 }
1417 var_pvisibilitynode4 = var_nodearraylist3;
1418 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
1419 cltype14 = type_nullable_parser_nodes__AVisibility.color;
1420 idtype15 = type_nullable_parser_nodes__AVisibility.id;
1421 if(var_pvisibilitynode4 == NULL) {
1422 var13 = 1;
1423 } else {
1424 if(cltype14 >= var_pvisibilitynode4->type->table_size) {
1425 var13 = 0;
1426 } else {
1427 var13 = var_pvisibilitynode4->type->type_table[cltype14] == idtype15;
1428 }
1429 }
1430 if (!var13) {
1431 fprintf(stderr, "Runtime error: %s", "Assert failed");
1432 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22371);
1433 exit(1);
1434 }
1435 var_tkwnewnode5 = var_nodearraylist4;
1436 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
1437 cltype17 = type_nullable_parser_nodes__TKwnew.color;
1438 idtype18 = type_nullable_parser_nodes__TKwnew.id;
1439 if(var_tkwnewnode5 == NULL) {
1440 var16 = 1;
1441 } else {
1442 if(cltype17 >= var_tkwnewnode5->type->table_size) {
1443 var16 = 0;
1444 } else {
1445 var16 = var_tkwnewnode5->type->type_table[cltype17] == idtype18;
1446 }
1447 }
1448 if (!var16) {
1449 fprintf(stderr, "Runtime error: %s", "Assert failed");
1450 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22373);
1451 exit(1);
1452 }
1453 var_psignaturenode7 = var_nodearraylist5;
1454 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
1455 cltype20 = type_nullable_parser_nodes__ASignature.color;
1456 idtype21 = type_nullable_parser_nodes__ASignature.id;
1457 if(var_psignaturenode7 == NULL) {
1458 var19 = 1;
1459 } else {
1460 if(cltype20 >= var_psignaturenode7->type->table_size) {
1461 var19 = 0;
1462 } else {
1463 var19 = var_psignaturenode7->type->type_table[cltype20] == idtype21;
1464 }
1465 }
1466 if (!var19) {
1467 fprintf(stderr, "Runtime error: %s", "Assert failed");
1468 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22375);
1469 exit(1);
1470 }
1471 var_tstringnode8 = var_nodearraylist6;
1472 /* <var_tstringnode8:nullable Object> isa nullable TString */
1473 cltype23 = type_nullable_parser_nodes__TString.color;
1474 idtype24 = type_nullable_parser_nodes__TString.id;
1475 if(var_tstringnode8 == NULL) {
1476 var22 = 1;
1477 } else {
1478 if(cltype23 >= var_tstringnode8->type->table_size) {
1479 var22 = 0;
1480 } else {
1481 var22 = var_tstringnode8->type->type_table[cltype23] == idtype24;
1482 }
1483 }
1484 if (!var22) {
1485 fprintf(stderr, "Runtime error: %s", "Assert failed");
1486 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22377);
1487 exit(1);
1488 }
1489 var_pexterncallsnode9 = var_nodearraylist7;
1490 /* <var_pexterncallsnode9:nullable Object> isa nullable AExternCalls */
1491 cltype26 = type_nullable_parser_nodes__AExternCalls.color;
1492 idtype27 = type_nullable_parser_nodes__AExternCalls.id;
1493 if(var_pexterncallsnode9 == NULL) {
1494 var25 = 1;
1495 } else {
1496 if(cltype26 >= var_pexterncallsnode9->type->table_size) {
1497 var25 = 0;
1498 } else {
1499 var25 = var_pexterncallsnode9->type->type_table[cltype26] == idtype27;
1500 }
1501 }
1502 if (!var25) {
1503 fprintf(stderr, "Runtime error: %s", "Assert failed");
1504 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22379);
1505 exit(1);
1506 }
1507 var_pexterncodeblocknode10 = var_nodearraylist8;
1508 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
1509 cltype29 = type_nullable_parser_nodes__AExternCodeBlock.color;
1510 idtype30 = type_nullable_parser_nodes__AExternCodeBlock.id;
1511 if(var_pexterncodeblocknode10 == NULL) {
1512 var28 = 1;
1513 } else {
1514 if(cltype29 >= var_pexterncodeblocknode10->type->table_size) {
1515 var28 = 0;
1516 } else {
1517 var28 = var_pexterncodeblocknode10->type->type_table[cltype29] == idtype30;
1518 }
1519 }
1520 if (!var28) {
1521 fprintf(stderr, "Runtime error: %s", "Assert failed");
1522 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22381);
1523 exit(1);
1524 }
1525 var31 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
1526 var32 = NULL;
1527 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var31->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var31, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwnewnode5, var32, var_psignaturenode7, var_tstringnode8, var_pexterncallsnode9, var_pexterncodeblocknode10) /* init_aexterninitpropdef on <var31:AExternInitPropdef>*/;
1528 CHECK_NEW_parser_nodes__AExternInitPropdef(var31);
1529 var_ppropdefnode1 = var31;
1530 var_node_list = var_ppropdefnode1;
1531 var33 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction510> */
1532 var34 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var33) /* go_to on <var_p:Parser>*/;
1533 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var34, var_node_list) /* push on <var_p:Parser>*/;
1534 RET_LABEL:;
1535 }
1536 /* method parser#ReduceAction510#action for (self: Object, Parser) */
1537 void VIRTUAL_parser__ReduceAction510__action(val* self, val* p0) {
1538 parser__ReduceAction510__action(self, p0);
1539 RET_LABEL:;
1540 }
1541 /* method parser#ReduceAction511#action for (self: ReduceAction511, Parser) */
1542 void parser__ReduceAction511__action(val* self, val* p0) {
1543 val* var_p /* var p: Parser */;
1544 val* var /* : null */;
1545 val* var_node_list /* var node_list: nullable Object */;
1546 val* var1 /* : nullable Object */;
1547 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
1548 val* var2 /* : nullable Object */;
1549 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
1550 val* var3 /* : nullable Object */;
1551 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
1552 val* var4 /* : nullable Object */;
1553 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1554 val* var5 /* : nullable Object */;
1555 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1556 val* var6 /* : nullable Object */;
1557 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1558 val* var7 /* : nullable Object */;
1559 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1560 val* var8 /* : nullable Object */;
1561 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1562 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
1563 short int var9 /* : Bool */;
1564 int cltype;
1565 int idtype;
1566 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
1567 short int var10 /* : Bool */;
1568 int cltype11;
1569 int idtype12;
1570 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
1571 short int var13 /* : Bool */;
1572 int cltype14;
1573 int idtype15;
1574 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
1575 short int var16 /* : Bool */;
1576 int cltype17;
1577 int idtype18;
1578 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
1579 short int var19 /* : Bool */;
1580 int cltype20;
1581 int idtype21;
1582 val* var_tstringnode8 /* var tstringnode8: nullable Object */;
1583 short int var22 /* : Bool */;
1584 int cltype23;
1585 int idtype24;
1586 val* var_pexterncallsnode9 /* var pexterncallsnode9: nullable Object */;
1587 short int var25 /* : Bool */;
1588 int cltype26;
1589 int idtype27;
1590 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
1591 short int var28 /* : Bool */;
1592 int cltype29;
1593 int idtype30;
1594 val* var31 /* : AExternInitPropdef */;
1595 val* var32 /* : null */;
1596 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
1597 long var33 /* : Int */;
1598 long var34 /* : Int */;
1599 var_p = p0;
1600 var = NULL;
1601 var_node_list = var;
1602 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1603 var_nodearraylist8 = var1;
1604 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1605 var_nodearraylist7 = var2;
1606 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1607 var_nodearraylist6 = var3;
1608 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1609 var_nodearraylist5 = var4;
1610 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1611 var_nodearraylist4 = var5;
1612 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1613 var_nodearraylist3 = var6;
1614 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1615 var_nodearraylist2 = var7;
1616 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1617 var_nodearraylist1 = var8;
1618 var_pdocnode2 = var_nodearraylist1;
1619 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
1620 cltype = type_nullable_parser_nodes__ADoc.color;
1621 idtype = type_nullable_parser_nodes__ADoc.id;
1622 if(var_pdocnode2 == NULL) {
1623 var9 = 1;
1624 } else {
1625 if(cltype >= var_pdocnode2->type->table_size) {
1626 var9 = 0;
1627 } else {
1628 var9 = var_pdocnode2->type->type_table[cltype] == idtype;
1629 }
1630 }
1631 if (!var9) {
1632 fprintf(stderr, "Runtime error: %s", "Assert failed");
1633 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22411);
1634 exit(1);
1635 }
1636 var_pvisibilitynode4 = var_nodearraylist2;
1637 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
1638 cltype11 = type_nullable_parser_nodes__AVisibility.color;
1639 idtype12 = type_nullable_parser_nodes__AVisibility.id;
1640 if(var_pvisibilitynode4 == NULL) {
1641 var10 = 1;
1642 } else {
1643 if(cltype11 >= var_pvisibilitynode4->type->table_size) {
1644 var10 = 0;
1645 } else {
1646 var10 = var_pvisibilitynode4->type->type_table[cltype11] == idtype12;
1647 }
1648 }
1649 if (!var10) {
1650 fprintf(stderr, "Runtime error: %s", "Assert failed");
1651 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22413);
1652 exit(1);
1653 }
1654 var_tkwnewnode5 = var_nodearraylist3;
1655 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
1656 cltype14 = type_nullable_parser_nodes__TKwnew.color;
1657 idtype15 = type_nullable_parser_nodes__TKwnew.id;
1658 if(var_tkwnewnode5 == NULL) {
1659 var13 = 1;
1660 } else {
1661 if(cltype14 >= var_tkwnewnode5->type->table_size) {
1662 var13 = 0;
1663 } else {
1664 var13 = var_tkwnewnode5->type->type_table[cltype14] == idtype15;
1665 }
1666 }
1667 if (!var13) {
1668 fprintf(stderr, "Runtime error: %s", "Assert failed");
1669 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22415);
1670 exit(1);
1671 }
1672 var_pmethidnode6 = var_nodearraylist4;
1673 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
1674 cltype17 = type_nullable_parser_nodes__AMethid.color;
1675 idtype18 = type_nullable_parser_nodes__AMethid.id;
1676 if(var_pmethidnode6 == NULL) {
1677 var16 = 1;
1678 } else {
1679 if(cltype17 >= var_pmethidnode6->type->table_size) {
1680 var16 = 0;
1681 } else {
1682 var16 = var_pmethidnode6->type->type_table[cltype17] == idtype18;
1683 }
1684 }
1685 if (!var16) {
1686 fprintf(stderr, "Runtime error: %s", "Assert failed");
1687 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22417);
1688 exit(1);
1689 }
1690 var_psignaturenode7 = var_nodearraylist5;
1691 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
1692 cltype20 = type_nullable_parser_nodes__ASignature.color;
1693 idtype21 = type_nullable_parser_nodes__ASignature.id;
1694 if(var_psignaturenode7 == NULL) {
1695 var19 = 1;
1696 } else {
1697 if(cltype20 >= var_psignaturenode7->type->table_size) {
1698 var19 = 0;
1699 } else {
1700 var19 = var_psignaturenode7->type->type_table[cltype20] == idtype21;
1701 }
1702 }
1703 if (!var19) {
1704 fprintf(stderr, "Runtime error: %s", "Assert failed");
1705 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22419);
1706 exit(1);
1707 }
1708 var_tstringnode8 = var_nodearraylist6;
1709 /* <var_tstringnode8:nullable Object> isa nullable TString */
1710 cltype23 = type_nullable_parser_nodes__TString.color;
1711 idtype24 = type_nullable_parser_nodes__TString.id;
1712 if(var_tstringnode8 == NULL) {
1713 var22 = 1;
1714 } else {
1715 if(cltype23 >= var_tstringnode8->type->table_size) {
1716 var22 = 0;
1717 } else {
1718 var22 = var_tstringnode8->type->type_table[cltype23] == idtype24;
1719 }
1720 }
1721 if (!var22) {
1722 fprintf(stderr, "Runtime error: %s", "Assert failed");
1723 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22421);
1724 exit(1);
1725 }
1726 var_pexterncallsnode9 = var_nodearraylist7;
1727 /* <var_pexterncallsnode9:nullable Object> isa nullable AExternCalls */
1728 cltype26 = type_nullable_parser_nodes__AExternCalls.color;
1729 idtype27 = type_nullable_parser_nodes__AExternCalls.id;
1730 if(var_pexterncallsnode9 == NULL) {
1731 var25 = 1;
1732 } else {
1733 if(cltype26 >= var_pexterncallsnode9->type->table_size) {
1734 var25 = 0;
1735 } else {
1736 var25 = var_pexterncallsnode9->type->type_table[cltype26] == idtype27;
1737 }
1738 }
1739 if (!var25) {
1740 fprintf(stderr, "Runtime error: %s", "Assert failed");
1741 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22423);
1742 exit(1);
1743 }
1744 var_pexterncodeblocknode10 = var_nodearraylist8;
1745 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
1746 cltype29 = type_nullable_parser_nodes__AExternCodeBlock.color;
1747 idtype30 = type_nullable_parser_nodes__AExternCodeBlock.id;
1748 if(var_pexterncodeblocknode10 == NULL) {
1749 var28 = 1;
1750 } else {
1751 if(cltype29 >= var_pexterncodeblocknode10->type->table_size) {
1752 var28 = 0;
1753 } else {
1754 var28 = var_pexterncodeblocknode10->type->type_table[cltype29] == idtype30;
1755 }
1756 }
1757 if (!var28) {
1758 fprintf(stderr, "Runtime error: %s", "Assert failed");
1759 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22425);
1760 exit(1);
1761 }
1762 var31 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
1763 var32 = NULL;
1764 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var31->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var31, var_pdocnode2, var32, var_pvisibilitynode4, var_tkwnewnode5, var_pmethidnode6, var_psignaturenode7, var_tstringnode8, var_pexterncallsnode9, var_pexterncodeblocknode10) /* init_aexterninitpropdef on <var31:AExternInitPropdef>*/;
1765 CHECK_NEW_parser_nodes__AExternInitPropdef(var31);
1766 var_ppropdefnode1 = var31;
1767 var_node_list = var_ppropdefnode1;
1768 var33 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction511> */
1769 var34 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var33) /* go_to on <var_p:Parser>*/;
1770 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var34, var_node_list) /* push on <var_p:Parser>*/;
1771 RET_LABEL:;
1772 }
1773 /* method parser#ReduceAction511#action for (self: Object, Parser) */
1774 void VIRTUAL_parser__ReduceAction511__action(val* self, val* p0) {
1775 parser__ReduceAction511__action(self, p0);
1776 RET_LABEL:;
1777 }
1778 /* method parser#ReduceAction512#action for (self: ReduceAction512, Parser) */
1779 void parser__ReduceAction512__action(val* self, val* p0) {
1780 val* var_p /* var p: Parser */;
1781 val* var /* : null */;
1782 val* var_node_list /* var node_list: nullable Object */;
1783 val* var1 /* : nullable Object */;
1784 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
1785 val* var2 /* : nullable Object */;
1786 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
1787 val* var3 /* : nullable Object */;
1788 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
1789 val* var4 /* : nullable Object */;
1790 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
1791 val* var5 /* : nullable Object */;
1792 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1793 val* var6 /* : nullable Object */;
1794 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1795 val* var7 /* : nullable Object */;
1796 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1797 val* var8 /* : nullable Object */;
1798 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1799 val* var9 /* : nullable Object */;
1800 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1801 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
1802 short int var10 /* : Bool */;
1803 int cltype;
1804 int idtype;
1805 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
1806 short int var11 /* : Bool */;
1807 int cltype12;
1808 int idtype13;
1809 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
1810 short int var14 /* : Bool */;
1811 int cltype15;
1812 int idtype16;
1813 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
1814 short int var17 /* : Bool */;
1815 int cltype18;
1816 int idtype19;
1817 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
1818 short int var20 /* : Bool */;
1819 int cltype21;
1820 int idtype22;
1821 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
1822 short int var23 /* : Bool */;
1823 int cltype24;
1824 int idtype25;
1825 val* var_tstringnode8 /* var tstringnode8: nullable Object */;
1826 short int var26 /* : Bool */;
1827 int cltype27;
1828 int idtype28;
1829 val* var_pexterncallsnode9 /* var pexterncallsnode9: nullable Object */;
1830 short int var29 /* : Bool */;
1831 int cltype30;
1832 int idtype31;
1833 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
1834 short int var32 /* : Bool */;
1835 int cltype33;
1836 int idtype34;
1837 val* var35 /* : AExternInitPropdef */;
1838 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
1839 long var36 /* : Int */;
1840 long var37 /* : Int */;
1841 var_p = p0;
1842 var = NULL;
1843 var_node_list = var;
1844 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1845 var_nodearraylist9 = var1;
1846 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1847 var_nodearraylist8 = var2;
1848 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1849 var_nodearraylist7 = var3;
1850 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1851 var_nodearraylist6 = var4;
1852 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1853 var_nodearraylist5 = var5;
1854 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1855 var_nodearraylist4 = var6;
1856 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1857 var_nodearraylist3 = var7;
1858 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1859 var_nodearraylist2 = var8;
1860 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1861 var_nodearraylist1 = var9;
1862 var_pdocnode2 = var_nodearraylist1;
1863 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
1864 cltype = type_nullable_parser_nodes__ADoc.color;
1865 idtype = type_nullable_parser_nodes__ADoc.id;
1866 if(var_pdocnode2 == NULL) {
1867 var10 = 1;
1868 } else {
1869 if(cltype >= var_pdocnode2->type->table_size) {
1870 var10 = 0;
1871 } else {
1872 var10 = var_pdocnode2->type->type_table[cltype] == idtype;
1873 }
1874 }
1875 if (!var10) {
1876 fprintf(stderr, "Runtime error: %s", "Assert failed");
1877 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22456);
1878 exit(1);
1879 }
1880 var_tkwredefnode3 = var_nodearraylist2;
1881 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
1882 cltype12 = type_nullable_parser_nodes__TKwredef.color;
1883 idtype13 = type_nullable_parser_nodes__TKwredef.id;
1884 if(var_tkwredefnode3 == NULL) {
1885 var11 = 1;
1886 } else {
1887 if(cltype12 >= var_tkwredefnode3->type->table_size) {
1888 var11 = 0;
1889 } else {
1890 var11 = var_tkwredefnode3->type->type_table[cltype12] == idtype13;
1891 }
1892 }
1893 if (!var11) {
1894 fprintf(stderr, "Runtime error: %s", "Assert failed");
1895 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22458);
1896 exit(1);
1897 }
1898 var_pvisibilitynode4 = var_nodearraylist3;
1899 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
1900 cltype15 = type_nullable_parser_nodes__AVisibility.color;
1901 idtype16 = type_nullable_parser_nodes__AVisibility.id;
1902 if(var_pvisibilitynode4 == NULL) {
1903 var14 = 1;
1904 } else {
1905 if(cltype15 >= var_pvisibilitynode4->type->table_size) {
1906 var14 = 0;
1907 } else {
1908 var14 = var_pvisibilitynode4->type->type_table[cltype15] == idtype16;
1909 }
1910 }
1911 if (!var14) {
1912 fprintf(stderr, "Runtime error: %s", "Assert failed");
1913 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22460);
1914 exit(1);
1915 }
1916 var_tkwnewnode5 = var_nodearraylist4;
1917 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
1918 cltype18 = type_nullable_parser_nodes__TKwnew.color;
1919 idtype19 = type_nullable_parser_nodes__TKwnew.id;
1920 if(var_tkwnewnode5 == NULL) {
1921 var17 = 1;
1922 } else {
1923 if(cltype18 >= var_tkwnewnode5->type->table_size) {
1924 var17 = 0;
1925 } else {
1926 var17 = var_tkwnewnode5->type->type_table[cltype18] == idtype19;
1927 }
1928 }
1929 if (!var17) {
1930 fprintf(stderr, "Runtime error: %s", "Assert failed");
1931 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22462);
1932 exit(1);
1933 }
1934 var_pmethidnode6 = var_nodearraylist5;
1935 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
1936 cltype21 = type_nullable_parser_nodes__AMethid.color;
1937 idtype22 = type_nullable_parser_nodes__AMethid.id;
1938 if(var_pmethidnode6 == NULL) {
1939 var20 = 1;
1940 } else {
1941 if(cltype21 >= var_pmethidnode6->type->table_size) {
1942 var20 = 0;
1943 } else {
1944 var20 = var_pmethidnode6->type->type_table[cltype21] == idtype22;
1945 }
1946 }
1947 if (!var20) {
1948 fprintf(stderr, "Runtime error: %s", "Assert failed");
1949 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22464);
1950 exit(1);
1951 }
1952 var_psignaturenode7 = var_nodearraylist6;
1953 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
1954 cltype24 = type_nullable_parser_nodes__ASignature.color;
1955 idtype25 = type_nullable_parser_nodes__ASignature.id;
1956 if(var_psignaturenode7 == NULL) {
1957 var23 = 1;
1958 } else {
1959 if(cltype24 >= var_psignaturenode7->type->table_size) {
1960 var23 = 0;
1961 } else {
1962 var23 = var_psignaturenode7->type->type_table[cltype24] == idtype25;
1963 }
1964 }
1965 if (!var23) {
1966 fprintf(stderr, "Runtime error: %s", "Assert failed");
1967 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22466);
1968 exit(1);
1969 }
1970 var_tstringnode8 = var_nodearraylist7;
1971 /* <var_tstringnode8:nullable Object> isa nullable TString */
1972 cltype27 = type_nullable_parser_nodes__TString.color;
1973 idtype28 = type_nullable_parser_nodes__TString.id;
1974 if(var_tstringnode8 == NULL) {
1975 var26 = 1;
1976 } else {
1977 if(cltype27 >= var_tstringnode8->type->table_size) {
1978 var26 = 0;
1979 } else {
1980 var26 = var_tstringnode8->type->type_table[cltype27] == idtype28;
1981 }
1982 }
1983 if (!var26) {
1984 fprintf(stderr, "Runtime error: %s", "Assert failed");
1985 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22468);
1986 exit(1);
1987 }
1988 var_pexterncallsnode9 = var_nodearraylist8;
1989 /* <var_pexterncallsnode9:nullable Object> isa nullable AExternCalls */
1990 cltype30 = type_nullable_parser_nodes__AExternCalls.color;
1991 idtype31 = type_nullable_parser_nodes__AExternCalls.id;
1992 if(var_pexterncallsnode9 == NULL) {
1993 var29 = 1;
1994 } else {
1995 if(cltype30 >= var_pexterncallsnode9->type->table_size) {
1996 var29 = 0;
1997 } else {
1998 var29 = var_pexterncallsnode9->type->type_table[cltype30] == idtype31;
1999 }
2000 }
2001 if (!var29) {
2002 fprintf(stderr, "Runtime error: %s", "Assert failed");
2003 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22470);
2004 exit(1);
2005 }
2006 var_pexterncodeblocknode10 = var_nodearraylist9;
2007 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
2008 cltype33 = type_nullable_parser_nodes__AExternCodeBlock.color;
2009 idtype34 = type_nullable_parser_nodes__AExternCodeBlock.id;
2010 if(var_pexterncodeblocknode10 == NULL) {
2011 var32 = 1;
2012 } else {
2013 if(cltype33 >= var_pexterncodeblocknode10->type->table_size) {
2014 var32 = 0;
2015 } else {
2016 var32 = var_pexterncodeblocknode10->type->type_table[cltype33] == idtype34;
2017 }
2018 }
2019 if (!var32) {
2020 fprintf(stderr, "Runtime error: %s", "Assert failed");
2021 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22472);
2022 exit(1);
2023 }
2024 var35 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
2025 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var35->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var35, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwnewnode5, var_pmethidnode6, var_psignaturenode7, var_tstringnode8, var_pexterncallsnode9, var_pexterncodeblocknode10) /* init_aexterninitpropdef on <var35:AExternInitPropdef>*/;
2026 CHECK_NEW_parser_nodes__AExternInitPropdef(var35);
2027 var_ppropdefnode1 = var35;
2028 var_node_list = var_ppropdefnode1;
2029 var36 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction512> */
2030 var37 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var36) /* go_to on <var_p:Parser>*/;
2031 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var37, var_node_list) /* push on <var_p:Parser>*/;
2032 RET_LABEL:;
2033 }
2034 /* method parser#ReduceAction512#action for (self: Object, Parser) */
2035 void VIRTUAL_parser__ReduceAction512__action(val* self, val* p0) {
2036 parser__ReduceAction512__action(self, p0);
2037 RET_LABEL:;
2038 }
2039 /* method parser#ReduceAction513#action for (self: ReduceAction513, Parser) */
2040 void parser__ReduceAction513__action(val* self, val* p0) {
2041 val* var_p /* var p: Parser */;
2042 val* var /* : null */;
2043 val* var_node_list /* var node_list: nullable Object */;
2044 val* var1 /* : nullable Object */;
2045 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2046 val* var2 /* : nullable Object */;
2047 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2048 val* var_pannotationsnode1 /* var pannotationsnode1: nullable Object */;
2049 long var3 /* : Int */;
2050 long var4 /* : Int */;
2051 var_p = p0;
2052 var = NULL;
2053 var_node_list = var;
2054 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2055 var_nodearraylist2 = var1;
2056 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2057 var_nodearraylist1 = var2;
2058 var_pannotationsnode1 = var_nodearraylist2;
2059 var_node_list = var_pannotationsnode1;
2060 var3 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction513> */
2061 var4 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var3) /* go_to on <var_p:Parser>*/;
2062 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var4, var_node_list) /* push on <var_p:Parser>*/;
2063 RET_LABEL:;
2064 }
2065 /* method parser#ReduceAction513#action for (self: Object, Parser) */
2066 void VIRTUAL_parser__ReduceAction513__action(val* self, val* p0) {
2067 parser__ReduceAction513__action(self, p0);
2068 RET_LABEL:;
2069 }
2070 /* method parser#ReduceAction514#action for (self: ReduceAction514, Parser) */
2071 void parser__ReduceAction514__action(val* self, val* p0) {
2072 val* var_p /* var p: Parser */;
2073 val* var /* : null */;
2074 val* var_node_list /* var node_list: nullable Object */;
2075 val* var1 /* : nullable Object */;
2076 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2077 val* var2 /* : nullable Object */;
2078 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2079 val* var3 /* : nullable Object */;
2080 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2081 val* var4 /* : nullable Object */;
2082 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2083 val* var_pannotationsnode1 /* var pannotationsnode1: nullable Object */;
2084 long var5 /* : Int */;
2085 long var6 /* : Int */;
2086 var_p = p0;
2087 var = NULL;
2088 var_node_list = var;
2089 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2090 var_nodearraylist4 = var1;
2091 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2092 var_nodearraylist3 = var2;
2093 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2094 var_nodearraylist2 = var3;
2095 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2096 var_nodearraylist1 = var4;
2097 var_pannotationsnode1 = var_nodearraylist3;
2098 var_node_list = var_pannotationsnode1;
2099 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction514> */
2100 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
2101 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
2102 RET_LABEL:;
2103 }
2104 /* method parser#ReduceAction514#action for (self: Object, Parser) */
2105 void VIRTUAL_parser__ReduceAction514__action(val* self, val* p0) {
2106 parser__ReduceAction514__action(self, p0);
2107 RET_LABEL:;
2108 }
2109 /* method parser#ReduceAction516#action for (self: ReduceAction516, Parser) */
2110 void parser__ReduceAction516__action(val* self, val* p0) {
2111 val* var_p /* var p: Parser */;
2112 val* var /* : null */;
2113 val* var_node_list /* var node_list: nullable Object */;
2114 val* var1 /* : nullable Object */;
2115 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2116 val* var2 /* : nullable Object */;
2117 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2118 val* var3 /* : nullable Object */;
2119 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2120 val* var_pannotationsnode1 /* var pannotationsnode1: nullable Object */;
2121 long var4 /* : Int */;
2122 long var5 /* : Int */;
2123 var_p = p0;
2124 var = NULL;
2125 var_node_list = var;
2126 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2127 var_nodearraylist3 = var1;
2128 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2129 var_nodearraylist2 = var2;
2130 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2131 var_nodearraylist1 = var3;
2132 var_pannotationsnode1 = var_nodearraylist3;
2133 var_node_list = var_pannotationsnode1;
2134 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction516> */
2135 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
2136 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
2137 RET_LABEL:;
2138 }
2139 /* method parser#ReduceAction516#action for (self: Object, Parser) */
2140 void VIRTUAL_parser__ReduceAction516__action(val* self, val* p0) {
2141 parser__ReduceAction516__action(self, p0);
2142 RET_LABEL:;
2143 }
2144 /* method parser#ReduceAction517#action for (self: ReduceAction517, Parser) */
2145 void parser__ReduceAction517__action(val* self, val* p0) {
2146 val* var_p /* var p: Parser */;
2147 val* var /* : null */;
2148 val* var_node_list /* var node_list: nullable Object */;
2149 val* var1 /* : nullable Object */;
2150 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2151 val* var_tkwreadablenode3 /* var tkwreadablenode3: nullable Object */;
2152 short int var2 /* : Bool */;
2153 int cltype;
2154 int idtype;
2155 val* var3 /* : AReadAble */;
2156 val* var4 /* : null */;
2157 val* var_pablenode1 /* var pablenode1: nullable AReadAble */;
2158 long var5 /* : Int */;
2159 long var6 /* : Int */;
2160 var_p = p0;
2161 var = NULL;
2162 var_node_list = var;
2163 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2164 var_nodearraylist1 = var1;
2165 var_tkwreadablenode3 = var_nodearraylist1;
2166 /* <var_tkwreadablenode3:nullable Object> isa nullable TKwreadable */
2167 cltype = type_nullable_parser_nodes__TKwreadable.color;
2168 idtype = type_nullable_parser_nodes__TKwreadable.id;
2169 if(var_tkwreadablenode3 == NULL) {
2170 var2 = 1;
2171 } else {
2172 if(cltype >= var_tkwreadablenode3->type->table_size) {
2173 var2 = 0;
2174 } else {
2175 var2 = var_tkwreadablenode3->type->type_table[cltype] == idtype;
2176 }
2177 }
2178 if (!var2) {
2179 fprintf(stderr, "Runtime error: %s", "Assert failed");
2180 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22534);
2181 exit(1);
2182 }
2183 var3 = NEW_parser_nodes__AReadAble(&type_parser_nodes__AReadAble);
2184 var4 = NULL;
2185 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AReadAble__init_areadable]))(var3, var4, var_tkwreadablenode3) /* init_areadable on <var3:AReadAble>*/;
2186 CHECK_NEW_parser_nodes__AReadAble(var3);
2187 var_pablenode1 = var3;
2188 var_node_list = var_pablenode1;
2189 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction517> */
2190 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
2191 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
2192 RET_LABEL:;
2193 }
2194 /* method parser#ReduceAction517#action for (self: Object, Parser) */
2195 void VIRTUAL_parser__ReduceAction517__action(val* self, val* p0) {
2196 parser__ReduceAction517__action(self, p0);
2197 RET_LABEL:;
2198 }
2199 /* method parser#ReduceAction518#action for (self: ReduceAction518, Parser) */
2200 void parser__ReduceAction518__action(val* self, val* p0) {
2201 val* var_p /* var p: Parser */;
2202 val* var /* : null */;
2203 val* var_node_list /* var node_list: nullable Object */;
2204 val* var1 /* : nullable Object */;
2205 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2206 val* var2 /* : nullable Object */;
2207 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2208 val* var_tkwredefnode2 /* var tkwredefnode2: nullable Object */;
2209 short int var3 /* : Bool */;
2210 int cltype;
2211 int idtype;
2212 val* var_tkwreadablenode3 /* var tkwreadablenode3: nullable Object */;
2213 short int var4 /* : Bool */;
2214 int cltype5;
2215 int idtype6;
2216 val* var7 /* : AReadAble */;
2217 val* var_pablenode1 /* var pablenode1: nullable AReadAble */;
2218 long var8 /* : Int */;
2219 long var9 /* : Int */;
2220 var_p = p0;
2221 var = NULL;
2222 var_node_list = var;
2223 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2224 var_nodearraylist2 = var1;
2225 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2226 var_nodearraylist1 = var2;
2227 var_tkwredefnode2 = var_nodearraylist1;
2228 /* <var_tkwredefnode2:nullable Object> isa nullable TKwredef */
2229 cltype = type_nullable_parser_nodes__TKwredef.color;
2230 idtype = type_nullable_parser_nodes__TKwredef.id;
2231 if(var_tkwredefnode2 == NULL) {
2232 var3 = 1;
2233 } else {
2234 if(cltype >= var_tkwredefnode2->type->table_size) {
2235 var3 = 0;
2236 } else {
2237 var3 = var_tkwredefnode2->type->type_table[cltype] == idtype;
2238 }
2239 }
2240 if (!var3) {
2241 fprintf(stderr, "Runtime error: %s", "Assert failed");
2242 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22551);
2243 exit(1);
2244 }
2245 var_tkwreadablenode3 = var_nodearraylist2;
2246 /* <var_tkwreadablenode3:nullable Object> isa nullable TKwreadable */
2247 cltype5 = type_nullable_parser_nodes__TKwreadable.color;
2248 idtype6 = type_nullable_parser_nodes__TKwreadable.id;
2249 if(var_tkwreadablenode3 == NULL) {
2250 var4 = 1;
2251 } else {
2252 if(cltype5 >= var_tkwreadablenode3->type->table_size) {
2253 var4 = 0;
2254 } else {
2255 var4 = var_tkwreadablenode3->type->type_table[cltype5] == idtype6;
2256 }
2257 }
2258 if (!var4) {
2259 fprintf(stderr, "Runtime error: %s", "Assert failed");
2260 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22553);
2261 exit(1);
2262 }
2263 var7 = NEW_parser_nodes__AReadAble(&type_parser_nodes__AReadAble);
2264 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AReadAble__init_areadable]))(var7, var_tkwredefnode2, var_tkwreadablenode3) /* init_areadable on <var7:AReadAble>*/;
2265 CHECK_NEW_parser_nodes__AReadAble(var7);
2266 var_pablenode1 = var7;
2267 var_node_list = var_pablenode1;
2268 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction518> */
2269 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
2270 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
2271 RET_LABEL:;
2272 }
2273 /* method parser#ReduceAction518#action for (self: Object, Parser) */
2274 void VIRTUAL_parser__ReduceAction518__action(val* self, val* p0) {
2275 parser__ReduceAction518__action(self, p0);
2276 RET_LABEL:;
2277 }
2278 /* method parser#ReduceAction519#action for (self: ReduceAction519, Parser) */
2279 void parser__ReduceAction519__action(val* self, val* p0) {
2280 val* var_p /* var p: Parser */;
2281 val* var /* : null */;
2282 val* var_node_list /* var node_list: nullable Object */;
2283 val* var1 /* : nullable Object */;
2284 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2285 val* var_tkwwritablenode4 /* var tkwwritablenode4: nullable Object */;
2286 short int var2 /* : Bool */;
2287 int cltype;
2288 int idtype;
2289 val* var3 /* : AWriteAble */;
2290 val* var4 /* : null */;
2291 val* var5 /* : null */;
2292 val* var_pablenode1 /* var pablenode1: nullable AWriteAble */;
2293 long var6 /* : Int */;
2294 long var7 /* : Int */;
2295 var_p = p0;
2296 var = NULL;
2297 var_node_list = var;
2298 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2299 var_nodearraylist1 = var1;
2300 var_tkwwritablenode4 = var_nodearraylist1;
2301 /* <var_tkwwritablenode4:nullable Object> isa nullable TKwwritable */
2302 cltype = type_nullable_parser_nodes__TKwwritable.color;
2303 idtype = type_nullable_parser_nodes__TKwwritable.id;
2304 if(var_tkwwritablenode4 == NULL) {
2305 var2 = 1;
2306 } else {
2307 if(cltype >= var_tkwwritablenode4->type->table_size) {
2308 var2 = 0;
2309 } else {
2310 var2 = var_tkwwritablenode4->type->type_table[cltype] == idtype;
2311 }
2312 }
2313 if (!var2) {
2314 fprintf(stderr, "Runtime error: %s", "Assert failed");
2315 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22569);
2316 exit(1);
2317 }
2318 var3 = NEW_parser_nodes__AWriteAble(&type_parser_nodes__AWriteAble);
2319 var4 = NULL;
2320 var5 = NULL;
2321 ((void (*)(val*, val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AWriteAble__init_awriteable]))(var3, var4, var5, var_tkwwritablenode4) /* init_awriteable on <var3:AWriteAble>*/;
2322 CHECK_NEW_parser_nodes__AWriteAble(var3);
2323 var_pablenode1 = var3;
2324 var_node_list = var_pablenode1;
2325 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction519> */
2326 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
2327 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
2328 RET_LABEL:;
2329 }
2330 /* method parser#ReduceAction519#action for (self: Object, Parser) */
2331 void VIRTUAL_parser__ReduceAction519__action(val* self, val* p0) {
2332 parser__ReduceAction519__action(self, p0);
2333 RET_LABEL:;
2334 }
2335 /* method parser#ReduceAction520#action for (self: ReduceAction520, Parser) */
2336 void parser__ReduceAction520__action(val* self, val* p0) {
2337 val* var_p /* var p: Parser */;
2338 val* var /* : null */;
2339 val* var_node_list /* var node_list: nullable Object */;
2340 val* var1 /* : nullable Object */;
2341 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2342 val* var2 /* : nullable Object */;
2343 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2344 val* var_tkwredefnode2 /* var tkwredefnode2: nullable Object */;
2345 short int var3 /* : Bool */;
2346 int cltype;
2347 int idtype;
2348 val* var_tkwwritablenode4 /* var tkwwritablenode4: nullable Object */;
2349 short int var4 /* : Bool */;
2350 int cltype5;
2351 int idtype6;
2352 val* var7 /* : AWriteAble */;
2353 val* var8 /* : null */;
2354 val* var_pablenode1 /* var pablenode1: nullable AWriteAble */;
2355 long var9 /* : Int */;
2356 long var10 /* : Int */;
2357 var_p = p0;
2358 var = NULL;
2359 var_node_list = var;
2360 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2361 var_nodearraylist2 = var1;
2362 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2363 var_nodearraylist1 = var2;
2364 var_tkwredefnode2 = var_nodearraylist1;
2365 /* <var_tkwredefnode2:nullable Object> isa nullable TKwredef */
2366 cltype = type_nullable_parser_nodes__TKwredef.color;
2367 idtype = type_nullable_parser_nodes__TKwredef.id;
2368 if(var_tkwredefnode2 == NULL) {
2369 var3 = 1;
2370 } else {
2371 if(cltype >= var_tkwredefnode2->type->table_size) {
2372 var3 = 0;
2373 } else {
2374 var3 = var_tkwredefnode2->type->type_table[cltype] == idtype;
2375 }
2376 }
2377 if (!var3) {
2378 fprintf(stderr, "Runtime error: %s", "Assert failed");
2379 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22587);
2380 exit(1);
2381 }
2382 var_tkwwritablenode4 = var_nodearraylist2;
2383 /* <var_tkwwritablenode4:nullable Object> isa nullable TKwwritable */
2384 cltype5 = type_nullable_parser_nodes__TKwwritable.color;
2385 idtype6 = type_nullable_parser_nodes__TKwwritable.id;
2386 if(var_tkwwritablenode4 == NULL) {
2387 var4 = 1;
2388 } else {
2389 if(cltype5 >= var_tkwwritablenode4->type->table_size) {
2390 var4 = 0;
2391 } else {
2392 var4 = var_tkwwritablenode4->type->type_table[cltype5] == idtype6;
2393 }
2394 }
2395 if (!var4) {
2396 fprintf(stderr, "Runtime error: %s", "Assert failed");
2397 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22589);
2398 exit(1);
2399 }
2400 var7 = NEW_parser_nodes__AWriteAble(&type_parser_nodes__AWriteAble);
2401 var8 = NULL;
2402 ((void (*)(val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AWriteAble__init_awriteable]))(var7, var_tkwredefnode2, var8, var_tkwwritablenode4) /* init_awriteable on <var7:AWriteAble>*/;
2403 CHECK_NEW_parser_nodes__AWriteAble(var7);
2404 var_pablenode1 = var7;
2405 var_node_list = var_pablenode1;
2406 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction520> */
2407 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
2408 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
2409 RET_LABEL:;
2410 }
2411 /* method parser#ReduceAction520#action for (self: Object, Parser) */
2412 void VIRTUAL_parser__ReduceAction520__action(val* self, val* p0) {
2413 parser__ReduceAction520__action(self, p0);
2414 RET_LABEL:;
2415 }
2416 /* method parser#ReduceAction521#action for (self: ReduceAction521, Parser) */
2417 void parser__ReduceAction521__action(val* self, val* p0) {
2418 val* var_p /* var p: Parser */;
2419 val* var /* : null */;
2420 val* var_node_list /* var node_list: nullable Object */;
2421 val* var1 /* : nullable Object */;
2422 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2423 val* var2 /* : nullable Object */;
2424 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2425 val* var_pvisibilitynode3 /* var pvisibilitynode3: nullable Object */;
2426 short int var3 /* : Bool */;
2427 int cltype;
2428 int idtype;
2429 val* var_tkwwritablenode4 /* var tkwwritablenode4: nullable Object */;
2430 short int var4 /* : Bool */;
2431 int cltype5;
2432 int idtype6;
2433 val* var7 /* : AWriteAble */;
2434 val* var8 /* : null */;
2435 val* var_pablenode1 /* var pablenode1: nullable AWriteAble */;
2436 long var9 /* : Int */;
2437 long var10 /* : Int */;
2438 var_p = p0;
2439 var = NULL;
2440 var_node_list = var;
2441 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2442 var_nodearraylist2 = var1;
2443 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2444 var_nodearraylist1 = var2;
2445 var_pvisibilitynode3 = var_nodearraylist1;
2446 /* <var_pvisibilitynode3:nullable Object> isa nullable AVisibility */
2447 cltype = type_nullable_parser_nodes__AVisibility.color;
2448 idtype = type_nullable_parser_nodes__AVisibility.id;
2449 if(var_pvisibilitynode3 == NULL) {
2450 var3 = 1;
2451 } else {
2452 if(cltype >= var_pvisibilitynode3->type->table_size) {
2453 var3 = 0;
2454 } else {
2455 var3 = var_pvisibilitynode3->type->type_table[cltype] == idtype;
2456 }
2457 }
2458 if (!var3) {
2459 fprintf(stderr, "Runtime error: %s", "Assert failed");
2460 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22607);
2461 exit(1);
2462 }
2463 var_tkwwritablenode4 = var_nodearraylist2;
2464 /* <var_tkwwritablenode4:nullable Object> isa nullable TKwwritable */
2465 cltype5 = type_nullable_parser_nodes__TKwwritable.color;
2466 idtype6 = type_nullable_parser_nodes__TKwwritable.id;
2467 if(var_tkwwritablenode4 == NULL) {
2468 var4 = 1;
2469 } else {
2470 if(cltype5 >= var_tkwwritablenode4->type->table_size) {
2471 var4 = 0;
2472 } else {
2473 var4 = var_tkwwritablenode4->type->type_table[cltype5] == idtype6;
2474 }
2475 }
2476 if (!var4) {
2477 fprintf(stderr, "Runtime error: %s", "Assert failed");
2478 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22609);
2479 exit(1);
2480 }
2481 var7 = NEW_parser_nodes__AWriteAble(&type_parser_nodes__AWriteAble);
2482 var8 = NULL;
2483 ((void (*)(val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AWriteAble__init_awriteable]))(var7, var8, var_pvisibilitynode3, var_tkwwritablenode4) /* init_awriteable on <var7:AWriteAble>*/;
2484 CHECK_NEW_parser_nodes__AWriteAble(var7);
2485 var_pablenode1 = var7;
2486 var_node_list = var_pablenode1;
2487 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction521> */
2488 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
2489 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
2490 RET_LABEL:;
2491 }
2492 /* method parser#ReduceAction521#action for (self: Object, Parser) */
2493 void VIRTUAL_parser__ReduceAction521__action(val* self, val* p0) {
2494 parser__ReduceAction521__action(self, p0);
2495 RET_LABEL:;
2496 }
2497 /* method parser#ReduceAction522#action for (self: ReduceAction522, Parser) */
2498 void parser__ReduceAction522__action(val* self, val* p0) {
2499 val* var_p /* var p: Parser */;
2500 val* var /* : null */;
2501 val* var_node_list /* var node_list: nullable Object */;
2502 val* var1 /* : nullable Object */;
2503 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2504 val* var2 /* : nullable Object */;
2505 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2506 val* var3 /* : nullable Object */;
2507 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2508 val* var_tkwredefnode2 /* var tkwredefnode2: nullable Object */;
2509 short int var4 /* : Bool */;
2510 int cltype;
2511 int idtype;
2512 val* var_pvisibilitynode3 /* var pvisibilitynode3: nullable Object */;
2513 short int var5 /* : Bool */;
2514 int cltype6;
2515 int idtype7;
2516 val* var_tkwwritablenode4 /* var tkwwritablenode4: nullable Object */;
2517 short int var8 /* : Bool */;
2518 int cltype9;
2519 int idtype10;
2520 val* var11 /* : AWriteAble */;
2521 val* var_pablenode1 /* var pablenode1: nullable AWriteAble */;
2522 long var12 /* : Int */;
2523 long var13 /* : Int */;
2524 var_p = p0;
2525 var = NULL;
2526 var_node_list = var;
2527 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2528 var_nodearraylist3 = var1;
2529 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2530 var_nodearraylist2 = var2;
2531 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2532 var_nodearraylist1 = var3;
2533 var_tkwredefnode2 = var_nodearraylist1;
2534 /* <var_tkwredefnode2:nullable Object> isa nullable TKwredef */
2535 cltype = type_nullable_parser_nodes__TKwredef.color;
2536 idtype = type_nullable_parser_nodes__TKwredef.id;
2537 if(var_tkwredefnode2 == NULL) {
2538 var4 = 1;
2539 } else {
2540 if(cltype >= var_tkwredefnode2->type->table_size) {
2541 var4 = 0;
2542 } else {
2543 var4 = var_tkwredefnode2->type->type_table[cltype] == idtype;
2544 }
2545 }
2546 if (!var4) {
2547 fprintf(stderr, "Runtime error: %s", "Assert failed");
2548 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22628);
2549 exit(1);
2550 }
2551 var_pvisibilitynode3 = var_nodearraylist2;
2552 /* <var_pvisibilitynode3:nullable Object> isa nullable AVisibility */
2553 cltype6 = type_nullable_parser_nodes__AVisibility.color;
2554 idtype7 = type_nullable_parser_nodes__AVisibility.id;
2555 if(var_pvisibilitynode3 == NULL) {
2556 var5 = 1;
2557 } else {
2558 if(cltype6 >= var_pvisibilitynode3->type->table_size) {
2559 var5 = 0;
2560 } else {
2561 var5 = var_pvisibilitynode3->type->type_table[cltype6] == idtype7;
2562 }
2563 }
2564 if (!var5) {
2565 fprintf(stderr, "Runtime error: %s", "Assert failed");
2566 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22630);
2567 exit(1);
2568 }
2569 var_tkwwritablenode4 = var_nodearraylist3;
2570 /* <var_tkwwritablenode4:nullable Object> isa nullable TKwwritable */
2571 cltype9 = type_nullable_parser_nodes__TKwwritable.color;
2572 idtype10 = type_nullable_parser_nodes__TKwwritable.id;
2573 if(var_tkwwritablenode4 == NULL) {
2574 var8 = 1;
2575 } else {
2576 if(cltype9 >= var_tkwwritablenode4->type->table_size) {
2577 var8 = 0;
2578 } else {
2579 var8 = var_tkwwritablenode4->type->type_table[cltype9] == idtype10;
2580 }
2581 }
2582 if (!var8) {
2583 fprintf(stderr, "Runtime error: %s", "Assert failed");
2584 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22632);
2585 exit(1);
2586 }
2587 var11 = NEW_parser_nodes__AWriteAble(&type_parser_nodes__AWriteAble);
2588 ((void (*)(val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AWriteAble__init_awriteable]))(var11, var_tkwredefnode2, var_pvisibilitynode3, var_tkwwritablenode4) /* init_awriteable on <var11:AWriteAble>*/;
2589 CHECK_NEW_parser_nodes__AWriteAble(var11);
2590 var_pablenode1 = var11;
2591 var_node_list = var_pablenode1;
2592 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction522> */
2593 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
2594 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
2595 RET_LABEL:;
2596 }
2597 /* method parser#ReduceAction522#action for (self: Object, Parser) */
2598 void VIRTUAL_parser__ReduceAction522__action(val* self, val* p0) {
2599 parser__ReduceAction522__action(self, p0);
2600 RET_LABEL:;
2601 }
2602 /* method parser#ReduceAction523#action for (self: ReduceAction523, Parser) */
2603 void parser__ReduceAction523__action(val* self, val* p0) {
2604 val* var_p /* var p: Parser */;
2605 val* var /* : null */;
2606 val* var_node_list /* var node_list: nullable Object */;
2607 val* var1 /* : APublicVisibility */;
2608 val* var_pvisibilitynode1 /* var pvisibilitynode1: nullable APublicVisibility */;
2609 long var2 /* : Int */;
2610 long var3 /* : Int */;
2611 var_p = p0;
2612 var = NULL;
2613 var_node_list = var;
2614 var1 = NEW_parser_nodes__APublicVisibility(&type_parser_nodes__APublicVisibility);
2615 ((void (*)(val*))(var1->class->vft[COLOR_parser_prod__APublicVisibility__init_apublicvisibility]))(var1) /* init_apublicvisibility on <var1:APublicVisibility>*/;
2616 CHECK_NEW_parser_nodes__APublicVisibility(var1);
2617 var_pvisibilitynode1 = var1;
2618 var_node_list = var_pvisibilitynode1;
2619 var2 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction523> */
2620 var3 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var2) /* go_to on <var_p:Parser>*/;
2621 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var3, var_node_list) /* push on <var_p:Parser>*/;
2622 RET_LABEL:;
2623 }
2624 /* method parser#ReduceAction523#action for (self: Object, Parser) */
2625 void VIRTUAL_parser__ReduceAction523__action(val* self, val* p0) {
2626 parser__ReduceAction523__action(self, p0);
2627 RET_LABEL:;
2628 }
2629 /* method parser#ReduceAction524#action for (self: ReduceAction524, Parser) */
2630 void parser__ReduceAction524__action(val* self, val* p0) {
2631 val* var_p /* var p: Parser */;
2632 val* var /* : null */;
2633 val* var_node_list /* var node_list: nullable Object */;
2634 val* var1 /* : nullable Object */;
2635 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2636 val* var2 /* : nullable Object */;
2637 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2638 val* var_tkwprivatenode2 /* var tkwprivatenode2: nullable Object */;
2639 short int var3 /* : Bool */;
2640 int cltype;
2641 int idtype;
2642 val* var4 /* : APrivateVisibility */;
2643 val* var_pvisibilitynode1 /* var pvisibilitynode1: nullable APrivateVisibility */;
2644 long var5 /* : Int */;
2645 long var6 /* : Int */;
2646 var_p = p0;
2647 var = NULL;
2648 var_node_list = var;
2649 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2650 var_nodearraylist2 = var1;
2651 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2652 var_nodearraylist1 = var2;
2653 var_tkwprivatenode2 = var_nodearraylist1;
2654 /* <var_tkwprivatenode2:nullable Object> isa nullable TKwprivate */
2655 cltype = type_nullable_parser_nodes__TKwprivate.color;
2656 idtype = type_nullable_parser_nodes__TKwprivate.id;
2657 if(var_tkwprivatenode2 == NULL) {
2658 var3 = 1;
2659 } else {
2660 if(cltype >= var_tkwprivatenode2->type->table_size) {
2661 var3 = 0;
2662 } else {
2663 var3 = var_tkwprivatenode2->type->type_table[cltype] == idtype;
2664 }
2665 }
2666 if (!var3) {
2667 fprintf(stderr, "Runtime error: %s", "Assert failed");
2668 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22660);
2669 exit(1);
2670 }
2671 var4 = NEW_parser_nodes__APrivateVisibility(&type_parser_nodes__APrivateVisibility);
2672 ((void (*)(val*, val*))(var4->class->vft[COLOR_parser_prod__APrivateVisibility__init_aprivatevisibility]))(var4, var_tkwprivatenode2) /* init_aprivatevisibility on <var4:APrivateVisibility>*/;
2673 CHECK_NEW_parser_nodes__APrivateVisibility(var4);
2674 var_pvisibilitynode1 = var4;
2675 var_node_list = var_pvisibilitynode1;
2676 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction524> */
2677 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
2678 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
2679 RET_LABEL:;
2680 }
2681 /* method parser#ReduceAction524#action for (self: Object, Parser) */
2682 void VIRTUAL_parser__ReduceAction524__action(val* self, val* p0) {
2683 parser__ReduceAction524__action(self, p0);
2684 RET_LABEL:;
2685 }
2686 /* method parser#ReduceAction525#action for (self: ReduceAction525, Parser) */
2687 void parser__ReduceAction525__action(val* self, val* p0) {
2688 val* var_p /* var p: Parser */;
2689 val* var /* : null */;
2690 val* var_node_list /* var node_list: nullable Object */;
2691 val* var1 /* : nullable Object */;
2692 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2693 val* var2 /* : nullable Object */;
2694 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2695 val* var_tkwprotectednode2 /* var tkwprotectednode2: nullable Object */;
2696 short int var3 /* : Bool */;
2697 int cltype;
2698 int idtype;
2699 val* var4 /* : AProtectedVisibility */;
2700 val* var_pvisibilitynode1 /* var pvisibilitynode1: nullable AProtectedVisibility */;
2701 long var5 /* : Int */;
2702 long var6 /* : Int */;
2703 var_p = p0;
2704 var = NULL;
2705 var_node_list = var;
2706 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2707 var_nodearraylist2 = var1;
2708 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2709 var_nodearraylist1 = var2;
2710 var_tkwprotectednode2 = var_nodearraylist1;
2711 /* <var_tkwprotectednode2:nullable Object> isa nullable TKwprotected */
2712 cltype = type_nullable_parser_nodes__TKwprotected.color;
2713 idtype = type_nullable_parser_nodes__TKwprotected.id;
2714 if(var_tkwprotectednode2 == NULL) {
2715 var3 = 1;
2716 } else {
2717 if(cltype >= var_tkwprotectednode2->type->table_size) {
2718 var3 = 0;
2719 } else {
2720 var3 = var_tkwprotectednode2->type->type_table[cltype] == idtype;
2721 }
2722 }
2723 if (!var3) {
2724 fprintf(stderr, "Runtime error: %s", "Assert failed");
2725 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22676);
2726 exit(1);
2727 }
2728 var4 = NEW_parser_nodes__AProtectedVisibility(&type_parser_nodes__AProtectedVisibility);
2729 ((void (*)(val*, val*))(var4->class->vft[COLOR_parser_prod__AProtectedVisibility__init_aprotectedvisibility]))(var4, var_tkwprotectednode2) /* init_aprotectedvisibility on <var4:AProtectedVisibility>*/;
2730 CHECK_NEW_parser_nodes__AProtectedVisibility(var4);
2731 var_pvisibilitynode1 = var4;
2732 var_node_list = var_pvisibilitynode1;
2733 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction525> */
2734 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
2735 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
2736 RET_LABEL:;
2737 }
2738 /* method parser#ReduceAction525#action for (self: Object, Parser) */
2739 void VIRTUAL_parser__ReduceAction525__action(val* self, val* p0) {
2740 parser__ReduceAction525__action(self, p0);
2741 RET_LABEL:;
2742 }
2743 /* method parser#ReduceAction526#action for (self: ReduceAction526, Parser) */
2744 void parser__ReduceAction526__action(val* self, val* p0) {
2745 val* var_p /* var p: Parser */;
2746 val* var /* : null */;
2747 val* var_node_list /* var node_list: nullable Object */;
2748 val* var1 /* : nullable Object */;
2749 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2750 val* var2 /* : nullable Object */;
2751 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2752 val* var_tkwintrudenode2 /* var tkwintrudenode2: nullable Object */;
2753 short int var3 /* : Bool */;
2754 int cltype;
2755 int idtype;
2756 val* var4 /* : AIntrudeVisibility */;
2757 val* var_pvisibilitynode1 /* var pvisibilitynode1: nullable AIntrudeVisibility */;
2758 long var5 /* : Int */;
2759 long var6 /* : Int */;
2760 var_p = p0;
2761 var = NULL;
2762 var_node_list = var;
2763 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2764 var_nodearraylist2 = var1;
2765 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2766 var_nodearraylist1 = var2;
2767 var_tkwintrudenode2 = var_nodearraylist1;
2768 /* <var_tkwintrudenode2:nullable Object> isa nullable TKwintrude */
2769 cltype = type_nullable_parser_nodes__TKwintrude.color;
2770 idtype = type_nullable_parser_nodes__TKwintrude.id;
2771 if(var_tkwintrudenode2 == NULL) {
2772 var3 = 1;
2773 } else {
2774 if(cltype >= var_tkwintrudenode2->type->table_size) {
2775 var3 = 0;
2776 } else {
2777 var3 = var_tkwintrudenode2->type->type_table[cltype] == idtype;
2778 }
2779 }
2780 if (!var3) {
2781 fprintf(stderr, "Runtime error: %s", "Assert failed");
2782 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22692);
2783 exit(1);
2784 }
2785 var4 = NEW_parser_nodes__AIntrudeVisibility(&type_parser_nodes__AIntrudeVisibility);
2786 ((void (*)(val*, val*))(var4->class->vft[COLOR_parser_prod__AIntrudeVisibility__init_aintrudevisibility]))(var4, var_tkwintrudenode2) /* init_aintrudevisibility on <var4:AIntrudeVisibility>*/;
2787 CHECK_NEW_parser_nodes__AIntrudeVisibility(var4);
2788 var_pvisibilitynode1 = var4;
2789 var_node_list = var_pvisibilitynode1;
2790 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction526> */
2791 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
2792 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
2793 RET_LABEL:;
2794 }
2795 /* method parser#ReduceAction526#action for (self: Object, Parser) */
2796 void VIRTUAL_parser__ReduceAction526__action(val* self, val* p0) {
2797 parser__ReduceAction526__action(self, p0);
2798 RET_LABEL:;
2799 }
2800 /* method parser#ReduceAction527#action for (self: ReduceAction527, Parser) */
2801 void parser__ReduceAction527__action(val* self, val* p0) {
2802 val* var_p /* var p: Parser */;
2803 val* var /* : null */;
2804 val* var_node_list /* var node_list: nullable Object */;
2805 val* var1 /* : nullable Object */;
2806 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2807 val* var_tidnode2 /* var tidnode2: nullable Object */;
2808 short int var2 /* : Bool */;
2809 int cltype;
2810 int idtype;
2811 val* var3 /* : AIdMethid */;
2812 val* var_pmethidnode1 /* var pmethidnode1: nullable AIdMethid */;
2813 long var4 /* : Int */;
2814 long var5 /* : Int */;
2815 var_p = p0;
2816 var = NULL;
2817 var_node_list = var;
2818 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2819 var_nodearraylist1 = var1;
2820 var_tidnode2 = var_nodearraylist1;
2821 /* <var_tidnode2:nullable Object> isa nullable TId */
2822 cltype = type_nullable_parser_nodes__TId.color;
2823 idtype = type_nullable_parser_nodes__TId.id;
2824 if(var_tidnode2 == NULL) {
2825 var2 = 1;
2826 } else {
2827 if(cltype >= var_tidnode2->type->table_size) {
2828 var2 = 0;
2829 } else {
2830 var2 = var_tidnode2->type->type_table[cltype] == idtype;
2831 }
2832 }
2833 if (!var2) {
2834 fprintf(stderr, "Runtime error: %s", "Assert failed");
2835 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22707);
2836 exit(1);
2837 }
2838 var3 = NEW_parser_nodes__AIdMethid(&type_parser_nodes__AIdMethid);
2839 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AIdMethid__init_aidmethid]))(var3, var_tidnode2) /* init_aidmethid on <var3:AIdMethid>*/;
2840 CHECK_NEW_parser_nodes__AIdMethid(var3);
2841 var_pmethidnode1 = var3;
2842 var_node_list = var_pmethidnode1;
2843 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction527> */
2844 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
2845 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
2846 RET_LABEL:;
2847 }
2848 /* method parser#ReduceAction527#action for (self: Object, Parser) */
2849 void VIRTUAL_parser__ReduceAction527__action(val* self, val* p0) {
2850 parser__ReduceAction527__action(self, p0);
2851 RET_LABEL:;
2852 }
2853 /* method parser#ReduceAction528#action for (self: ReduceAction528, Parser) */
2854 void parser__ReduceAction528__action(val* self, val* p0) {
2855 val* var_p /* var p: Parser */;
2856 val* var /* : null */;
2857 val* var_node_list /* var node_list: nullable Object */;
2858 val* var1 /* : nullable Object */;
2859 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2860 val* var_tplusnode2 /* var tplusnode2: nullable Object */;
2861 short int var2 /* : Bool */;
2862 int cltype;
2863 int idtype;
2864 val* var3 /* : APlusMethid */;
2865 val* var_pmethidnode1 /* var pmethidnode1: nullable APlusMethid */;
2866 long var4 /* : Int */;
2867 long var5 /* : Int */;
2868 var_p = p0;
2869 var = NULL;
2870 var_node_list = var;
2871 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2872 var_nodearraylist1 = var1;
2873 var_tplusnode2 = var_nodearraylist1;
2874 /* <var_tplusnode2:nullable Object> isa nullable TPlus */
2875 cltype = type_nullable_parser_nodes__TPlus.color;
2876 idtype = type_nullable_parser_nodes__TPlus.id;
2877 if(var_tplusnode2 == NULL) {
2878 var2 = 1;
2879 } else {
2880 if(cltype >= var_tplusnode2->type->table_size) {
2881 var2 = 0;
2882 } else {
2883 var2 = var_tplusnode2->type->type_table[cltype] == idtype;
2884 }
2885 }
2886 if (!var2) {
2887 fprintf(stderr, "Runtime error: %s", "Assert failed");
2888 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22722);
2889 exit(1);
2890 }
2891 var3 = NEW_parser_nodes__APlusMethid(&type_parser_nodes__APlusMethid);
2892 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__APlusMethid__init_aplusmethid]))(var3, var_tplusnode2) /* init_aplusmethid on <var3:APlusMethid>*/;
2893 CHECK_NEW_parser_nodes__APlusMethid(var3);
2894 var_pmethidnode1 = var3;
2895 var_node_list = var_pmethidnode1;
2896 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction528> */
2897 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
2898 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
2899 RET_LABEL:;
2900 }
2901 /* method parser#ReduceAction528#action for (self: Object, Parser) */
2902 void VIRTUAL_parser__ReduceAction528__action(val* self, val* p0) {
2903 parser__ReduceAction528__action(self, p0);
2904 RET_LABEL:;
2905 }
2906 /* method parser#ReduceAction529#action for (self: ReduceAction529, Parser) */
2907 void parser__ReduceAction529__action(val* self, val* p0) {
2908 val* var_p /* var p: Parser */;
2909 val* var /* : null */;
2910 val* var_node_list /* var node_list: nullable Object */;
2911 val* var1 /* : nullable Object */;
2912 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2913 val* var_tminusnode2 /* var tminusnode2: nullable Object */;
2914 short int var2 /* : Bool */;
2915 int cltype;
2916 int idtype;
2917 val* var3 /* : AMinusMethid */;
2918 val* var_pmethidnode1 /* var pmethidnode1: nullable AMinusMethid */;
2919 long var4 /* : Int */;
2920 long var5 /* : Int */;
2921 var_p = p0;
2922 var = NULL;
2923 var_node_list = var;
2924 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2925 var_nodearraylist1 = var1;
2926 var_tminusnode2 = var_nodearraylist1;
2927 /* <var_tminusnode2:nullable Object> isa nullable TMinus */
2928 cltype = type_nullable_parser_nodes__TMinus.color;
2929 idtype = type_nullable_parser_nodes__TMinus.id;
2930 if(var_tminusnode2 == NULL) {
2931 var2 = 1;
2932 } else {
2933 if(cltype >= var_tminusnode2->type->table_size) {
2934 var2 = 0;
2935 } else {
2936 var2 = var_tminusnode2->type->type_table[cltype] == idtype;
2937 }
2938 }
2939 if (!var2) {
2940 fprintf(stderr, "Runtime error: %s", "Assert failed");
2941 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22737);
2942 exit(1);
2943 }
2944 var3 = NEW_parser_nodes__AMinusMethid(&type_parser_nodes__AMinusMethid);
2945 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AMinusMethid__init_aminusmethid]))(var3, var_tminusnode2) /* init_aminusmethid on <var3:AMinusMethid>*/;
2946 CHECK_NEW_parser_nodes__AMinusMethid(var3);
2947 var_pmethidnode1 = var3;
2948 var_node_list = var_pmethidnode1;
2949 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction529> */
2950 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
2951 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
2952 RET_LABEL:;
2953 }
2954 /* method parser#ReduceAction529#action for (self: Object, Parser) */
2955 void VIRTUAL_parser__ReduceAction529__action(val* self, val* p0) {
2956 parser__ReduceAction529__action(self, p0);
2957 RET_LABEL:;
2958 }
2959 /* method parser#ReduceAction530#action for (self: ReduceAction530, Parser) */
2960 void parser__ReduceAction530__action(val* self, val* p0) {
2961 val* var_p /* var p: Parser */;
2962 val* var /* : null */;
2963 val* var_node_list /* var node_list: nullable Object */;
2964 val* var1 /* : nullable Object */;
2965 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2966 val* var_tstarnode2 /* var tstarnode2: nullable Object */;
2967 short int var2 /* : Bool */;
2968 int cltype;
2969 int idtype;
2970 val* var3 /* : AStarMethid */;
2971 val* var_pmethidnode1 /* var pmethidnode1: nullable AStarMethid */;
2972 long var4 /* : Int */;
2973 long var5 /* : Int */;
2974 var_p = p0;
2975 var = NULL;
2976 var_node_list = var;
2977 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2978 var_nodearraylist1 = var1;
2979 var_tstarnode2 = var_nodearraylist1;
2980 /* <var_tstarnode2:nullable Object> isa nullable TStar */
2981 cltype = type_nullable_parser_nodes__TStar.color;
2982 idtype = type_nullable_parser_nodes__TStar.id;
2983 if(var_tstarnode2 == NULL) {
2984 var2 = 1;
2985 } else {
2986 if(cltype >= var_tstarnode2->type->table_size) {
2987 var2 = 0;
2988 } else {
2989 var2 = var_tstarnode2->type->type_table[cltype] == idtype;
2990 }
2991 }
2992 if (!var2) {
2993 fprintf(stderr, "Runtime error: %s", "Assert failed");
2994 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22752);
2995 exit(1);
2996 }
2997 var3 = NEW_parser_nodes__AStarMethid(&type_parser_nodes__AStarMethid);
2998 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AStarMethid__init_astarmethid]))(var3, var_tstarnode2) /* init_astarmethid on <var3:AStarMethid>*/;
2999 CHECK_NEW_parser_nodes__AStarMethid(var3);
3000 var_pmethidnode1 = var3;
3001 var_node_list = var_pmethidnode1;
3002 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction530> */
3003 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
3004 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
3005 RET_LABEL:;
3006 }
3007 /* method parser#ReduceAction530#action for (self: Object, Parser) */
3008 void VIRTUAL_parser__ReduceAction530__action(val* self, val* p0) {
3009 parser__ReduceAction530__action(self, p0);
3010 RET_LABEL:;
3011 }
3012 /* method parser#ReduceAction531#action for (self: ReduceAction531, Parser) */
3013 void parser__ReduceAction531__action(val* self, val* p0) {
3014 val* var_p /* var p: Parser */;
3015 val* var /* : null */;
3016 val* var_node_list /* var node_list: nullable Object */;
3017 val* var1 /* : nullable Object */;
3018 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3019 val* var_tslashnode2 /* var tslashnode2: nullable Object */;
3020 short int var2 /* : Bool */;
3021 int cltype;
3022 int idtype;
3023 val* var3 /* : ASlashMethid */;
3024 val* var_pmethidnode1 /* var pmethidnode1: nullable ASlashMethid */;
3025 long var4 /* : Int */;
3026 long var5 /* : Int */;
3027 var_p = p0;
3028 var = NULL;
3029 var_node_list = var;
3030 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3031 var_nodearraylist1 = var1;
3032 var_tslashnode2 = var_nodearraylist1;
3033 /* <var_tslashnode2:nullable Object> isa nullable TSlash */
3034 cltype = type_nullable_parser_nodes__TSlash.color;
3035 idtype = type_nullable_parser_nodes__TSlash.id;
3036 if(var_tslashnode2 == NULL) {
3037 var2 = 1;
3038 } else {
3039 if(cltype >= var_tslashnode2->type->table_size) {
3040 var2 = 0;
3041 } else {
3042 var2 = var_tslashnode2->type->type_table[cltype] == idtype;
3043 }
3044 }
3045 if (!var2) {
3046 fprintf(stderr, "Runtime error: %s", "Assert failed");
3047 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22767);
3048 exit(1);
3049 }
3050 var3 = NEW_parser_nodes__ASlashMethid(&type_parser_nodes__ASlashMethid);
3051 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__ASlashMethid__init_aslashmethid]))(var3, var_tslashnode2) /* init_aslashmethid on <var3:ASlashMethid>*/;
3052 CHECK_NEW_parser_nodes__ASlashMethid(var3);
3053 var_pmethidnode1 = var3;
3054 var_node_list = var_pmethidnode1;
3055 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction531> */
3056 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
3057 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
3058 RET_LABEL:;
3059 }
3060 /* method parser#ReduceAction531#action for (self: Object, Parser) */
3061 void VIRTUAL_parser__ReduceAction531__action(val* self, val* p0) {
3062 parser__ReduceAction531__action(self, p0);
3063 RET_LABEL:;
3064 }
3065 /* method parser#ReduceAction532#action for (self: ReduceAction532, Parser) */
3066 void parser__ReduceAction532__action(val* self, val* p0) {
3067 val* var_p /* var p: Parser */;
3068 val* var /* : null */;
3069 val* var_node_list /* var node_list: nullable Object */;
3070 val* var1 /* : nullable Object */;
3071 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3072 val* var_tpercentnode2 /* var tpercentnode2: nullable Object */;
3073 short int var2 /* : Bool */;
3074 int cltype;
3075 int idtype;
3076 val* var3 /* : APercentMethid */;
3077 val* var_pmethidnode1 /* var pmethidnode1: nullable APercentMethid */;
3078 long var4 /* : Int */;
3079 long var5 /* : Int */;
3080 var_p = p0;
3081 var = NULL;
3082 var_node_list = var;
3083 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3084 var_nodearraylist1 = var1;
3085 var_tpercentnode2 = var_nodearraylist1;
3086 /* <var_tpercentnode2:nullable Object> isa nullable TPercent */
3087 cltype = type_nullable_parser_nodes__TPercent.color;
3088 idtype = type_nullable_parser_nodes__TPercent.id;
3089 if(var_tpercentnode2 == NULL) {
3090 var2 = 1;
3091 } else {
3092 if(cltype >= var_tpercentnode2->type->table_size) {
3093 var2 = 0;
3094 } else {
3095 var2 = var_tpercentnode2->type->type_table[cltype] == idtype;
3096 }
3097 }
3098 if (!var2) {
3099 fprintf(stderr, "Runtime error: %s", "Assert failed");
3100 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22782);
3101 exit(1);
3102 }
3103 var3 = NEW_parser_nodes__APercentMethid(&type_parser_nodes__APercentMethid);
3104 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__APercentMethid__init_apercentmethid]))(var3, var_tpercentnode2) /* init_apercentmethid on <var3:APercentMethid>*/;
3105 CHECK_NEW_parser_nodes__APercentMethid(var3);
3106 var_pmethidnode1 = var3;
3107 var_node_list = var_pmethidnode1;
3108 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction532> */
3109 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
3110 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
3111 RET_LABEL:;
3112 }
3113 /* method parser#ReduceAction532#action for (self: Object, Parser) */
3114 void VIRTUAL_parser__ReduceAction532__action(val* self, val* p0) {
3115 parser__ReduceAction532__action(self, p0);
3116 RET_LABEL:;
3117 }
3118 /* method parser#ReduceAction533#action for (self: ReduceAction533, Parser) */
3119 void parser__ReduceAction533__action(val* self, val* p0) {
3120 val* var_p /* var p: Parser */;
3121 val* var /* : null */;
3122 val* var_node_list /* var node_list: nullable Object */;
3123 val* var1 /* : nullable Object */;
3124 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3125 val* var_teqnode2 /* var teqnode2: nullable Object */;
3126 short int var2 /* : Bool */;
3127 int cltype;
3128 int idtype;
3129 val* var3 /* : AEqMethid */;
3130 val* var_pmethidnode1 /* var pmethidnode1: nullable AEqMethid */;
3131 long var4 /* : Int */;
3132 long var5 /* : Int */;
3133 var_p = p0;
3134 var = NULL;
3135 var_node_list = var;
3136 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3137 var_nodearraylist1 = var1;
3138 var_teqnode2 = var_nodearraylist1;
3139 /* <var_teqnode2:nullable Object> isa nullable TEq */
3140 cltype = type_nullable_parser_nodes__TEq.color;
3141 idtype = type_nullable_parser_nodes__TEq.id;
3142 if(var_teqnode2 == NULL) {
3143 var2 = 1;
3144 } else {
3145 if(cltype >= var_teqnode2->type->table_size) {
3146 var2 = 0;
3147 } else {
3148 var2 = var_teqnode2->type->type_table[cltype] == idtype;
3149 }
3150 }
3151 if (!var2) {
3152 fprintf(stderr, "Runtime error: %s", "Assert failed");
3153 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22797);
3154 exit(1);
3155 }
3156 var3 = NEW_parser_nodes__AEqMethid(&type_parser_nodes__AEqMethid);
3157 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AEqMethid__init_aeqmethid]))(var3, var_teqnode2) /* init_aeqmethid on <var3:AEqMethid>*/;
3158 CHECK_NEW_parser_nodes__AEqMethid(var3);
3159 var_pmethidnode1 = var3;
3160 var_node_list = var_pmethidnode1;
3161 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction533> */
3162 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
3163 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
3164 RET_LABEL:;
3165 }
3166 /* method parser#ReduceAction533#action for (self: Object, Parser) */
3167 void VIRTUAL_parser__ReduceAction533__action(val* self, val* p0) {
3168 parser__ReduceAction533__action(self, p0);
3169 RET_LABEL:;
3170 }
3171 /* method parser#ReduceAction534#action for (self: ReduceAction534, Parser) */
3172 void parser__ReduceAction534__action(val* self, val* p0) {
3173 val* var_p /* var p: Parser */;
3174 val* var /* : null */;
3175 val* var_node_list /* var node_list: nullable Object */;
3176 val* var1 /* : nullable Object */;
3177 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3178 val* var_tnenode2 /* var tnenode2: nullable Object */;
3179 short int var2 /* : Bool */;
3180 int cltype;
3181 int idtype;
3182 val* var3 /* : ANeMethid */;
3183 val* var_pmethidnode1 /* var pmethidnode1: nullable ANeMethid */;
3184 long var4 /* : Int */;
3185 long var5 /* : Int */;
3186 var_p = p0;
3187 var = NULL;
3188 var_node_list = var;
3189 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3190 var_nodearraylist1 = var1;
3191 var_tnenode2 = var_nodearraylist1;
3192 /* <var_tnenode2:nullable Object> isa nullable TNe */
3193 cltype = type_nullable_parser_nodes__TNe.color;
3194 idtype = type_nullable_parser_nodes__TNe.id;
3195 if(var_tnenode2 == NULL) {
3196 var2 = 1;
3197 } else {
3198 if(cltype >= var_tnenode2->type->table_size) {
3199 var2 = 0;
3200 } else {
3201 var2 = var_tnenode2->type->type_table[cltype] == idtype;
3202 }
3203 }
3204 if (!var2) {
3205 fprintf(stderr, "Runtime error: %s", "Assert failed");
3206 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22812);
3207 exit(1);
3208 }
3209 var3 = NEW_parser_nodes__ANeMethid(&type_parser_nodes__ANeMethid);
3210 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__ANeMethid__init_anemethid]))(var3, var_tnenode2) /* init_anemethid on <var3:ANeMethid>*/;
3211 CHECK_NEW_parser_nodes__ANeMethid(var3);
3212 var_pmethidnode1 = var3;
3213 var_node_list = var_pmethidnode1;
3214 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction534> */
3215 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
3216 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
3217 RET_LABEL:;
3218 }
3219 /* method parser#ReduceAction534#action for (self: Object, Parser) */
3220 void VIRTUAL_parser__ReduceAction534__action(val* self, val* p0) {
3221 parser__ReduceAction534__action(self, p0);
3222 RET_LABEL:;
3223 }
3224 /* method parser#ReduceAction535#action for (self: ReduceAction535, Parser) */
3225 void parser__ReduceAction535__action(val* self, val* p0) {
3226 val* var_p /* var p: Parser */;
3227 val* var /* : null */;
3228 val* var_node_list /* var node_list: nullable Object */;
3229 val* var1 /* : nullable Object */;
3230 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3231 val* var_tlenode2 /* var tlenode2: nullable Object */;
3232 short int var2 /* : Bool */;
3233 int cltype;
3234 int idtype;
3235 val* var3 /* : ALeMethid */;
3236 val* var_pmethidnode1 /* var pmethidnode1: nullable ALeMethid */;
3237 long var4 /* : Int */;
3238 long var5 /* : Int */;
3239 var_p = p0;
3240 var = NULL;
3241 var_node_list = var;
3242 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3243 var_nodearraylist1 = var1;
3244 var_tlenode2 = var_nodearraylist1;
3245 /* <var_tlenode2:nullable Object> isa nullable TLe */
3246 cltype = type_nullable_parser_nodes__TLe.color;
3247 idtype = type_nullable_parser_nodes__TLe.id;
3248 if(var_tlenode2 == NULL) {
3249 var2 = 1;
3250 } else {
3251 if(cltype >= var_tlenode2->type->table_size) {
3252 var2 = 0;
3253 } else {
3254 var2 = var_tlenode2->type->type_table[cltype] == idtype;
3255 }
3256 }
3257 if (!var2) {
3258 fprintf(stderr, "Runtime error: %s", "Assert failed");
3259 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22827);
3260 exit(1);
3261 }
3262 var3 = NEW_parser_nodes__ALeMethid(&type_parser_nodes__ALeMethid);
3263 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__ALeMethid__init_alemethid]))(var3, var_tlenode2) /* init_alemethid on <var3:ALeMethid>*/;
3264 CHECK_NEW_parser_nodes__ALeMethid(var3);
3265 var_pmethidnode1 = var3;
3266 var_node_list = var_pmethidnode1;
3267 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction535> */
3268 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
3269 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
3270 RET_LABEL:;
3271 }
3272 /* method parser#ReduceAction535#action for (self: Object, Parser) */
3273 void VIRTUAL_parser__ReduceAction535__action(val* self, val* p0) {
3274 parser__ReduceAction535__action(self, p0);
3275 RET_LABEL:;
3276 }
3277 /* method parser#ReduceAction536#action for (self: ReduceAction536, Parser) */
3278 void parser__ReduceAction536__action(val* self, val* p0) {
3279 val* var_p /* var p: Parser */;
3280 val* var /* : null */;
3281 val* var_node_list /* var node_list: nullable Object */;
3282 val* var1 /* : nullable Object */;
3283 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3284 val* var_tgenode2 /* var tgenode2: nullable Object */;
3285 short int var2 /* : Bool */;
3286 int cltype;
3287 int idtype;
3288 val* var3 /* : AGeMethid */;
3289 val* var_pmethidnode1 /* var pmethidnode1: nullable AGeMethid */;
3290 long var4 /* : Int */;
3291 long var5 /* : Int */;
3292 var_p = p0;
3293 var = NULL;
3294 var_node_list = var;
3295 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3296 var_nodearraylist1 = var1;
3297 var_tgenode2 = var_nodearraylist1;
3298 /* <var_tgenode2:nullable Object> isa nullable TGe */
3299 cltype = type_nullable_parser_nodes__TGe.color;
3300 idtype = type_nullable_parser_nodes__TGe.id;
3301 if(var_tgenode2 == NULL) {
3302 var2 = 1;
3303 } else {
3304 if(cltype >= var_tgenode2->type->table_size) {
3305 var2 = 0;
3306 } else {
3307 var2 = var_tgenode2->type->type_table[cltype] == idtype;
3308 }
3309 }
3310 if (!var2) {
3311 fprintf(stderr, "Runtime error: %s", "Assert failed");
3312 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22842);
3313 exit(1);
3314 }
3315 var3 = NEW_parser_nodes__AGeMethid(&type_parser_nodes__AGeMethid);
3316 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AGeMethid__init_agemethid]))(var3, var_tgenode2) /* init_agemethid on <var3:AGeMethid>*/;
3317 CHECK_NEW_parser_nodes__AGeMethid(var3);
3318 var_pmethidnode1 = var3;
3319 var_node_list = var_pmethidnode1;
3320 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction536> */
3321 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
3322 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
3323 RET_LABEL:;
3324 }
3325 /* method parser#ReduceAction536#action for (self: Object, Parser) */
3326 void VIRTUAL_parser__ReduceAction536__action(val* self, val* p0) {
3327 parser__ReduceAction536__action(self, p0);
3328 RET_LABEL:;
3329 }
3330 /* method parser#ReduceAction537#action for (self: ReduceAction537, Parser) */
3331 void parser__ReduceAction537__action(val* self, val* p0) {
3332 val* var_p /* var p: Parser */;
3333 val* var /* : null */;
3334 val* var_node_list /* var node_list: nullable Object */;
3335 val* var1 /* : nullable Object */;
3336 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3337 val* var_tltnode2 /* var tltnode2: nullable Object */;
3338 short int var2 /* : Bool */;
3339 int cltype;
3340 int idtype;
3341 val* var3 /* : ALtMethid */;
3342 val* var_pmethidnode1 /* var pmethidnode1: nullable ALtMethid */;
3343 long var4 /* : Int */;
3344 long var5 /* : Int */;
3345 var_p = p0;
3346 var = NULL;
3347 var_node_list = var;
3348 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3349 var_nodearraylist1 = var1;
3350 var_tltnode2 = var_nodearraylist1;
3351 /* <var_tltnode2:nullable Object> isa nullable TLt */
3352 cltype = type_nullable_parser_nodes__TLt.color;
3353 idtype = type_nullable_parser_nodes__TLt.id;
3354 if(var_tltnode2 == NULL) {
3355 var2 = 1;
3356 } else {
3357 if(cltype >= var_tltnode2->type->table_size) {
3358 var2 = 0;
3359 } else {
3360 var2 = var_tltnode2->type->type_table[cltype] == idtype;
3361 }
3362 }
3363 if (!var2) {
3364 fprintf(stderr, "Runtime error: %s", "Assert failed");
3365 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22857);
3366 exit(1);
3367 }
3368 var3 = NEW_parser_nodes__ALtMethid(&type_parser_nodes__ALtMethid);
3369 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__ALtMethid__init_altmethid]))(var3, var_tltnode2) /* init_altmethid on <var3:ALtMethid>*/;
3370 CHECK_NEW_parser_nodes__ALtMethid(var3);
3371 var_pmethidnode1 = var3;
3372 var_node_list = var_pmethidnode1;
3373 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction537> */
3374 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
3375 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
3376 RET_LABEL:;
3377 }
3378 /* method parser#ReduceAction537#action for (self: Object, Parser) */
3379 void VIRTUAL_parser__ReduceAction537__action(val* self, val* p0) {
3380 parser__ReduceAction537__action(self, p0);
3381 RET_LABEL:;
3382 }
3383 /* method parser#ReduceAction538#action for (self: ReduceAction538, Parser) */
3384 void parser__ReduceAction538__action(val* self, val* p0) {
3385 val* var_p /* var p: Parser */;
3386 val* var /* : null */;
3387 val* var_node_list /* var node_list: nullable Object */;
3388 val* var1 /* : nullable Object */;
3389 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3390 val* var_tgtnode2 /* var tgtnode2: nullable Object */;
3391 short int var2 /* : Bool */;
3392 int cltype;
3393 int idtype;
3394 val* var3 /* : AGtMethid */;
3395 val* var_pmethidnode1 /* var pmethidnode1: nullable AGtMethid */;
3396 long var4 /* : Int */;
3397 long var5 /* : Int */;
3398 var_p = p0;
3399 var = NULL;
3400 var_node_list = var;
3401 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3402 var_nodearraylist1 = var1;
3403 var_tgtnode2 = var_nodearraylist1;
3404 /* <var_tgtnode2:nullable Object> isa nullable TGt */
3405 cltype = type_nullable_parser_nodes__TGt.color;
3406 idtype = type_nullable_parser_nodes__TGt.id;
3407 if(var_tgtnode2 == NULL) {
3408 var2 = 1;
3409 } else {
3410 if(cltype >= var_tgtnode2->type->table_size) {
3411 var2 = 0;
3412 } else {
3413 var2 = var_tgtnode2->type->type_table[cltype] == idtype;
3414 }
3415 }
3416 if (!var2) {
3417 fprintf(stderr, "Runtime error: %s", "Assert failed");
3418 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22872);
3419 exit(1);
3420 }
3421 var3 = NEW_parser_nodes__AGtMethid(&type_parser_nodes__AGtMethid);
3422 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AGtMethid__init_agtmethid]))(var3, var_tgtnode2) /* init_agtmethid on <var3:AGtMethid>*/;
3423 CHECK_NEW_parser_nodes__AGtMethid(var3);
3424 var_pmethidnode1 = var3;
3425 var_node_list = var_pmethidnode1;
3426 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction538> */
3427 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
3428 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
3429 RET_LABEL:;
3430 }
3431 /* method parser#ReduceAction538#action for (self: Object, Parser) */
3432 void VIRTUAL_parser__ReduceAction538__action(val* self, val* p0) {
3433 parser__ReduceAction538__action(self, p0);
3434 RET_LABEL:;
3435 }
3436 /* method parser#ReduceAction539#action for (self: ReduceAction539, Parser) */
3437 void parser__ReduceAction539__action(val* self, val* p0) {
3438 val* var_p /* var p: Parser */;
3439 val* var /* : null */;
3440 val* var_node_list /* var node_list: nullable Object */;
3441 val* var1 /* : nullable Object */;
3442 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3443 val* var_tllnode2 /* var tllnode2: nullable Object */;
3444 short int var2 /* : Bool */;
3445 int cltype;
3446 int idtype;
3447 val* var3 /* : ALlMethid */;
3448 val* var_pmethidnode1 /* var pmethidnode1: nullable ALlMethid */;
3449 long var4 /* : Int */;
3450 long var5 /* : Int */;
3451 var_p = p0;
3452 var = NULL;
3453 var_node_list = var;
3454 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3455 var_nodearraylist1 = var1;
3456 var_tllnode2 = var_nodearraylist1;
3457 /* <var_tllnode2:nullable Object> isa nullable TLl */
3458 cltype = type_nullable_parser_nodes__TLl.color;
3459 idtype = type_nullable_parser_nodes__TLl.id;
3460 if(var_tllnode2 == NULL) {
3461 var2 = 1;
3462 } else {
3463 if(cltype >= var_tllnode2->type->table_size) {
3464 var2 = 0;
3465 } else {
3466 var2 = var_tllnode2->type->type_table[cltype] == idtype;
3467 }
3468 }
3469 if (!var2) {
3470 fprintf(stderr, "Runtime error: %s", "Assert failed");
3471 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22887);
3472 exit(1);
3473 }
3474 var3 = NEW_parser_nodes__ALlMethid(&type_parser_nodes__ALlMethid);
3475 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__ALlMethid__init_allmethid]))(var3, var_tllnode2) /* init_allmethid on <var3:ALlMethid>*/;
3476 CHECK_NEW_parser_nodes__ALlMethid(var3);
3477 var_pmethidnode1 = var3;
3478 var_node_list = var_pmethidnode1;
3479 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction539> */
3480 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
3481 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
3482 RET_LABEL:;
3483 }
3484 /* method parser#ReduceAction539#action for (self: Object, Parser) */
3485 void VIRTUAL_parser__ReduceAction539__action(val* self, val* p0) {
3486 parser__ReduceAction539__action(self, p0);
3487 RET_LABEL:;
3488 }
3489 /* method parser#ReduceAction540#action for (self: ReduceAction540, Parser) */
3490 void parser__ReduceAction540__action(val* self, val* p0) {
3491 val* var_p /* var p: Parser */;
3492 val* var /* : null */;
3493 val* var_node_list /* var node_list: nullable Object */;
3494 val* var1 /* : nullable Object */;
3495 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3496 val* var_tggnode2 /* var tggnode2: nullable Object */;
3497 short int var2 /* : Bool */;
3498 int cltype;
3499 int idtype;
3500 val* var3 /* : AGgMethid */;
3501 val* var_pmethidnode1 /* var pmethidnode1: nullable AGgMethid */;
3502 long var4 /* : Int */;
3503 long var5 /* : 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_nodearraylist1 = var1;
3509 var_tggnode2 = var_nodearraylist1;
3510 /* <var_tggnode2:nullable Object> isa nullable TGg */
3511 cltype = type_nullable_parser_nodes__TGg.color;
3512 idtype = type_nullable_parser_nodes__TGg.id;
3513 if(var_tggnode2 == NULL) {
3514 var2 = 1;
3515 } else {
3516 if(cltype >= var_tggnode2->type->table_size) {
3517 var2 = 0;
3518 } else {
3519 var2 = var_tggnode2->type->type_table[cltype] == idtype;
3520 }
3521 }
3522 if (!var2) {
3523 fprintf(stderr, "Runtime error: %s", "Assert failed");
3524 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22902);
3525 exit(1);
3526 }
3527 var3 = NEW_parser_nodes__AGgMethid(&type_parser_nodes__AGgMethid);
3528 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AGgMethid__init_aggmethid]))(var3, var_tggnode2) /* init_aggmethid on <var3:AGgMethid>*/;
3529 CHECK_NEW_parser_nodes__AGgMethid(var3);
3530 var_pmethidnode1 = var3;
3531 var_node_list = var_pmethidnode1;
3532 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction540> */
3533 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
3534 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
3535 RET_LABEL:;
3536 }
3537 /* method parser#ReduceAction540#action for (self: Object, Parser) */
3538 void VIRTUAL_parser__ReduceAction540__action(val* self, val* p0) {
3539 parser__ReduceAction540__action(self, p0);
3540 RET_LABEL:;
3541 }
3542 /* method parser#ReduceAction541#action for (self: ReduceAction541, Parser) */
3543 void parser__ReduceAction541__action(val* self, val* p0) {
3544 val* var_p /* var p: Parser */;
3545 val* var /* : null */;
3546 val* var_node_list /* var node_list: nullable Object */;
3547 val* var1 /* : nullable Object */;
3548 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3549 val* var2 /* : nullable Object */;
3550 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3551 val* var_tobranode2 /* var tobranode2: nullable Object */;
3552 short int var3 /* : Bool */;
3553 int cltype;
3554 int idtype;
3555 val* var_tcbranode3 /* var tcbranode3: nullable Object */;
3556 short int var4 /* : Bool */;
3557 int cltype5;
3558 int idtype6;
3559 val* var7 /* : ABraMethid */;
3560 val* var_pmethidnode1 /* var pmethidnode1: nullable ABraMethid */;
3561 long var8 /* : Int */;
3562 long var9 /* : Int */;
3563 var_p = p0;
3564 var = NULL;
3565 var_node_list = var;
3566 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3567 var_nodearraylist2 = var1;
3568 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3569 var_nodearraylist1 = var2;
3570 var_tobranode2 = var_nodearraylist1;
3571 /* <var_tobranode2:nullable Object> isa nullable TObra */
3572 cltype = type_nullable_parser_nodes__TObra.color;
3573 idtype = type_nullable_parser_nodes__TObra.id;
3574 if(var_tobranode2 == NULL) {
3575 var3 = 1;
3576 } else {
3577 if(cltype >= var_tobranode2->type->table_size) {
3578 var3 = 0;
3579 } else {
3580 var3 = var_tobranode2->type->type_table[cltype] == idtype;
3581 }
3582 }
3583 if (!var3) {
3584 fprintf(stderr, "Runtime error: %s", "Assert failed");
3585 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22918);
3586 exit(1);
3587 }
3588 var_tcbranode3 = var_nodearraylist2;
3589 /* <var_tcbranode3:nullable Object> isa nullable TCbra */
3590 cltype5 = type_nullable_parser_nodes__TCbra.color;
3591 idtype6 = type_nullable_parser_nodes__TCbra.id;
3592 if(var_tcbranode3 == NULL) {
3593 var4 = 1;
3594 } else {
3595 if(cltype5 >= var_tcbranode3->type->table_size) {
3596 var4 = 0;
3597 } else {
3598 var4 = var_tcbranode3->type->type_table[cltype5] == idtype6;
3599 }
3600 }
3601 if (!var4) {
3602 fprintf(stderr, "Runtime error: %s", "Assert failed");
3603 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22920);
3604 exit(1);
3605 }
3606 var7 = NEW_parser_nodes__ABraMethid(&type_parser_nodes__ABraMethid);
3607 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ABraMethid__init_abramethid]))(var7, var_tobranode2, var_tcbranode3) /* init_abramethid on <var7:ABraMethid>*/;
3608 CHECK_NEW_parser_nodes__ABraMethid(var7);
3609 var_pmethidnode1 = var7;
3610 var_node_list = var_pmethidnode1;
3611 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction541> */
3612 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
3613 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
3614 RET_LABEL:;
3615 }
3616 /* method parser#ReduceAction541#action for (self: Object, Parser) */
3617 void VIRTUAL_parser__ReduceAction541__action(val* self, val* p0) {
3618 parser__ReduceAction541__action(self, p0);
3619 RET_LABEL:;
3620 }
3621 /* method parser#ReduceAction542#action for (self: ReduceAction542, Parser) */
3622 void parser__ReduceAction542__action(val* self, val* p0) {
3623 val* var_p /* var p: Parser */;
3624 val* var /* : null */;
3625 val* var_node_list /* var node_list: nullable Object */;
3626 val* var1 /* : nullable Object */;
3627 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3628 val* var_tstarshipnode2 /* var tstarshipnode2: nullable Object */;
3629 short int var2 /* : Bool */;
3630 int cltype;
3631 int idtype;
3632 val* var3 /* : AStarshipMethid */;
3633 val* var_pmethidnode1 /* var pmethidnode1: nullable AStarshipMethid */;
3634 long var4 /* : Int */;
3635 long var5 /* : Int */;
3636 var_p = p0;
3637 var = NULL;
3638 var_node_list = var;
3639 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3640 var_nodearraylist1 = var1;
3641 var_tstarshipnode2 = var_nodearraylist1;
3642 /* <var_tstarshipnode2:nullable Object> isa nullable TStarship */
3643 cltype = type_nullable_parser_nodes__TStarship.color;
3644 idtype = type_nullable_parser_nodes__TStarship.id;
3645 if(var_tstarshipnode2 == NULL) {
3646 var2 = 1;
3647 } else {
3648 if(cltype >= var_tstarshipnode2->type->table_size) {
3649 var2 = 0;
3650 } else {
3651 var2 = var_tstarshipnode2->type->type_table[cltype] == idtype;
3652 }
3653 }
3654 if (!var2) {
3655 fprintf(stderr, "Runtime error: %s", "Assert failed");
3656 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22936);
3657 exit(1);
3658 }
3659 var3 = NEW_parser_nodes__AStarshipMethid(&type_parser_nodes__AStarshipMethid);
3660 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AStarshipMethid__init_astarshipmethid]))(var3, var_tstarshipnode2) /* init_astarshipmethid on <var3:AStarshipMethid>*/;
3661 CHECK_NEW_parser_nodes__AStarshipMethid(var3);
3662 var_pmethidnode1 = var3;
3663 var_node_list = var_pmethidnode1;
3664 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction542> */
3665 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
3666 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
3667 RET_LABEL:;
3668 }
3669 /* method parser#ReduceAction542#action for (self: Object, Parser) */
3670 void VIRTUAL_parser__ReduceAction542__action(val* self, val* p0) {
3671 parser__ReduceAction542__action(self, p0);
3672 RET_LABEL:;
3673 }
3674 /* method parser#ReduceAction543#action for (self: ReduceAction543, Parser) */
3675 void parser__ReduceAction543__action(val* self, val* p0) {
3676 val* var_p /* var p: Parser */;
3677 val* var /* : null */;
3678 val* var_node_list /* var node_list: nullable Object */;
3679 val* var1 /* : nullable Object */;
3680 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3681 val* var2 /* : nullable Object */;
3682 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3683 val* var_tidnode2 /* var tidnode2: nullable Object */;
3684 short int var3 /* : Bool */;
3685 int cltype;
3686 int idtype;
3687 val* var_tassignnode3 /* var tassignnode3: nullable Object */;
3688 short int var4 /* : Bool */;
3689 int cltype5;
3690 int idtype6;
3691 val* var7 /* : AAssignMethid */;
3692 val* var_pmethidnode1 /* var pmethidnode1: nullable AAssignMethid */;
3693 long var8 /* : Int */;
3694 long var9 /* : Int */;
3695 var_p = p0;
3696 var = NULL;
3697 var_node_list = var;
3698 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3699 var_nodearraylist2 = var1;
3700 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3701 var_nodearraylist1 = var2;
3702 var_tidnode2 = var_nodearraylist1;
3703 /* <var_tidnode2:nullable Object> isa nullable TId */
3704 cltype = type_nullable_parser_nodes__TId.color;
3705 idtype = type_nullable_parser_nodes__TId.id;
3706 if(var_tidnode2 == NULL) {
3707 var3 = 1;
3708 } else {
3709 if(cltype >= var_tidnode2->type->table_size) {
3710 var3 = 0;
3711 } else {
3712 var3 = var_tidnode2->type->type_table[cltype] == idtype;
3713 }
3714 }
3715 if (!var3) {
3716 fprintf(stderr, "Runtime error: %s", "Assert failed");
3717 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22952);
3718 exit(1);
3719 }
3720 var_tassignnode3 = var_nodearraylist2;
3721 /* <var_tassignnode3:nullable Object> isa nullable TAssign */
3722 cltype5 = type_nullable_parser_nodes__TAssign.color;
3723 idtype6 = type_nullable_parser_nodes__TAssign.id;
3724 if(var_tassignnode3 == NULL) {
3725 var4 = 1;
3726 } else {
3727 if(cltype5 >= var_tassignnode3->type->table_size) {
3728 var4 = 0;
3729 } else {
3730 var4 = var_tassignnode3->type->type_table[cltype5] == idtype6;
3731 }
3732 }
3733 if (!var4) {
3734 fprintf(stderr, "Runtime error: %s", "Assert failed");
3735 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22954);
3736 exit(1);
3737 }
3738 var7 = NEW_parser_nodes__AAssignMethid(&type_parser_nodes__AAssignMethid);
3739 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AAssignMethid__init_aassignmethid]))(var7, var_tidnode2, var_tassignnode3) /* init_aassignmethid on <var7:AAssignMethid>*/;
3740 CHECK_NEW_parser_nodes__AAssignMethid(var7);
3741 var_pmethidnode1 = var7;
3742 var_node_list = var_pmethidnode1;
3743 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction543> */
3744 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
3745 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
3746 RET_LABEL:;
3747 }
3748 /* method parser#ReduceAction543#action for (self: Object, Parser) */
3749 void VIRTUAL_parser__ReduceAction543__action(val* self, val* p0) {
3750 parser__ReduceAction543__action(self, p0);
3751 RET_LABEL:;
3752 }
3753 /* method parser#ReduceAction544#action for (self: ReduceAction544, Parser) */
3754 void parser__ReduceAction544__action(val* self, val* p0) {
3755 val* var_p /* var p: Parser */;
3756 val* var /* : null */;
3757 val* var_node_list /* var node_list: nullable Object */;
3758 val* var1 /* : nullable Object */;
3759 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3760 val* var2 /* : nullable Object */;
3761 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3762 val* var3 /* : nullable Object */;
3763 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3764 val* var_tobranode2 /* var tobranode2: nullable Object */;
3765 short int var4 /* : Bool */;
3766 int cltype;
3767 int idtype;
3768 val* var_tcbranode3 /* var tcbranode3: nullable Object */;
3769 short int var5 /* : Bool */;
3770 int cltype6;
3771 int idtype7;
3772 val* var_tassignnode4 /* var tassignnode4: nullable Object */;
3773 short int var8 /* : Bool */;
3774 int cltype9;
3775 int idtype10;
3776 val* var11 /* : ABraassignMethid */;
3777 val* var_pmethidnode1 /* var pmethidnode1: nullable ABraassignMethid */;
3778 long var12 /* : Int */;
3779 long var13 /* : Int */;
3780 var_p = p0;
3781 var = NULL;
3782 var_node_list = var;
3783 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3784 var_nodearraylist3 = var1;
3785 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3786 var_nodearraylist2 = var2;
3787 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3788 var_nodearraylist1 = var3;
3789 var_tobranode2 = var_nodearraylist1;
3790 /* <var_tobranode2:nullable Object> isa nullable TObra */
3791 cltype = type_nullable_parser_nodes__TObra.color;
3792 idtype = type_nullable_parser_nodes__TObra.id;
3793 if(var_tobranode2 == NULL) {
3794 var4 = 1;
3795 } else {
3796 if(cltype >= var_tobranode2->type->table_size) {
3797 var4 = 0;
3798 } else {
3799 var4 = var_tobranode2->type->type_table[cltype] == idtype;
3800 }
3801 }
3802 if (!var4) {
3803 fprintf(stderr, "Runtime error: %s", "Assert failed");
3804 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22972);
3805 exit(1);
3806 }
3807 var_tcbranode3 = var_nodearraylist2;
3808 /* <var_tcbranode3:nullable Object> isa nullable TCbra */
3809 cltype6 = type_nullable_parser_nodes__TCbra.color;
3810 idtype7 = type_nullable_parser_nodes__TCbra.id;
3811 if(var_tcbranode3 == NULL) {
3812 var5 = 1;
3813 } else {
3814 if(cltype6 >= var_tcbranode3->type->table_size) {
3815 var5 = 0;
3816 } else {
3817 var5 = var_tcbranode3->type->type_table[cltype6] == idtype7;
3818 }
3819 }
3820 if (!var5) {
3821 fprintf(stderr, "Runtime error: %s", "Assert failed");
3822 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22974);
3823 exit(1);
3824 }
3825 var_tassignnode4 = var_nodearraylist3;
3826 /* <var_tassignnode4:nullable Object> isa nullable TAssign */
3827 cltype9 = type_nullable_parser_nodes__TAssign.color;
3828 idtype10 = type_nullable_parser_nodes__TAssign.id;
3829 if(var_tassignnode4 == NULL) {
3830 var8 = 1;
3831 } else {
3832 if(cltype9 >= var_tassignnode4->type->table_size) {
3833 var8 = 0;
3834 } else {
3835 var8 = var_tassignnode4->type->type_table[cltype9] == idtype10;
3836 }
3837 }
3838 if (!var8) {
3839 fprintf(stderr, "Runtime error: %s", "Assert failed");
3840 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22976);
3841 exit(1);
3842 }
3843 var11 = NEW_parser_nodes__ABraassignMethid(&type_parser_nodes__ABraassignMethid);
3844 ((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>*/;
3845 CHECK_NEW_parser_nodes__ABraassignMethid(var11);
3846 var_pmethidnode1 = var11;
3847 var_node_list = var_pmethidnode1;
3848 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction544> */
3849 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
3850 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
3851 RET_LABEL:;
3852 }
3853 /* method parser#ReduceAction544#action for (self: Object, Parser) */
3854 void VIRTUAL_parser__ReduceAction544__action(val* self, val* p0) {
3855 parser__ReduceAction544__action(self, p0);
3856 RET_LABEL:;
3857 }
3858 /* method parser#ReduceAction545#action for (self: ReduceAction545, Parser) */
3859 void parser__ReduceAction545__action(val* self, val* p0) {
3860 val* var_p /* var p: Parser */;
3861 val* var /* : null */;
3862 val* var_node_list /* var node_list: nullable Object */;
3863 val* var1 /* : nullable Object */;
3864 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
3865 val* var2 /* : nullable Object */;
3866 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3867 val* var3 /* : nullable Object */;
3868 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3869 val* var4 /* : nullable Object */;
3870 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3871 val* var5 /* : nullable Object */;
3872 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3873 val* var6 /* : Array[Object] */;
3874 val* var_listnode3 /* var listnode3: Array[Object] */;
3875 val* var_toparnode2 /* var toparnode2: nullable Object */;
3876 short int var7 /* : Bool */;
3877 int cltype;
3878 int idtype;
3879 val* var_tcparnode4 /* var tcparnode4: nullable Object */;
3880 short int var8 /* : Bool */;
3881 int cltype9;
3882 int idtype10;
3883 val* var_ptypenode5 /* var ptypenode5: nullable Object */;
3884 short int var11 /* : Bool */;
3885 int cltype12;
3886 int idtype13;
3887 val* var14 /* : ASignature */;
3888 val* var_psignaturenode1 /* var psignaturenode1: nullable ASignature */;
3889 long var15 /* : Int */;
3890 long var16 /* : Int */;
3891 var_p = p0;
3892 var = NULL;
3893 var_node_list = var;
3894 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3895 var_nodearraylist5 = var1;
3896 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3897 var_nodearraylist4 = var2;
3898 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3899 var_nodearraylist3 = var3;
3900 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3901 var_nodearraylist2 = var4;
3902 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3903 var_nodearraylist1 = var5;
3904 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
3905 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
3906 CHECK_NEW_array__Array(var6);
3907 var_listnode3 = var6;
3908 var_toparnode2 = var_nodearraylist1;
3909 /* <var_toparnode2:nullable Object> isa nullable TOpar */
3910 cltype = type_nullable_parser_nodes__TOpar.color;
3911 idtype = type_nullable_parser_nodes__TOpar.id;
3912 if(var_toparnode2 == NULL) {
3913 var7 = 1;
3914 } else {
3915 if(cltype >= var_toparnode2->type->table_size) {
3916 var7 = 0;
3917 } else {
3918 var7 = var_toparnode2->type->type_table[cltype] == idtype;
3919 }
3920 }
3921 if (!var7) {
3922 fprintf(stderr, "Runtime error: %s", "Assert failed");
3923 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22998);
3924 exit(1);
3925 }
3926 var_tcparnode4 = var_nodearraylist3;
3927 /* <var_tcparnode4:nullable Object> isa nullable TCpar */
3928 cltype9 = type_nullable_parser_nodes__TCpar.color;
3929 idtype10 = type_nullable_parser_nodes__TCpar.id;
3930 if(var_tcparnode4 == NULL) {
3931 var8 = 1;
3932 } else {
3933 if(cltype9 >= var_tcparnode4->type->table_size) {
3934 var8 = 0;
3935 } else {
3936 var8 = var_tcparnode4->type->type_table[cltype9] == idtype10;
3937 }
3938 }
3939 if (!var8) {
3940 fprintf(stderr, "Runtime error: %s", "Assert failed");
3941 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23000);
3942 exit(1);
3943 }
3944 var_ptypenode5 = var_nodearraylist4;
3945 /* <var_ptypenode5:nullable Object> isa nullable AType */
3946 cltype12 = type_nullable_parser_nodes__AType.color;
3947 idtype13 = type_nullable_parser_nodes__AType.id;
3948 if(var_ptypenode5 == NULL) {
3949 var11 = 1;
3950 } else {
3951 if(cltype12 >= var_ptypenode5->type->table_size) {
3952 var11 = 0;
3953 } else {
3954 var11 = var_ptypenode5->type->type_table[cltype12] == idtype13;
3955 }
3956 }
3957 if (!var11) {
3958 fprintf(stderr, "Runtime error: %s", "Assert failed");
3959 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23002);
3960 exit(1);
3961 }
3962 var14 = NEW_parser_nodes__ASignature(&type_parser_nodes__ASignature);
3963 ((void (*)(val*, val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__ASignature__init_asignature]))(var14, var_toparnode2, var_listnode3, var_tcparnode4, var_ptypenode5) /* init_asignature on <var14:ASignature>*/;
3964 CHECK_NEW_parser_nodes__ASignature(var14);
3965 var_psignaturenode1 = var14;
3966 var_node_list = var_psignaturenode1;
3967 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction545> */
3968 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
3969 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
3970 RET_LABEL:;
3971 }
3972 /* method parser#ReduceAction545#action for (self: Object, Parser) */
3973 void VIRTUAL_parser__ReduceAction545__action(val* self, val* p0) {
3974 parser__ReduceAction545__action(self, p0);
3975 RET_LABEL:;
3976 }
3977 /* method parser#ReduceAction546#action for (self: ReduceAction546, Parser) */
3978 void parser__ReduceAction546__action(val* self, val* p0) {
3979 val* var_p /* var p: Parser */;
3980 val* var /* : null */;
3981 val* var_node_list /* var node_list: nullable Object */;
3982 val* var1 /* : nullable Object */;
3983 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
3984 val* var2 /* : nullable Object */;
3985 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
3986 val* var3 /* : nullable Object */;
3987 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3988 val* var4 /* : nullable Object */;
3989 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3990 val* var5 /* : nullable Object */;
3991 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3992 val* var6 /* : nullable Object */;
3993 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3994 val* var7 /* : Array[Object] */;
3995 val* var_listnode4 /* var listnode4: Array[Object] */;
3996 val* var_toparnode2 /* var toparnode2: nullable Object */;
3997 short int var8 /* : Bool */;
3998 int cltype;
3999 int idtype;
4000 val* var_listnode3 /* var listnode3: nullable Object */;
4001 short int var9 /* : Bool */;
4002 int cltype10;
4003 int idtype11;
4004 val* var12 /* : Array[Object] */;
4005 val* var_tcparnode5 /* var tcparnode5: nullable Object */;
4006 short int var13 /* : Bool */;
4007 int cltype14;
4008 int idtype15;
4009 val* var_ptypenode6 /* var ptypenode6: nullable Object */;
4010 short int var16 /* : Bool */;
4011 int cltype17;
4012 int idtype18;
4013 val* var19 /* : ASignature */;
4014 val* var_psignaturenode1 /* var psignaturenode1: nullable ASignature */;
4015 long var20 /* : Int */;
4016 long var21 /* : Int */;
4017 var_p = p0;
4018 var = NULL;
4019 var_node_list = var;
4020 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4021 var_nodearraylist6 = var1;
4022 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4023 var_nodearraylist5 = var2;
4024 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4025 var_nodearraylist4 = var3;
4026 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4027 var_nodearraylist3 = var4;
4028 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4029 var_nodearraylist2 = var5;
4030 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4031 var_nodearraylist1 = var6;
4032 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
4033 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
4034 CHECK_NEW_array__Array(var7);
4035 var_listnode4 = var7;
4036 var_toparnode2 = var_nodearraylist1;
4037 /* <var_toparnode2:nullable Object> isa nullable TOpar */
4038 cltype = type_nullable_parser_nodes__TOpar.color;
4039 idtype = type_nullable_parser_nodes__TOpar.id;
4040 if(var_toparnode2 == NULL) {
4041 var8 = 1;
4042 } else {
4043 if(cltype >= var_toparnode2->type->table_size) {
4044 var8 = 0;
4045 } else {
4046 var8 = var_toparnode2->type->type_table[cltype] == idtype;
4047 }
4048 }
4049 if (!var8) {
4050 fprintf(stderr, "Runtime error: %s", "Assert failed");
4051 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23026);
4052 exit(1);
4053 }
4054 var_listnode3 = var_nodearraylist3;
4055 /* <var_listnode3:nullable Object> isa Array[Object] */
4056 cltype10 = type_array__Arraykernel__Object.color;
4057 idtype11 = type_array__Arraykernel__Object.id;
4058 if(var_listnode3 == NULL) {
4059 var9 = 0;
4060 } else {
4061 if(cltype10 >= var_listnode3->type->table_size) {
4062 var9 = 0;
4063 } else {
4064 var9 = var_listnode3->type->type_table[cltype10] == idtype11;
4065 }
4066 }
4067 if (!var9) {
4068 fprintf(stderr, "Runtime error: %s", "Assert failed");
4069 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23028);
4070 exit(1);
4071 }
4072 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction546>*/;
4073 var_listnode4 = var12;
4074 var_tcparnode5 = var_nodearraylist4;
4075 /* <var_tcparnode5:nullable Object> isa nullable TCpar */
4076 cltype14 = type_nullable_parser_nodes__TCpar.color;
4077 idtype15 = type_nullable_parser_nodes__TCpar.id;
4078 if(var_tcparnode5 == NULL) {
4079 var13 = 1;
4080 } else {
4081 if(cltype14 >= var_tcparnode5->type->table_size) {
4082 var13 = 0;
4083 } else {
4084 var13 = var_tcparnode5->type->type_table[cltype14] == idtype15;
4085 }
4086 }
4087 if (!var13) {
4088 fprintf(stderr, "Runtime error: %s", "Assert failed");
4089 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23031);
4090 exit(1);
4091 }
4092 var_ptypenode6 = var_nodearraylist5;
4093 /* <var_ptypenode6:nullable Object> isa nullable AType */
4094 cltype17 = type_nullable_parser_nodes__AType.color;
4095 idtype18 = type_nullable_parser_nodes__AType.id;
4096 if(var_ptypenode6 == NULL) {
4097 var16 = 1;
4098 } else {
4099 if(cltype17 >= var_ptypenode6->type->table_size) {
4100 var16 = 0;
4101 } else {
4102 var16 = var_ptypenode6->type->type_table[cltype17] == idtype18;
4103 }
4104 }
4105 if (!var16) {
4106 fprintf(stderr, "Runtime error: %s", "Assert failed");
4107 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23033);
4108 exit(1);
4109 }
4110 var19 = NEW_parser_nodes__ASignature(&type_parser_nodes__ASignature);
4111 ((void (*)(val*, val*, val*, val*, val*))(var19->class->vft[COLOR_parser_prod__ASignature__init_asignature]))(var19, var_toparnode2, var_listnode4, var_tcparnode5, var_ptypenode6) /* init_asignature on <var19:ASignature>*/;
4112 CHECK_NEW_parser_nodes__ASignature(var19);
4113 var_psignaturenode1 = var19;
4114 var_node_list = var_psignaturenode1;
4115 var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction546> */
4116 var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on <var_p:Parser>*/;
4117 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on <var_p:Parser>*/;
4118 RET_LABEL:;
4119 }
4120 /* method parser#ReduceAction546#action for (self: Object, Parser) */
4121 void VIRTUAL_parser__ReduceAction546__action(val* self, val* p0) {
4122 parser__ReduceAction546__action(self, p0);
4123 RET_LABEL:;
4124 }
4125 /* method parser#ReduceAction547#action for (self: ReduceAction547, Parser) */
4126 void parser__ReduceAction547__action(val* self, val* p0) {
4127 val* var_p /* var p: Parser */;
4128 val* var /* : null */;
4129 val* var_node_list /* var node_list: nullable Object */;
4130 val* var1 /* : nullable Object */;
4131 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4132 val* var2 /* : nullable Object */;
4133 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4134 val* var3 /* : nullable Object */;
4135 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4136 val* var4 /* : nullable Object */;
4137 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4138 val* var5 /* : Array[Object] */;
4139 val* var_listnode3 /* var listnode3: Array[Object] */;
4140 val* var_toparnode2 /* var toparnode2: nullable Object */;
4141 short int var6 /* : Bool */;
4142 int cltype;
4143 int idtype;
4144 val* var_tcparnode4 /* var tcparnode4: nullable Object */;
4145 short int var7 /* : Bool */;
4146 int cltype8;
4147 int idtype9;
4148 val* var10 /* : ASignature */;
4149 val* var11 /* : null */;
4150 val* var_psignaturenode1 /* var psignaturenode1: nullable ASignature */;
4151 long var12 /* : Int */;
4152 long var13 /* : Int */;
4153 var_p = p0;
4154 var = NULL;
4155 var_node_list = var;
4156 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4157 var_nodearraylist4 = var1;
4158 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4159 var_nodearraylist3 = var2;
4160 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4161 var_nodearraylist2 = var3;
4162 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4163 var_nodearraylist1 = var4;
4164 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
4165 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
4166 CHECK_NEW_array__Array(var5);
4167 var_listnode3 = var5;
4168 var_toparnode2 = var_nodearraylist1;
4169 /* <var_toparnode2:nullable Object> isa nullable TOpar */
4170 cltype = type_nullable_parser_nodes__TOpar.color;
4171 idtype = type_nullable_parser_nodes__TOpar.id;
4172 if(var_toparnode2 == NULL) {
4173 var6 = 1;
4174 } else {
4175 if(cltype >= var_toparnode2->type->table_size) {
4176 var6 = 0;
4177 } else {
4178 var6 = var_toparnode2->type->type_table[cltype] == idtype;
4179 }
4180 }
4181 if (!var6) {
4182 fprintf(stderr, "Runtime error: %s", "Assert failed");
4183 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23055);
4184 exit(1);
4185 }
4186 var_tcparnode4 = var_nodearraylist3;
4187 /* <var_tcparnode4:nullable Object> isa nullable TCpar */
4188 cltype8 = type_nullable_parser_nodes__TCpar.color;
4189 idtype9 = type_nullable_parser_nodes__TCpar.id;
4190 if(var_tcparnode4 == NULL) {
4191 var7 = 1;
4192 } else {
4193 if(cltype8 >= var_tcparnode4->type->table_size) {
4194 var7 = 0;
4195 } else {
4196 var7 = var_tcparnode4->type->type_table[cltype8] == idtype9;
4197 }
4198 }
4199 if (!var7) {
4200 fprintf(stderr, "Runtime error: %s", "Assert failed");
4201 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23057);
4202 exit(1);
4203 }
4204 var10 = NEW_parser_nodes__ASignature(&type_parser_nodes__ASignature);
4205 var11 = NULL;
4206 ((void (*)(val*, val*, val*, val*, val*))(var10->class->vft[COLOR_parser_prod__ASignature__init_asignature]))(var10, var_toparnode2, var_listnode3, var_tcparnode4, var11) /* init_asignature on <var10:ASignature>*/;
4207 CHECK_NEW_parser_nodes__ASignature(var10);
4208 var_psignaturenode1 = var10;
4209 var_node_list = var_psignaturenode1;
4210 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction547> */
4211 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
4212 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
4213 RET_LABEL:;
4214 }
4215 /* method parser#ReduceAction547#action for (self: Object, Parser) */
4216 void VIRTUAL_parser__ReduceAction547__action(val* self, val* p0) {
4217 parser__ReduceAction547__action(self, p0);
4218 RET_LABEL:;
4219 }
4220 /* method parser#ReduceAction548#action for (self: ReduceAction548, Parser) */
4221 void parser__ReduceAction548__action(val* self, val* p0) {
4222 val* var_p /* var p: Parser */;
4223 val* var /* : null */;
4224 val* var_node_list /* var node_list: nullable Object */;
4225 val* var1 /* : nullable Object */;
4226 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4227 val* var2 /* : nullable Object */;
4228 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4229 val* var3 /* : nullable Object */;
4230 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4231 val* var4 /* : nullable Object */;
4232 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4233 val* var5 /* : nullable Object */;
4234 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4235 val* var6 /* : Array[Object] */;
4236 val* var_listnode4 /* var listnode4: Array[Object] */;
4237 val* var_toparnode2 /* var toparnode2: nullable Object */;
4238 short int var7 /* : Bool */;
4239 int cltype;
4240 int idtype;
4241 val* var_listnode3 /* var listnode3: nullable Object */;
4242 short int var8 /* : Bool */;
4243 int cltype9;
4244 int idtype10;
4245 val* var11 /* : Array[Object] */;
4246 val* var_tcparnode5 /* var tcparnode5: nullable Object */;
4247 short int var12 /* : Bool */;
4248 int cltype13;
4249 int idtype14;
4250 val* var15 /* : ASignature */;
4251 val* var16 /* : null */;
4252 val* var_psignaturenode1 /* var psignaturenode1: nullable ASignature */;
4253 long var17 /* : Int */;
4254 long var18 /* : Int */;
4255 var_p = p0;
4256 var = NULL;
4257 var_node_list = var;
4258 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4259 var_nodearraylist5 = var1;
4260 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4261 var_nodearraylist4 = var2;
4262 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4263 var_nodearraylist3 = var3;
4264 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4265 var_nodearraylist2 = var4;
4266 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4267 var_nodearraylist1 = var5;
4268 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
4269 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
4270 CHECK_NEW_array__Array(var6);
4271 var_listnode4 = var6;
4272 var_toparnode2 = var_nodearraylist1;
4273 /* <var_toparnode2:nullable Object> isa nullable TOpar */
4274 cltype = type_nullable_parser_nodes__TOpar.color;
4275 idtype = type_nullable_parser_nodes__TOpar.id;
4276 if(var_toparnode2 == NULL) {
4277 var7 = 1;
4278 } else {
4279 if(cltype >= var_toparnode2->type->table_size) {
4280 var7 = 0;
4281 } else {
4282 var7 = var_toparnode2->type->type_table[cltype] == idtype;
4283 }
4284 }
4285 if (!var7) {
4286 fprintf(stderr, "Runtime error: %s", "Assert failed");
4287 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23080);
4288 exit(1);
4289 }
4290 var_listnode3 = var_nodearraylist3;
4291 /* <var_listnode3:nullable Object> isa Array[Object] */
4292 cltype9 = type_array__Arraykernel__Object.color;
4293 idtype10 = type_array__Arraykernel__Object.id;
4294 if(var_listnode3 == NULL) {
4295 var8 = 0;
4296 } else {
4297 if(cltype9 >= var_listnode3->type->table_size) {
4298 var8 = 0;
4299 } else {
4300 var8 = var_listnode3->type->type_table[cltype9] == idtype10;
4301 }
4302 }
4303 if (!var8) {
4304 fprintf(stderr, "Runtime error: %s", "Assert failed");
4305 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23082);
4306 exit(1);
4307 }
4308 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction548>*/;
4309 var_listnode4 = var11;
4310 var_tcparnode5 = var_nodearraylist4;
4311 /* <var_tcparnode5:nullable Object> isa nullable TCpar */
4312 cltype13 = type_nullable_parser_nodes__TCpar.color;
4313 idtype14 = type_nullable_parser_nodes__TCpar.id;
4314 if(var_tcparnode5 == NULL) {
4315 var12 = 1;
4316 } else {
4317 if(cltype13 >= var_tcparnode5->type->table_size) {
4318 var12 = 0;
4319 } else {
4320 var12 = var_tcparnode5->type->type_table[cltype13] == idtype14;
4321 }
4322 }
4323 if (!var12) {
4324 fprintf(stderr, "Runtime error: %s", "Assert failed");
4325 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23085);
4326 exit(1);
4327 }
4328 var15 = NEW_parser_nodes__ASignature(&type_parser_nodes__ASignature);
4329 var16 = NULL;
4330 ((void (*)(val*, val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__ASignature__init_asignature]))(var15, var_toparnode2, var_listnode4, var_tcparnode5, var16) /* init_asignature on <var15:ASignature>*/;
4331 CHECK_NEW_parser_nodes__ASignature(var15);
4332 var_psignaturenode1 = var15;
4333 var_node_list = var_psignaturenode1;
4334 var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction548> */
4335 var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
4336 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
4337 RET_LABEL:;
4338 }
4339 /* method parser#ReduceAction548#action for (self: Object, Parser) */
4340 void VIRTUAL_parser__ReduceAction548__action(val* self, val* p0) {
4341 parser__ReduceAction548__action(self, p0);
4342 RET_LABEL:;
4343 }
4344 /* method parser#ReduceAction549#action for (self: ReduceAction549, Parser) */
4345 void parser__ReduceAction549__action(val* self, val* p0) {
4346 val* var_p /* var p: Parser */;
4347 val* var /* : null */;
4348 val* var_node_list /* var node_list: nullable Object */;
4349 val* var1 /* : nullable Object */;
4350 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4351 val* var2 /* : nullable Object */;
4352 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4353 val* var3 /* : Array[Object] */;
4354 val* var_listnode3 /* var listnode3: Array[Object] */;
4355 val* var_ptypenode5 /* var ptypenode5: nullable Object */;
4356 short int var4 /* : Bool */;
4357 int cltype;
4358 int idtype;
4359 val* var5 /* : ASignature */;
4360 val* var6 /* : null */;
4361 val* var7 /* : null */;
4362 val* var_psignaturenode1 /* var psignaturenode1: nullable ASignature */;
4363 long var8 /* : Int */;
4364 long var9 /* : Int */;
4365 var_p = p0;
4366 var = NULL;
4367 var_node_list = var;
4368 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4369 var_nodearraylist2 = var1;
4370 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4371 var_nodearraylist1 = var2;
4372 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
4373 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
4374 CHECK_NEW_array__Array(var3);
4375 var_listnode3 = var3;
4376 var_ptypenode5 = var_nodearraylist1;
4377 /* <var_ptypenode5:nullable Object> isa nullable AType */
4378 cltype = type_nullable_parser_nodes__AType.color;
4379 idtype = type_nullable_parser_nodes__AType.id;
4380 if(var_ptypenode5 == NULL) {
4381 var4 = 1;
4382 } else {
4383 if(cltype >= var_ptypenode5->type->table_size) {
4384 var4 = 0;
4385 } else {
4386 var4 = var_ptypenode5->type->type_table[cltype] == idtype;
4387 }
4388 }
4389 if (!var4) {
4390 fprintf(stderr, "Runtime error: %s", "Assert failed");
4391 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23105);
4392 exit(1);
4393 }
4394 var5 = NEW_parser_nodes__ASignature(&type_parser_nodes__ASignature);
4395 var6 = NULL;
4396 var7 = NULL;
4397 ((void (*)(val*, val*, val*, val*, val*))(var5->class->vft[COLOR_parser_prod__ASignature__init_asignature]))(var5, var6, var_listnode3, var7, var_ptypenode5) /* init_asignature on <var5:ASignature>*/;
4398 CHECK_NEW_parser_nodes__ASignature(var5);
4399 var_psignaturenode1 = var5;
4400 var_node_list = var_psignaturenode1;
4401 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction549> */
4402 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
4403 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
4404 RET_LABEL:;
4405 }
4406 /* method parser#ReduceAction549#action for (self: Object, Parser) */
4407 void VIRTUAL_parser__ReduceAction549__action(val* self, val* p0) {
4408 parser__ReduceAction549__action(self, p0);
4409 RET_LABEL:;
4410 }
4411 /* method parser#ReduceAction550#action for (self: ReduceAction550, Parser) */
4412 void parser__ReduceAction550__action(val* self, val* p0) {
4413 val* var_p /* var p: Parser */;
4414 val* var /* : null */;
4415 val* var_node_list /* var node_list: nullable Object */;
4416 val* var1 /* : nullable Object */;
4417 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4418 val* var2 /* : Array[Object] */;
4419 val* var_listnode3 /* var listnode3: Array[Object] */;
4420 val* var3 /* : ASignature */;
4421 val* var4 /* : null */;
4422 val* var5 /* : null */;
4423 val* var6 /* : null */;
4424 val* var_psignaturenode1 /* var psignaturenode1: nullable ASignature */;
4425 long var7 /* : Int */;
4426 long var8 /* : Int */;
4427 var_p = p0;
4428 var = NULL;
4429 var_node_list = var;
4430 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4431 var_nodearraylist1 = var1;
4432 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
4433 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
4434 CHECK_NEW_array__Array(var2);
4435 var_listnode3 = var2;
4436 var3 = NEW_parser_nodes__ASignature(&type_parser_nodes__ASignature);
4437 var4 = NULL;
4438 var5 = NULL;
4439 var6 = NULL;
4440 ((void (*)(val*, val*, val*, val*, val*))(var3->class->vft[COLOR_parser_prod__ASignature__init_asignature]))(var3, var4, var_listnode3, var5, var6) /* init_asignature on <var3:ASignature>*/;
4441 CHECK_NEW_parser_nodes__ASignature(var3);
4442 var_psignaturenode1 = var3;
4443 var_node_list = var_psignaturenode1;
4444 var7 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction550> */
4445 var8 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var7) /* go_to on <var_p:Parser>*/;
4446 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var8, var_node_list) /* push on <var_p:Parser>*/;
4447 RET_LABEL:;
4448 }
4449 /* method parser#ReduceAction550#action for (self: Object, Parser) */
4450 void VIRTUAL_parser__ReduceAction550__action(val* self, val* p0) {
4451 parser__ReduceAction550__action(self, p0);
4452 RET_LABEL:;
4453 }
4454 /* method parser#ReduceAction551#action for (self: ReduceAction551, Parser) */
4455 void parser__ReduceAction551__action(val* self, val* p0) {
4456 val* var_p /* var p: Parser */;
4457 val* var /* : null */;
4458 val* var_node_list /* var node_list: nullable Object */;
4459 val* var1 /* : nullable Object */;
4460 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4461 val* var2 /* : nullable Object */;
4462 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4463 val* var3 /* : Array[Object] */;
4464 val* var_listnode2 /* var listnode2: Array[Object] */;
4465 val* var_pparamnode1 /* var pparamnode1: nullable Object */;
4466 val* var4 /* : null */;
4467 short int var5 /* : Bool */;
4468 long var6 /* : Int */;
4469 long var7 /* : Int */;
4470 var_p = p0;
4471 var = NULL;
4472 var_node_list = var;
4473 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4474 var_nodearraylist2 = var1;
4475 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4476 var_nodearraylist1 = var2;
4477 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
4478 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
4479 CHECK_NEW_array__Array(var3);
4480 var_listnode2 = var3;
4481 var_pparamnode1 = var_nodearraylist1;
4482 var4 = NULL;
4483 if (var_pparamnode1 == NULL) {
4484 var5 = 0; /* is null */
4485 } else {
4486 var5 = 1; /* arg is null and recv is not */
4487 }
4488 if (var5){
4489 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_pparamnode1) /* add on <var_listnode2:Array[Object]>*/;
4490 } else {
4491 }
4492 var_node_list = var_listnode2;
4493 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction551> */
4494 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
4495 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
4496 RET_LABEL:;
4497 }
4498 /* method parser#ReduceAction551#action for (self: Object, Parser) */
4499 void VIRTUAL_parser__ReduceAction551__action(val* self, val* p0) {
4500 parser__ReduceAction551__action(self, p0);
4501 RET_LABEL:;
4502 }
4503 /* method parser#ReduceAction552#action for (self: ReduceAction552, Parser) */
4504 void parser__ReduceAction552__action(val* self, val* p0) {
4505 val* var_p /* var p: Parser */;
4506 val* var /* : null */;
4507 val* var_node_list /* var node_list: nullable Object */;
4508 val* var1 /* : nullable Object */;
4509 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4510 val* var2 /* : nullable Object */;
4511 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4512 val* var3 /* : nullable Object */;
4513 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4514 val* var4 /* : Array[Object] */;
4515 val* var_listnode3 /* var listnode3: Array[Object] */;
4516 val* var_pparamnode1 /* var pparamnode1: nullable Object */;
4517 val* var_listnode2 /* var listnode2: nullable Object */;
4518 short int var5 /* : Bool */;
4519 int cltype;
4520 int idtype;
4521 val* var6 /* : null */;
4522 short int var7 /* : Bool */;
4523 val* var8 /* : Array[Object] */;
4524 long var9 /* : Int */;
4525 long var10 /* : Int */;
4526 var_p = p0;
4527 var = NULL;
4528 var_node_list = var;
4529 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4530 var_nodearraylist3 = var1;
4531 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4532 var_nodearraylist2 = var2;
4533 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4534 var_nodearraylist1 = var3;
4535 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
4536 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
4537 CHECK_NEW_array__Array(var4);
4538 var_listnode3 = var4;
4539 var_pparamnode1 = var_nodearraylist1;
4540 var_listnode2 = var_nodearraylist2;
4541 /* <var_listnode2:nullable Object> isa Array[Object] */
4542 cltype = type_array__Arraykernel__Object.color;
4543 idtype = type_array__Arraykernel__Object.id;
4544 if(var_listnode2 == NULL) {
4545 var5 = 0;
4546 } else {
4547 if(cltype >= var_listnode2->type->table_size) {
4548 var5 = 0;
4549 } else {
4550 var5 = var_listnode2->type->type_table[cltype] == idtype;
4551 }
4552 }
4553 if (!var5) {
4554 fprintf(stderr, "Runtime error: %s", "Assert failed");
4555 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23160);
4556 exit(1);
4557 }
4558 var6 = NULL;
4559 if (var_pparamnode1 == NULL) {
4560 var7 = 0; /* is null */
4561 } else {
4562 var7 = 1; /* arg is null and recv is not */
4563 }
4564 if (var7){
4565 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pparamnode1) /* add on <var_listnode3:Array[Object]>*/;
4566 } else {
4567 }
4568 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode2) /* concat on <self:ReduceAction552>*/;
4569 var_listnode3 = var8;
4570 var_node_list = var_listnode3;
4571 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction552> */
4572 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
4573 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
4574 RET_LABEL:;
4575 }
4576 /* method parser#ReduceAction552#action for (self: Object, Parser) */
4577 void VIRTUAL_parser__ReduceAction552__action(val* self, val* p0) {
4578 parser__ReduceAction552__action(self, p0);
4579 RET_LABEL:;
4580 }
4581 /* method parser#ReduceAction553#action for (self: ReduceAction553, Parser) */
4582 void parser__ReduceAction553__action(val* self, val* p0) {
4583 val* var_p /* var p: Parser */;
4584 val* var /* : null */;
4585 val* var_node_list /* var node_list: nullable Object */;
4586 val* var1 /* : nullable Object */;
4587 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4588 val* var2 /* : nullable Object */;
4589 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4590 val* var3 /* : nullable Object */;
4591 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4592 val* var_pparamnode1 /* var pparamnode1: nullable Object */;
4593 long var4 /* : Int */;
4594 long var5 /* : Int */;
4595 var_p = p0;
4596 var = NULL;
4597 var_node_list = var;
4598 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4599 var_nodearraylist3 = var1;
4600 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4601 var_nodearraylist2 = var2;
4602 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4603 var_nodearraylist1 = var3;
4604 var_pparamnode1 = var_nodearraylist3;
4605 var_node_list = var_pparamnode1;
4606 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction553> */
4607 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
4608 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
4609 RET_LABEL:;
4610 }
4611 /* method parser#ReduceAction553#action for (self: Object, Parser) */
4612 void VIRTUAL_parser__ReduceAction553__action(val* self, val* p0) {
4613 parser__ReduceAction553__action(self, p0);
4614 RET_LABEL:;
4615 }
4616 /* method parser#ReduceAction554#action for (self: ReduceAction554, Parser) */
4617 void parser__ReduceAction554__action(val* self, val* p0) {
4618 val* var_p /* var p: Parser */;
4619 val* var /* : null */;
4620 val* var_node_list /* var node_list: nullable Object */;
4621 val* var1 /* : nullable Object */;
4622 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4623 val* var_tidnode2 /* var tidnode2: nullable Object */;
4624 short int var2 /* : Bool */;
4625 int cltype;
4626 int idtype;
4627 val* var3 /* : AParam */;
4628 val* var4 /* : null */;
4629 val* var5 /* : null */;
4630 val* var6 /* : null */;
4631 val* var_pparamnode1 /* var pparamnode1: nullable AParam */;
4632 long var7 /* : Int */;
4633 long var8 /* : Int */;
4634 var_p = p0;
4635 var = NULL;
4636 var_node_list = var;
4637 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4638 var_nodearraylist1 = var1;
4639 var_tidnode2 = var_nodearraylist1;
4640 /* <var_tidnode2:nullable Object> isa nullable TId */
4641 cltype = type_nullable_parser_nodes__TId.color;
4642 idtype = type_nullable_parser_nodes__TId.id;
4643 if(var_tidnode2 == NULL) {
4644 var2 = 1;
4645 } else {
4646 if(cltype >= var_tidnode2->type->table_size) {
4647 var2 = 0;
4648 } else {
4649 var2 = var_tidnode2->type->type_table[cltype] == idtype;
4650 }
4651 }
4652 if (!var2) {
4653 fprintf(stderr, "Runtime error: %s", "Assert failed");
4654 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23189);
4655 exit(1);
4656 }
4657 var3 = NEW_parser_nodes__AParam(&type_parser_nodes__AParam);
4658 var4 = NULL;
4659 var5 = NULL;
4660 var6 = NULL;
4661 ((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>*/;
4662 CHECK_NEW_parser_nodes__AParam(var3);
4663 var_pparamnode1 = var3;
4664 var_node_list = var_pparamnode1;
4665 var7 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction554> */
4666 var8 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var7) /* go_to on <var_p:Parser>*/;
4667 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var8, var_node_list) /* push on <var_p:Parser>*/;
4668 RET_LABEL:;
4669 }
4670 /* method parser#ReduceAction554#action for (self: Object, Parser) */
4671 void VIRTUAL_parser__ReduceAction554__action(val* self, val* p0) {
4672 parser__ReduceAction554__action(self, p0);
4673 RET_LABEL:;
4674 }
4675 /* method parser#ReduceAction555#action for (self: ReduceAction555, Parser) */
4676 void parser__ReduceAction555__action(val* self, val* p0) {
4677 val* var_p /* var p: Parser */;
4678 val* var /* : null */;
4679 val* var_node_list /* var node_list: nullable Object */;
4680 val* var1 /* : nullable Object */;
4681 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4682 val* var2 /* : nullable Object */;
4683 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4684 val* var_tidnode2 /* var tidnode2: nullable Object */;
4685 short int var3 /* : Bool */;
4686 int cltype;
4687 int idtype;
4688 val* var_pannotationsnode5 /* var pannotationsnode5: nullable Object */;
4689 short int var4 /* : Bool */;
4690 int cltype5;
4691 int idtype6;
4692 val* var7 /* : AParam */;
4693 val* var8 /* : null */;
4694 val* var9 /* : null */;
4695 val* var_pparamnode1 /* var pparamnode1: nullable AParam */;
4696 long var10 /* : Int */;
4697 long var11 /* : Int */;
4698 var_p = p0;
4699 var = NULL;
4700 var_node_list = var;
4701 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4702 var_nodearraylist2 = var1;
4703 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4704 var_nodearraylist1 = var2;
4705 var_tidnode2 = var_nodearraylist1;
4706 /* <var_tidnode2:nullable Object> isa nullable TId */
4707 cltype = type_nullable_parser_nodes__TId.color;
4708 idtype = type_nullable_parser_nodes__TId.id;
4709 if(var_tidnode2 == NULL) {
4710 var3 = 1;
4711 } else {
4712 if(cltype >= var_tidnode2->type->table_size) {
4713 var3 = 0;
4714 } else {
4715 var3 = var_tidnode2->type->type_table[cltype] == idtype;
4716 }
4717 }
4718 if (!var3) {
4719 fprintf(stderr, "Runtime error: %s", "Assert failed");
4720 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23208);
4721 exit(1);
4722 }
4723 var_pannotationsnode5 = var_nodearraylist2;
4724 /* <var_pannotationsnode5:nullable Object> isa nullable AAnnotations */
4725 cltype5 = type_nullable_parser_nodes__AAnnotations.color;
4726 idtype6 = type_nullable_parser_nodes__AAnnotations.id;
4727 if(var_pannotationsnode5 == NULL) {
4728 var4 = 1;
4729 } else {
4730 if(cltype5 >= var_pannotationsnode5->type->table_size) {
4731 var4 = 0;
4732 } else {
4733 var4 = var_pannotationsnode5->type->type_table[cltype5] == idtype6;
4734 }
4735 }
4736 if (!var4) {
4737 fprintf(stderr, "Runtime error: %s", "Assert failed");
4738 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23210);
4739 exit(1);
4740 }
4741 var7 = NEW_parser_nodes__AParam(&type_parser_nodes__AParam);
4742 var8 = NULL;
4743 var9 = NULL;
4744 ((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>*/;
4745 CHECK_NEW_parser_nodes__AParam(var7);
4746 var_pparamnode1 = var7;
4747 var_node_list = var_pparamnode1;
4748 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction555> */
4749 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
4750 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
4751 RET_LABEL:;
4752 }
4753 /* method parser#ReduceAction555#action for (self: Object, Parser) */
4754 void VIRTUAL_parser__ReduceAction555__action(val* self, val* p0) {
4755 parser__ReduceAction555__action(self, p0);
4756 RET_LABEL:;
4757 }
4758 /* method parser#ReduceAction556#action for (self: ReduceAction556, Parser) */
4759 void parser__ReduceAction556__action(val* self, val* p0) {
4760 val* var_p /* var p: Parser */;
4761 val* var /* : null */;
4762 val* var_node_list /* var node_list: nullable Object */;
4763 val* var1 /* : nullable Object */;
4764 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4765 val* var2 /* : nullable Object */;
4766 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4767 val* var_tidnode2 /* var tidnode2: nullable Object */;
4768 short int var3 /* : Bool */;
4769 int cltype;
4770 int idtype;
4771 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
4772 short int var4 /* : Bool */;
4773 int cltype5;
4774 int idtype6;
4775 val* var7 /* : AParam */;
4776 val* var8 /* : null */;
4777 val* var9 /* : null */;
4778 val* var_pparamnode1 /* var pparamnode1: nullable AParam */;
4779 long var10 /* : Int */;
4780 long var11 /* : Int */;
4781 var_p = p0;
4782 var = NULL;
4783 var_node_list = var;
4784 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4785 var_nodearraylist2 = var1;
4786 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4787 var_nodearraylist1 = var2;
4788 var_tidnode2 = var_nodearraylist1;
4789 /* <var_tidnode2:nullable Object> isa nullable TId */
4790 cltype = type_nullable_parser_nodes__TId.color;
4791 idtype = type_nullable_parser_nodes__TId.id;
4792 if(var_tidnode2 == NULL) {
4793 var3 = 1;
4794 } else {
4795 if(cltype >= var_tidnode2->type->table_size) {
4796 var3 = 0;
4797 } else {
4798 var3 = var_tidnode2->type->type_table[cltype] == idtype;
4799 }
4800 }
4801 if (!var3) {
4802 fprintf(stderr, "Runtime error: %s", "Assert failed");
4803 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23229);
4804 exit(1);
4805 }
4806 var_ptypenode3 = var_nodearraylist2;
4807 /* <var_ptypenode3:nullable Object> isa nullable AType */
4808 cltype5 = type_nullable_parser_nodes__AType.color;
4809 idtype6 = type_nullable_parser_nodes__AType.id;
4810 if(var_ptypenode3 == NULL) {
4811 var4 = 1;
4812 } else {
4813 if(cltype5 >= var_ptypenode3->type->table_size) {
4814 var4 = 0;
4815 } else {
4816 var4 = var_ptypenode3->type->type_table[cltype5] == idtype6;
4817 }
4818 }
4819 if (!var4) {
4820 fprintf(stderr, "Runtime error: %s", "Assert failed");
4821 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23231);
4822 exit(1);
4823 }
4824 var7 = NEW_parser_nodes__AParam(&type_parser_nodes__AParam);
4825 var8 = NULL;
4826 var9 = NULL;
4827 ((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>*/;
4828 CHECK_NEW_parser_nodes__AParam(var7);
4829 var_pparamnode1 = var7;
4830 var_node_list = var_pparamnode1;
4831 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction556> */
4832 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
4833 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
4834 RET_LABEL:;
4835 }
4836 /* method parser#ReduceAction556#action for (self: Object, Parser) */
4837 void VIRTUAL_parser__ReduceAction556__action(val* self, val* p0) {
4838 parser__ReduceAction556__action(self, p0);
4839 RET_LABEL:;
4840 }
4841 /* method parser#ReduceAction557#action for (self: ReduceAction557, Parser) */
4842 void parser__ReduceAction557__action(val* self, val* p0) {
4843 val* var_p /* var p: Parser */;
4844 val* var /* : null */;
4845 val* var_node_list /* var node_list: nullable Object */;
4846 val* var1 /* : nullable Object */;
4847 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4848 val* var2 /* : nullable Object */;
4849 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4850 val* var3 /* : nullable Object */;
4851 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4852 val* var_tidnode2 /* var tidnode2: nullable Object */;
4853 short int var4 /* : Bool */;
4854 int cltype;
4855 int idtype;
4856 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
4857 short int var5 /* : Bool */;
4858 int cltype6;
4859 int idtype7;
4860 val* var_pannotationsnode5 /* var pannotationsnode5: nullable Object */;
4861 short int var8 /* : Bool */;
4862 int cltype9;
4863 int idtype10;
4864 val* var11 /* : AParam */;
4865 val* var12 /* : null */;
4866 val* var_pparamnode1 /* var pparamnode1: nullable AParam */;
4867 long var13 /* : Int */;
4868 long var14 /* : Int */;
4869 var_p = p0;
4870 var = NULL;
4871 var_node_list = var;
4872 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4873 var_nodearraylist3 = var1;
4874 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4875 var_nodearraylist2 = var2;
4876 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4877 var_nodearraylist1 = var3;
4878 var_tidnode2 = var_nodearraylist1;
4879 /* <var_tidnode2:nullable Object> isa nullable TId */
4880 cltype = type_nullable_parser_nodes__TId.color;
4881 idtype = type_nullable_parser_nodes__TId.id;
4882 if(var_tidnode2 == NULL) {
4883 var4 = 1;
4884 } else {
4885 if(cltype >= var_tidnode2->type->table_size) {
4886 var4 = 0;
4887 } else {
4888 var4 = var_tidnode2->type->type_table[cltype] == idtype;
4889 }
4890 }
4891 if (!var4) {
4892 fprintf(stderr, "Runtime error: %s", "Assert failed");
4893 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23251);
4894 exit(1);
4895 }
4896 var_ptypenode3 = var_nodearraylist3;
4897 /* <var_ptypenode3:nullable Object> isa nullable AType */
4898 cltype6 = type_nullable_parser_nodes__AType.color;
4899 idtype7 = type_nullable_parser_nodes__AType.id;
4900 if(var_ptypenode3 == NULL) {
4901 var5 = 1;
4902 } else {
4903 if(cltype6 >= var_ptypenode3->type->table_size) {
4904 var5 = 0;
4905 } else {
4906 var5 = var_ptypenode3->type->type_table[cltype6] == idtype7;
4907 }
4908 }
4909 if (!var5) {
4910 fprintf(stderr, "Runtime error: %s", "Assert failed");
4911 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23253);
4912 exit(1);
4913 }
4914 var_pannotationsnode5 = var_nodearraylist2;
4915 /* <var_pannotationsnode5:nullable Object> isa nullable AAnnotations */
4916 cltype9 = type_nullable_parser_nodes__AAnnotations.color;
4917 idtype10 = type_nullable_parser_nodes__AAnnotations.id;
4918 if(var_pannotationsnode5 == NULL) {
4919 var8 = 1;
4920 } else {
4921 if(cltype9 >= var_pannotationsnode5->type->table_size) {
4922 var8 = 0;
4923 } else {
4924 var8 = var_pannotationsnode5->type->type_table[cltype9] == idtype10;
4925 }
4926 }
4927 if (!var8) {
4928 fprintf(stderr, "Runtime error: %s", "Assert failed");
4929 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23255);
4930 exit(1);
4931 }
4932 var11 = NEW_parser_nodes__AParam(&type_parser_nodes__AParam);
4933 var12 = NULL;
4934 ((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>*/;
4935 CHECK_NEW_parser_nodes__AParam(var11);
4936 var_pparamnode1 = var11;
4937 var_node_list = var_pparamnode1;
4938 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction557> */
4939 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
4940 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
4941 RET_LABEL:;
4942 }
4943 /* method parser#ReduceAction557#action for (self: Object, Parser) */
4944 void VIRTUAL_parser__ReduceAction557__action(val* self, val* p0) {
4945 parser__ReduceAction557__action(self, p0);
4946 RET_LABEL:;
4947 }
4948 /* method parser#ReduceAction558#action for (self: ReduceAction558, Parser) */
4949 void parser__ReduceAction558__action(val* self, val* p0) {
4950 val* var_p /* var p: Parser */;
4951 val* var /* : null */;
4952 val* var_node_list /* var node_list: nullable Object */;
4953 val* var1 /* : nullable Object */;
4954 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4955 val* var2 /* : nullable Object */;
4956 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4957 val* var3 /* : nullable Object */;
4958 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4959 val* var_tidnode2 /* var tidnode2: nullable Object */;
4960 short int var4 /* : Bool */;
4961 int cltype;
4962 int idtype;
4963 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
4964 short int var5 /* : Bool */;
4965 int cltype6;
4966 int idtype7;
4967 val* var_tdotdotdotnode4 /* var tdotdotdotnode4: nullable Object */;
4968 short int var8 /* : Bool */;
4969 int cltype9;
4970 int idtype10;
4971 val* var11 /* : AParam */;
4972 val* var12 /* : null */;
4973 val* var_pparamnode1 /* var pparamnode1: nullable AParam */;
4974 long var13 /* : Int */;
4975 long var14 /* : Int */;
4976 var_p = p0;
4977 var = NULL;
4978 var_node_list = var;
4979 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4980 var_nodearraylist3 = var1;
4981 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4982 var_nodearraylist2 = var2;
4983 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4984 var_nodearraylist1 = var3;
4985 var_tidnode2 = var_nodearraylist1;
4986 /* <var_tidnode2:nullable Object> isa nullable TId */
4987 cltype = type_nullable_parser_nodes__TId.color;
4988 idtype = type_nullable_parser_nodes__TId.id;
4989 if(var_tidnode2 == NULL) {
4990 var4 = 1;
4991 } else {
4992 if(cltype >= var_tidnode2->type->table_size) {
4993 var4 = 0;
4994 } else {
4995 var4 = var_tidnode2->type->type_table[cltype] == idtype;
4996 }
4997 }
4998 if (!var4) {
4999 fprintf(stderr, "Runtime error: %s", "Assert failed");
5000 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23275);
5001 exit(1);
5002 }
5003 var_ptypenode3 = var_nodearraylist2;
5004 /* <var_ptypenode3:nullable Object> isa nullable AType */
5005 cltype6 = type_nullable_parser_nodes__AType.color;
5006 idtype7 = type_nullable_parser_nodes__AType.id;
5007 if(var_ptypenode3 == NULL) {
5008 var5 = 1;
5009 } else {
5010 if(cltype6 >= var_ptypenode3->type->table_size) {
5011 var5 = 0;
5012 } else {
5013 var5 = var_ptypenode3->type->type_table[cltype6] == idtype7;
5014 }
5015 }
5016 if (!var5) {
5017 fprintf(stderr, "Runtime error: %s", "Assert failed");
5018 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23277);
5019 exit(1);
5020 }
5021 var_tdotdotdotnode4 = var_nodearraylist3;
5022 /* <var_tdotdotdotnode4:nullable Object> isa nullable TDotdotdot */
5023 cltype9 = type_nullable_parser_nodes__TDotdotdot.color;
5024 idtype10 = type_nullable_parser_nodes__TDotdotdot.id;
5025 if(var_tdotdotdotnode4 == NULL) {
5026 var8 = 1;
5027 } else {
5028 if(cltype9 >= var_tdotdotdotnode4->type->table_size) {
5029 var8 = 0;
5030 } else {
5031 var8 = var_tdotdotdotnode4->type->type_table[cltype9] == idtype10;
5032 }
5033 }
5034 if (!var8) {
5035 fprintf(stderr, "Runtime error: %s", "Assert failed");
5036 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23279);
5037 exit(1);
5038 }
5039 var11 = NEW_parser_nodes__AParam(&type_parser_nodes__AParam);
5040 var12 = NULL;
5041 ((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>*/;
5042 CHECK_NEW_parser_nodes__AParam(var11);
5043 var_pparamnode1 = var11;
5044 var_node_list = var_pparamnode1;
5045 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction558> */
5046 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
5047 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
5048 RET_LABEL:;
5049 }
5050 /* method parser#ReduceAction558#action for (self: Object, Parser) */
5051 void VIRTUAL_parser__ReduceAction558__action(val* self, val* p0) {
5052 parser__ReduceAction558__action(self, p0);
5053 RET_LABEL:;
5054 }
5055 /* method parser#ReduceAction559#action for (self: ReduceAction559, Parser) */
5056 void parser__ReduceAction559__action(val* self, val* p0) {
5057 val* var_p /* var p: Parser */;
5058 val* var /* : null */;
5059 val* var_node_list /* var node_list: nullable Object */;
5060 val* var1 /* : nullable Object */;
5061 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5062 val* var2 /* : nullable Object */;
5063 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5064 val* var3 /* : nullable Object */;
5065 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5066 val* var4 /* : nullable Object */;
5067 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5068 val* var_tidnode2 /* var tidnode2: nullable Object */;
5069 short int var5 /* : Bool */;
5070 int cltype;
5071 int idtype;
5072 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
5073 short int var6 /* : Bool */;
5074 int cltype7;
5075 int idtype8;
5076 val* var_tdotdotdotnode4 /* var tdotdotdotnode4: nullable Object */;
5077 short int var9 /* : Bool */;
5078 int cltype10;
5079 int idtype11;
5080 val* var_pannotationsnode5 /* var pannotationsnode5: nullable Object */;
5081 short int var12 /* : Bool */;
5082 int cltype13;
5083 int idtype14;
5084 val* var15 /* : AParam */;
5085 val* var_pparamnode1 /* var pparamnode1: nullable AParam */;
5086 long var16 /* : Int */;
5087 long var17 /* : Int */;
5088 var_p = p0;
5089 var = NULL;
5090 var_node_list = var;
5091 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5092 var_nodearraylist4 = var1;
5093 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5094 var_nodearraylist3 = var2;
5095 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5096 var_nodearraylist2 = var3;
5097 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5098 var_nodearraylist1 = var4;
5099 var_tidnode2 = var_nodearraylist1;
5100 /* <var_tidnode2:nullable Object> isa nullable TId */
5101 cltype = type_nullable_parser_nodes__TId.color;
5102 idtype = type_nullable_parser_nodes__TId.id;
5103 if(var_tidnode2 == NULL) {
5104 var5 = 1;
5105 } else {
5106 if(cltype >= var_tidnode2->type->table_size) {
5107 var5 = 0;
5108 } else {
5109 var5 = var_tidnode2->type->type_table[cltype] == idtype;
5110 }
5111 }
5112 if (!var5) {
5113 fprintf(stderr, "Runtime error: %s", "Assert failed");
5114 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23300);
5115 exit(1);
5116 }
5117 var_ptypenode3 = var_nodearraylist3;
5118 /* <var_ptypenode3:nullable Object> isa nullable AType */
5119 cltype7 = type_nullable_parser_nodes__AType.color;
5120 idtype8 = type_nullable_parser_nodes__AType.id;
5121 if(var_ptypenode3 == NULL) {
5122 var6 = 1;
5123 } else {
5124 if(cltype7 >= var_ptypenode3->type->table_size) {
5125 var6 = 0;
5126 } else {
5127 var6 = var_ptypenode3->type->type_table[cltype7] == idtype8;
5128 }
5129 }
5130 if (!var6) {
5131 fprintf(stderr, "Runtime error: %s", "Assert failed");
5132 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23302);
5133 exit(1);
5134 }
5135 var_tdotdotdotnode4 = var_nodearraylist4;
5136 /* <var_tdotdotdotnode4:nullable Object> isa nullable TDotdotdot */
5137 cltype10 = type_nullable_parser_nodes__TDotdotdot.color;
5138 idtype11 = type_nullable_parser_nodes__TDotdotdot.id;
5139 if(var_tdotdotdotnode4 == NULL) {
5140 var9 = 1;
5141 } else {
5142 if(cltype10 >= var_tdotdotdotnode4->type->table_size) {
5143 var9 = 0;
5144 } else {
5145 var9 = var_tdotdotdotnode4->type->type_table[cltype10] == idtype11;
5146 }
5147 }
5148 if (!var9) {
5149 fprintf(stderr, "Runtime error: %s", "Assert failed");
5150 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23304);
5151 exit(1);
5152 }
5153 var_pannotationsnode5 = var_nodearraylist2;
5154 /* <var_pannotationsnode5:nullable Object> isa nullable AAnnotations */
5155 cltype13 = type_nullable_parser_nodes__AAnnotations.color;
5156 idtype14 = type_nullable_parser_nodes__AAnnotations.id;
5157 if(var_pannotationsnode5 == NULL) {
5158 var12 = 1;
5159 } else {
5160 if(cltype13 >= var_pannotationsnode5->type->table_size) {
5161 var12 = 0;
5162 } else {
5163 var12 = var_pannotationsnode5->type->type_table[cltype13] == idtype14;
5164 }
5165 }
5166 if (!var12) {
5167 fprintf(stderr, "Runtime error: %s", "Assert failed");
5168 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23306);
5169 exit(1);
5170 }
5171 var15 = NEW_parser_nodes__AParam(&type_parser_nodes__AParam);
5172 ((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>*/;
5173 CHECK_NEW_parser_nodes__AParam(var15);
5174 var_pparamnode1 = var15;
5175 var_node_list = var_pparamnode1;
5176 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction559> */
5177 var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
5178 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
5179 RET_LABEL:;
5180 }
5181 /* method parser#ReduceAction559#action for (self: Object, Parser) */
5182 void VIRTUAL_parser__ReduceAction559__action(val* self, val* p0) {
5183 parser__ReduceAction559__action(self, p0);
5184 RET_LABEL:;
5185 }
5186 /* method parser#ReduceAction560#action for (self: ReduceAction560, Parser) */
5187 void parser__ReduceAction560__action(val* self, val* p0) {
5188 val* var_p /* var p: Parser */;
5189 val* var /* : null */;
5190 val* var_node_list /* var node_list: nullable Object */;
5191 val* var1 /* : nullable Object */;
5192 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5193 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
5194 short int var2 /* : Bool */;
5195 int cltype;
5196 int idtype;
5197 val* var3 /* : AReturnExpr */;
5198 val* var4 /* : null */;
5199 val* var_pexprnode1 /* var pexprnode1: nullable AReturnExpr */;
5200 long var5 /* : Int */;
5201 long var6 /* : Int */;
5202 var_p = p0;
5203 var = NULL;
5204 var_node_list = var;
5205 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5206 var_nodearraylist1 = var1;
5207 var_pexprnode3 = var_nodearraylist1;
5208 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
5209 cltype = type_nullable_parser_nodes__AExpr.color;
5210 idtype = type_nullable_parser_nodes__AExpr.id;
5211 if(var_pexprnode3 == NULL) {
5212 var2 = 1;
5213 } else {
5214 if(cltype >= var_pexprnode3->type->table_size) {
5215 var2 = 0;
5216 } else {
5217 var2 = var_pexprnode3->type->type_table[cltype] == idtype;
5218 }
5219 }
5220 if (!var2) {
5221 fprintf(stderr, "Runtime error: %s", "Assert failed");
5222 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23324);
5223 exit(1);
5224 }
5225 var3 = NEW_parser_nodes__AReturnExpr(&type_parser_nodes__AReturnExpr);
5226 var4 = NULL;
5227 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AReturnExpr__init_areturnexpr]))(var3, var4, var_pexprnode3) /* init_areturnexpr on <var3:AReturnExpr>*/;
5228 CHECK_NEW_parser_nodes__AReturnExpr(var3);
5229 var_pexprnode1 = var3;
5230 var_node_list = var_pexprnode1;
5231 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction560> */
5232 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
5233 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
5234 RET_LABEL:;
5235 }
5236 /* method parser#ReduceAction560#action for (self: Object, Parser) */
5237 void VIRTUAL_parser__ReduceAction560__action(val* self, val* p0) {
5238 parser__ReduceAction560__action(self, p0);
5239 RET_LABEL:;
5240 }
5241 /* method parser#ReduceAction561#action for (self: ReduceAction561, Parser) */
5242 void parser__ReduceAction561__action(val* self, val* p0) {
5243 val* var_p /* var p: Parser */;
5244 val* var /* : null */;
5245 val* var_node_list /* var node_list: nullable Object */;
5246 val* var1 /* : nullable Object */;
5247 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5248 val* var2 /* : nullable Object */;
5249 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5250 val* var3 /* : nullable Object */;
5251 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5252 val* var4 /* : Array[Object] */;
5253 val* var_listnode4 /* var listnode4: Array[Object] */;
5254 val* var_tkwimportnode2 /* var tkwimportnode2: nullable Object */;
5255 short int var5 /* : Bool */;
5256 int cltype;
5257 int idtype;
5258 val* var_pexterncallnode3 /* var pexterncallnode3: nullable Object */;
5259 short int var6 /* : Bool */;
5260 int cltype7;
5261 int idtype8;
5262 val* var9 /* : null */;
5263 short int var10 /* : Bool */;
5264 val* var11 /* : AExternCalls */;
5265 val* var_pexterncallsnode1 /* var pexterncallsnode1: nullable AExternCalls */;
5266 long var12 /* : Int */;
5267 long var13 /* : Int */;
5268 var_p = p0;
5269 var = NULL;
5270 var_node_list = var;
5271 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5272 var_nodearraylist3 = var1;
5273 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5274 var_nodearraylist2 = var2;
5275 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5276 var_nodearraylist1 = var3;
5277 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
5278 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
5279 CHECK_NEW_array__Array(var4);
5280 var_listnode4 = var4;
5281 var_tkwimportnode2 = var_nodearraylist1;
5282 /* <var_tkwimportnode2:nullable Object> isa nullable TKwimport */
5283 cltype = type_nullable_parser_nodes__TKwimport.color;
5284 idtype = type_nullable_parser_nodes__TKwimport.id;
5285 if(var_tkwimportnode2 == NULL) {
5286 var5 = 1;
5287 } else {
5288 if(cltype >= var_tkwimportnode2->type->table_size) {
5289 var5 = 0;
5290 } else {
5291 var5 = var_tkwimportnode2->type->type_table[cltype] == idtype;
5292 }
5293 }
5294 if (!var5) {
5295 fprintf(stderr, "Runtime error: %s", "Assert failed");
5296 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23343);
5297 exit(1);
5298 }
5299 var_pexterncallnode3 = var_nodearraylist3;
5300 /* <var_pexterncallnode3:nullable Object> isa nullable AExternCall */
5301 cltype7 = type_nullable_parser_nodes__AExternCall.color;
5302 idtype8 = type_nullable_parser_nodes__AExternCall.id;
5303 if(var_pexterncallnode3 == NULL) {
5304 var6 = 1;
5305 } else {
5306 if(cltype7 >= var_pexterncallnode3->type->table_size) {
5307 var6 = 0;
5308 } else {
5309 var6 = var_pexterncallnode3->type->type_table[cltype7] == idtype8;
5310 }
5311 }
5312 if (!var6) {
5313 fprintf(stderr, "Runtime error: %s", "Assert failed");
5314 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23345);
5315 exit(1);
5316 }
5317 var9 = NULL;
5318 if (var_pexterncallnode3 == NULL) {
5319 var10 = 0; /* is null */
5320 } else {
5321 var10 = 1; /* arg is null and recv is not */
5322 }
5323 if (var10){
5324 ((void (*)(val*, val*))(var_listnode4->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode4, var_pexterncallnode3) /* add on <var_listnode4:Array[Object]>*/;
5325 } else {
5326 }
5327 var11 = NEW_parser_nodes__AExternCalls(&type_parser_nodes__AExternCalls);
5328 ((void (*)(val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AExternCalls__init_aexterncalls]))(var11, var_tkwimportnode2, var_listnode4) /* init_aexterncalls on <var11:AExternCalls>*/;
5329 CHECK_NEW_parser_nodes__AExternCalls(var11);
5330 var_pexterncallsnode1 = var11;
5331 var_node_list = var_pexterncallsnode1;
5332 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction561> */
5333 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
5334 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
5335 RET_LABEL:;
5336 }
5337 /* method parser#ReduceAction561#action for (self: Object, Parser) */
5338 void VIRTUAL_parser__ReduceAction561__action(val* self, val* p0) {
5339 parser__ReduceAction561__action(self, p0);
5340 RET_LABEL:;
5341 }
5342 /* method parser#ReduceAction562#action for (self: ReduceAction562, Parser) */
5343 void parser__ReduceAction562__action(val* self, val* p0) {
5344 val* var_p /* var p: Parser */;
5345 val* var /* : null */;
5346 val* var_node_list /* var node_list: nullable Object */;
5347 val* var1 /* : nullable Object */;
5348 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5349 val* var2 /* : nullable Object */;
5350 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5351 val* var3 /* : nullable Object */;
5352 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5353 val* var4 /* : nullable Object */;
5354 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5355 val* var5 /* : Array[Object] */;
5356 val* var_listnode5 /* var listnode5: Array[Object] */;
5357 val* var_tkwimportnode2 /* var tkwimportnode2: nullable Object */;
5358 short int var6 /* : Bool */;
5359 int cltype;
5360 int idtype;
5361 val* var_pexterncallnode3 /* var pexterncallnode3: nullable Object */;
5362 short int var7 /* : Bool */;
5363 int cltype8;
5364 int idtype9;
5365 val* var_listnode4 /* var listnode4: nullable Object */;
5366 short int var10 /* : Bool */;
5367 int cltype11;
5368 int idtype12;
5369 val* var13 /* : null */;
5370 short int var14 /* : Bool */;
5371 val* var15 /* : Array[Object] */;
5372 val* var16 /* : AExternCalls */;
5373 val* var_pexterncallsnode1 /* var pexterncallsnode1: nullable AExternCalls */;
5374 long var17 /* : Int */;
5375 long var18 /* : Int */;
5376 var_p = p0;
5377 var = NULL;
5378 var_node_list = var;
5379 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5380 var_nodearraylist4 = var1;
5381 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5382 var_nodearraylist3 = var2;
5383 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5384 var_nodearraylist2 = var3;
5385 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5386 var_nodearraylist1 = var4;
5387 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
5388 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
5389 CHECK_NEW_array__Array(var5);
5390 var_listnode5 = var5;
5391 var_tkwimportnode2 = var_nodearraylist1;
5392 /* <var_tkwimportnode2:nullable Object> isa nullable TKwimport */
5393 cltype = type_nullable_parser_nodes__TKwimport.color;
5394 idtype = type_nullable_parser_nodes__TKwimport.id;
5395 if(var_tkwimportnode2 == NULL) {
5396 var6 = 1;
5397 } else {
5398 if(cltype >= var_tkwimportnode2->type->table_size) {
5399 var6 = 0;
5400 } else {
5401 var6 = var_tkwimportnode2->type->type_table[cltype] == idtype;
5402 }
5403 }
5404 if (!var6) {
5405 fprintf(stderr, "Runtime error: %s", "Assert failed");
5406 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23368);
5407 exit(1);
5408 }
5409 var_pexterncallnode3 = var_nodearraylist3;
5410 /* <var_pexterncallnode3:nullable Object> isa nullable AExternCall */
5411 cltype8 = type_nullable_parser_nodes__AExternCall.color;
5412 idtype9 = type_nullable_parser_nodes__AExternCall.id;
5413 if(var_pexterncallnode3 == NULL) {
5414 var7 = 1;
5415 } else {
5416 if(cltype8 >= var_pexterncallnode3->type->table_size) {
5417 var7 = 0;
5418 } else {
5419 var7 = var_pexterncallnode3->type->type_table[cltype8] == idtype9;
5420 }
5421 }
5422 if (!var7) {
5423 fprintf(stderr, "Runtime error: %s", "Assert failed");
5424 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23370);
5425 exit(1);
5426 }
5427 var_listnode4 = var_nodearraylist4;
5428 /* <var_listnode4:nullable Object> isa Array[Object] */
5429 cltype11 = type_array__Arraykernel__Object.color;
5430 idtype12 = type_array__Arraykernel__Object.id;
5431 if(var_listnode4 == NULL) {
5432 var10 = 0;
5433 } else {
5434 if(cltype11 >= var_listnode4->type->table_size) {
5435 var10 = 0;
5436 } else {
5437 var10 = var_listnode4->type->type_table[cltype11] == idtype12;
5438 }
5439 }
5440 if (!var10) {
5441 fprintf(stderr, "Runtime error: %s", "Assert failed");
5442 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23372);
5443 exit(1);
5444 }
5445 var13 = NULL;
5446 if (var_pexterncallnode3 == NULL) {
5447 var14 = 0; /* is null */
5448 } else {
5449 var14 = 1; /* arg is null and recv is not */
5450 }
5451 if (var14){
5452 ((void (*)(val*, val*))(var_listnode5->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode5, var_pexterncallnode3) /* add on <var_listnode5:Array[Object]>*/;
5453 } else {
5454 }
5455 var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction562>*/;
5456 var_listnode5 = var15;
5457 var16 = NEW_parser_nodes__AExternCalls(&type_parser_nodes__AExternCalls);
5458 ((void (*)(val*, val*, val*))(var16->class->vft[COLOR_parser_prod__AExternCalls__init_aexterncalls]))(var16, var_tkwimportnode2, var_listnode5) /* init_aexterncalls on <var16:AExternCalls>*/;
5459 CHECK_NEW_parser_nodes__AExternCalls(var16);
5460 var_pexterncallsnode1 = var16;
5461 var_node_list = var_pexterncallsnode1;
5462 var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction562> */
5463 var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
5464 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
5465 RET_LABEL:;
5466 }
5467 /* method parser#ReduceAction562#action for (self: Object, Parser) */
5468 void VIRTUAL_parser__ReduceAction562__action(val* self, val* p0) {
5469 parser__ReduceAction562__action(self, p0);
5470 RET_LABEL:;
5471 }
5472 /* method parser#ReduceAction563#action for (self: ReduceAction563, Parser) */
5473 void parser__ReduceAction563__action(val* self, val* p0) {
5474 val* var_p /* var p: Parser */;
5475 val* var /* : null */;
5476 val* var_node_list /* var node_list: nullable Object */;
5477 val* var1 /* : nullable Object */;
5478 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5479 val* var2 /* : nullable Object */;
5480 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5481 val* var3 /* : nullable Object */;
5482 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5483 val* var_pexterncallnode1 /* var pexterncallnode1: nullable Object */;
5484 long var4 /* : Int */;
5485 long var5 /* : Int */;
5486 var_p = p0;
5487 var = NULL;
5488 var_node_list = var;
5489 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5490 var_nodearraylist3 = var1;
5491 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5492 var_nodearraylist2 = var2;
5493 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5494 var_nodearraylist1 = var3;
5495 var_pexterncallnode1 = var_nodearraylist3;
5496 var_node_list = var_pexterncallnode1;
5497 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction563> */
5498 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
5499 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
5500 RET_LABEL:;
5501 }
5502 /* method parser#ReduceAction563#action for (self: Object, Parser) */
5503 void VIRTUAL_parser__ReduceAction563__action(val* self, val* p0) {
5504 parser__ReduceAction563__action(self, p0);
5505 RET_LABEL:;
5506 }
5507 /* method parser#ReduceAction564#action for (self: ReduceAction564, Parser) */
5508 void parser__ReduceAction564__action(val* self, val* p0) {
5509 val* var_p /* var p: Parser */;
5510 val* var /* : null */;
5511 val* var_node_list /* var node_list: nullable Object */;
5512 val* var1 /* : nullable Object */;
5513 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5514 val* var_pexterncallnode1 /* var pexterncallnode1: nullable Object */;
5515 long var2 /* : Int */;
5516 long var3 /* : Int */;
5517 var_p = p0;
5518 var = NULL;
5519 var_node_list = var;
5520 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5521 var_nodearraylist1 = var1;
5522 var_pexterncallnode1 = var_nodearraylist1;
5523 var_node_list = var_pexterncallnode1;
5524 var2 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction564> */
5525 var3 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var2) /* go_to on <var_p:Parser>*/;
5526 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var3, var_node_list) /* push on <var_p:Parser>*/;
5527 RET_LABEL:;
5528 }
5529 /* method parser#ReduceAction564#action for (self: Object, Parser) */
5530 void VIRTUAL_parser__ReduceAction564__action(val* self, val* p0) {
5531 parser__ReduceAction564__action(self, p0);
5532 RET_LABEL:;
5533 }
5534 /* method parser#ReduceAction566#action for (self: ReduceAction566, Parser) */
5535 void parser__ReduceAction566__action(val* self, val* p0) {
5536 val* var_p /* var p: Parser */;
5537 val* var /* : null */;
5538 val* var_node_list /* var node_list: nullable Object */;
5539 val* var1 /* : nullable Object */;
5540 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5541 val* var_tkwsupernode2 /* var tkwsupernode2: nullable Object */;
5542 short int var2 /* : Bool */;
5543 int cltype;
5544 int idtype;
5545 val* var3 /* : ASuperExternCall */;
5546 val* var_pexterncallnode1 /* var pexterncallnode1: nullable ASuperExternCall */;
5547 long var4 /* : Int */;
5548 long var5 /* : Int */;
5549 var_p = p0;
5550 var = NULL;
5551 var_node_list = var;
5552 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5553 var_nodearraylist1 = var1;
5554 var_tkwsupernode2 = var_nodearraylist1;
5555 /* <var_tkwsupernode2:nullable Object> isa nullable TKwsuper */
5556 cltype = type_nullable_parser_nodes__TKwsuper.color;
5557 idtype = type_nullable_parser_nodes__TKwsuper.id;
5558 if(var_tkwsupernode2 == NULL) {
5559 var2 = 1;
5560 } else {
5561 if(cltype >= var_tkwsupernode2->type->table_size) {
5562 var2 = 0;
5563 } else {
5564 var2 = var_tkwsupernode2->type->type_table[cltype] == idtype;
5565 }
5566 }
5567 if (!var2) {
5568 fprintf(stderr, "Runtime error: %s", "Assert failed");
5569 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23416);
5570 exit(1);
5571 }
5572 var3 = NEW_parser_nodes__ASuperExternCall(&type_parser_nodes__ASuperExternCall);
5573 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__ASuperExternCall__init_asuperexterncall]))(var3, var_tkwsupernode2) /* init_asuperexterncall on <var3:ASuperExternCall>*/;
5574 CHECK_NEW_parser_nodes__ASuperExternCall(var3);
5575 var_pexterncallnode1 = var3;
5576 var_node_list = var_pexterncallnode1;
5577 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction566> */
5578 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
5579 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
5580 RET_LABEL:;
5581 }
5582 /* method parser#ReduceAction566#action for (self: Object, Parser) */
5583 void VIRTUAL_parser__ReduceAction566__action(val* self, val* p0) {
5584 parser__ReduceAction566__action(self, p0);
5585 RET_LABEL:;
5586 }
5587 /* method parser#ReduceAction567#action for (self: ReduceAction567, Parser) */
5588 void parser__ReduceAction567__action(val* self, val* p0) {
5589 val* var_p /* var p: Parser */;
5590 val* var /* : null */;
5591 val* var_node_list /* var node_list: nullable Object */;
5592 val* var1 /* : nullable Object */;
5593 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5594 val* var_pmethidnode2 /* var pmethidnode2: nullable Object */;
5595 short int var2 /* : Bool */;
5596 int cltype;
5597 int idtype;
5598 val* var3 /* : ALocalPropExternCall */;
5599 val* var_pexterncallnode1 /* var pexterncallnode1: nullable ALocalPropExternCall */;
5600 long var4 /* : Int */;
5601 long var5 /* : Int */;
5602 var_p = p0;
5603 var = NULL;
5604 var_node_list = var;
5605 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5606 var_nodearraylist1 = var1;
5607 var_pmethidnode2 = var_nodearraylist1;
5608 /* <var_pmethidnode2:nullable Object> isa nullable AMethid */
5609 cltype = type_nullable_parser_nodes__AMethid.color;
5610 idtype = type_nullable_parser_nodes__AMethid.id;
5611 if(var_pmethidnode2 == NULL) {
5612 var2 = 1;
5613 } else {
5614 if(cltype >= var_pmethidnode2->type->table_size) {
5615 var2 = 0;
5616 } else {
5617 var2 = var_pmethidnode2->type->type_table[cltype] == idtype;
5618 }
5619 }
5620 if (!var2) {
5621 fprintf(stderr, "Runtime error: %s", "Assert failed");
5622 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23431);
5623 exit(1);
5624 }
5625 var3 = NEW_parser_nodes__ALocalPropExternCall(&type_parser_nodes__ALocalPropExternCall);
5626 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__ALocalPropExternCall__init_alocalpropexterncall]))(var3, var_pmethidnode2) /* init_alocalpropexterncall on <var3:ALocalPropExternCall>*/;
5627 CHECK_NEW_parser_nodes__ALocalPropExternCall(var3);
5628 var_pexterncallnode1 = var3;
5629 var_node_list = var_pexterncallnode1;
5630 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction567> */
5631 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
5632 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
5633 RET_LABEL:;
5634 }
5635 /* method parser#ReduceAction567#action for (self: Object, Parser) */
5636 void VIRTUAL_parser__ReduceAction567__action(val* self, val* p0) {
5637 parser__ReduceAction567__action(self, p0);
5638 RET_LABEL:;
5639 }
5640 /* method parser#ReduceAction568#action for (self: ReduceAction568, Parser) */
5641 void parser__ReduceAction568__action(val* self, val* p0) {
5642 val* var_p /* var p: Parser */;
5643 val* var /* : null */;
5644 val* var_node_list /* var node_list: nullable Object */;
5645 val* var1 /* : nullable Object */;
5646 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5647 val* var2 /* : nullable Object */;
5648 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5649 val* var3 /* : nullable Object */;
5650 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5651 val* var_tclassidnode2 /* var tclassidnode2: nullable Object */;
5652 short int var4 /* : Bool */;
5653 int cltype;
5654 int idtype;
5655 val* var_tquadnode3 /* var tquadnode3: nullable Object */;
5656 short int var5 /* : Bool */;
5657 int cltype6;
5658 int idtype7;
5659 val* var_pmethidnode4 /* var pmethidnode4: nullable Object */;
5660 short int var8 /* : Bool */;
5661 int cltype9;
5662 int idtype10;
5663 val* var11 /* : AFullPropExternCall */;
5664 val* var_pexterncallnode1 /* var pexterncallnode1: nullable AFullPropExternCall */;
5665 long var12 /* : Int */;
5666 long var13 /* : Int */;
5667 var_p = p0;
5668 var = NULL;
5669 var_node_list = var;
5670 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5671 var_nodearraylist3 = var1;
5672 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5673 var_nodearraylist2 = var2;
5674 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5675 var_nodearraylist1 = var3;
5676 var_tclassidnode2 = var_nodearraylist1;
5677 /* <var_tclassidnode2:nullable Object> isa nullable TClassid */
5678 cltype = type_nullable_parser_nodes__TClassid.color;
5679 idtype = type_nullable_parser_nodes__TClassid.id;
5680 if(var_tclassidnode2 == NULL) {
5681 var4 = 1;
5682 } else {
5683 if(cltype >= var_tclassidnode2->type->table_size) {
5684 var4 = 0;
5685 } else {
5686 var4 = var_tclassidnode2->type->type_table[cltype] == idtype;
5687 }
5688 }
5689 if (!var4) {
5690 fprintf(stderr, "Runtime error: %s", "Assert failed");
5691 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23448);
5692 exit(1);
5693 }
5694 var_tquadnode3 = var_nodearraylist2;
5695 /* <var_tquadnode3:nullable Object> isa nullable TQuad */
5696 cltype6 = type_nullable_parser_nodes__TQuad.color;
5697 idtype7 = type_nullable_parser_nodes__TQuad.id;
5698 if(var_tquadnode3 == NULL) {
5699 var5 = 1;
5700 } else {
5701 if(cltype6 >= var_tquadnode3->type->table_size) {
5702 var5 = 0;
5703 } else {
5704 var5 = var_tquadnode3->type->type_table[cltype6] == idtype7;
5705 }
5706 }
5707 if (!var5) {
5708 fprintf(stderr, "Runtime error: %s", "Assert failed");
5709 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23450);
5710 exit(1);
5711 }
5712 var_pmethidnode4 = var_nodearraylist3;
5713 /* <var_pmethidnode4:nullable Object> isa nullable AMethid */
5714 cltype9 = type_nullable_parser_nodes__AMethid.color;
5715 idtype10 = type_nullable_parser_nodes__AMethid.id;
5716 if(var_pmethidnode4 == NULL) {
5717 var8 = 1;
5718 } else {
5719 if(cltype9 >= var_pmethidnode4->type->table_size) {
5720 var8 = 0;
5721 } else {
5722 var8 = var_pmethidnode4->type->type_table[cltype9] == idtype10;
5723 }
5724 }
5725 if (!var8) {
5726 fprintf(stderr, "Runtime error: %s", "Assert failed");
5727 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23452);
5728 exit(1);
5729 }
5730 var11 = NEW_parser_nodes__AFullPropExternCall(&type_parser_nodes__AFullPropExternCall);
5731 ((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>*/;
5732 CHECK_NEW_parser_nodes__AFullPropExternCall(var11);
5733 var_pexterncallnode1 = var11;
5734 var_node_list = var_pexterncallnode1;
5735 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction568> */
5736 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
5737 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
5738 RET_LABEL:;
5739 }
5740 /* method parser#ReduceAction568#action for (self: Object, Parser) */
5741 void VIRTUAL_parser__ReduceAction568__action(val* self, val* p0) {
5742 parser__ReduceAction568__action(self, p0);
5743 RET_LABEL:;
5744 }
5745 /* method parser#ReduceAction569#action for (self: ReduceAction569, Parser) */
5746 void parser__ReduceAction569__action(val* self, val* p0) {
5747 val* var_p /* var p: Parser */;
5748 val* var /* : null */;
5749 val* var_node_list /* var node_list: nullable Object */;
5750 val* var1 /* : nullable Object */;
5751 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5752 val* var_tclassidnode2 /* var tclassidnode2: nullable Object */;
5753 short int var2 /* : Bool */;
5754 int cltype;
5755 int idtype;
5756 val* var3 /* : AInitPropExternCall */;
5757 val* var_pexterncallnode1 /* var pexterncallnode1: nullable AInitPropExternCall */;
5758 long var4 /* : Int */;
5759 long var5 /* : Int */;
5760 var_p = p0;
5761 var = NULL;
5762 var_node_list = var;
5763 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5764 var_nodearraylist1 = var1;
5765 var_tclassidnode2 = var_nodearraylist1;
5766 /* <var_tclassidnode2:nullable Object> isa nullable TClassid */
5767 cltype = type_nullable_parser_nodes__TClassid.color;
5768 idtype = type_nullable_parser_nodes__TClassid.id;
5769 if(var_tclassidnode2 == NULL) {
5770 var2 = 1;
5771 } else {
5772 if(cltype >= var_tclassidnode2->type->table_size) {
5773 var2 = 0;
5774 } else {
5775 var2 = var_tclassidnode2->type->type_table[cltype] == idtype;
5776 }
5777 }
5778 if (!var2) {
5779 fprintf(stderr, "Runtime error: %s", "Assert failed");
5780 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23469);
5781 exit(1);
5782 }
5783 var3 = NEW_parser_nodes__AInitPropExternCall(&type_parser_nodes__AInitPropExternCall);
5784 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AInitPropExternCall__init_ainitpropexterncall]))(var3, var_tclassidnode2) /* init_ainitpropexterncall on <var3:AInitPropExternCall>*/;
5785 CHECK_NEW_parser_nodes__AInitPropExternCall(var3);
5786 var_pexterncallnode1 = var3;
5787 var_node_list = var_pexterncallnode1;
5788 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction569> */
5789 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
5790 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
5791 RET_LABEL:;
5792 }
5793 /* method parser#ReduceAction569#action for (self: Object, Parser) */
5794 void VIRTUAL_parser__ReduceAction569__action(val* self, val* p0) {
5795 parser__ReduceAction569__action(self, p0);
5796 RET_LABEL:;
5797 }
5798 /* method parser#ReduceAction570#action for (self: ReduceAction570, Parser) */
5799 void parser__ReduceAction570__action(val* self, val* p0) {
5800 val* var_p /* var p: Parser */;
5801 val* var /* : null */;
5802 val* var_node_list /* var node_list: nullable Object */;
5803 val* var1 /* : nullable Object */;
5804 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
5805 val* var2 /* : nullable Object */;
5806 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
5807 val* var3 /* : nullable Object */;
5808 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5809 val* var4 /* : nullable Object */;
5810 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5811 val* var5 /* : nullable Object */;
5812 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5813 val* var6 /* : nullable Object */;
5814 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5815 val* var7 /* : nullable Object */;
5816 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5817 val* var8 /* : nullable Object */;
5818 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5819 val* var_ptypenode2 /* var ptypenode2: nullable Object */;
5820 short int var9 /* : Bool */;
5821 int cltype;
5822 int idtype;
5823 val* var_tkwasnode3 /* var tkwasnode3: nullable Object */;
5824 short int var10 /* : Bool */;
5825 int cltype11;
5826 int idtype12;
5827 val* var_ptypenode4 /* var ptypenode4: nullable Object */;
5828 short int var13 /* : Bool */;
5829 int cltype14;
5830 int idtype15;
5831 val* var16 /* : ACastAsExternCall */;
5832 val* var_pexterncallnode1 /* var pexterncallnode1: nullable ACastAsExternCall */;
5833 long var17 /* : Int */;
5834 long var18 /* : Int */;
5835 var_p = p0;
5836 var = NULL;
5837 var_node_list = var;
5838 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5839 var_nodearraylist8 = var1;
5840 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5841 var_nodearraylist7 = var2;
5842 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5843 var_nodearraylist6 = var3;
5844 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5845 var_nodearraylist5 = var4;
5846 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5847 var_nodearraylist4 = var5;
5848 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5849 var_nodearraylist3 = var6;
5850 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5851 var_nodearraylist2 = var7;
5852 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5853 var_nodearraylist1 = var8;
5854 var_ptypenode2 = var_nodearraylist1;
5855 /* <var_ptypenode2:nullable Object> isa nullable AType */
5856 cltype = type_nullable_parser_nodes__AType.color;
5857 idtype = type_nullable_parser_nodes__AType.id;
5858 if(var_ptypenode2 == NULL) {
5859 var9 = 1;
5860 } else {
5861 if(cltype >= var_ptypenode2->type->table_size) {
5862 var9 = 0;
5863 } else {
5864 var9 = var_ptypenode2->type->type_table[cltype] == idtype;
5865 }
5866 }
5867 if (!var9) {
5868 fprintf(stderr, "Runtime error: %s", "Assert failed");
5869 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23491);
5870 exit(1);
5871 }
5872 var_tkwasnode3 = var_nodearraylist2;
5873 /* <var_tkwasnode3:nullable Object> isa nullable TKwas */
5874 cltype11 = type_nullable_parser_nodes__TKwas.color;
5875 idtype12 = type_nullable_parser_nodes__TKwas.id;
5876 if(var_tkwasnode3 == NULL) {
5877 var10 = 1;
5878 } else {
5879 if(cltype11 >= var_tkwasnode3->type->table_size) {
5880 var10 = 0;
5881 } else {
5882 var10 = var_tkwasnode3->type->type_table[cltype11] == idtype12;
5883 }
5884 }
5885 if (!var10) {
5886 fprintf(stderr, "Runtime error: %s", "Assert failed");
5887 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23493);
5888 exit(1);
5889 }
5890 var_ptypenode4 = var_nodearraylist6;
5891 /* <var_ptypenode4:nullable Object> isa nullable AType */
5892 cltype14 = type_nullable_parser_nodes__AType.color;
5893 idtype15 = type_nullable_parser_nodes__AType.id;
5894 if(var_ptypenode4 == NULL) {
5895 var13 = 1;
5896 } else {
5897 if(cltype14 >= var_ptypenode4->type->table_size) {
5898 var13 = 0;
5899 } else {
5900 var13 = var_ptypenode4->type->type_table[cltype14] == idtype15;
5901 }
5902 }
5903 if (!var13) {
5904 fprintf(stderr, "Runtime error: %s", "Assert failed");
5905 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23495);
5906 exit(1);
5907 }
5908 var16 = NEW_parser_nodes__ACastAsExternCall(&type_parser_nodes__ACastAsExternCall);
5909 ((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>*/;
5910 CHECK_NEW_parser_nodes__ACastAsExternCall(var16);
5911 var_pexterncallnode1 = var16;
5912 var_node_list = var_pexterncallnode1;
5913 var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction570> */
5914 var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
5915 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
5916 RET_LABEL:;
5917 }
5918 /* method parser#ReduceAction570#action for (self: Object, Parser) */
5919 void VIRTUAL_parser__ReduceAction570__action(val* self, val* p0) {
5920 parser__ReduceAction570__action(self, p0);
5921 RET_LABEL:;
5922 }
5923 /* method parser#ReduceAction571#action for (self: ReduceAction571, Parser) */
5924 void parser__ReduceAction571__action(val* self, val* p0) {
5925 val* var_p /* var p: Parser */;
5926 val* var /* : null */;
5927 val* var_node_list /* var node_list: nullable Object */;
5928 val* var1 /* : nullable Object */;
5929 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5930 val* var2 /* : nullable Object */;
5931 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5932 val* var3 /* : nullable Object */;
5933 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5934 val* var4 /* : nullable Object */;
5935 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5936 val* var_ptypenode2 /* var ptypenode2: nullable Object */;
5937 short int var5 /* : Bool */;
5938 int cltype;
5939 int idtype;
5940 val* var_tkwasnode3 /* var tkwasnode3: nullable Object */;
5941 short int var6 /* : Bool */;
5942 int cltype7;
5943 int idtype8;
5944 val* var_tkwnullablenode4 /* var tkwnullablenode4: nullable Object */;
5945 short int var9 /* : Bool */;
5946 int cltype10;
5947 int idtype11;
5948 val* var12 /* : AAsNullableExternCall */;
5949 val* var_pexterncallnode1 /* var pexterncallnode1: nullable AAsNullableExternCall */;
5950 long var13 /* : Int */;
5951 long var14 /* : Int */;
5952 var_p = p0;
5953 var = NULL;
5954 var_node_list = var;
5955 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5956 var_nodearraylist4 = var1;
5957 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5958 var_nodearraylist3 = var2;
5959 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5960 var_nodearraylist2 = var3;
5961 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5962 var_nodearraylist1 = var4;
5963 var_ptypenode2 = var_nodearraylist1;
5964 /* <var_ptypenode2:nullable Object> isa nullable AType */
5965 cltype = type_nullable_parser_nodes__AType.color;
5966 idtype = type_nullable_parser_nodes__AType.id;
5967 if(var_ptypenode2 == NULL) {
5968 var5 = 1;
5969 } else {
5970 if(cltype >= var_ptypenode2->type->table_size) {
5971 var5 = 0;
5972 } else {
5973 var5 = var_ptypenode2->type->type_table[cltype] == idtype;
5974 }
5975 }
5976 if (!var5) {
5977 fprintf(stderr, "Runtime error: %s", "Assert failed");
5978 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23515);
5979 exit(1);
5980 }
5981 var_tkwasnode3 = var_nodearraylist2;
5982 /* <var_tkwasnode3:nullable Object> isa nullable TKwas */
5983 cltype7 = type_nullable_parser_nodes__TKwas.color;
5984 idtype8 = type_nullable_parser_nodes__TKwas.id;
5985 if(var_tkwasnode3 == NULL) {
5986 var6 = 1;
5987 } else {
5988 if(cltype7 >= var_tkwasnode3->type->table_size) {
5989 var6 = 0;
5990 } else {
5991 var6 = var_tkwasnode3->type->type_table[cltype7] == idtype8;
5992 }
5993 }
5994 if (!var6) {
5995 fprintf(stderr, "Runtime error: %s", "Assert failed");
5996 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23517);
5997 exit(1);
5998 }
5999 var_tkwnullablenode4 = var_nodearraylist4;
6000 /* <var_tkwnullablenode4:nullable Object> isa nullable TKwnullable */
6001 cltype10 = type_nullable_parser_nodes__TKwnullable.color;
6002 idtype11 = type_nullable_parser_nodes__TKwnullable.id;
6003 if(var_tkwnullablenode4 == NULL) {
6004 var9 = 1;
6005 } else {
6006 if(cltype10 >= var_tkwnullablenode4->type->table_size) {
6007 var9 = 0;
6008 } else {
6009 var9 = var_tkwnullablenode4->type->type_table[cltype10] == idtype11;
6010 }
6011 }
6012 if (!var9) {
6013 fprintf(stderr, "Runtime error: %s", "Assert failed");
6014 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23519);
6015 exit(1);
6016 }
6017 var12 = NEW_parser_nodes__AAsNullableExternCall(&type_parser_nodes__AAsNullableExternCall);
6018 ((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>*/;
6019 CHECK_NEW_parser_nodes__AAsNullableExternCall(var12);
6020 var_pexterncallnode1 = var12;
6021 var_node_list = var_pexterncallnode1;
6022 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction571> */
6023 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
6024 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
6025 RET_LABEL:;
6026 }
6027 /* method parser#ReduceAction571#action for (self: Object, Parser) */
6028 void VIRTUAL_parser__ReduceAction571__action(val* self, val* p0) {
6029 parser__ReduceAction571__action(self, p0);
6030 RET_LABEL:;
6031 }
6032 /* method parser#ReduceAction572#action for (self: ReduceAction572, Parser) */
6033 void parser__ReduceAction572__action(val* self, val* p0) {
6034 val* var_p /* var p: Parser */;
6035 val* var /* : null */;
6036 val* var_node_list /* var node_list: nullable Object */;
6037 val* var1 /* : nullable Object */;
6038 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6039 val* var2 /* : nullable Object */;
6040 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6041 val* var3 /* : nullable Object */;
6042 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6043 val* var4 /* : nullable Object */;
6044 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6045 val* var5 /* : nullable Object */;
6046 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6047 val* var6 /* : nullable Object */;
6048 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6049 val* var_ptypenode2 /* var ptypenode2: nullable Object */;
6050 short int var7 /* : Bool */;
6051 int cltype;
6052 int idtype;
6053 val* var_tkwasnode3 /* var tkwasnode3: nullable Object */;
6054 short int var8 /* : Bool */;
6055 int cltype9;
6056 int idtype10;
6057 val* var_tkwnotnode4 /* var tkwnotnode4: nullable Object */;
6058 short int var11 /* : Bool */;
6059 int cltype12;
6060 int idtype13;
6061 val* var_tkwnullablenode5 /* var tkwnullablenode5: nullable Object */;
6062 short int var14 /* : Bool */;
6063 int cltype15;
6064 int idtype16;
6065 val* var17 /* : AAsNotNullableExternCall */;
6066 val* var_pexterncallnode1 /* var pexterncallnode1: nullable AAsNotNullableExternCall */;
6067 long var18 /* : Int */;
6068 long var19 /* : Int */;
6069 var_p = p0;
6070 var = NULL;
6071 var_node_list = var;
6072 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6073 var_nodearraylist6 = var1;
6074 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6075 var_nodearraylist5 = var2;
6076 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6077 var_nodearraylist4 = var3;
6078 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6079 var_nodearraylist3 = var4;
6080 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6081 var_nodearraylist2 = var5;
6082 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6083 var_nodearraylist1 = var6;
6084 var_ptypenode2 = var_nodearraylist1;
6085 /* <var_ptypenode2:nullable Object> isa nullable AType */
6086 cltype = type_nullable_parser_nodes__AType.color;
6087 idtype = type_nullable_parser_nodes__AType.id;
6088 if(var_ptypenode2 == NULL) {
6089 var7 = 1;
6090 } else {
6091 if(cltype >= var_ptypenode2->type->table_size) {
6092 var7 = 0;
6093 } else {
6094 var7 = var_ptypenode2->type->type_table[cltype] == idtype;
6095 }
6096 }
6097 if (!var7) {
6098 fprintf(stderr, "Runtime error: %s", "Assert failed");
6099 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23541);
6100 exit(1);
6101 }
6102 var_tkwasnode3 = var_nodearraylist2;
6103 /* <var_tkwasnode3:nullable Object> isa nullable TKwas */
6104 cltype9 = type_nullable_parser_nodes__TKwas.color;
6105 idtype10 = type_nullable_parser_nodes__TKwas.id;
6106 if(var_tkwasnode3 == NULL) {
6107 var8 = 1;
6108 } else {
6109 if(cltype9 >= var_tkwasnode3->type->table_size) {
6110 var8 = 0;
6111 } else {
6112 var8 = var_tkwasnode3->type->type_table[cltype9] == idtype10;
6113 }
6114 }
6115 if (!var8) {
6116 fprintf(stderr, "Runtime error: %s", "Assert failed");
6117 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23543);
6118 exit(1);
6119 }
6120 var_tkwnotnode4 = var_nodearraylist4;
6121 /* <var_tkwnotnode4:nullable Object> isa nullable TKwnot */
6122 cltype12 = type_nullable_parser_nodes__TKwnot.color;
6123 idtype13 = type_nullable_parser_nodes__TKwnot.id;
6124 if(var_tkwnotnode4 == NULL) {
6125 var11 = 1;
6126 } else {
6127 if(cltype12 >= var_tkwnotnode4->type->table_size) {
6128 var11 = 0;
6129 } else {
6130 var11 = var_tkwnotnode4->type->type_table[cltype12] == idtype13;
6131 }
6132 }
6133 if (!var11) {
6134 fprintf(stderr, "Runtime error: %s", "Assert failed");
6135 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23545);
6136 exit(1);
6137 }
6138 var_tkwnullablenode5 = var_nodearraylist6;
6139 /* <var_tkwnullablenode5:nullable Object> isa nullable TKwnullable */
6140 cltype15 = type_nullable_parser_nodes__TKwnullable.color;
6141 idtype16 = type_nullable_parser_nodes__TKwnullable.id;
6142 if(var_tkwnullablenode5 == NULL) {
6143 var14 = 1;
6144 } else {
6145 if(cltype15 >= var_tkwnullablenode5->type->table_size) {
6146 var14 = 0;
6147 } else {
6148 var14 = var_tkwnullablenode5->type->type_table[cltype15] == idtype16;
6149 }
6150 }
6151 if (!var14) {
6152 fprintf(stderr, "Runtime error: %s", "Assert failed");
6153 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23547);
6154 exit(1);
6155 }
6156 var17 = NEW_parser_nodes__AAsNotNullableExternCall(&type_parser_nodes__AAsNotNullableExternCall);
6157 ((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>*/;
6158 CHECK_NEW_parser_nodes__AAsNotNullableExternCall(var17);
6159 var_pexterncallnode1 = var17;
6160 var_node_list = var_pexterncallnode1;
6161 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction572> */
6162 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
6163 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
6164 RET_LABEL:;
6165 }
6166 /* method parser#ReduceAction572#action for (self: Object, Parser) */
6167 void VIRTUAL_parser__ReduceAction572__action(val* self, val* p0) {
6168 parser__ReduceAction572__action(self, p0);
6169 RET_LABEL:;
6170 }
6171 /* method parser#ReduceAction573#action for (self: ReduceAction573, Parser) */
6172 void parser__ReduceAction573__action(val* self, val* p0) {
6173 val* var_p /* var p: Parser */;
6174 val* var /* : null */;
6175 val* var_node_list /* var node_list: nullable Object */;
6176 val* var1 /* : nullable Object */;
6177 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6178 val* var2 /* : nullable Object */;
6179 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6180 val* var_tkwinnode2 /* var tkwinnode2: nullable Object */;
6181 short int var3 /* : Bool */;
6182 int cltype;
6183 int idtype;
6184 val* var_tstringnode3 /* var tstringnode3: nullable Object */;
6185 short int var4 /* : Bool */;
6186 int cltype5;
6187 int idtype6;
6188 val* var7 /* : AInLanguage */;
6189 val* var_pinlanguagenode1 /* var pinlanguagenode1: nullable AInLanguage */;
6190 long var8 /* : Int */;
6191 long var9 /* : Int */;
6192 var_p = p0;
6193 var = NULL;
6194 var_node_list = var;
6195 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6196 var_nodearraylist2 = var1;
6197 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6198 var_nodearraylist1 = var2;
6199 var_tkwinnode2 = var_nodearraylist1;
6200 /* <var_tkwinnode2:nullable Object> isa nullable TKwin */
6201 cltype = type_nullable_parser_nodes__TKwin.color;
6202 idtype = type_nullable_parser_nodes__TKwin.id;
6203 if(var_tkwinnode2 == NULL) {
6204 var3 = 1;
6205 } else {
6206 if(cltype >= var_tkwinnode2->type->table_size) {
6207 var3 = 0;
6208 } else {
6209 var3 = var_tkwinnode2->type->type_table[cltype] == idtype;
6210 }
6211 }
6212 if (!var3) {
6213 fprintf(stderr, "Runtime error: %s", "Assert failed");
6214 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23566);
6215 exit(1);
6216 }
6217 var_tstringnode3 = var_nodearraylist2;
6218 /* <var_tstringnode3:nullable Object> isa nullable TString */
6219 cltype5 = type_nullable_parser_nodes__TString.color;
6220 idtype6 = type_nullable_parser_nodes__TString.id;
6221 if(var_tstringnode3 == NULL) {
6222 var4 = 1;
6223 } else {
6224 if(cltype5 >= var_tstringnode3->type->table_size) {
6225 var4 = 0;
6226 } else {
6227 var4 = var_tstringnode3->type->type_table[cltype5] == idtype6;
6228 }
6229 }
6230 if (!var4) {
6231 fprintf(stderr, "Runtime error: %s", "Assert failed");
6232 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23568);
6233 exit(1);
6234 }
6235 var7 = NEW_parser_nodes__AInLanguage(&type_parser_nodes__AInLanguage);
6236 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AInLanguage__init_ainlanguage]))(var7, var_tkwinnode2, var_tstringnode3) /* init_ainlanguage on <var7:AInLanguage>*/;
6237 CHECK_NEW_parser_nodes__AInLanguage(var7);
6238 var_pinlanguagenode1 = var7;
6239 var_node_list = var_pinlanguagenode1;
6240 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction573> */
6241 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
6242 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
6243 RET_LABEL:;
6244 }
6245 /* method parser#ReduceAction573#action for (self: Object, Parser) */
6246 void VIRTUAL_parser__ReduceAction573__action(val* self, val* p0) {
6247 parser__ReduceAction573__action(self, p0);
6248 RET_LABEL:;
6249 }
6250 /* method parser#ReduceAction574#action for (self: ReduceAction574, Parser) */
6251 void parser__ReduceAction574__action(val* self, val* p0) {
6252 val* var_p /* var p: Parser */;
6253 val* var /* : null */;
6254 val* var_node_list /* var node_list: nullable Object */;
6255 val* var1 /* : nullable Object */;
6256 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6257 val* var_texterncodesegmentnode3 /* var texterncodesegmentnode3: nullable Object */;
6258 short int var2 /* : Bool */;
6259 int cltype;
6260 int idtype;
6261 val* var3 /* : AExternCodeBlock */;
6262 val* var4 /* : null */;
6263 val* var_pexterncodeblocknode1 /* var pexterncodeblocknode1: nullable AExternCodeBlock */;
6264 long var5 /* : Int */;
6265 long var6 /* : Int */;
6266 var_p = p0;
6267 var = NULL;
6268 var_node_list = var;
6269 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6270 var_nodearraylist1 = var1;
6271 var_texterncodesegmentnode3 = var_nodearraylist1;
6272 /* <var_texterncodesegmentnode3:nullable Object> isa nullable TExternCodeSegment */
6273 cltype = type_nullable_parser_nodes__TExternCodeSegment.color;
6274 idtype = type_nullable_parser_nodes__TExternCodeSegment.id;
6275 if(var_texterncodesegmentnode3 == NULL) {
6276 var2 = 1;
6277 } else {
6278 if(cltype >= var_texterncodesegmentnode3->type->table_size) {
6279 var2 = 0;
6280 } else {
6281 var2 = var_texterncodesegmentnode3->type->type_table[cltype] == idtype;
6282 }
6283 }
6284 if (!var2) {
6285 fprintf(stderr, "Runtime error: %s", "Assert failed");
6286 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23584);
6287 exit(1);
6288 }
6289 var3 = NEW_parser_nodes__AExternCodeBlock(&type_parser_nodes__AExternCodeBlock);
6290 var4 = NULL;
6291 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AExternCodeBlock__init_aexterncodeblock]))(var3, var4, var_texterncodesegmentnode3) /* init_aexterncodeblock on <var3:AExternCodeBlock>*/;
6292 CHECK_NEW_parser_nodes__AExternCodeBlock(var3);
6293 var_pexterncodeblocknode1 = var3;
6294 var_node_list = var_pexterncodeblocknode1;
6295 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction574> */
6296 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
6297 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
6298 RET_LABEL:;
6299 }
6300 /* method parser#ReduceAction574#action for (self: Object, Parser) */
6301 void VIRTUAL_parser__ReduceAction574__action(val* self, val* p0) {
6302 parser__ReduceAction574__action(self, p0);
6303 RET_LABEL:;
6304 }
6305 /* method parser#ReduceAction575#action for (self: ReduceAction575, Parser) */
6306 void parser__ReduceAction575__action(val* self, val* p0) {
6307 val* var_p /* var p: Parser */;
6308 val* var /* : null */;
6309 val* var_node_list /* var node_list: nullable Object */;
6310 val* var1 /* : nullable Object */;
6311 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6312 val* var2 /* : nullable Object */;
6313 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6314 val* var_pinlanguagenode2 /* var pinlanguagenode2: nullable Object */;
6315 short int var3 /* : Bool */;
6316 int cltype;
6317 int idtype;
6318 val* var_texterncodesegmentnode3 /* var texterncodesegmentnode3: nullable Object */;
6319 short int var4 /* : Bool */;
6320 int cltype5;
6321 int idtype6;
6322 val* var7 /* : AExternCodeBlock */;
6323 val* var_pexterncodeblocknode1 /* var pexterncodeblocknode1: nullable AExternCodeBlock */;
6324 long var8 /* : Int */;
6325 long var9 /* : Int */;
6326 var_p = p0;
6327 var = NULL;
6328 var_node_list = var;
6329 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6330 var_nodearraylist2 = var1;
6331 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6332 var_nodearraylist1 = var2;
6333 var_pinlanguagenode2 = var_nodearraylist1;
6334 /* <var_pinlanguagenode2:nullable Object> isa nullable AInLanguage */
6335 cltype = type_nullable_parser_nodes__AInLanguage.color;
6336 idtype = type_nullable_parser_nodes__AInLanguage.id;
6337 if(var_pinlanguagenode2 == NULL) {
6338 var3 = 1;
6339 } else {
6340 if(cltype >= var_pinlanguagenode2->type->table_size) {
6341 var3 = 0;
6342 } else {
6343 var3 = var_pinlanguagenode2->type->type_table[cltype] == idtype;
6344 }
6345 }
6346 if (!var3) {
6347 fprintf(stderr, "Runtime error: %s", "Assert failed");
6348 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23601);
6349 exit(1);
6350 }
6351 var_texterncodesegmentnode3 = var_nodearraylist2;
6352 /* <var_texterncodesegmentnode3:nullable Object> isa nullable TExternCodeSegment */
6353 cltype5 = type_nullable_parser_nodes__TExternCodeSegment.color;
6354 idtype6 = type_nullable_parser_nodes__TExternCodeSegment.id;
6355 if(var_texterncodesegmentnode3 == NULL) {
6356 var4 = 1;
6357 } else {
6358 if(cltype5 >= var_texterncodesegmentnode3->type->table_size) {
6359 var4 = 0;
6360 } else {
6361 var4 = var_texterncodesegmentnode3->type->type_table[cltype5] == idtype6;
6362 }
6363 }
6364 if (!var4) {
6365 fprintf(stderr, "Runtime error: %s", "Assert failed");
6366 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23603);
6367 exit(1);
6368 }
6369 var7 = NEW_parser_nodes__AExternCodeBlock(&type_parser_nodes__AExternCodeBlock);
6370 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AExternCodeBlock__init_aexterncodeblock]))(var7, var_pinlanguagenode2, var_texterncodesegmentnode3) /* init_aexterncodeblock on <var7:AExternCodeBlock>*/;
6371 CHECK_NEW_parser_nodes__AExternCodeBlock(var7);
6372 var_pexterncodeblocknode1 = var7;
6373 var_node_list = var_pexterncodeblocknode1;
6374 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction575> */
6375 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
6376 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
6377 RET_LABEL:;
6378 }
6379 /* method parser#ReduceAction575#action for (self: Object, Parser) */
6380 void VIRTUAL_parser__ReduceAction575__action(val* self, val* p0) {
6381 parser__ReduceAction575__action(self, p0);
6382 RET_LABEL:;
6383 }
6384 /* method parser#ReduceAction576#action for (self: ReduceAction576, Parser) */
6385 void parser__ReduceAction576__action(val* self, val* p0) {
6386 val* var_p /* var p: Parser */;
6387 val* var /* : null */;
6388 val* var_node_list /* var node_list: nullable Object */;
6389 val* var1 /* : nullable Object */;
6390 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6391 val* var2 /* : nullable Object */;
6392 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6393 val* var_pexterncodeblocknode1 /* var pexterncodeblocknode1: nullable Object */;
6394 long var3 /* : Int */;
6395 long var4 /* : Int */;
6396 var_p = p0;
6397 var = NULL;
6398 var_node_list = var;
6399 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6400 var_nodearraylist2 = var1;
6401 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6402 var_nodearraylist1 = var2;
6403 var_pexterncodeblocknode1 = var_nodearraylist2;
6404 var_node_list = var_pexterncodeblocknode1;
6405 var3 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction576> */
6406 var4 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var3) /* go_to on <var_p:Parser>*/;
6407 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var4, var_node_list) /* push on <var_p:Parser>*/;
6408 RET_LABEL:;
6409 }
6410 /* method parser#ReduceAction576#action for (self: Object, Parser) */
6411 void VIRTUAL_parser__ReduceAction576__action(val* self, val* p0) {
6412 parser__ReduceAction576__action(self, p0);
6413 RET_LABEL:;
6414 }
6415 /* method parser#ReduceAction577#action for (self: ReduceAction577, Parser) */
6416 void parser__ReduceAction577__action(val* self, val* p0) {
6417 val* var_p /* var p: Parser */;
6418 val* var /* : null */;
6419 val* var_node_list /* var node_list: nullable Object */;
6420 val* var1 /* : nullable Object */;
6421 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6422 val* var2 /* : Array[Object] */;
6423 val* var_listnode4 /* var listnode4: Array[Object] */;
6424 val* var_tclassidnode3 /* var tclassidnode3: nullable Object */;
6425 short int var3 /* : Bool */;
6426 int cltype;
6427 int idtype;
6428 val* var4 /* : AType */;
6429 val* var5 /* : null */;
6430 val* var6 /* : null */;
6431 val* var_ptypenode1 /* var ptypenode1: nullable AType */;
6432 long var7 /* : Int */;
6433 long var8 /* : Int */;
6434 var_p = p0;
6435 var = NULL;
6436 var_node_list = var;
6437 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6438 var_nodearraylist1 = var1;
6439 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
6440 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
6441 CHECK_NEW_array__Array(var2);
6442 var_listnode4 = var2;
6443 var_tclassidnode3 = var_nodearraylist1;
6444 /* <var_tclassidnode3:nullable Object> isa nullable TClassid */
6445 cltype = type_nullable_parser_nodes__TClassid.color;
6446 idtype = type_nullable_parser_nodes__TClassid.id;
6447 if(var_tclassidnode3 == NULL) {
6448 var3 = 1;
6449 } else {
6450 if(cltype >= var_tclassidnode3->type->table_size) {
6451 var3 = 0;
6452 } else {
6453 var3 = var_tclassidnode3->type->type_table[cltype] == idtype;
6454 }
6455 }
6456 if (!var3) {
6457 fprintf(stderr, "Runtime error: %s", "Assert failed");
6458 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23632);
6459 exit(1);
6460 }
6461 var4 = NEW_parser_nodes__AType(&type_parser_nodes__AType);
6462 var5 = NULL;
6463 var6 = NULL;
6464 ((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>*/;
6465 CHECK_NEW_parser_nodes__AType(var4);
6466 var_ptypenode1 = var4;
6467 var_node_list = var_ptypenode1;
6468 var7 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction577> */
6469 var8 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var7) /* go_to on <var_p:Parser>*/;
6470 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var8, var_node_list) /* push on <var_p:Parser>*/;
6471 RET_LABEL:;
6472 }
6473 /* method parser#ReduceAction577#action for (self: Object, Parser) */
6474 void VIRTUAL_parser__ReduceAction577__action(val* self, val* p0) {
6475 parser__ReduceAction577__action(self, p0);
6476 RET_LABEL:;
6477 }
6478 /* method parser#ReduceAction578#action for (self: ReduceAction578, Parser) */
6479 void parser__ReduceAction578__action(val* self, val* p0) {
6480 val* var_p /* var p: Parser */;
6481 val* var /* : null */;
6482 val* var_node_list /* var node_list: nullable Object */;
6483 val* var1 /* : nullable Object */;
6484 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6485 val* var2 /* : nullable Object */;
6486 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6487 val* var3 /* : Array[Object] */;
6488 val* var_listnode4 /* var listnode4: Array[Object] */;
6489 val* var_tkwnullablenode2 /* var tkwnullablenode2: nullable Object */;
6490 short int var4 /* : Bool */;
6491 int cltype;
6492 int idtype;
6493 val* var_tclassidnode3 /* var tclassidnode3: nullable Object */;
6494 short int var5 /* : Bool */;
6495 int cltype6;
6496 int idtype7;
6497 val* var8 /* : AType */;
6498 val* var9 /* : null */;
6499 val* var_ptypenode1 /* var ptypenode1: nullable AType */;
6500 long var10 /* : Int */;
6501 long var11 /* : Int */;
6502 var_p = p0;
6503 var = NULL;
6504 var_node_list = var;
6505 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6506 var_nodearraylist2 = var1;
6507 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6508 var_nodearraylist1 = var2;
6509 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
6510 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
6511 CHECK_NEW_array__Array(var3);
6512 var_listnode4 = var3;
6513 var_tkwnullablenode2 = var_nodearraylist1;
6514 /* <var_tkwnullablenode2:nullable Object> isa nullable TKwnullable */
6515 cltype = type_nullable_parser_nodes__TKwnullable.color;
6516 idtype = type_nullable_parser_nodes__TKwnullable.id;
6517 if(var_tkwnullablenode2 == NULL) {
6518 var4 = 1;
6519 } else {
6520 if(cltype >= var_tkwnullablenode2->type->table_size) {
6521 var4 = 0;
6522 } else {
6523 var4 = var_tkwnullablenode2->type->type_table[cltype] == idtype;
6524 }
6525 }
6526 if (!var4) {
6527 fprintf(stderr, "Runtime error: %s", "Assert failed");
6528 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23652);
6529 exit(1);
6530 }
6531 var_tclassidnode3 = var_nodearraylist2;
6532 /* <var_tclassidnode3:nullable Object> isa nullable TClassid */
6533 cltype6 = type_nullable_parser_nodes__TClassid.color;
6534 idtype7 = type_nullable_parser_nodes__TClassid.id;
6535 if(var_tclassidnode3 == NULL) {
6536 var5 = 1;
6537 } else {
6538 if(cltype6 >= var_tclassidnode3->type->table_size) {
6539 var5 = 0;
6540 } else {
6541 var5 = var_tclassidnode3->type->type_table[cltype6] == idtype7;
6542 }
6543 }
6544 if (!var5) {
6545 fprintf(stderr, "Runtime error: %s", "Assert failed");
6546 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23654);
6547 exit(1);
6548 }
6549 var8 = NEW_parser_nodes__AType(&type_parser_nodes__AType);
6550 var9 = NULL;
6551 ((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>*/;
6552 CHECK_NEW_parser_nodes__AType(var8);
6553 var_ptypenode1 = var8;
6554 var_node_list = var_ptypenode1;
6555 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction578> */
6556 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
6557 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
6558 RET_LABEL:;
6559 }
6560 /* method parser#ReduceAction578#action for (self: Object, Parser) */
6561 void VIRTUAL_parser__ReduceAction578__action(val* self, val* p0) {
6562 parser__ReduceAction578__action(self, p0);
6563 RET_LABEL:;
6564 }
6565 /* method parser#ReduceAction579#action for (self: ReduceAction579, Parser) */
6566 void parser__ReduceAction579__action(val* self, val* p0) {
6567 val* var_p /* var p: Parser */;
6568 val* var /* : null */;
6569 val* var_node_list /* var node_list: nullable Object */;
6570 val* var1 /* : nullable Object */;
6571 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6572 val* var2 /* : nullable Object */;
6573 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6574 val* var3 /* : Array[Object] */;
6575 val* var_listnode4 /* var listnode4: Array[Object] */;
6576 val* var_tclassidnode3 /* var tclassidnode3: nullable Object */;
6577 short int var4 /* : Bool */;
6578 int cltype;
6579 int idtype;
6580 val* var_pannotationsnode5 /* var pannotationsnode5: nullable Object */;
6581 short int var5 /* : Bool */;
6582 int cltype6;
6583 int idtype7;
6584 val* var8 /* : AType */;
6585 val* var9 /* : null */;
6586 val* var_ptypenode1 /* var ptypenode1: nullable AType */;
6587 long var10 /* : Int */;
6588 long var11 /* : Int */;
6589 var_p = p0;
6590 var = NULL;
6591 var_node_list = var;
6592 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6593 var_nodearraylist2 = var1;
6594 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6595 var_nodearraylist1 = var2;
6596 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
6597 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
6598 CHECK_NEW_array__Array(var3);
6599 var_listnode4 = var3;
6600 var_tclassidnode3 = var_nodearraylist1;
6601 /* <var_tclassidnode3:nullable Object> isa nullable TClassid */
6602 cltype = type_nullable_parser_nodes__TClassid.color;
6603 idtype = type_nullable_parser_nodes__TClassid.id;
6604 if(var_tclassidnode3 == NULL) {
6605 var4 = 1;
6606 } else {
6607 if(cltype >= var_tclassidnode3->type->table_size) {
6608 var4 = 0;
6609 } else {
6610 var4 = var_tclassidnode3->type->type_table[cltype] == idtype;
6611 }
6612 }
6613 if (!var4) {
6614 fprintf(stderr, "Runtime error: %s", "Assert failed");
6615 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23674);
6616 exit(1);
6617 }
6618 var_pannotationsnode5 = var_nodearraylist2;
6619 /* <var_pannotationsnode5:nullable Object> isa nullable AAnnotations */
6620 cltype6 = type_nullable_parser_nodes__AAnnotations.color;
6621 idtype7 = type_nullable_parser_nodes__AAnnotations.id;
6622 if(var_pannotationsnode5 == NULL) {
6623 var5 = 1;
6624 } else {
6625 if(cltype6 >= var_pannotationsnode5->type->table_size) {
6626 var5 = 0;
6627 } else {
6628 var5 = var_pannotationsnode5->type->type_table[cltype6] == idtype7;
6629 }
6630 }
6631 if (!var5) {
6632 fprintf(stderr, "Runtime error: %s", "Assert failed");
6633 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23676);
6634 exit(1);
6635 }
6636 var8 = NEW_parser_nodes__AType(&type_parser_nodes__AType);
6637 var9 = NULL;
6638 ((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>*/;
6639 CHECK_NEW_parser_nodes__AType(var8);
6640 var_ptypenode1 = var8;
6641 var_node_list = var_ptypenode1;
6642 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction579> */
6643 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
6644 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
6645 RET_LABEL:;
6646 }
6647 /* method parser#ReduceAction579#action for (self: Object, Parser) */
6648 void VIRTUAL_parser__ReduceAction579__action(val* self, val* p0) {
6649 parser__ReduceAction579__action(self, p0);
6650 RET_LABEL:;
6651 }
6652 /* method parser#ReduceAction580#action for (self: ReduceAction580, Parser) */
6653 void parser__ReduceAction580__action(val* self, val* p0) {
6654 val* var_p /* var p: Parser */;
6655 val* var /* : null */;
6656 val* var_node_list /* var node_list: nullable Object */;
6657 val* var1 /* : nullable Object */;
6658 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6659 val* var2 /* : nullable Object */;
6660 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6661 val* var3 /* : nullable Object */;
6662 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6663 val* var4 /* : Array[Object] */;
6664 val* var_listnode4 /* var listnode4: Array[Object] */;
6665 val* var_tkwnullablenode2 /* var tkwnullablenode2: nullable Object */;
6666 short int var5 /* : Bool */;
6667 int cltype;
6668 int idtype;
6669 val* var_tclassidnode3 /* var tclassidnode3: nullable Object */;
6670 short int var6 /* : Bool */;
6671 int cltype7;
6672 int idtype8;
6673 val* var_pannotationsnode5 /* var pannotationsnode5: nullable Object */;
6674 short int var9 /* : Bool */;
6675 int cltype10;
6676 int idtype11;
6677 val* var12 /* : AType */;
6678 val* var_ptypenode1 /* var ptypenode1: nullable AType */;
6679 long var13 /* : Int */;
6680 long var14 /* : Int */;
6681 var_p = p0;
6682 var = NULL;
6683 var_node_list = var;
6684 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6685 var_nodearraylist3 = var1;
6686 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6687 var_nodearraylist2 = var2;
6688 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6689 var_nodearraylist1 = var3;
6690 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
6691 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
6692 CHECK_NEW_array__Array(var4);
6693 var_listnode4 = var4;
6694 var_tkwnullablenode2 = var_nodearraylist1;
6695 /* <var_tkwnullablenode2:nullable Object> isa nullable TKwnullable */
6696 cltype = type_nullable_parser_nodes__TKwnullable.color;
6697 idtype = type_nullable_parser_nodes__TKwnullable.id;
6698 if(var_tkwnullablenode2 == NULL) {
6699 var5 = 1;
6700 } else {
6701 if(cltype >= var_tkwnullablenode2->type->table_size) {
6702 var5 = 0;
6703 } else {
6704 var5 = var_tkwnullablenode2->type->type_table[cltype] == idtype;
6705 }
6706 }
6707 if (!var5) {
6708 fprintf(stderr, "Runtime error: %s", "Assert failed");
6709 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23697);
6710 exit(1);
6711 }
6712 var_tclassidnode3 = var_nodearraylist2;
6713 /* <var_tclassidnode3:nullable Object> isa nullable TClassid */
6714 cltype7 = type_nullable_parser_nodes__TClassid.color;
6715 idtype8 = type_nullable_parser_nodes__TClassid.id;
6716 if(var_tclassidnode3 == NULL) {
6717 var6 = 1;
6718 } else {
6719 if(cltype7 >= var_tclassidnode3->type->table_size) {
6720 var6 = 0;
6721 } else {
6722 var6 = var_tclassidnode3->type->type_table[cltype7] == idtype8;
6723 }
6724 }
6725 if (!var6) {
6726 fprintf(stderr, "Runtime error: %s", "Assert failed");
6727 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23699);
6728 exit(1);
6729 }
6730 var_pannotationsnode5 = var_nodearraylist3;
6731 /* <var_pannotationsnode5:nullable Object> isa nullable AAnnotations */
6732 cltype10 = type_nullable_parser_nodes__AAnnotations.color;
6733 idtype11 = type_nullable_parser_nodes__AAnnotations.id;
6734 if(var_pannotationsnode5 == NULL) {
6735 var9 = 1;
6736 } else {
6737 if(cltype10 >= var_pannotationsnode5->type->table_size) {
6738 var9 = 0;
6739 } else {
6740 var9 = var_pannotationsnode5->type->type_table[cltype10] == idtype11;
6741 }
6742 }
6743 if (!var9) {
6744 fprintf(stderr, "Runtime error: %s", "Assert failed");
6745 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23701);
6746 exit(1);
6747 }
6748 var12 = NEW_parser_nodes__AType(&type_parser_nodes__AType);
6749 ((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>*/;
6750 CHECK_NEW_parser_nodes__AType(var12);
6751 var_ptypenode1 = var12;
6752 var_node_list = var_ptypenode1;
6753 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction580> */
6754 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
6755 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
6756 RET_LABEL:;
6757 }
6758 /* method parser#ReduceAction580#action for (self: Object, Parser) */
6759 void VIRTUAL_parser__ReduceAction580__action(val* self, val* p0) {
6760 parser__ReduceAction580__action(self, p0);
6761 RET_LABEL:;
6762 }
6763 /* method parser#ReduceAction581#action for (self: ReduceAction581, Parser) */
6764 void parser__ReduceAction581__action(val* self, val* p0) {
6765 val* var_p /* var p: Parser */;
6766 val* var /* : null */;
6767 val* var_node_list /* var node_list: nullable Object */;
6768 val* var1 /* : nullable Object */;
6769 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6770 val* var2 /* : nullable Object */;
6771 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6772 val* var3 /* : nullable Object */;
6773 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6774 val* var4 /* : nullable Object */;
6775 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6776 val* var5 /* : nullable Object */;
6777 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6778 val* var6 /* : nullable Object */;
6779 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6780 val* var7 /* : Array[Object] */;
6781 val* var_listnode5 /* var listnode5: Array[Object] */;
6782 val* var_tclassidnode3 /* var tclassidnode3: nullable Object */;
6783 short int var8 /* : Bool */;
6784 int cltype;
6785 int idtype;
6786 val* var_listnode4 /* var listnode4: nullable Object */;
6787 short int var9 /* : Bool */;
6788 int cltype10;
6789 int idtype11;
6790 val* var12 /* : Array[Object] */;
6791 val* var13 /* : AType */;
6792 val* var14 /* : null */;
6793 val* var15 /* : null */;
6794 val* var_ptypenode1 /* var ptypenode1: nullable AType */;
6795 long var16 /* : Int */;
6796 long var17 /* : Int */;
6797 var_p = p0;
6798 var = NULL;
6799 var_node_list = var;
6800 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6801 var_nodearraylist6 = var1;
6802 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6803 var_nodearraylist5 = var2;
6804 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6805 var_nodearraylist4 = var3;
6806 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6807 var_nodearraylist3 = var4;
6808 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6809 var_nodearraylist2 = var5;
6810 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6811 var_nodearraylist1 = var6;
6812 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
6813 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
6814 CHECK_NEW_array__Array(var7);
6815 var_listnode5 = var7;
6816 var_tclassidnode3 = var_nodearraylist1;
6817 /* <var_tclassidnode3:nullable Object> isa nullable TClassid */
6818 cltype = type_nullable_parser_nodes__TClassid.color;
6819 idtype = type_nullable_parser_nodes__TClassid.id;
6820 if(var_tclassidnode3 == NULL) {
6821 var8 = 1;
6822 } else {
6823 if(cltype >= var_tclassidnode3->type->table_size) {
6824 var8 = 0;
6825 } else {
6826 var8 = var_tclassidnode3->type->type_table[cltype] == idtype;
6827 }
6828 }
6829 if (!var8) {
6830 fprintf(stderr, "Runtime error: %s", "Assert failed");
6831 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23725);
6832 exit(1);
6833 }
6834 var_listnode4 = var_nodearraylist4;
6835 /* <var_listnode4:nullable Object> isa Array[Object] */
6836 cltype10 = type_array__Arraykernel__Object.color;
6837 idtype11 = type_array__Arraykernel__Object.id;
6838 if(var_listnode4 == NULL) {
6839 var9 = 0;
6840 } else {
6841 if(cltype10 >= var_listnode4->type->table_size) {
6842 var9 = 0;
6843 } else {
6844 var9 = var_listnode4->type->type_table[cltype10] == idtype11;
6845 }
6846 }
6847 if (!var9) {
6848 fprintf(stderr, "Runtime error: %s", "Assert failed");
6849 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23727);
6850 exit(1);
6851 }
6852 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction581>*/;
6853 var_listnode5 = var12;
6854 var13 = NEW_parser_nodes__AType(&type_parser_nodes__AType);
6855 var14 = NULL;
6856 var15 = NULL;
6857 ((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>*/;
6858 CHECK_NEW_parser_nodes__AType(var13);
6859 var_ptypenode1 = var13;
6860 var_node_list = var_ptypenode1;
6861 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction581> */
6862 var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
6863 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
6864 RET_LABEL:;
6865 }
6866 /* method parser#ReduceAction581#action for (self: Object, Parser) */
6867 void VIRTUAL_parser__ReduceAction581__action(val* self, val* p0) {
6868 parser__ReduceAction581__action(self, p0);
6869 RET_LABEL:;
6870 }
6871 /* method parser#ReduceAction582#action for (self: ReduceAction582, Parser) */
6872 void parser__ReduceAction582__action(val* self, val* p0) {
6873 val* var_p /* var p: Parser */;
6874 val* var /* : null */;
6875 val* var_node_list /* var node_list: nullable Object */;
6876 val* var1 /* : nullable Object */;
6877 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
6878 val* var2 /* : nullable Object */;
6879 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6880 val* var3 /* : nullable Object */;
6881 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6882 val* var4 /* : nullable Object */;
6883 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6884 val* var5 /* : nullable Object */;
6885 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6886 val* var6 /* : nullable Object */;
6887 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6888 val* var7 /* : nullable Object */;
6889 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6890 val* var8 /* : Array[Object] */;
6891 val* var_listnode5 /* var listnode5: Array[Object] */;
6892 val* var_tkwnullablenode2 /* var tkwnullablenode2: nullable Object */;
6893 short int var9 /* : Bool */;
6894 int cltype;
6895 int idtype;
6896 val* var_tclassidnode3 /* var tclassidnode3: nullable Object */;
6897 short int var10 /* : Bool */;
6898 int cltype11;
6899 int idtype12;
6900 val* var_listnode4 /* var listnode4: nullable Object */;
6901 short int var13 /* : Bool */;
6902 int cltype14;
6903 int idtype15;
6904 val* var16 /* : Array[Object] */;
6905 val* var17 /* : AType */;
6906 val* var18 /* : null */;
6907 val* var_ptypenode1 /* var ptypenode1: nullable AType */;
6908 long var19 /* : Int */;
6909 long var20 /* : Int */;
6910 var_p = p0;
6911 var = NULL;
6912 var_node_list = var;
6913 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6914 var_nodearraylist7 = var1;
6915 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6916 var_nodearraylist6 = var2;
6917 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6918 var_nodearraylist5 = var3;
6919 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6920 var_nodearraylist4 = var4;
6921 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6922 var_nodearraylist3 = var5;
6923 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6924 var_nodearraylist2 = var6;
6925 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6926 var_nodearraylist1 = var7;
6927 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
6928 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
6929 CHECK_NEW_array__Array(var8);
6930 var_listnode5 = var8;
6931 var_tkwnullablenode2 = var_nodearraylist1;
6932 /* <var_tkwnullablenode2:nullable Object> isa nullable TKwnullable */
6933 cltype = type_nullable_parser_nodes__TKwnullable.color;
6934 idtype = type_nullable_parser_nodes__TKwnullable.id;
6935 if(var_tkwnullablenode2 == NULL) {
6936 var9 = 1;
6937 } else {
6938 if(cltype >= var_tkwnullablenode2->type->table_size) {
6939 var9 = 0;
6940 } else {
6941 var9 = var_tkwnullablenode2->type->type_table[cltype] == idtype;
6942 }
6943 }
6944 if (!var9) {
6945 fprintf(stderr, "Runtime error: %s", "Assert failed");
6946 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23753);
6947 exit(1);
6948 }
6949 var_tclassidnode3 = var_nodearraylist2;
6950 /* <var_tclassidnode3:nullable Object> isa nullable TClassid */
6951 cltype11 = type_nullable_parser_nodes__TClassid.color;
6952 idtype12 = type_nullable_parser_nodes__TClassid.id;
6953 if(var_tclassidnode3 == NULL) {
6954 var10 = 1;
6955 } else {
6956 if(cltype11 >= var_tclassidnode3->type->table_size) {
6957 var10 = 0;
6958 } else {
6959 var10 = var_tclassidnode3->type->type_table[cltype11] == idtype12;
6960 }
6961 }
6962 if (!var10) {
6963 fprintf(stderr, "Runtime error: %s", "Assert failed");
6964 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23755);
6965 exit(1);
6966 }
6967 var_listnode4 = var_nodearraylist5;
6968 /* <var_listnode4:nullable Object> isa Array[Object] */
6969 cltype14 = type_array__Arraykernel__Object.color;
6970 idtype15 = type_array__Arraykernel__Object.id;
6971 if(var_listnode4 == NULL) {
6972 var13 = 0;
6973 } else {
6974 if(cltype14 >= var_listnode4->type->table_size) {
6975 var13 = 0;
6976 } else {
6977 var13 = var_listnode4->type->type_table[cltype14] == idtype15;
6978 }
6979 }
6980 if (!var13) {
6981 fprintf(stderr, "Runtime error: %s", "Assert failed");
6982 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23757);
6983 exit(1);
6984 }
6985 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction582>*/;
6986 var_listnode5 = var16;
6987 var17 = NEW_parser_nodes__AType(&type_parser_nodes__AType);
6988 var18 = NULL;
6989 ((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>*/;
6990 CHECK_NEW_parser_nodes__AType(var17);
6991 var_ptypenode1 = var17;
6992 var_node_list = var_ptypenode1;
6993 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction582> */
6994 var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
6995 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
6996 RET_LABEL:;
6997 }
6998 /* method parser#ReduceAction582#action for (self: Object, Parser) */
6999 void VIRTUAL_parser__ReduceAction582__action(val* self, val* p0) {
7000 parser__ReduceAction582__action(self, p0);
7001 RET_LABEL:;
7002 }
7003 /* method parser#ReduceAction583#action for (self: ReduceAction583, Parser) */
7004 void parser__ReduceAction583__action(val* self, val* p0) {
7005 val* var_p /* var p: Parser */;
7006 val* var /* : null */;
7007 val* var_node_list /* var node_list: nullable Object */;
7008 val* var1 /* : nullable Object */;
7009 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
7010 val* var2 /* : nullable Object */;
7011 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7012 val* var3 /* : nullable Object */;
7013 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7014 val* var4 /* : nullable Object */;
7015 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7016 val* var5 /* : nullable Object */;
7017 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7018 val* var6 /* : nullable Object */;
7019 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7020 val* var7 /* : nullable Object */;
7021 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7022 val* var8 /* : Array[Object] */;
7023 val* var_listnode5 /* var listnode5: Array[Object] */;
7024 val* var_tclassidnode3 /* var tclassidnode3: nullable Object */;
7025 short int var9 /* : Bool */;
7026 int cltype;
7027 int idtype;
7028 val* var_listnode4 /* var listnode4: nullable Object */;
7029 short int var10 /* : Bool */;
7030 int cltype11;
7031 int idtype12;
7032 val* var13 /* : Array[Object] */;
7033 val* var_pannotationsnode6 /* var pannotationsnode6: nullable Object */;
7034 short int var14 /* : Bool */;
7035 int cltype15;
7036 int idtype16;
7037 val* var17 /* : AType */;
7038 val* var18 /* : null */;
7039 val* var_ptypenode1 /* var ptypenode1: nullable AType */;
7040 long var19 /* : Int */;
7041 long var20 /* : Int */;
7042 var_p = p0;
7043 var = NULL;
7044 var_node_list = var;
7045 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7046 var_nodearraylist7 = var1;
7047 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7048 var_nodearraylist6 = var2;
7049 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7050 var_nodearraylist5 = var3;
7051 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7052 var_nodearraylist4 = var4;
7053 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7054 var_nodearraylist3 = var5;
7055 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7056 var_nodearraylist2 = var6;
7057 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7058 var_nodearraylist1 = var7;
7059 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
7060 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
7061 CHECK_NEW_array__Array(var8);
7062 var_listnode5 = var8;
7063 var_tclassidnode3 = var_nodearraylist1;
7064 /* <var_tclassidnode3:nullable Object> isa nullable TClassid */
7065 cltype = type_nullable_parser_nodes__TClassid.color;
7066 idtype = type_nullable_parser_nodes__TClassid.id;
7067 if(var_tclassidnode3 == NULL) {
7068 var9 = 1;
7069 } else {
7070 if(cltype >= var_tclassidnode3->type->table_size) {
7071 var9 = 0;
7072 } else {
7073 var9 = var_tclassidnode3->type->type_table[cltype] == idtype;
7074 }
7075 }
7076 if (!var9) {
7077 fprintf(stderr, "Runtime error: %s", "Assert failed");
7078 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23783);
7079 exit(1);
7080 }
7081 var_listnode4 = var_nodearraylist4;
7082 /* <var_listnode4:nullable Object> isa Array[Object] */
7083 cltype11 = type_array__Arraykernel__Object.color;
7084 idtype12 = type_array__Arraykernel__Object.id;
7085 if(var_listnode4 == NULL) {
7086 var10 = 0;
7087 } else {
7088 if(cltype11 >= var_listnode4->type->table_size) {
7089 var10 = 0;
7090 } else {
7091 var10 = var_listnode4->type->type_table[cltype11] == idtype12;
7092 }
7093 }
7094 if (!var10) {
7095 fprintf(stderr, "Runtime error: %s", "Assert failed");
7096 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23785);
7097 exit(1);
7098 }
7099 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction583>*/;
7100 var_listnode5 = var13;
7101 var_pannotationsnode6 = var_nodearraylist7;
7102 /* <var_pannotationsnode6:nullable Object> isa nullable AAnnotations */
7103 cltype15 = type_nullable_parser_nodes__AAnnotations.color;
7104 idtype16 = type_nullable_parser_nodes__AAnnotations.id;
7105 if(var_pannotationsnode6 == NULL) {
7106 var14 = 1;
7107 } else {
7108 if(cltype15 >= var_pannotationsnode6->type->table_size) {
7109 var14 = 0;
7110 } else {
7111 var14 = var_pannotationsnode6->type->type_table[cltype15] == idtype16;
7112 }
7113 }
7114 if (!var14) {
7115 fprintf(stderr, "Runtime error: %s", "Assert failed");
7116 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23788);
7117 exit(1);
7118 }
7119 var17 = NEW_parser_nodes__AType(&type_parser_nodes__AType);
7120 var18 = NULL;
7121 ((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>*/;
7122 CHECK_NEW_parser_nodes__AType(var17);
7123 var_ptypenode1 = var17;
7124 var_node_list = var_ptypenode1;
7125 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction583> */
7126 var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
7127 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
7128 RET_LABEL:;
7129 }
7130 /* method parser#ReduceAction583#action for (self: Object, Parser) */
7131 void VIRTUAL_parser__ReduceAction583__action(val* self, val* p0) {
7132 parser__ReduceAction583__action(self, p0);
7133 RET_LABEL:;
7134 }
7135 /* method parser#ReduceAction584#action for (self: ReduceAction584, Parser) */
7136 void parser__ReduceAction584__action(val* self, val* p0) {
7137 val* var_p /* var p: Parser */;
7138 val* var /* : null */;
7139 val* var_node_list /* var node_list: nullable Object */;
7140 val* var1 /* : nullable Object */;
7141 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
7142 val* var2 /* : nullable Object */;
7143 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
7144 val* var3 /* : nullable Object */;
7145 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7146 val* var4 /* : nullable Object */;
7147 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7148 val* var5 /* : nullable Object */;
7149 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7150 val* var6 /* : nullable Object */;
7151 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7152 val* var7 /* : nullable Object */;
7153 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7154 val* var8 /* : nullable Object */;
7155 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7156 val* var9 /* : Array[Object] */;
7157 val* var_listnode5 /* var listnode5: Array[Object] */;
7158 val* var_tkwnullablenode2 /* var tkwnullablenode2: nullable Object */;
7159 short int var10 /* : Bool */;
7160 int cltype;
7161 int idtype;
7162 val* var_tclassidnode3 /* var tclassidnode3: nullable Object */;
7163 short int var11 /* : Bool */;
7164 int cltype12;
7165 int idtype13;
7166 val* var_listnode4 /* var listnode4: nullable Object */;
7167 short int var14 /* : Bool */;
7168 int cltype15;
7169 int idtype16;
7170 val* var17 /* : Array[Object] */;
7171 val* var_pannotationsnode6 /* var pannotationsnode6: nullable Object */;
7172 short int var18 /* : Bool */;
7173 int cltype19;
7174 int idtype20;
7175 val* var21 /* : AType */;
7176 val* var_ptypenode1 /* var ptypenode1: nullable AType */;
7177 long var22 /* : Int */;
7178 long var23 /* : Int */;
7179 var_p = p0;
7180 var = NULL;
7181 var_node_list = var;
7182 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7183 var_nodearraylist8 = var1;
7184 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7185 var_nodearraylist7 = var2;
7186 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7187 var_nodearraylist6 = var3;
7188 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7189 var_nodearraylist5 = var4;
7190 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7191 var_nodearraylist4 = var5;
7192 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7193 var_nodearraylist3 = var6;
7194 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7195 var_nodearraylist2 = var7;
7196 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7197 var_nodearraylist1 = var8;
7198 var9 = NEW_array__Array(&type_array__Arraykernel__Object);
7199 ((void (*)(val*))(var9->class->vft[COLOR_array__Array__init]))(var9) /* init on <var9:Array[Object]>*/;
7200 CHECK_NEW_array__Array(var9);
7201 var_listnode5 = var9;
7202 var_tkwnullablenode2 = var_nodearraylist1;
7203 /* <var_tkwnullablenode2:nullable Object> isa nullable TKwnullable */
7204 cltype = type_nullable_parser_nodes__TKwnullable.color;
7205 idtype = type_nullable_parser_nodes__TKwnullable.id;
7206 if(var_tkwnullablenode2 == NULL) {
7207 var10 = 1;
7208 } else {
7209 if(cltype >= var_tkwnullablenode2->type->table_size) {
7210 var10 = 0;
7211 } else {
7212 var10 = var_tkwnullablenode2->type->type_table[cltype] == idtype;
7213 }
7214 }
7215 if (!var10) {
7216 fprintf(stderr, "Runtime error: %s", "Assert failed");
7217 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23814);
7218 exit(1);
7219 }
7220 var_tclassidnode3 = var_nodearraylist2;
7221 /* <var_tclassidnode3:nullable Object> isa nullable TClassid */
7222 cltype12 = type_nullable_parser_nodes__TClassid.color;
7223 idtype13 = type_nullable_parser_nodes__TClassid.id;
7224 if(var_tclassidnode3 == NULL) {
7225 var11 = 1;
7226 } else {
7227 if(cltype12 >= var_tclassidnode3->type->table_size) {
7228 var11 = 0;
7229 } else {
7230 var11 = var_tclassidnode3->type->type_table[cltype12] == idtype13;
7231 }
7232 }
7233 if (!var11) {
7234 fprintf(stderr, "Runtime error: %s", "Assert failed");
7235 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23816);
7236 exit(1);
7237 }
7238 var_listnode4 = var_nodearraylist5;
7239 /* <var_listnode4:nullable Object> isa Array[Object] */
7240 cltype15 = type_array__Arraykernel__Object.color;
7241 idtype16 = type_array__Arraykernel__Object.id;
7242 if(var_listnode4 == NULL) {
7243 var14 = 0;
7244 } else {
7245 if(cltype15 >= var_listnode4->type->table_size) {
7246 var14 = 0;
7247 } else {
7248 var14 = var_listnode4->type->type_table[cltype15] == idtype16;
7249 }
7250 }
7251 if (!var14) {
7252 fprintf(stderr, "Runtime error: %s", "Assert failed");
7253 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23818);
7254 exit(1);
7255 }
7256 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction584>*/;
7257 var_listnode5 = var17;
7258 var_pannotationsnode6 = var_nodearraylist8;
7259 /* <var_pannotationsnode6:nullable Object> isa nullable AAnnotations */
7260 cltype19 = type_nullable_parser_nodes__AAnnotations.color;
7261 idtype20 = type_nullable_parser_nodes__AAnnotations.id;
7262 if(var_pannotationsnode6 == NULL) {
7263 var18 = 1;
7264 } else {
7265 if(cltype19 >= var_pannotationsnode6->type->table_size) {
7266 var18 = 0;
7267 } else {
7268 var18 = var_pannotationsnode6->type->type_table[cltype19] == idtype20;
7269 }
7270 }
7271 if (!var18) {
7272 fprintf(stderr, "Runtime error: %s", "Assert failed");
7273 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23821);
7274 exit(1);
7275 }
7276 var21 = NEW_parser_nodes__AType(&type_parser_nodes__AType);
7277 ((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>*/;
7278 CHECK_NEW_parser_nodes__AType(var21);
7279 var_ptypenode1 = var21;
7280 var_node_list = var_ptypenode1;
7281 var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction584> */
7282 var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
7283 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
7284 RET_LABEL:;
7285 }
7286 /* method parser#ReduceAction584#action for (self: Object, Parser) */
7287 void VIRTUAL_parser__ReduceAction584__action(val* self, val* p0) {
7288 parser__ReduceAction584__action(self, p0);
7289 RET_LABEL:;
7290 }
7291 /* method parser#ReduceAction585#action for (self: ReduceAction585, Parser) */
7292 void parser__ReduceAction585__action(val* self, val* p0) {
7293 val* var_p /* var p: Parser */;
7294 val* var /* : null */;
7295 val* var_node_list /* var node_list: nullable Object */;
7296 val* var1 /* : nullable Object */;
7297 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7298 val* var2 /* : Array[Object] */;
7299 val* var_listnode2 /* var listnode2: Array[Object] */;
7300 val* var_ptypenode1 /* var ptypenode1: nullable Object */;
7301 val* var3 /* : null */;
7302 short int var4 /* : Bool */;
7303 long var5 /* : Int */;
7304 long var6 /* : Int */;
7305 var_p = p0;
7306 var = NULL;
7307 var_node_list = var;
7308 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7309 var_nodearraylist1 = var1;
7310 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
7311 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
7312 CHECK_NEW_array__Array(var2);
7313 var_listnode2 = var2;
7314 var_ptypenode1 = var_nodearraylist1;
7315 var3 = NULL;
7316 if (var_ptypenode1 == NULL) {
7317 var4 = 0; /* is null */
7318 } else {
7319 var4 = 1; /* arg is null and recv is not */
7320 }
7321 if (var4){
7322 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_ptypenode1) /* add on <var_listnode2:Array[Object]>*/;
7323 } else {
7324 }
7325 var_node_list = var_listnode2;
7326 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction585> */
7327 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
7328 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
7329 RET_LABEL:;
7330 }
7331 /* method parser#ReduceAction585#action for (self: Object, Parser) */
7332 void VIRTUAL_parser__ReduceAction585__action(val* self, val* p0) {
7333 parser__ReduceAction585__action(self, p0);
7334 RET_LABEL:;
7335 }
7336 /* method parser#ReduceAction586#action for (self: ReduceAction586, Parser) */
7337 void parser__ReduceAction586__action(val* self, val* p0) {
7338 val* var_p /* var p: Parser */;
7339 val* var /* : null */;
7340 val* var_node_list /* var node_list: nullable Object */;
7341 val* var1 /* : nullable Object */;
7342 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7343 val* var2 /* : nullable Object */;
7344 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7345 val* var3 /* : Array[Object] */;
7346 val* var_listnode3 /* var listnode3: Array[Object] */;
7347 val* var_ptypenode1 /* var ptypenode1: nullable Object */;
7348 val* var_listnode2 /* var listnode2: nullable Object */;
7349 short int var4 /* : Bool */;
7350 int cltype;
7351 int idtype;
7352 val* var5 /* : null */;
7353 short int var6 /* : Bool */;
7354 val* var7 /* : Array[Object] */;
7355 long var8 /* : Int */;
7356 long var9 /* : Int */;
7357 var_p = p0;
7358 var = NULL;
7359 var_node_list = var;
7360 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7361 var_nodearraylist2 = var1;
7362 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7363 var_nodearraylist1 = var2;
7364 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
7365 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
7366 CHECK_NEW_array__Array(var3);
7367 var_listnode3 = var3;
7368 var_ptypenode1 = var_nodearraylist1;
7369 var_listnode2 = var_nodearraylist2;
7370 /* <var_listnode2:nullable Object> isa Array[Object] */
7371 cltype = type_array__Arraykernel__Object.color;
7372 idtype = type_array__Arraykernel__Object.id;
7373 if(var_listnode2 == NULL) {
7374 var4 = 0;
7375 } else {
7376 if(cltype >= var_listnode2->type->table_size) {
7377 var4 = 0;
7378 } else {
7379 var4 = var_listnode2->type->type_table[cltype] == idtype;
7380 }
7381 }
7382 if (!var4) {
7383 fprintf(stderr, "Runtime error: %s", "Assert failed");
7384 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23857);
7385 exit(1);
7386 }
7387 var5 = NULL;
7388 if (var_ptypenode1 == NULL) {
7389 var6 = 0; /* is null */
7390 } else {
7391 var6 = 1; /* arg is null and recv is not */
7392 }
7393 if (var6){
7394 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_ptypenode1) /* add on <var_listnode3:Array[Object]>*/;
7395 } else {
7396 }
7397 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode2) /* concat on <self:ReduceAction586>*/;
7398 var_listnode3 = var7;
7399 var_node_list = var_listnode3;
7400 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction586> */
7401 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
7402 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
7403 RET_LABEL:;
7404 }
7405 /* method parser#ReduceAction586#action for (self: Object, Parser) */
7406 void VIRTUAL_parser__ReduceAction586__action(val* self, val* p0) {
7407 parser__ReduceAction586__action(self, p0);
7408 RET_LABEL:;
7409 }
7410 /* method parser#ReduceAction587#action for (self: ReduceAction587, Parser) */
7411 void parser__ReduceAction587__action(val* self, val* p0) {
7412 val* var_p /* var p: Parser */;
7413 val* var /* : null */;
7414 val* var_node_list /* var node_list: nullable Object */;
7415 val* var1 /* : nullable Object */;
7416 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7417 val* var2 /* : nullable Object */;
7418 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7419 val* var3 /* : nullable Object */;
7420 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7421 val* var_ptypenode1 /* var ptypenode1: nullable Object */;
7422 long var4 /* : Int */;
7423 long var5 /* : Int */;
7424 var_p = p0;
7425 var = NULL;
7426 var_node_list = var;
7427 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7428 var_nodearraylist3 = var1;
7429 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7430 var_nodearraylist2 = var2;
7431 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7432 var_nodearraylist1 = var3;
7433 var_ptypenode1 = var_nodearraylist3;
7434 var_node_list = var_ptypenode1;
7435 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction587> */
7436 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
7437 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
7438 RET_LABEL:;
7439 }
7440 /* method parser#ReduceAction587#action for (self: Object, Parser) */
7441 void VIRTUAL_parser__ReduceAction587__action(val* self, val* p0) {
7442 parser__ReduceAction587__action(self, p0);
7443 RET_LABEL:;
7444 }
7445 /* method parser#ReduceAction589#action for (self: ReduceAction589, Parser) */
7446 void parser__ReduceAction589__action(val* self, val* p0) {
7447 val* var_p /* var p: Parser */;
7448 val* var /* : null */;
7449 val* var_node_list /* var node_list: nullable Object */;
7450 val* var1 /* : nullable Object */;
7451 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7452 val* var2 /* : nullable Object */;
7453 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7454 val* var_pexprnode1 /* var pexprnode1: nullable Object */;
7455 long var3 /* : Int */;
7456 long var4 /* : Int */;
7457 var_p = p0;
7458 var = NULL;
7459 var_node_list = var;
7460 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7461 var_nodearraylist2 = var1;
7462 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7463 var_nodearraylist1 = var2;
7464 var_pexprnode1 = var_nodearraylist2;
7465 var_node_list = var_pexprnode1;
7466 var3 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction589> */
7467 var4 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var3) /* go_to on <var_p:Parser>*/;
7468 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var4, var_node_list) /* push on <var_p:Parser>*/;
7469 RET_LABEL:;
7470 }
7471 /* method parser#ReduceAction589#action for (self: Object, Parser) */
7472 void VIRTUAL_parser__ReduceAction589__action(val* self, val* p0) {
7473 parser__ReduceAction589__action(self, p0);
7474 RET_LABEL:;
7475 }
7476 /* method parser#ReduceAction590#action for (self: ReduceAction590, Parser) */
7477 void parser__ReduceAction590__action(val* self, val* p0) {
7478 val* var_p /* var p: Parser */;
7479 val* var /* : null */;
7480 val* var_node_list /* var node_list: nullable Object */;
7481 val* var1 /* : nullable Object */;
7482 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7483 val* var2 /* : nullable Object */;
7484 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7485 val* var3 /* : Array[Object] */;
7486 val* var_listnode2 /* var listnode2: Array[Object] */;
7487 val* var_tkwendnode3 /* var tkwendnode3: nullable Object */;
7488 short int var4 /* : Bool */;
7489 int cltype;
7490 int idtype;
7491 val* var5 /* : ABlockExpr */;
7492 val* var_pexprnode1 /* var pexprnode1: nullable ABlockExpr */;
7493 long var6 /* : Int */;
7494 long var7 /* : Int */;
7495 var_p = p0;
7496 var = NULL;
7497 var_node_list = var;
7498 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7499 var_nodearraylist2 = var1;
7500 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7501 var_nodearraylist1 = var2;
7502 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
7503 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
7504 CHECK_NEW_array__Array(var3);
7505 var_listnode2 = var3;
7506 var_tkwendnode3 = var_nodearraylist2;
7507 /* <var_tkwendnode3:nullable Object> isa nullable TKwend */
7508 cltype = type_nullable_parser_nodes__TKwend.color;
7509 idtype = type_nullable_parser_nodes__TKwend.id;
7510 if(var_tkwendnode3 == NULL) {
7511 var4 = 1;
7512 } else {
7513 if(cltype >= var_tkwendnode3->type->table_size) {
7514 var4 = 0;
7515 } else {
7516 var4 = var_tkwendnode3->type->type_table[cltype] == idtype;
7517 }
7518 }
7519 if (!var4) {
7520 fprintf(stderr, "Runtime error: %s", "Assert failed");
7521 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23900);
7522 exit(1);
7523 }
7524 var5 = NEW_parser_nodes__ABlockExpr(&type_parser_nodes__ABlockExpr);
7525 ((void (*)(val*, val*, val*))(var5->class->vft[COLOR_parser_prod__ABlockExpr__init_ablockexpr]))(var5, var_listnode2, var_tkwendnode3) /* init_ablockexpr on <var5:ABlockExpr>*/;
7526 CHECK_NEW_parser_nodes__ABlockExpr(var5);
7527 var_pexprnode1 = var5;
7528 var_node_list = var_pexprnode1;
7529 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction590> */
7530 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
7531 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
7532 RET_LABEL:;
7533 }
7534 /* method parser#ReduceAction590#action for (self: Object, Parser) */
7535 void VIRTUAL_parser__ReduceAction590__action(val* self, val* p0) {
7536 parser__ReduceAction590__action(self, p0);
7537 RET_LABEL:;
7538 }
7539 /* method parser#ReduceAction591#action for (self: ReduceAction591, Parser) */
7540 void parser__ReduceAction591__action(val* self, val* p0) {
7541 val* var_p /* var p: Parser */;
7542 val* var /* : null */;
7543 val* var_node_list /* var node_list: nullable Object */;
7544 val* var1 /* : nullable Object */;
7545 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7546 val* var2 /* : Array[Object] */;
7547 val* var_listnode2 /* var listnode2: Array[Object] */;
7548 val* var_tkwendnode3 /* var tkwendnode3: nullable Object */;
7549 short int var3 /* : Bool */;
7550 int cltype;
7551 int idtype;
7552 val* var4 /* : ABlockExpr */;
7553 val* var_pexprnode1 /* var pexprnode1: nullable ABlockExpr */;
7554 long var5 /* : Int */;
7555 long var6 /* : Int */;
7556 var_p = p0;
7557 var = NULL;
7558 var_node_list = var;
7559 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7560 var_nodearraylist1 = var1;
7561 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
7562 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
7563 CHECK_NEW_array__Array(var2);
7564 var_listnode2 = var2;
7565 var_tkwendnode3 = var_nodearraylist1;
7566 /* <var_tkwendnode3:nullable Object> isa nullable TKwend */
7567 cltype = type_nullable_parser_nodes__TKwend.color;
7568 idtype = type_nullable_parser_nodes__TKwend.id;
7569 if(var_tkwendnode3 == NULL) {
7570 var3 = 1;
7571 } else {
7572 if(cltype >= var_tkwendnode3->type->table_size) {
7573 var3 = 0;
7574 } else {
7575 var3 = var_tkwendnode3->type->type_table[cltype] == idtype;
7576 }
7577 }
7578 if (!var3) {
7579 fprintf(stderr, "Runtime error: %s", "Assert failed");
7580 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23917);
7581 exit(1);
7582 }
7583 var4 = NEW_parser_nodes__ABlockExpr(&type_parser_nodes__ABlockExpr);
7584 ((void (*)(val*, val*, val*))(var4->class->vft[COLOR_parser_prod__ABlockExpr__init_ablockexpr]))(var4, var_listnode2, var_tkwendnode3) /* init_ablockexpr on <var4:ABlockExpr>*/;
7585 CHECK_NEW_parser_nodes__ABlockExpr(var4);
7586 var_pexprnode1 = var4;
7587 var_node_list = var_pexprnode1;
7588 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction591> */
7589 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
7590 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
7591 RET_LABEL:;
7592 }
7593 /* method parser#ReduceAction591#action for (self: Object, Parser) */
7594 void VIRTUAL_parser__ReduceAction591__action(val* self, val* p0) {
7595 parser__ReduceAction591__action(self, p0);
7596 RET_LABEL:;
7597 }
7598 /* method parser#ReduceAction592#action for (self: ReduceAction592, Parser) */
7599 void parser__ReduceAction592__action(val* self, val* p0) {
7600 val* var_p /* var p: Parser */;
7601 val* var /* : null */;
7602 val* var_node_list /* var node_list: nullable Object */;
7603 val* var1 /* : nullable Object */;
7604 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7605 val* var_pexprnode1 /* var pexprnode1: nullable Object */;
7606 long var2 /* : Int */;
7607 long var3 /* : Int */;
7608 var_p = p0;
7609 var = NULL;
7610 var_node_list = var;
7611 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7612 var_nodearraylist1 = var1;
7613 var_pexprnode1 = var_nodearraylist1;
7614 var_node_list = var_pexprnode1;
7615 var2 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction592> */
7616 var3 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var2) /* go_to on <var_p:Parser>*/;
7617 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var3, var_node_list) /* push on <var_p:Parser>*/;
7618 RET_LABEL:;
7619 }
7620 /* method parser#ReduceAction592#action for (self: Object, Parser) */
7621 void VIRTUAL_parser__ReduceAction592__action(val* self, val* p0) {
7622 parser__ReduceAction592__action(self, p0);
7623 RET_LABEL:;
7624 }
7625 /* method parser#ReduceAction593#action for (self: ReduceAction593, Parser) */
7626 void parser__ReduceAction593__action(val* self, val* p0) {
7627 val* var_p /* var p: Parser */;
7628 val* var /* : null */;
7629 val* var_node_list /* var node_list: nullable Object */;
7630 val* var1 /* : nullable Object */;
7631 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7632 val* var2 /* : Array[Object] */;
7633 val* var_listnode3 /* var listnode3: Array[Object] */;
7634 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7635 short int var3 /* : Bool */;
7636 int cltype;
7637 int idtype;
7638 val* var4 /* : null */;
7639 short int var5 /* : Bool */;
7640 val* var6 /* : ABlockExpr */;
7641 val* var7 /* : null */;
7642 val* var_pexprnode1 /* var pexprnode1: nullable ABlockExpr */;
7643 long var8 /* : Int */;
7644 long var9 /* : Int */;
7645 var_p = p0;
7646 var = NULL;
7647 var_node_list = var;
7648 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7649 var_nodearraylist1 = var1;
7650 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
7651 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
7652 CHECK_NEW_array__Array(var2);
7653 var_listnode3 = var2;
7654 var_pexprnode2 = var_nodearraylist1;
7655 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7656 cltype = type_nullable_parser_nodes__AExpr.color;
7657 idtype = type_nullable_parser_nodes__AExpr.id;
7658 if(var_pexprnode2 == NULL) {
7659 var3 = 1;
7660 } else {
7661 if(cltype >= var_pexprnode2->type->table_size) {
7662 var3 = 0;
7663 } else {
7664 var3 = var_pexprnode2->type->type_table[cltype] == idtype;
7665 }
7666 }
7667 if (!var3) {
7668 fprintf(stderr, "Runtime error: %s", "Assert failed");
7669 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23945);
7670 exit(1);
7671 }
7672 var4 = NULL;
7673 if (var_pexprnode2 == NULL) {
7674 var5 = 0; /* is null */
7675 } else {
7676 var5 = 1; /* arg is null and recv is not */
7677 }
7678 if (var5){
7679 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pexprnode2) /* add on <var_listnode3:Array[Object]>*/;
7680 } else {
7681 }
7682 var6 = NEW_parser_nodes__ABlockExpr(&type_parser_nodes__ABlockExpr);
7683 var7 = NULL;
7684 ((void (*)(val*, val*, val*))(var6->class->vft[COLOR_parser_prod__ABlockExpr__init_ablockexpr]))(var6, var_listnode3, var7) /* init_ablockexpr on <var6:ABlockExpr>*/;
7685 CHECK_NEW_parser_nodes__ABlockExpr(var6);
7686 var_pexprnode1 = var6;
7687 var_node_list = var_pexprnode1;
7688 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction593> */
7689 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
7690 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
7691 RET_LABEL:;
7692 }
7693 /* method parser#ReduceAction593#action for (self: Object, Parser) */
7694 void VIRTUAL_parser__ReduceAction593__action(val* self, val* p0) {
7695 parser__ReduceAction593__action(self, p0);
7696 RET_LABEL:;
7697 }
7698 /* method parser#ReduceAction594#action for (self: ReduceAction594, Parser) */
7699 void parser__ReduceAction594__action(val* self, val* p0) {
7700 val* var_p /* var p: Parser */;
7701 val* var /* : null */;
7702 val* var_node_list /* var node_list: nullable Object */;
7703 val* var1 /* : nullable Object */;
7704 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7705 val* var2 /* : nullable Object */;
7706 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7707 val* var3 /* : Array[Object] */;
7708 val* var_listnode4 /* var listnode4: Array[Object] */;
7709 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7710 short int var4 /* : Bool */;
7711 int cltype;
7712 int idtype;
7713 val* var_listnode3 /* var listnode3: nullable Object */;
7714 short int var5 /* : Bool */;
7715 int cltype6;
7716 int idtype7;
7717 val* var8 /* : null */;
7718 short int var9 /* : Bool */;
7719 val* var10 /* : Array[Object] */;
7720 val* var11 /* : ABlockExpr */;
7721 val* var12 /* : null */;
7722 val* var_pexprnode1 /* var pexprnode1: nullable ABlockExpr */;
7723 long var13 /* : Int */;
7724 long var14 /* : Int */;
7725 var_p = p0;
7726 var = NULL;
7727 var_node_list = var;
7728 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7729 var_nodearraylist2 = var1;
7730 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7731 var_nodearraylist1 = var2;
7732 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
7733 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
7734 CHECK_NEW_array__Array(var3);
7735 var_listnode4 = var3;
7736 var_pexprnode2 = var_nodearraylist1;
7737 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7738 cltype = type_nullable_parser_nodes__AExpr.color;
7739 idtype = type_nullable_parser_nodes__AExpr.id;
7740 if(var_pexprnode2 == NULL) {
7741 var4 = 1;
7742 } else {
7743 if(cltype >= var_pexprnode2->type->table_size) {
7744 var4 = 0;
7745 } else {
7746 var4 = var_pexprnode2->type->type_table[cltype] == idtype;
7747 }
7748 }
7749 if (!var4) {
7750 fprintf(stderr, "Runtime error: %s", "Assert failed");
7751 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23966);
7752 exit(1);
7753 }
7754 var_listnode3 = var_nodearraylist2;
7755 /* <var_listnode3:nullable Object> isa Array[Object] */
7756 cltype6 = type_array__Arraykernel__Object.color;
7757 idtype7 = type_array__Arraykernel__Object.id;
7758 if(var_listnode3 == NULL) {
7759 var5 = 0;
7760 } else {
7761 if(cltype6 >= var_listnode3->type->table_size) {
7762 var5 = 0;
7763 } else {
7764 var5 = var_listnode3->type->type_table[cltype6] == idtype7;
7765 }
7766 }
7767 if (!var5) {
7768 fprintf(stderr, "Runtime error: %s", "Assert failed");
7769 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23968);
7770 exit(1);
7771 }
7772 var8 = NULL;
7773 if (var_pexprnode2 == NULL) {
7774 var9 = 0; /* is null */
7775 } else {
7776 var9 = 1; /* arg is null and recv is not */
7777 }
7778 if (var9){
7779 ((void (*)(val*, val*))(var_listnode4->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode4, var_pexprnode2) /* add on <var_listnode4:Array[Object]>*/;
7780 } else {
7781 }
7782 var10 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction594>*/;
7783 var_listnode4 = var10;
7784 var11 = NEW_parser_nodes__ABlockExpr(&type_parser_nodes__ABlockExpr);
7785 var12 = NULL;
7786 ((void (*)(val*, val*, val*))(var11->class->vft[COLOR_parser_prod__ABlockExpr__init_ablockexpr]))(var11, var_listnode4, var12) /* init_ablockexpr on <var11:ABlockExpr>*/;
7787 CHECK_NEW_parser_nodes__ABlockExpr(var11);
7788 var_pexprnode1 = var11;
7789 var_node_list = var_pexprnode1;
7790 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction594> */
7791 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
7792 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
7793 RET_LABEL:;
7794 }
7795 /* method parser#ReduceAction594#action for (self: Object, Parser) */
7796 void VIRTUAL_parser__ReduceAction594__action(val* self, val* p0) {
7797 parser__ReduceAction594__action(self, p0);
7798 RET_LABEL:;
7799 }
7800 /* method parser#ReduceAction595#action for (self: ReduceAction595, Parser) */
7801 void parser__ReduceAction595__action(val* self, val* p0) {
7802 val* var_p /* var p: Parser */;
7803 val* var /* : null */;
7804 val* var_node_list /* var node_list: nullable Object */;
7805 val* var1 /* : nullable Object */;
7806 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7807 val* var2 /* : nullable Object */;
7808 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7809 val* var3 /* : Array[Object] */;
7810 val* var_listnode3 /* var listnode3: Array[Object] */;
7811 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7812 short int var4 /* : Bool */;
7813 int cltype;
7814 int idtype;
7815 val* var5 /* : null */;
7816 short int var6 /* : Bool */;
7817 val* var7 /* : ABlockExpr */;
7818 val* var8 /* : null */;
7819 val* var_pexprnode1 /* var pexprnode1: nullable ABlockExpr */;
7820 long var9 /* : Int */;
7821 long var10 /* : Int */;
7822 var_p = p0;
7823 var = NULL;
7824 var_node_list = var;
7825 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7826 var_nodearraylist2 = var1;
7827 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7828 var_nodearraylist1 = var2;
7829 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
7830 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
7831 CHECK_NEW_array__Array(var3);
7832 var_listnode3 = var3;
7833 var_pexprnode2 = var_nodearraylist1;
7834 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7835 cltype = type_nullable_parser_nodes__AExpr.color;
7836 idtype = type_nullable_parser_nodes__AExpr.id;
7837 if(var_pexprnode2 == NULL) {
7838 var4 = 1;
7839 } else {
7840 if(cltype >= var_pexprnode2->type->table_size) {
7841 var4 = 0;
7842 } else {
7843 var4 = var_pexprnode2->type->type_table[cltype] == idtype;
7844 }
7845 }
7846 if (!var4) {
7847 fprintf(stderr, "Runtime error: %s", "Assert failed");
7848 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23990);
7849 exit(1);
7850 }
7851 var5 = NULL;
7852 if (var_pexprnode2 == NULL) {
7853 var6 = 0; /* is null */
7854 } else {
7855 var6 = 1; /* arg is null and recv is not */
7856 }
7857 if (var6){
7858 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pexprnode2) /* add on <var_listnode3:Array[Object]>*/;
7859 } else {
7860 }
7861 var7 = NEW_parser_nodes__ABlockExpr(&type_parser_nodes__ABlockExpr);
7862 var8 = NULL;
7863 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ABlockExpr__init_ablockexpr]))(var7, var_listnode3, var8) /* init_ablockexpr on <var7:ABlockExpr>*/;
7864 CHECK_NEW_parser_nodes__ABlockExpr(var7);
7865 var_pexprnode1 = var7;
7866 var_node_list = var_pexprnode1;
7867 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction595> */
7868 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
7869 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
7870 RET_LABEL:;
7871 }
7872 /* method parser#ReduceAction595#action for (self: Object, Parser) */
7873 void VIRTUAL_parser__ReduceAction595__action(val* self, val* p0) {
7874 parser__ReduceAction595__action(self, p0);
7875 RET_LABEL:;
7876 }
7877 /* method parser#ReduceAction596#action for (self: ReduceAction596, Parser) */
7878 void parser__ReduceAction596__action(val* self, val* p0) {
7879 val* var_p /* var p: Parser */;
7880 val* var /* : null */;
7881 val* var_node_list /* var node_list: nullable Object */;
7882 val* var1 /* : nullable Object */;
7883 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7884 val* var2 /* : nullable Object */;
7885 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7886 val* var3 /* : nullable Object */;
7887 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7888 val* var4 /* : Array[Object] */;
7889 val* var_listnode4 /* var listnode4: Array[Object] */;
7890 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7891 short int var5 /* : Bool */;
7892 int cltype;
7893 int idtype;
7894 val* var_listnode3 /* var listnode3: nullable Object */;
7895 short int var6 /* : Bool */;
7896 int cltype7;
7897 int idtype8;
7898 val* var9 /* : null */;
7899 short int var10 /* : Bool */;
7900 val* var11 /* : Array[Object] */;
7901 val* var12 /* : ABlockExpr */;
7902 val* var13 /* : null */;
7903 val* var_pexprnode1 /* var pexprnode1: nullable ABlockExpr */;
7904 long var14 /* : Int */;
7905 long var15 /* : Int */;
7906 var_p = p0;
7907 var = NULL;
7908 var_node_list = var;
7909 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7910 var_nodearraylist3 = var1;
7911 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7912 var_nodearraylist2 = var2;
7913 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7914 var_nodearraylist1 = var3;
7915 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
7916 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
7917 CHECK_NEW_array__Array(var4);
7918 var_listnode4 = var4;
7919 var_pexprnode2 = var_nodearraylist1;
7920 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7921 cltype = type_nullable_parser_nodes__AExpr.color;
7922 idtype = type_nullable_parser_nodes__AExpr.id;
7923 if(var_pexprnode2 == NULL) {
7924 var5 = 1;
7925 } else {
7926 if(cltype >= var_pexprnode2->type->table_size) {
7927 var5 = 0;
7928 } else {
7929 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
7930 }
7931 }
7932 if (!var5) {
7933 fprintf(stderr, "Runtime error: %s", "Assert failed");
7934 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24012);
7935 exit(1);
7936 }
7937 var_listnode3 = var_nodearraylist2;
7938 /* <var_listnode3:nullable Object> isa Array[Object] */
7939 cltype7 = type_array__Arraykernel__Object.color;
7940 idtype8 = type_array__Arraykernel__Object.id;
7941 if(var_listnode3 == NULL) {
7942 var6 = 0;
7943 } else {
7944 if(cltype7 >= var_listnode3->type->table_size) {
7945 var6 = 0;
7946 } else {
7947 var6 = var_listnode3->type->type_table[cltype7] == idtype8;
7948 }
7949 }
7950 if (!var6) {
7951 fprintf(stderr, "Runtime error: %s", "Assert failed");
7952 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24014);
7953 exit(1);
7954 }
7955 var9 = NULL;
7956 if (var_pexprnode2 == NULL) {
7957 var10 = 0; /* is null */
7958 } else {
7959 var10 = 1; /* arg is null and recv is not */
7960 }
7961 if (var10){
7962 ((void (*)(val*, val*))(var_listnode4->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode4, var_pexprnode2) /* add on <var_listnode4:Array[Object]>*/;
7963 } else {
7964 }
7965 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction596>*/;
7966 var_listnode4 = var11;
7967 var12 = NEW_parser_nodes__ABlockExpr(&type_parser_nodes__ABlockExpr);
7968 var13 = NULL;
7969 ((void (*)(val*, val*, val*))(var12->class->vft[COLOR_parser_prod__ABlockExpr__init_ablockexpr]))(var12, var_listnode4, var13) /* init_ablockexpr on <var12:ABlockExpr>*/;
7970 CHECK_NEW_parser_nodes__ABlockExpr(var12);
7971 var_pexprnode1 = var12;
7972 var_node_list = var_pexprnode1;
7973 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction596> */
7974 var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
7975 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
7976 RET_LABEL:;
7977 }
7978 /* method parser#ReduceAction596#action for (self: Object, Parser) */
7979 void VIRTUAL_parser__ReduceAction596__action(val* self, val* p0) {
7980 parser__ReduceAction596__action(self, p0);
7981 RET_LABEL:;
7982 }
7983 /* method parser#ReduceAction597#action for (self: ReduceAction597, Parser) */
7984 void parser__ReduceAction597__action(val* self, val* p0) {
7985 val* var_p /* var p: Parser */;
7986 val* var /* : null */;
7987 val* var_node_list /* var node_list: nullable Object */;
7988 val* var1 /* : nullable Object */;
7989 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7990 val* var2 /* : nullable Object */;
7991 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7992 val* var3 /* : nullable Object */;
7993 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7994 val* var4 /* : Array[Object] */;
7995 val* var_listnode3 /* var listnode3: Array[Object] */;
7996 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7997 short int var5 /* : Bool */;
7998 int cltype;
7999 int idtype;
8000 val* var6 /* : null */;
8001 short int var7 /* : Bool */;
8002 val* var_tkwendnode4 /* var tkwendnode4: nullable Object */;
8003 short int var8 /* : Bool */;
8004 int cltype9;
8005 int idtype10;
8006 val* var11 /* : ABlockExpr */;
8007 val* var_pexprnode1 /* var pexprnode1: nullable ABlockExpr */;
8008 long var12 /* : Int */;
8009 long var13 /* : Int */;
8010 var_p = p0;
8011 var = NULL;
8012 var_node_list = var;
8013 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8014 var_nodearraylist3 = var1;
8015 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8016 var_nodearraylist2 = var2;
8017 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8018 var_nodearraylist1 = var3;
8019 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
8020 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
8021 CHECK_NEW_array__Array(var4);
8022 var_listnode3 = var4;
8023 var_pexprnode2 = var_nodearraylist1;
8024 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
8025 cltype = type_nullable_parser_nodes__AExpr.color;
8026 idtype = type_nullable_parser_nodes__AExpr.id;
8027 if(var_pexprnode2 == NULL) {
8028 var5 = 1;
8029 } else {
8030 if(cltype >= var_pexprnode2->type->table_size) {
8031 var5 = 0;
8032 } else {
8033 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
8034 }
8035 }
8036 if (!var5) {
8037 fprintf(stderr, "Runtime error: %s", "Assert failed");
8038 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24037);
8039 exit(1);
8040 }
8041 var6 = NULL;
8042 if (var_pexprnode2 == NULL) {
8043 var7 = 0; /* is null */
8044 } else {
8045 var7 = 1; /* arg is null and recv is not */
8046 }
8047 if (var7){
8048 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pexprnode2) /* add on <var_listnode3:Array[Object]>*/;
8049 } else {
8050 }
8051 var_tkwendnode4 = var_nodearraylist3;
8052 /* <var_tkwendnode4:nullable Object> isa nullable TKwend */
8053 cltype9 = type_nullable_parser_nodes__TKwend.color;
8054 idtype10 = type_nullable_parser_nodes__TKwend.id;
8055 if(var_tkwendnode4 == NULL) {
8056 var8 = 1;
8057 } else {
8058 if(cltype9 >= var_tkwendnode4->type->table_size) {
8059 var8 = 0;
8060 } else {
8061 var8 = var_tkwendnode4->type->type_table[cltype9] == idtype10;
8062 }
8063 }
8064 if (!var8) {
8065 fprintf(stderr, "Runtime error: %s", "Assert failed");
8066 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24042);
8067 exit(1);
8068 }
8069 var11 = NEW_parser_nodes__ABlockExpr(&type_parser_nodes__ABlockExpr);
8070 ((void (*)(val*, val*, val*))(var11->class->vft[COLOR_parser_prod__ABlockExpr__init_ablockexpr]))(var11, var_listnode3, var_tkwendnode4) /* init_ablockexpr on <var11:ABlockExpr>*/;
8071 CHECK_NEW_parser_nodes__ABlockExpr(var11);
8072 var_pexprnode1 = var11;
8073 var_node_list = var_pexprnode1;
8074 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction597> */
8075 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
8076 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
8077 RET_LABEL:;
8078 }
8079 /* method parser#ReduceAction597#action for (self: Object, Parser) */
8080 void VIRTUAL_parser__ReduceAction597__action(val* self, val* p0) {
8081 parser__ReduceAction597__action(self, p0);
8082 RET_LABEL:;
8083 }
8084 /* method parser#ReduceAction598#action for (self: ReduceAction598, Parser) */
8085 void parser__ReduceAction598__action(val* self, val* p0) {
8086 val* var_p /* var p: Parser */;
8087 val* var /* : null */;
8088 val* var_node_list /* var node_list: nullable Object */;
8089 val* var1 /* : nullable Object */;
8090 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8091 val* var2 /* : nullable Object */;
8092 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8093 val* var3 /* : nullable Object */;
8094 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8095 val* var4 /* : nullable Object */;
8096 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8097 val* var5 /* : Array[Object] */;
8098 val* var_listnode4 /* var listnode4: Array[Object] */;
8099 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
8100 short int var6 /* : Bool */;
8101 int cltype;
8102 int idtype;
8103 val* var_listnode3 /* var listnode3: nullable Object */;
8104 short int var7 /* : Bool */;
8105 int cltype8;
8106 int idtype9;
8107 val* var10 /* : null */;
8108 short int var11 /* : Bool */;
8109 val* var12 /* : Array[Object] */;
8110 val* var_tkwendnode5 /* var tkwendnode5: nullable Object */;
8111 short int var13 /* : Bool */;
8112 int cltype14;
8113 int idtype15;
8114 val* var16 /* : ABlockExpr */;
8115 val* var_pexprnode1 /* var pexprnode1: nullable ABlockExpr */;
8116 long var17 /* : Int */;
8117 long var18 /* : Int */;
8118 var_p = p0;
8119 var = NULL;
8120 var_node_list = var;
8121 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8122 var_nodearraylist4 = var1;
8123 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8124 var_nodearraylist3 = var2;
8125 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8126 var_nodearraylist2 = var3;
8127 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8128 var_nodearraylist1 = var4;
8129 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
8130 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
8131 CHECK_NEW_array__Array(var5);
8132 var_listnode4 = var5;
8133 var_pexprnode2 = var_nodearraylist1;
8134 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
8135 cltype = type_nullable_parser_nodes__AExpr.color;
8136 idtype = type_nullable_parser_nodes__AExpr.id;
8137 if(var_pexprnode2 == NULL) {
8138 var6 = 1;
8139 } else {
8140 if(cltype >= var_pexprnode2->type->table_size) {
8141 var6 = 0;
8142 } else {
8143 var6 = var_pexprnode2->type->type_table[cltype] == idtype;
8144 }
8145 }
8146 if (!var6) {
8147 fprintf(stderr, "Runtime error: %s", "Assert failed");
8148 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24062);
8149 exit(1);
8150 }
8151 var_listnode3 = var_nodearraylist2;
8152 /* <var_listnode3:nullable Object> isa Array[Object] */
8153 cltype8 = type_array__Arraykernel__Object.color;
8154 idtype9 = type_array__Arraykernel__Object.id;
8155 if(var_listnode3 == NULL) {
8156 var7 = 0;
8157 } else {
8158 if(cltype8 >= var_listnode3->type->table_size) {
8159 var7 = 0;
8160 } else {
8161 var7 = var_listnode3->type->type_table[cltype8] == idtype9;
8162 }
8163 }
8164 if (!var7) {
8165 fprintf(stderr, "Runtime error: %s", "Assert failed");
8166 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24064);
8167 exit(1);
8168 }
8169 var10 = NULL;
8170 if (var_pexprnode2 == NULL) {
8171 var11 = 0; /* is null */
8172 } else {
8173 var11 = 1; /* arg is null and recv is not */
8174 }
8175 if (var11){
8176 ((void (*)(val*, val*))(var_listnode4->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode4, var_pexprnode2) /* add on <var_listnode4:Array[Object]>*/;
8177 } else {
8178 }
8179 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction598>*/;
8180 var_listnode4 = var12;
8181 var_tkwendnode5 = var_nodearraylist4;
8182 /* <var_tkwendnode5:nullable Object> isa nullable TKwend */
8183 cltype14 = type_nullable_parser_nodes__TKwend.color;
8184 idtype15 = type_nullable_parser_nodes__TKwend.id;
8185 if(var_tkwendnode5 == NULL) {
8186 var13 = 1;
8187 } else {
8188 if(cltype14 >= var_tkwendnode5->type->table_size) {
8189 var13 = 0;
8190 } else {
8191 var13 = var_tkwendnode5->type->type_table[cltype14] == idtype15;
8192 }
8193 }
8194 if (!var13) {
8195 fprintf(stderr, "Runtime error: %s", "Assert failed");
8196 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24070);
8197 exit(1);
8198 }
8199 var16 = NEW_parser_nodes__ABlockExpr(&type_parser_nodes__ABlockExpr);
8200 ((void (*)(val*, val*, val*))(var16->class->vft[COLOR_parser_prod__ABlockExpr__init_ablockexpr]))(var16, var_listnode4, var_tkwendnode5) /* init_ablockexpr on <var16:ABlockExpr>*/;
8201 CHECK_NEW_parser_nodes__ABlockExpr(var16);
8202 var_pexprnode1 = var16;
8203 var_node_list = var_pexprnode1;
8204 var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction598> */
8205 var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
8206 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
8207 RET_LABEL:;
8208 }
8209 /* method parser#ReduceAction598#action for (self: Object, Parser) */
8210 void VIRTUAL_parser__ReduceAction598__action(val* self, val* p0) {
8211 parser__ReduceAction598__action(self, p0);
8212 RET_LABEL:;
8213 }
8214 /* method parser#ReduceAction602#action for (self: ReduceAction602, Parser) */
8215 void parser__ReduceAction602__action(val* self, val* p0) {
8216 val* var_p /* var p: Parser */;
8217 val* var /* : null */;
8218 val* var_node_list /* var node_list: nullable Object */;
8219 val* var1 /* : nullable Object */;
8220 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8221 val* var_tkwreturnnode2 /* var tkwreturnnode2: nullable Object */;
8222 short int var2 /* : Bool */;
8223 int cltype;
8224 int idtype;
8225 val* var3 /* : AReturnExpr */;
8226 val* var4 /* : null */;
8227 val* var_pexprnode1 /* var pexprnode1: nullable AReturnExpr */;
8228 long var5 /* : Int */;
8229 long var6 /* : Int */;
8230 var_p = p0;
8231 var = NULL;
8232 var_node_list = var;
8233 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8234 var_nodearraylist1 = var1;
8235 var_tkwreturnnode2 = var_nodearraylist1;
8236 /* <var_tkwreturnnode2:nullable Object> isa nullable TKwreturn */
8237 cltype = type_nullable_parser_nodes__TKwreturn.color;
8238 idtype = type_nullable_parser_nodes__TKwreturn.id;
8239 if(var_tkwreturnnode2 == NULL) {
8240 var2 = 1;
8241 } else {
8242 if(cltype >= var_tkwreturnnode2->type->table_size) {
8243 var2 = 0;
8244 } else {
8245 var2 = var_tkwreturnnode2->type->type_table[cltype] == idtype;
8246 }
8247 }
8248 if (!var2) {
8249 fprintf(stderr, "Runtime error: %s", "Assert failed");
8250 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24086);
8251 exit(1);
8252 }
8253 var3 = NEW_parser_nodes__AReturnExpr(&type_parser_nodes__AReturnExpr);
8254 var4 = NULL;
8255 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AReturnExpr__init_areturnexpr]))(var3, var_tkwreturnnode2, var4) /* init_areturnexpr on <var3:AReturnExpr>*/;
8256 CHECK_NEW_parser_nodes__AReturnExpr(var3);
8257 var_pexprnode1 = var3;
8258 var_node_list = var_pexprnode1;
8259 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction602> */
8260 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
8261 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
8262 RET_LABEL:;
8263 }
8264 /* method parser#ReduceAction602#action for (self: Object, Parser) */
8265 void VIRTUAL_parser__ReduceAction602__action(val* self, val* p0) {
8266 parser__ReduceAction602__action(self, p0);
8267 RET_LABEL:;
8268 }
8269 /* method parser#ReduceAction603#action for (self: ReduceAction603, Parser) */
8270 void parser__ReduceAction603__action(val* self, val* p0) {
8271 val* var_p /* var p: Parser */;
8272 val* var /* : null */;
8273 val* var_node_list /* var node_list: nullable Object */;
8274 val* var1 /* : nullable Object */;
8275 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8276 val* var2 /* : nullable Object */;
8277 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8278 val* var_tkwreturnnode2 /* var tkwreturnnode2: nullable Object */;
8279 short int var3 /* : Bool */;
8280 int cltype;
8281 int idtype;
8282 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
8283 short int var4 /* : Bool */;
8284 int cltype5;
8285 int idtype6;
8286 val* var7 /* : AReturnExpr */;
8287 val* var_pexprnode1 /* var pexprnode1: nullable AReturnExpr */;
8288 long var8 /* : Int */;
8289 long var9 /* : Int */;
8290 var_p = p0;
8291 var = NULL;
8292 var_node_list = var;
8293 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8294 var_nodearraylist2 = var1;
8295 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8296 var_nodearraylist1 = var2;
8297 var_tkwreturnnode2 = var_nodearraylist1;
8298 /* <var_tkwreturnnode2:nullable Object> isa nullable TKwreturn */
8299 cltype = type_nullable_parser_nodes__TKwreturn.color;
8300 idtype = type_nullable_parser_nodes__TKwreturn.id;
8301 if(var_tkwreturnnode2 == NULL) {
8302 var3 = 1;
8303 } else {
8304 if(cltype >= var_tkwreturnnode2->type->table_size) {
8305 var3 = 0;
8306 } else {
8307 var3 = var_tkwreturnnode2->type->type_table[cltype] == idtype;
8308 }
8309 }
8310 if (!var3) {
8311 fprintf(stderr, "Runtime error: %s", "Assert failed");
8312 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24103);
8313 exit(1);
8314 }
8315 var_pexprnode3 = var_nodearraylist2;
8316 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
8317 cltype5 = type_nullable_parser_nodes__AExpr.color;
8318 idtype6 = type_nullable_parser_nodes__AExpr.id;
8319 if(var_pexprnode3 == NULL) {
8320 var4 = 1;
8321 } else {
8322 if(cltype5 >= var_pexprnode3->type->table_size) {
8323 var4 = 0;
8324 } else {
8325 var4 = var_pexprnode3->type->type_table[cltype5] == idtype6;
8326 }
8327 }
8328 if (!var4) {
8329 fprintf(stderr, "Runtime error: %s", "Assert failed");
8330 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24105);
8331 exit(1);
8332 }
8333 var7 = NEW_parser_nodes__AReturnExpr(&type_parser_nodes__AReturnExpr);
8334 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AReturnExpr__init_areturnexpr]))(var7, var_tkwreturnnode2, var_pexprnode3) /* init_areturnexpr on <var7:AReturnExpr>*/;
8335 CHECK_NEW_parser_nodes__AReturnExpr(var7);
8336 var_pexprnode1 = var7;
8337 var_node_list = var_pexprnode1;
8338 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction603> */
8339 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
8340 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
8341 RET_LABEL:;
8342 }
8343 /* method parser#ReduceAction603#action for (self: Object, Parser) */
8344 void VIRTUAL_parser__ReduceAction603__action(val* self, val* p0) {
8345 parser__ReduceAction603__action(self, p0);
8346 RET_LABEL:;
8347 }
8348 /* method parser#ReduceAction604#action for (self: ReduceAction604, Parser) */
8349 void parser__ReduceAction604__action(val* self, val* p0) {
8350 val* var_p /* var p: Parser */;
8351 val* var /* : null */;
8352 val* var_node_list /* var node_list: nullable Object */;
8353 val* var1 /* : nullable Object */;
8354 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8355 val* var_tkwbreaknode2 /* var tkwbreaknode2: nullable Object */;
8356 short int var2 /* : Bool */;
8357 int cltype;
8358 int idtype;
8359 val* var3 /* : ABreakExpr */;
8360 val* var4 /* : null */;
8361 val* var5 /* : null */;
8362 val* var_pexprnode1 /* var pexprnode1: nullable ABreakExpr */;
8363 long var6 /* : Int */;
8364 long var7 /* : Int */;
8365 var_p = p0;
8366 var = NULL;
8367 var_node_list = var;
8368 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8369 var_nodearraylist1 = var1;
8370 var_tkwbreaknode2 = var_nodearraylist1;
8371 /* <var_tkwbreaknode2:nullable Object> isa nullable TKwbreak */
8372 cltype = type_nullable_parser_nodes__TKwbreak.color;
8373 idtype = type_nullable_parser_nodes__TKwbreak.id;
8374 if(var_tkwbreaknode2 == NULL) {
8375 var2 = 1;
8376 } else {
8377 if(cltype >= var_tkwbreaknode2->type->table_size) {
8378 var2 = 0;
8379 } else {
8380 var2 = var_tkwbreaknode2->type->type_table[cltype] == idtype;
8381 }
8382 }
8383 if (!var2) {
8384 fprintf(stderr, "Runtime error: %s", "Assert failed");
8385 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24121);
8386 exit(1);
8387 }
8388 var3 = NEW_parser_nodes__ABreakExpr(&type_parser_nodes__ABreakExpr);
8389 var4 = NULL;
8390 var5 = NULL;
8391 ((void (*)(val*, val*, val*, val*))(var3->class->vft[COLOR_parser_prod__ABreakExpr__init_abreakexpr]))(var3, var_tkwbreaknode2, var4, var5) /* init_abreakexpr on <var3:ABreakExpr>*/;
8392 CHECK_NEW_parser_nodes__ABreakExpr(var3);
8393 var_pexprnode1 = var3;
8394 var_node_list = var_pexprnode1;
8395 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction604> */
8396 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
8397 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
8398 RET_LABEL:;
8399 }
8400 /* method parser#ReduceAction604#action for (self: Object, Parser) */
8401 void VIRTUAL_parser__ReduceAction604__action(val* self, val* p0) {
8402 parser__ReduceAction604__action(self, p0);
8403 RET_LABEL:;
8404 }
8405 /* method parser#ReduceAction605#action for (self: ReduceAction605, Parser) */
8406 void parser__ReduceAction605__action(val* self, val* p0) {
8407 val* var_p /* var p: Parser */;
8408 val* var /* : null */;
8409 val* var_node_list /* var node_list: nullable Object */;
8410 val* var1 /* : nullable Object */;
8411 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8412 val* var2 /* : nullable Object */;
8413 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8414 val* var_tkwbreaknode2 /* var tkwbreaknode2: nullable Object */;
8415 short int var3 /* : Bool */;
8416 int cltype;
8417 int idtype;
8418 val* var_plabelnode3 /* var plabelnode3: nullable Object */;
8419 short int var4 /* : Bool */;
8420 int cltype5;
8421 int idtype6;
8422 val* var7 /* : ABreakExpr */;
8423 val* var8 /* : null */;
8424 val* var_pexprnode1 /* var pexprnode1: nullable ABreakExpr */;
8425 long var9 /* : Int */;
8426 long var10 /* : Int */;
8427 var_p = p0;
8428 var = NULL;
8429 var_node_list = var;
8430 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8431 var_nodearraylist2 = var1;
8432 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8433 var_nodearraylist1 = var2;
8434 var_tkwbreaknode2 = var_nodearraylist1;
8435 /* <var_tkwbreaknode2:nullable Object> isa nullable TKwbreak */
8436 cltype = type_nullable_parser_nodes__TKwbreak.color;
8437 idtype = type_nullable_parser_nodes__TKwbreak.id;
8438 if(var_tkwbreaknode2 == NULL) {
8439 var3 = 1;
8440 } else {
8441 if(cltype >= var_tkwbreaknode2->type->table_size) {
8442 var3 = 0;
8443 } else {
8444 var3 = var_tkwbreaknode2->type->type_table[cltype] == idtype;
8445 }
8446 }
8447 if (!var3) {
8448 fprintf(stderr, "Runtime error: %s", "Assert failed");
8449 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24139);
8450 exit(1);
8451 }
8452 var_plabelnode3 = var_nodearraylist2;
8453 /* <var_plabelnode3:nullable Object> isa nullable ALabel */
8454 cltype5 = type_nullable_parser_nodes__ALabel.color;
8455 idtype6 = type_nullable_parser_nodes__ALabel.id;
8456 if(var_plabelnode3 == NULL) {
8457 var4 = 1;
8458 } else {
8459 if(cltype5 >= var_plabelnode3->type->table_size) {
8460 var4 = 0;
8461 } else {
8462 var4 = var_plabelnode3->type->type_table[cltype5] == idtype6;
8463 }
8464 }
8465 if (!var4) {
8466 fprintf(stderr, "Runtime error: %s", "Assert failed");
8467 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24141);
8468 exit(1);
8469 }
8470 var7 = NEW_parser_nodes__ABreakExpr(&type_parser_nodes__ABreakExpr);
8471 var8 = NULL;
8472 ((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>*/;
8473 CHECK_NEW_parser_nodes__ABreakExpr(var7);
8474 var_pexprnode1 = var7;
8475 var_node_list = var_pexprnode1;
8476 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction605> */
8477 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
8478 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
8479 RET_LABEL:;
8480 }
8481 /* method parser#ReduceAction605#action for (self: Object, Parser) */
8482 void VIRTUAL_parser__ReduceAction605__action(val* self, val* p0) {
8483 parser__ReduceAction605__action(self, p0);
8484 RET_LABEL:;
8485 }
8486 /* method parser#ReduceAction606#action for (self: ReduceAction606, Parser) */
8487 void parser__ReduceAction606__action(val* self, val* p0) {
8488 val* var_p /* var p: Parser */;
8489 val* var /* : null */;
8490 val* var_node_list /* var node_list: nullable Object */;
8491 val* var1 /* : nullable Object */;
8492 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8493 val* var2 /* : nullable Object */;
8494 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8495 val* var_tkwbreaknode2 /* var tkwbreaknode2: nullable Object */;
8496 short int var3 /* : Bool */;
8497 int cltype;
8498 int idtype;
8499 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
8500 short int var4 /* : Bool */;
8501 int cltype5;
8502 int idtype6;
8503 val* var7 /* : ABreakExpr */;
8504 val* var8 /* : null */;
8505 val* var_pexprnode1 /* var pexprnode1: nullable ABreakExpr */;
8506 long var9 /* : Int */;
8507 long var10 /* : Int */;
8508 var_p = p0;
8509 var = NULL;
8510 var_node_list = var;
8511 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8512 var_nodearraylist2 = var1;
8513 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8514 var_nodearraylist1 = var2;
8515 var_tkwbreaknode2 = var_nodearraylist1;
8516 /* <var_tkwbreaknode2:nullable Object> isa nullable TKwbreak */
8517 cltype = type_nullable_parser_nodes__TKwbreak.color;
8518 idtype = type_nullable_parser_nodes__TKwbreak.id;
8519 if(var_tkwbreaknode2 == NULL) {
8520 var3 = 1;
8521 } else {
8522 if(cltype >= var_tkwbreaknode2->type->table_size) {
8523 var3 = 0;
8524 } else {
8525 var3 = var_tkwbreaknode2->type->type_table[cltype] == idtype;
8526 }
8527 }
8528 if (!var3) {
8529 fprintf(stderr, "Runtime error: %s", "Assert failed");
8530 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24159);
8531 exit(1);
8532 }
8533 var_pexprnode4 = var_nodearraylist2;
8534 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
8535 cltype5 = type_nullable_parser_nodes__AExpr.color;
8536 idtype6 = type_nullable_parser_nodes__AExpr.id;
8537 if(var_pexprnode4 == NULL) {
8538 var4 = 1;
8539 } else {
8540 if(cltype5 >= var_pexprnode4->type->table_size) {
8541 var4 = 0;
8542 } else {
8543 var4 = var_pexprnode4->type->type_table[cltype5] == idtype6;
8544 }
8545 }
8546 if (!var4) {
8547 fprintf(stderr, "Runtime error: %s", "Assert failed");
8548 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24161);
8549 exit(1);
8550 }
8551 var7 = NEW_parser_nodes__ABreakExpr(&type_parser_nodes__ABreakExpr);
8552 var8 = NULL;
8553 ((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>*/;
8554 CHECK_NEW_parser_nodes__ABreakExpr(var7);
8555 var_pexprnode1 = var7;
8556 var_node_list = var_pexprnode1;
8557 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction606> */
8558 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
8559 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
8560 RET_LABEL:;
8561 }
8562 /* method parser#ReduceAction606#action for (self: Object, Parser) */
8563 void VIRTUAL_parser__ReduceAction606__action(val* self, val* p0) {
8564 parser__ReduceAction606__action(self, p0);
8565 RET_LABEL:;
8566 }
8567 /* method parser#ReduceAction607#action for (self: ReduceAction607, Parser) */
8568 void parser__ReduceAction607__action(val* self, val* p0) {
8569 val* var_p /* var p: Parser */;
8570 val* var /* : null */;
8571 val* var_node_list /* var node_list: nullable Object */;
8572 val* var1 /* : nullable Object */;
8573 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8574 val* var2 /* : nullable Object */;
8575 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8576 val* var3 /* : nullable Object */;
8577 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8578 val* var_tkwbreaknode2 /* var tkwbreaknode2: nullable Object */;
8579 short int var4 /* : Bool */;
8580 int cltype;
8581 int idtype;
8582 val* var_plabelnode3 /* var plabelnode3: nullable Object */;
8583 short int var5 /* : Bool */;
8584 int cltype6;
8585 int idtype7;
8586 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
8587 short int var8 /* : Bool */;
8588 int cltype9;
8589 int idtype10;
8590 val* var11 /* : ABreakExpr */;
8591 val* var_pexprnode1 /* var pexprnode1: nullable ABreakExpr */;
8592 long var12 /* : Int */;
8593 long var13 /* : Int */;
8594 var_p = p0;
8595 var = NULL;
8596 var_node_list = var;
8597 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8598 var_nodearraylist3 = var1;
8599 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8600 var_nodearraylist2 = var2;
8601 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8602 var_nodearraylist1 = var3;
8603 var_tkwbreaknode2 = var_nodearraylist1;
8604 /* <var_tkwbreaknode2:nullable Object> isa nullable TKwbreak */
8605 cltype = type_nullable_parser_nodes__TKwbreak.color;
8606 idtype = type_nullable_parser_nodes__TKwbreak.id;
8607 if(var_tkwbreaknode2 == NULL) {
8608 var4 = 1;
8609 } else {
8610 if(cltype >= var_tkwbreaknode2->type->table_size) {
8611 var4 = 0;
8612 } else {
8613 var4 = var_tkwbreaknode2->type->type_table[cltype] == idtype;
8614 }
8615 }
8616 if (!var4) {
8617 fprintf(stderr, "Runtime error: %s", "Assert failed");
8618 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24180);
8619 exit(1);
8620 }
8621 var_plabelnode3 = var_nodearraylist2;
8622 /* <var_plabelnode3:nullable Object> isa nullable ALabel */
8623 cltype6 = type_nullable_parser_nodes__ALabel.color;
8624 idtype7 = type_nullable_parser_nodes__ALabel.id;
8625 if(var_plabelnode3 == NULL) {
8626 var5 = 1;
8627 } else {
8628 if(cltype6 >= var_plabelnode3->type->table_size) {
8629 var5 = 0;
8630 } else {
8631 var5 = var_plabelnode3->type->type_table[cltype6] == idtype7;
8632 }
8633 }
8634 if (!var5) {
8635 fprintf(stderr, "Runtime error: %s", "Assert failed");
8636 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24182);
8637 exit(1);
8638 }
8639 var_pexprnode4 = var_nodearraylist3;
8640 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
8641 cltype9 = type_nullable_parser_nodes__AExpr.color;
8642 idtype10 = type_nullable_parser_nodes__AExpr.id;
8643 if(var_pexprnode4 == NULL) {
8644 var8 = 1;
8645 } else {
8646 if(cltype9 >= var_pexprnode4->type->table_size) {
8647 var8 = 0;
8648 } else {
8649 var8 = var_pexprnode4->type->type_table[cltype9] == idtype10;
8650 }
8651 }
8652 if (!var8) {
8653 fprintf(stderr, "Runtime error: %s", "Assert failed");
8654 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24184);
8655 exit(1);
8656 }
8657 var11 = NEW_parser_nodes__ABreakExpr(&type_parser_nodes__ABreakExpr);
8658 ((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>*/;
8659 CHECK_NEW_parser_nodes__ABreakExpr(var11);
8660 var_pexprnode1 = var11;
8661 var_node_list = var_pexprnode1;
8662 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction607> */
8663 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
8664 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
8665 RET_LABEL:;
8666 }
8667 /* method parser#ReduceAction607#action for (self: Object, Parser) */
8668 void VIRTUAL_parser__ReduceAction607__action(val* self, val* p0) {
8669 parser__ReduceAction607__action(self, p0);
8670 RET_LABEL:;
8671 }
8672 /* method parser#ReduceAction608#action for (self: ReduceAction608, Parser) */
8673 void parser__ReduceAction608__action(val* self, val* p0) {
8674 val* var_p /* var p: Parser */;
8675 val* var /* : null */;
8676 val* var_node_list /* var node_list: nullable Object */;
8677 val* var1 /* : nullable Object */;
8678 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8679 val* var_tkwabortnode2 /* var tkwabortnode2: nullable Object */;
8680 short int var2 /* : Bool */;
8681 int cltype;
8682 int idtype;
8683 val* var3 /* : AAbortExpr */;
8684 val* var_pexprnode1 /* var pexprnode1: nullable AAbortExpr */;
8685 long var4 /* : Int */;
8686 long var5 /* : Int */;
8687 var_p = p0;
8688 var = NULL;
8689 var_node_list = var;
8690 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8691 var_nodearraylist1 = var1;
8692 var_tkwabortnode2 = var_nodearraylist1;
8693 /* <var_tkwabortnode2:nullable Object> isa nullable TKwabort */
8694 cltype = type_nullable_parser_nodes__TKwabort.color;
8695 idtype = type_nullable_parser_nodes__TKwabort.id;
8696 if(var_tkwabortnode2 == NULL) {
8697 var2 = 1;
8698 } else {
8699 if(cltype >= var_tkwabortnode2->type->table_size) {
8700 var2 = 0;
8701 } else {
8702 var2 = var_tkwabortnode2->type->type_table[cltype] == idtype;
8703 }
8704 }
8705 if (!var2) {
8706 fprintf(stderr, "Runtime error: %s", "Assert failed");
8707 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24201);
8708 exit(1);
8709 }
8710 var3 = NEW_parser_nodes__AAbortExpr(&type_parser_nodes__AAbortExpr);
8711 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AAbortExpr__init_aabortexpr]))(var3, var_tkwabortnode2) /* init_aabortexpr on <var3:AAbortExpr>*/;
8712 CHECK_NEW_parser_nodes__AAbortExpr(var3);
8713 var_pexprnode1 = var3;
8714 var_node_list = var_pexprnode1;
8715 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction608> */
8716 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
8717 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
8718 RET_LABEL:;
8719 }
8720 /* method parser#ReduceAction608#action for (self: Object, Parser) */
8721 void VIRTUAL_parser__ReduceAction608__action(val* self, val* p0) {
8722 parser__ReduceAction608__action(self, p0);
8723 RET_LABEL:;
8724 }
8725 /* method parser#ReduceAction609#action for (self: ReduceAction609, Parser) */
8726 void parser__ReduceAction609__action(val* self, val* p0) {
8727 val* var_p /* var p: Parser */;
8728 val* var /* : null */;
8729 val* var_node_list /* var node_list: nullable Object */;
8730 val* var1 /* : nullable Object */;
8731 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8732 val* var_tkwcontinuenode2 /* var tkwcontinuenode2: nullable Object */;
8733 short int var2 /* : Bool */;
8734 int cltype;
8735 int idtype;
8736 val* var3 /* : AContinueExpr */;
8737 val* var4 /* : null */;
8738 val* var5 /* : null */;
8739 val* var_pexprnode1 /* var pexprnode1: nullable AContinueExpr */;
8740 long var6 /* : Int */;
8741 long var7 /* : Int */;
8742 var_p = p0;
8743 var = NULL;
8744 var_node_list = var;
8745 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8746 var_nodearraylist1 = var1;
8747 var_tkwcontinuenode2 = var_nodearraylist1;
8748 /* <var_tkwcontinuenode2:nullable Object> isa nullable TKwcontinue */
8749 cltype = type_nullable_parser_nodes__TKwcontinue.color;
8750 idtype = type_nullable_parser_nodes__TKwcontinue.id;
8751 if(var_tkwcontinuenode2 == NULL) {
8752 var2 = 1;
8753 } else {
8754 if(cltype >= var_tkwcontinuenode2->type->table_size) {
8755 var2 = 0;
8756 } else {
8757 var2 = var_tkwcontinuenode2->type->type_table[cltype] == idtype;
8758 }
8759 }
8760 if (!var2) {
8761 fprintf(stderr, "Runtime error: %s", "Assert failed");
8762 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24216);
8763 exit(1);
8764 }
8765 var3 = NEW_parser_nodes__AContinueExpr(&type_parser_nodes__AContinueExpr);
8766 var4 = NULL;
8767 var5 = NULL;
8768 ((void (*)(val*, val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AContinueExpr__init_acontinueexpr]))(var3, var_tkwcontinuenode2, var4, var5) /* init_acontinueexpr on <var3:AContinueExpr>*/;
8769 CHECK_NEW_parser_nodes__AContinueExpr(var3);
8770 var_pexprnode1 = var3;
8771 var_node_list = var_pexprnode1;
8772 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction609> */
8773 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
8774 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
8775 RET_LABEL:;
8776 }
8777 /* method parser#ReduceAction609#action for (self: Object, Parser) */
8778 void VIRTUAL_parser__ReduceAction609__action(val* self, val* p0) {
8779 parser__ReduceAction609__action(self, p0);
8780 RET_LABEL:;
8781 }
8782 /* method parser#ReduceAction610#action for (self: ReduceAction610, Parser) */
8783 void parser__ReduceAction610__action(val* self, val* p0) {
8784 val* var_p /* var p: Parser */;
8785 val* var /* : null */;
8786 val* var_node_list /* var node_list: nullable Object */;
8787 val* var1 /* : nullable Object */;
8788 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8789 val* var2 /* : nullable Object */;
8790 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8791 val* var_tkwcontinuenode2 /* var tkwcontinuenode2: nullable Object */;
8792 short int var3 /* : Bool */;
8793 int cltype;
8794 int idtype;
8795 val* var_plabelnode3 /* var plabelnode3: nullable Object */;
8796 short int var4 /* : Bool */;
8797 int cltype5;
8798 int idtype6;
8799 val* var7 /* : AContinueExpr */;
8800 val* var8 /* : null */;
8801 val* var_pexprnode1 /* var pexprnode1: nullable AContinueExpr */;
8802 long var9 /* : Int */;
8803 long var10 /* : Int */;
8804 var_p = p0;
8805 var = NULL;
8806 var_node_list = var;
8807 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8808 var_nodearraylist2 = var1;
8809 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8810 var_nodearraylist1 = var2;
8811 var_tkwcontinuenode2 = var_nodearraylist1;
8812 /* <var_tkwcontinuenode2:nullable Object> isa nullable TKwcontinue */
8813 cltype = type_nullable_parser_nodes__TKwcontinue.color;
8814 idtype = type_nullable_parser_nodes__TKwcontinue.id;
8815 if(var_tkwcontinuenode2 == NULL) {
8816 var3 = 1;
8817 } else {
8818 if(cltype >= var_tkwcontinuenode2->type->table_size) {
8819 var3 = 0;
8820 } else {
8821 var3 = var_tkwcontinuenode2->type->type_table[cltype] == idtype;
8822 }
8823 }
8824 if (!var3) {
8825 fprintf(stderr, "Runtime error: %s", "Assert failed");
8826 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24234);
8827 exit(1);
8828 }
8829 var_plabelnode3 = var_nodearraylist2;
8830 /* <var_plabelnode3:nullable Object> isa nullable ALabel */
8831 cltype5 = type_nullable_parser_nodes__ALabel.color;
8832 idtype6 = type_nullable_parser_nodes__ALabel.id;
8833 if(var_plabelnode3 == NULL) {
8834 var4 = 1;
8835 } else {
8836 if(cltype5 >= var_plabelnode3->type->table_size) {
8837 var4 = 0;
8838 } else {
8839 var4 = var_plabelnode3->type->type_table[cltype5] == idtype6;
8840 }
8841 }
8842 if (!var4) {
8843 fprintf(stderr, "Runtime error: %s", "Assert failed");
8844 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24236);
8845 exit(1);
8846 }
8847 var7 = NEW_parser_nodes__AContinueExpr(&type_parser_nodes__AContinueExpr);
8848 var8 = NULL;
8849 ((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>*/;
8850 CHECK_NEW_parser_nodes__AContinueExpr(var7);
8851 var_pexprnode1 = var7;
8852 var_node_list = var_pexprnode1;
8853 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction610> */
8854 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
8855 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
8856 RET_LABEL:;
8857 }
8858 /* method parser#ReduceAction610#action for (self: Object, Parser) */
8859 void VIRTUAL_parser__ReduceAction610__action(val* self, val* p0) {
8860 parser__ReduceAction610__action(self, p0);
8861 RET_LABEL:;
8862 }
8863 /* method parser#ReduceAction611#action for (self: ReduceAction611, Parser) */
8864 void parser__ReduceAction611__action(val* self, val* p0) {
8865 val* var_p /* var p: Parser */;
8866 val* var /* : null */;
8867 val* var_node_list /* var node_list: nullable Object */;
8868 val* var1 /* : nullable Object */;
8869 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8870 val* var2 /* : nullable Object */;
8871 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8872 val* var_tkwcontinuenode2 /* var tkwcontinuenode2: nullable Object */;
8873 short int var3 /* : Bool */;
8874 int cltype;
8875 int idtype;
8876 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
8877 short int var4 /* : Bool */;
8878 int cltype5;
8879 int idtype6;
8880 val* var7 /* : AContinueExpr */;
8881 val* var8 /* : null */;
8882 val* var_pexprnode1 /* var pexprnode1: nullable AContinueExpr */;
8883 long var9 /* : Int */;
8884 long var10 /* : Int */;
8885 var_p = p0;
8886 var = NULL;
8887 var_node_list = var;
8888 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8889 var_nodearraylist2 = var1;
8890 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8891 var_nodearraylist1 = var2;
8892 var_tkwcontinuenode2 = var_nodearraylist1;
8893 /* <var_tkwcontinuenode2:nullable Object> isa nullable TKwcontinue */
8894 cltype = type_nullable_parser_nodes__TKwcontinue.color;
8895 idtype = type_nullable_parser_nodes__TKwcontinue.id;
8896 if(var_tkwcontinuenode2 == NULL) {
8897 var3 = 1;
8898 } else {
8899 if(cltype >= var_tkwcontinuenode2->type->table_size) {
8900 var3 = 0;
8901 } else {
8902 var3 = var_tkwcontinuenode2->type->type_table[cltype] == idtype;
8903 }
8904 }
8905 if (!var3) {
8906 fprintf(stderr, "Runtime error: %s", "Assert failed");
8907 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24254);
8908 exit(1);
8909 }
8910 var_pexprnode4 = var_nodearraylist2;
8911 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
8912 cltype5 = type_nullable_parser_nodes__AExpr.color;
8913 idtype6 = type_nullable_parser_nodes__AExpr.id;
8914 if(var_pexprnode4 == NULL) {
8915 var4 = 1;
8916 } else {
8917 if(cltype5 >= var_pexprnode4->type->table_size) {
8918 var4 = 0;
8919 } else {
8920 var4 = var_pexprnode4->type->type_table[cltype5] == idtype6;
8921 }
8922 }
8923 if (!var4) {
8924 fprintf(stderr, "Runtime error: %s", "Assert failed");
8925 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24256);
8926 exit(1);
8927 }
8928 var7 = NEW_parser_nodes__AContinueExpr(&type_parser_nodes__AContinueExpr);
8929 var8 = NULL;
8930 ((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>*/;
8931 CHECK_NEW_parser_nodes__AContinueExpr(var7);
8932 var_pexprnode1 = var7;
8933 var_node_list = var_pexprnode1;
8934 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction611> */
8935 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
8936 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
8937 RET_LABEL:;
8938 }
8939 /* method parser#ReduceAction611#action for (self: Object, Parser) */
8940 void VIRTUAL_parser__ReduceAction611__action(val* self, val* p0) {
8941 parser__ReduceAction611__action(self, p0);
8942 RET_LABEL:;
8943 }
8944 /* method parser#ReduceAction612#action for (self: ReduceAction612, Parser) */
8945 void parser__ReduceAction612__action(val* self, val* p0) {
8946 val* var_p /* var p: Parser */;
8947 val* var /* : null */;
8948 val* var_node_list /* var node_list: nullable Object */;
8949 val* var1 /* : nullable Object */;
8950 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8951 val* var2 /* : nullable Object */;
8952 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8953 val* var3 /* : nullable Object */;
8954 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8955 val* var_tkwcontinuenode2 /* var tkwcontinuenode2: nullable Object */;
8956 short int var4 /* : Bool */;
8957 int cltype;
8958 int idtype;
8959 val* var_plabelnode3 /* var plabelnode3: nullable Object */;
8960 short int var5 /* : Bool */;
8961 int cltype6;
8962 int idtype7;
8963 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
8964 short int var8 /* : Bool */;
8965 int cltype9;
8966 int idtype10;
8967 val* var11 /* : AContinueExpr */;
8968 val* var_pexprnode1 /* var pexprnode1: nullable AContinueExpr */;
8969 long var12 /* : Int */;
8970 long var13 /* : Int */;
8971 var_p = p0;
8972 var = NULL;
8973 var_node_list = var;
8974 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8975 var_nodearraylist3 = var1;
8976 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8977 var_nodearraylist2 = var2;
8978 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8979 var_nodearraylist1 = var3;
8980 var_tkwcontinuenode2 = var_nodearraylist1;
8981 /* <var_tkwcontinuenode2:nullable Object> isa nullable TKwcontinue */
8982 cltype = type_nullable_parser_nodes__TKwcontinue.color;
8983 idtype = type_nullable_parser_nodes__TKwcontinue.id;
8984 if(var_tkwcontinuenode2 == NULL) {
8985 var4 = 1;
8986 } else {
8987 if(cltype >= var_tkwcontinuenode2->type->table_size) {
8988 var4 = 0;
8989 } else {
8990 var4 = var_tkwcontinuenode2->type->type_table[cltype] == idtype;
8991 }
8992 }
8993 if (!var4) {
8994 fprintf(stderr, "Runtime error: %s", "Assert failed");
8995 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24275);
8996 exit(1);
8997 }
8998 var_plabelnode3 = var_nodearraylist2;
8999 /* <var_plabelnode3:nullable Object> isa nullable ALabel */
9000 cltype6 = type_nullable_parser_nodes__ALabel.color;
9001 idtype7 = type_nullable_parser_nodes__ALabel.id;
9002 if(var_plabelnode3 == NULL) {
9003 var5 = 1;
9004 } else {
9005 if(cltype6 >= var_plabelnode3->type->table_size) {
9006 var5 = 0;
9007 } else {
9008 var5 = var_plabelnode3->type->type_table[cltype6] == idtype7;
9009 }
9010 }
9011 if (!var5) {
9012 fprintf(stderr, "Runtime error: %s", "Assert failed");
9013 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24277);
9014 exit(1);
9015 }
9016 var_pexprnode4 = var_nodearraylist3;
9017 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
9018 cltype9 = type_nullable_parser_nodes__AExpr.color;
9019 idtype10 = type_nullable_parser_nodes__AExpr.id;
9020 if(var_pexprnode4 == NULL) {
9021 var8 = 1;
9022 } else {
9023 if(cltype9 >= var_pexprnode4->type->table_size) {
9024 var8 = 0;
9025 } else {
9026 var8 = var_pexprnode4->type->type_table[cltype9] == idtype10;
9027 }
9028 }
9029 if (!var8) {
9030 fprintf(stderr, "Runtime error: %s", "Assert failed");
9031 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24279);
9032 exit(1);
9033 }
9034 var11 = NEW_parser_nodes__AContinueExpr(&type_parser_nodes__AContinueExpr);
9035 ((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>*/;
9036 CHECK_NEW_parser_nodes__AContinueExpr(var11);
9037 var_pexprnode1 = var11;
9038 var_node_list = var_pexprnode1;
9039 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction612> */
9040 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
9041 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
9042 RET_LABEL:;
9043 }
9044 /* method parser#ReduceAction612#action for (self: Object, Parser) */
9045 void VIRTUAL_parser__ReduceAction612__action(val* self, val* p0) {
9046 parser__ReduceAction612__action(self, p0);
9047 RET_LABEL:;
9048 }
9049 /* method parser#ReduceAction619#action for (self: ReduceAction619, Parser) */
9050 void parser__ReduceAction619__action(val* self, val* p0) {
9051 val* var_p /* var p: Parser */;
9052 val* var /* : null */;
9053 val* var_node_list /* var node_list: nullable Object */;
9054 val* var1 /* : nullable Object */;
9055 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9056 val* var2 /* : nullable Object */;
9057 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9058 val* var3 /* : nullable Object */;
9059 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9060 val* var4 /* : nullable Object */;
9061 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9062 val* var5 /* : nullable Object */;
9063 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9064 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
9065 short int var6 /* : Bool */;
9066 int cltype;
9067 int idtype;
9068 val* var_tidnode3 /* var tidnode3: nullable Object */;
9069 short int var7 /* : Bool */;
9070 int cltype8;
9071 int idtype9;
9072 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
9073 short int var10 /* : Bool */;
9074 int cltype11;
9075 int idtype12;
9076 val* var13 /* : ACallExpr */;
9077 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
9078 long var14 /* : Int */;
9079 long var15 /* : Int */;
9080 var_p = p0;
9081 var = NULL;
9082 var_node_list = var;
9083 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9084 var_nodearraylist5 = var1;
9085 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9086 var_nodearraylist4 = var2;
9087 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9088 var_nodearraylist3 = var3;
9089 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9090 var_nodearraylist2 = var4;
9091 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9092 var_nodearraylist1 = var5;
9093 var_pexprnode2 = var_nodearraylist1;
9094 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
9095 cltype = type_nullable_parser_nodes__AExpr.color;
9096 idtype = type_nullable_parser_nodes__AExpr.id;
9097 if(var_pexprnode2 == NULL) {
9098 var6 = 1;
9099 } else {
9100 if(cltype >= var_pexprnode2->type->table_size) {
9101 var6 = 0;
9102 } else {
9103 var6 = var_pexprnode2->type->type_table[cltype] == idtype;
9104 }
9105 }
9106 if (!var6) {
9107 fprintf(stderr, "Runtime error: %s", "Assert failed");
9108 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24300);
9109 exit(1);
9110 }
9111 var_tidnode3 = var_nodearraylist4;
9112 /* <var_tidnode3:nullable Object> isa nullable TId */
9113 cltype8 = type_nullable_parser_nodes__TId.color;
9114 idtype9 = type_nullable_parser_nodes__TId.id;
9115 if(var_tidnode3 == NULL) {
9116 var7 = 1;
9117 } else {
9118 if(cltype8 >= var_tidnode3->type->table_size) {
9119 var7 = 0;
9120 } else {
9121 var7 = var_tidnode3->type->type_table[cltype8] == idtype9;
9122 }
9123 }
9124 if (!var7) {
9125 fprintf(stderr, "Runtime error: %s", "Assert failed");
9126 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24302);
9127 exit(1);
9128 }
9129 var_pexprsnode4 = var_nodearraylist5;
9130 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
9131 cltype11 = type_nullable_parser_nodes__AExprs.color;
9132 idtype12 = type_nullable_parser_nodes__AExprs.id;
9133 if(var_pexprsnode4 == NULL) {
9134 var10 = 1;
9135 } else {
9136 if(cltype11 >= var_pexprsnode4->type->table_size) {
9137 var10 = 0;
9138 } else {
9139 var10 = var_pexprsnode4->type->type_table[cltype11] == idtype12;
9140 }
9141 }
9142 if (!var10) {
9143 fprintf(stderr, "Runtime error: %s", "Assert failed");
9144 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24304);
9145 exit(1);
9146 }
9147 var13 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
9148 ((void (*)(val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__ACallExpr__init_acallexpr]))(var13, var_pexprnode2, var_tidnode3, var_pexprsnode4) /* init_acallexpr on <var13:ACallExpr>*/;
9149 CHECK_NEW_parser_nodes__ACallExpr(var13);
9150 var_pexprnode1 = var13;
9151 var_node_list = var_pexprnode1;
9152 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction619> */
9153 var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
9154 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
9155 RET_LABEL:;
9156 }
9157 /* method parser#ReduceAction619#action for (self: Object, Parser) */
9158 void VIRTUAL_parser__ReduceAction619__action(val* self, val* p0) {
9159 parser__ReduceAction619__action(self, p0);
9160 RET_LABEL:;
9161 }
9162 /* method parser#ReduceAction620#action for (self: ReduceAction620, Parser) */
9163 void parser__ReduceAction620__action(val* self, val* p0) {
9164 val* var_p /* var p: Parser */;
9165 val* var /* : null */;
9166 val* var_node_list /* var node_list: nullable Object */;
9167 val* var1 /* : nullable Object */;
9168 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9169 val* var2 /* : nullable Object */;
9170 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9171 val* var3 /* : AImplicitSelfExpr */;
9172 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
9173 val* var_tidnode3 /* var tidnode3: nullable Object */;
9174 short int var4 /* : Bool */;
9175 int cltype;
9176 int idtype;
9177 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
9178 short int var5 /* : Bool */;
9179 int cltype6;
9180 int idtype7;
9181 val* var8 /* : ACallExpr */;
9182 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
9183 long var9 /* : Int */;
9184 long var10 /* : Int */;
9185 var_p = p0;
9186 var = NULL;
9187 var_node_list = var;
9188 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9189 var_nodearraylist2 = var1;
9190 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9191 var_nodearraylist1 = var2;
9192 var3 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
9193 ((void (*)(val*))(var3->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var3) /* init_aimplicitselfexpr on <var3:AImplicitSelfExpr>*/;
9194 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var3);
9195 var_pexprnode2 = var3;
9196 var_tidnode3 = var_nodearraylist1;
9197 /* <var_tidnode3:nullable Object> isa nullable TId */
9198 cltype = type_nullable_parser_nodes__TId.color;
9199 idtype = type_nullable_parser_nodes__TId.id;
9200 if(var_tidnode3 == NULL) {
9201 var4 = 1;
9202 } else {
9203 if(cltype >= var_tidnode3->type->table_size) {
9204 var4 = 0;
9205 } else {
9206 var4 = var_tidnode3->type->type_table[cltype] == idtype;
9207 }
9208 }
9209 if (!var4) {
9210 fprintf(stderr, "Runtime error: %s", "Assert failed");
9211 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24323);
9212 exit(1);
9213 }
9214 var_pexprsnode4 = var_nodearraylist2;
9215 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
9216 cltype6 = type_nullable_parser_nodes__AExprs.color;
9217 idtype7 = type_nullable_parser_nodes__AExprs.id;
9218 if(var_pexprsnode4 == NULL) {
9219 var5 = 1;
9220 } else {
9221 if(cltype6 >= var_pexprsnode4->type->table_size) {
9222 var5 = 0;
9223 } else {
9224 var5 = var_pexprsnode4->type->type_table[cltype6] == idtype7;
9225 }
9226 }
9227 if (!var5) {
9228 fprintf(stderr, "Runtime error: %s", "Assert failed");
9229 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24325);
9230 exit(1);
9231 }
9232 var8 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
9233 ((void (*)(val*, val*, val*, val*))(var8->class->vft[COLOR_parser_prod__ACallExpr__init_acallexpr]))(var8, var_pexprnode2, var_tidnode3, var_pexprsnode4) /* init_acallexpr on <var8:ACallExpr>*/;
9234 CHECK_NEW_parser_nodes__ACallExpr(var8);
9235 var_pexprnode1 = var8;
9236 var_node_list = var_pexprnode1;
9237 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction620> */
9238 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
9239 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
9240 RET_LABEL:;
9241 }
9242 /* method parser#ReduceAction620#action for (self: Object, Parser) */
9243 void VIRTUAL_parser__ReduceAction620__action(val* self, val* p0) {
9244 parser__ReduceAction620__action(self, p0);
9245 RET_LABEL:;
9246 }
9247 /* method parser#ReduceAction621#action for (self: ReduceAction621, Parser) */
9248 void parser__ReduceAction621__action(val* self, val* p0) {
9249 val* var_p /* var p: Parser */;
9250 val* var /* : null */;
9251 val* var_node_list /* var node_list: nullable Object */;
9252 val* var1 /* : nullable Object */;
9253 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
9254 val* var2 /* : nullable Object */;
9255 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9256 val* var3 /* : nullable Object */;
9257 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9258 val* var4 /* : nullable Object */;
9259 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9260 val* var5 /* : nullable Object */;
9261 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9262 val* var6 /* : nullable Object */;
9263 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9264 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
9265 short int var7 /* : Bool */;
9266 int cltype;
9267 int idtype;
9268 val* var_tidnode3 /* var tidnode3: nullable Object */;
9269 short int var8 /* : Bool */;
9270 int cltype9;
9271 int idtype10;
9272 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
9273 short int var11 /* : Bool */;
9274 int cltype12;
9275 int idtype13;
9276 val* var14 /* : ACallExpr */;
9277 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
9278 long var15 /* : Int */;
9279 long var16 /* : Int */;
9280 var_p = p0;
9281 var = NULL;
9282 var_node_list = var;
9283 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9284 var_nodearraylist6 = var1;
9285 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9286 var_nodearraylist5 = var2;
9287 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9288 var_nodearraylist4 = var3;
9289 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9290 var_nodearraylist3 = var4;
9291 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9292 var_nodearraylist2 = var5;
9293 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9294 var_nodearraylist1 = var6;
9295 var_pexprnode2 = var_nodearraylist1;
9296 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
9297 cltype = type_nullable_parser_nodes__AExpr.color;
9298 idtype = type_nullable_parser_nodes__AExpr.id;
9299 if(var_pexprnode2 == NULL) {
9300 var7 = 1;
9301 } else {
9302 if(cltype >= var_pexprnode2->type->table_size) {
9303 var7 = 0;
9304 } else {
9305 var7 = var_pexprnode2->type->type_table[cltype] == idtype;
9306 }
9307 }
9308 if (!var7) {
9309 fprintf(stderr, "Runtime error: %s", "Assert failed");
9310 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24347);
9311 exit(1);
9312 }
9313 var_tidnode3 = var_nodearraylist5;
9314 /* <var_tidnode3:nullable Object> isa nullable TId */
9315 cltype9 = type_nullable_parser_nodes__TId.color;
9316 idtype10 = type_nullable_parser_nodes__TId.id;
9317 if(var_tidnode3 == NULL) {
9318 var8 = 1;
9319 } else {
9320 if(cltype9 >= var_tidnode3->type->table_size) {
9321 var8 = 0;
9322 } else {
9323 var8 = var_tidnode3->type->type_table[cltype9] == idtype10;
9324 }
9325 }
9326 if (!var8) {
9327 fprintf(stderr, "Runtime error: %s", "Assert failed");
9328 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24349);
9329 exit(1);
9330 }
9331 var_pexprsnode4 = var_nodearraylist6;
9332 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
9333 cltype12 = type_nullable_parser_nodes__AExprs.color;
9334 idtype13 = type_nullable_parser_nodes__AExprs.id;
9335 if(var_pexprsnode4 == NULL) {
9336 var11 = 1;
9337 } else {
9338 if(cltype12 >= var_pexprsnode4->type->table_size) {
9339 var11 = 0;
9340 } else {
9341 var11 = var_pexprsnode4->type->type_table[cltype12] == idtype13;
9342 }
9343 }
9344 if (!var11) {
9345 fprintf(stderr, "Runtime error: %s", "Assert failed");
9346 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24351);
9347 exit(1);
9348 }
9349 var14 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
9350 ((void (*)(val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__ACallExpr__init_acallexpr]))(var14, var_pexprnode2, var_tidnode3, var_pexprsnode4) /* init_acallexpr on <var14:ACallExpr>*/;
9351 CHECK_NEW_parser_nodes__ACallExpr(var14);
9352 var_pexprnode1 = var14;
9353 var_node_list = var_pexprnode1;
9354 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction621> */
9355 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
9356 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
9357 RET_LABEL:;
9358 }
9359 /* method parser#ReduceAction621#action for (self: Object, Parser) */
9360 void VIRTUAL_parser__ReduceAction621__action(val* self, val* p0) {
9361 parser__ReduceAction621__action(self, p0);
9362 RET_LABEL:;
9363 }
9364 /* method parser#ReduceAction622#action for (self: ReduceAction622, Parser) */
9365 void parser__ReduceAction622__action(val* self, val* p0) {
9366 val* var_p /* var p: Parser */;
9367 val* var /* : null */;
9368 val* var_node_list /* var node_list: nullable Object */;
9369 val* var1 /* : nullable Object */;
9370 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
9371 val* var2 /* : nullable Object */;
9372 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
9373 val* var3 /* : nullable Object */;
9374 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9375 val* var4 /* : nullable Object */;
9376 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9377 val* var5 /* : nullable Object */;
9378 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9379 val* var6 /* : nullable Object */;
9380 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9381 val* var7 /* : nullable Object */;
9382 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9383 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
9384 short int var8 /* : Bool */;
9385 int cltype;
9386 int idtype;
9387 val* var_tidnode3 /* var tidnode3: nullable Object */;
9388 short int var9 /* : Bool */;
9389 int cltype10;
9390 int idtype11;
9391 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
9392 short int var12 /* : Bool */;
9393 int cltype13;
9394 int idtype14;
9395 val* var15 /* : ACallExpr */;
9396 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
9397 long var16 /* : Int */;
9398 long var17 /* : Int */;
9399 var_p = p0;
9400 var = NULL;
9401 var_node_list = var;
9402 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9403 var_nodearraylist7 = var1;
9404 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9405 var_nodearraylist6 = var2;
9406 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9407 var_nodearraylist5 = var3;
9408 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9409 var_nodearraylist4 = var4;
9410 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9411 var_nodearraylist3 = var5;
9412 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9413 var_nodearraylist2 = var6;
9414 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9415 var_nodearraylist1 = var7;
9416 var_pexprnode2 = var_nodearraylist1;
9417 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
9418 cltype = type_nullable_parser_nodes__AExpr.color;
9419 idtype = type_nullable_parser_nodes__AExpr.id;
9420 if(var_pexprnode2 == NULL) {
9421 var8 = 1;
9422 } else {
9423 if(cltype >= var_pexprnode2->type->table_size) {
9424 var8 = 0;
9425 } else {
9426 var8 = var_pexprnode2->type->type_table[cltype] == idtype;
9427 }
9428 }
9429 if (!var8) {
9430 fprintf(stderr, "Runtime error: %s", "Assert failed");
9431 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24374);
9432 exit(1);
9433 }
9434 var_tidnode3 = var_nodearraylist6;
9435 /* <var_tidnode3:nullable Object> isa nullable TId */
9436 cltype10 = type_nullable_parser_nodes__TId.color;
9437 idtype11 = type_nullable_parser_nodes__TId.id;
9438 if(var_tidnode3 == NULL) {
9439 var9 = 1;
9440 } else {
9441 if(cltype10 >= var_tidnode3->type->table_size) {
9442 var9 = 0;
9443 } else {
9444 var9 = var_tidnode3->type->type_table[cltype10] == idtype11;
9445 }
9446 }
9447 if (!var9) {
9448 fprintf(stderr, "Runtime error: %s", "Assert failed");
9449 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24376);
9450 exit(1);
9451 }
9452 var_pexprsnode4 = var_nodearraylist7;
9453 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
9454 cltype13 = type_nullable_parser_nodes__AExprs.color;
9455 idtype14 = type_nullable_parser_nodes__AExprs.id;
9456 if(var_pexprsnode4 == NULL) {
9457 var12 = 1;
9458 } else {
9459 if(cltype13 >= var_pexprsnode4->type->table_size) {
9460 var12 = 0;
9461 } else {
9462 var12 = var_pexprsnode4->type->type_table[cltype13] == idtype14;
9463 }
9464 }
9465 if (!var12) {
9466 fprintf(stderr, "Runtime error: %s", "Assert failed");
9467 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24378);
9468 exit(1);
9469 }
9470 var15 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
9471 ((void (*)(val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__ACallExpr__init_acallexpr]))(var15, var_pexprnode2, var_tidnode3, var_pexprsnode4) /* init_acallexpr on <var15:ACallExpr>*/;
9472 CHECK_NEW_parser_nodes__ACallExpr(var15);
9473 var_pexprnode1 = var15;
9474 var_node_list = var_pexprnode1;
9475 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction622> */
9476 var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
9477 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
9478 RET_LABEL:;
9479 }
9480 /* method parser#ReduceAction622#action for (self: Object, Parser) */
9481 void VIRTUAL_parser__ReduceAction622__action(val* self, val* p0) {
9482 parser__ReduceAction622__action(self, p0);
9483 RET_LABEL:;
9484 }
9485 /* method parser#ReduceAction624#action for (self: ReduceAction624, Parser) */
9486 void parser__ReduceAction624__action(val* self, val* p0) {
9487 val* var_p /* var p: Parser */;
9488 val* var /* : null */;
9489 val* var_node_list /* var node_list: nullable Object */;
9490 val* var1 /* : nullable Object */;
9491 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9492 val* var2 /* : nullable Object */;
9493 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9494 val* var3 /* : nullable Object */;
9495 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9496 val* var4 /* : AImplicitSelfExpr */;
9497 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
9498 val* var_tidnode3 /* var tidnode3: nullable Object */;
9499 short int var5 /* : Bool */;
9500 int cltype;
9501 int idtype;
9502 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
9503 short int var6 /* : Bool */;
9504 int cltype7;
9505 int idtype8;
9506 val* var9 /* : ACallExpr */;
9507 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
9508 long var10 /* : Int */;
9509 long var11 /* : Int */;
9510 var_p = p0;
9511 var = NULL;
9512 var_node_list = var;
9513 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9514 var_nodearraylist3 = var1;
9515 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9516 var_nodearraylist2 = var2;
9517 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9518 var_nodearraylist1 = var3;
9519 var4 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
9520 ((void (*)(val*))(var4->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var4) /* init_aimplicitselfexpr on <var4:AImplicitSelfExpr>*/;
9521 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var4);
9522 var_pexprnode2 = var4;
9523 var_tidnode3 = var_nodearraylist2;
9524 /* <var_tidnode3:nullable Object> isa nullable TId */
9525 cltype = type_nullable_parser_nodes__TId.color;
9526 idtype = type_nullable_parser_nodes__TId.id;
9527 if(var_tidnode3 == NULL) {
9528 var5 = 1;
9529 } else {
9530 if(cltype >= var_tidnode3->type->table_size) {
9531 var5 = 0;
9532 } else {
9533 var5 = var_tidnode3->type->type_table[cltype] == idtype;
9534 }
9535 }
9536 if (!var5) {
9537 fprintf(stderr, "Runtime error: %s", "Assert failed");
9538 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24398);
9539 exit(1);
9540 }
9541 var_pexprsnode4 = var_nodearraylist3;
9542 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
9543 cltype7 = type_nullable_parser_nodes__AExprs.color;
9544 idtype8 = type_nullable_parser_nodes__AExprs.id;
9545 if(var_pexprsnode4 == NULL) {
9546 var6 = 1;
9547 } else {
9548 if(cltype7 >= var_pexprsnode4->type->table_size) {
9549 var6 = 0;
9550 } else {
9551 var6 = var_pexprsnode4->type->type_table[cltype7] == idtype8;
9552 }
9553 }
9554 if (!var6) {
9555 fprintf(stderr, "Runtime error: %s", "Assert failed");
9556 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24400);
9557 exit(1);
9558 }
9559 var9 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
9560 ((void (*)(val*, val*, val*, val*))(var9->class->vft[COLOR_parser_prod__ACallExpr__init_acallexpr]))(var9, var_pexprnode2, var_tidnode3, var_pexprsnode4) /* init_acallexpr on <var9:ACallExpr>*/;
9561 CHECK_NEW_parser_nodes__ACallExpr(var9);
9562 var_pexprnode1 = var9;
9563 var_node_list = var_pexprnode1;
9564 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction624> */
9565 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
9566 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
9567 RET_LABEL:;
9568 }
9569 /* method parser#ReduceAction624#action for (self: Object, Parser) */
9570 void VIRTUAL_parser__ReduceAction624__action(val* self, val* p0) {
9571 parser__ReduceAction624__action(self, p0);
9572 RET_LABEL:;
9573 }
9574 /* method parser#ReduceAction625#action for (self: ReduceAction625, Parser) */
9575 void parser__ReduceAction625__action(val* self, val* p0) {
9576 val* var_p /* var p: Parser */;
9577 val* var /* : null */;
9578 val* var_node_list /* var node_list: nullable Object */;
9579 val* var1 /* : nullable Object */;
9580 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9581 val* var2 /* : nullable Object */;
9582 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9583 val* var3 /* : nullable Object */;
9584 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9585 val* var4 /* : nullable Object */;
9586 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9587 val* var5 /* : AImplicitSelfExpr */;
9588 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
9589 val* var_tidnode3 /* var tidnode3: nullable Object */;
9590 short int var6 /* : Bool */;
9591 int cltype;
9592 int idtype;
9593 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
9594 short int var7 /* : Bool */;
9595 int cltype8;
9596 int idtype9;
9597 val* var10 /* : ACallExpr */;
9598 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
9599 long var11 /* : Int */;
9600 long var12 /* : Int */;
9601 var_p = p0;
9602 var = NULL;
9603 var_node_list = var;
9604 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9605 var_nodearraylist4 = var1;
9606 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9607 var_nodearraylist3 = var2;
9608 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9609 var_nodearraylist2 = var3;
9610 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9611 var_nodearraylist1 = var4;
9612 var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
9613 ((void (*)(val*))(var5->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var5) /* init_aimplicitselfexpr on <var5:AImplicitSelfExpr>*/;
9614 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var5);
9615 var_pexprnode2 = var5;
9616 var_tidnode3 = var_nodearraylist3;
9617 /* <var_tidnode3:nullable Object> isa nullable TId */
9618 cltype = type_nullable_parser_nodes__TId.color;
9619 idtype = type_nullable_parser_nodes__TId.id;
9620 if(var_tidnode3 == NULL) {
9621 var6 = 1;
9622 } else {
9623 if(cltype >= var_tidnode3->type->table_size) {
9624 var6 = 0;
9625 } else {
9626 var6 = var_tidnode3->type->type_table[cltype] == idtype;
9627 }
9628 }
9629 if (!var6) {
9630 fprintf(stderr, "Runtime error: %s", "Assert failed");
9631 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24421);
9632 exit(1);
9633 }
9634 var_pexprsnode4 = var_nodearraylist4;
9635 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
9636 cltype8 = type_nullable_parser_nodes__AExprs.color;
9637 idtype9 = type_nullable_parser_nodes__AExprs.id;
9638 if(var_pexprsnode4 == NULL) {
9639 var7 = 1;
9640 } else {
9641 if(cltype8 >= var_pexprsnode4->type->table_size) {
9642 var7 = 0;
9643 } else {
9644 var7 = var_pexprsnode4->type->type_table[cltype8] == idtype9;
9645 }
9646 }
9647 if (!var7) {
9648 fprintf(stderr, "Runtime error: %s", "Assert failed");
9649 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24423);
9650 exit(1);
9651 }
9652 var10 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
9653 ((void (*)(val*, val*, val*, val*))(var10->class->vft[COLOR_parser_prod__ACallExpr__init_acallexpr]))(var10, var_pexprnode2, var_tidnode3, var_pexprsnode4) /* init_acallexpr on <var10:ACallExpr>*/;
9654 CHECK_NEW_parser_nodes__ACallExpr(var10);
9655 var_pexprnode1 = var10;
9656 var_node_list = var_pexprnode1;
9657 var11 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction625> */
9658 var12 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var11) /* go_to on <var_p:Parser>*/;
9659 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var12, var_node_list) /* push on <var_p:Parser>*/;
9660 RET_LABEL:;
9661 }
9662 /* method parser#ReduceAction625#action for (self: Object, Parser) */
9663 void VIRTUAL_parser__ReduceAction625__action(val* self, val* p0) {
9664 parser__ReduceAction625__action(self, p0);
9665 RET_LABEL:;
9666 }
9667 /* method parser#ReduceAction627#action for (self: ReduceAction627, Parser) */
9668 void parser__ReduceAction627__action(val* self, val* p0) {
9669 val* var_p /* var p: Parser */;
9670 val* var /* : null */;
9671 val* var_node_list /* var node_list: nullable Object */;
9672 val* var1 /* : nullable Object */;
9673 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9674 val* var2 /* : nullable Object */;
9675 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9676 val* var_tkwsupernode3 /* var tkwsupernode3: nullable Object */;
9677 short int var3 /* : Bool */;
9678 int cltype;
9679 int idtype;
9680 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
9681 short int var4 /* : Bool */;
9682 int cltype5;
9683 int idtype6;
9684 val* var7 /* : ASuperExpr */;
9685 val* var8 /* : null */;
9686 val* var_pexprnode1 /* var pexprnode1: nullable ASuperExpr */;
9687 long var9 /* : Int */;
9688 long var10 /* : Int */;
9689 var_p = p0;
9690 var = NULL;
9691 var_node_list = var;
9692 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9693 var_nodearraylist2 = var1;
9694 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9695 var_nodearraylist1 = var2;
9696 var_tkwsupernode3 = var_nodearraylist1;
9697 /* <var_tkwsupernode3:nullable Object> isa nullable TKwsuper */
9698 cltype = type_nullable_parser_nodes__TKwsuper.color;
9699 idtype = type_nullable_parser_nodes__TKwsuper.id;
9700 if(var_tkwsupernode3 == NULL) {
9701 var3 = 1;
9702 } else {
9703 if(cltype >= var_tkwsupernode3->type->table_size) {
9704 var3 = 0;
9705 } else {
9706 var3 = var_tkwsupernode3->type->type_table[cltype] == idtype;
9707 }
9708 }
9709 if (!var3) {
9710 fprintf(stderr, "Runtime error: %s", "Assert failed");
9711 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24441);
9712 exit(1);
9713 }
9714 var_pexprsnode4 = var_nodearraylist2;
9715 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
9716 cltype5 = type_nullable_parser_nodes__AExprs.color;
9717 idtype6 = type_nullable_parser_nodes__AExprs.id;
9718 if(var_pexprsnode4 == NULL) {
9719 var4 = 1;
9720 } else {
9721 if(cltype5 >= var_pexprsnode4->type->table_size) {
9722 var4 = 0;
9723 } else {
9724 var4 = var_pexprsnode4->type->type_table[cltype5] == idtype6;
9725 }
9726 }
9727 if (!var4) {
9728 fprintf(stderr, "Runtime error: %s", "Assert failed");
9729 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24443);
9730 exit(1);
9731 }
9732 var7 = NEW_parser_nodes__ASuperExpr(&type_parser_nodes__ASuperExpr);
9733 var8 = NULL;
9734 ((void (*)(val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ASuperExpr__init_asuperexpr]))(var7, var8, var_tkwsupernode3, var_pexprsnode4) /* init_asuperexpr on <var7:ASuperExpr>*/;
9735 CHECK_NEW_parser_nodes__ASuperExpr(var7);
9736 var_pexprnode1 = var7;
9737 var_node_list = var_pexprnode1;
9738 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction627> */
9739 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
9740 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
9741 RET_LABEL:;
9742 }
9743 /* method parser#ReduceAction627#action for (self: Object, Parser) */
9744 void VIRTUAL_parser__ReduceAction627__action(val* self, val* p0) {
9745 parser__ReduceAction627__action(self, p0);
9746 RET_LABEL:;
9747 }
9748 /* method parser#ReduceAction628#action for (self: ReduceAction628, Parser) */
9749 void parser__ReduceAction628__action(val* self, val* p0) {
9750 val* var_p /* var p: Parser */;
9751 val* var /* : null */;
9752 val* var_node_list /* var node_list: nullable Object */;
9753 val* var1 /* : nullable Object */;
9754 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9755 val* var2 /* : nullable Object */;
9756 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9757 val* var3 /* : nullable Object */;
9758 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9759 val* var4 /* : Array[Object] */;
9760 val* var_listnode3 /* var listnode3: Array[Object] */;
9761 val* var_tclassidnode4 /* var tclassidnode4: nullable Object */;
9762 short int var5 /* : Bool */;
9763 int cltype;
9764 int idtype;
9765 val* var6 /* : AQualified */;
9766 val* var_pqualifiednode2 /* var pqualifiednode2: nullable AQualified */;
9767 val* var_tkwsupernode5 /* var tkwsupernode5: nullable Object */;
9768 short int var7 /* : Bool */;
9769 int cltype8;
9770 int idtype9;
9771 val* var_pexprsnode6 /* var pexprsnode6: nullable Object */;
9772 short int var10 /* : Bool */;
9773 int cltype11;
9774 int idtype12;
9775 val* var13 /* : ASuperExpr */;
9776 val* var_pexprnode1 /* var pexprnode1: nullable ASuperExpr */;
9777 long var14 /* : Int */;
9778 long var15 /* : Int */;
9779 var_p = p0;
9780 var = NULL;
9781 var_node_list = var;
9782 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9783 var_nodearraylist3 = var1;
9784 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9785 var_nodearraylist2 = var2;
9786 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9787 var_nodearraylist1 = var3;
9788 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
9789 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
9790 CHECK_NEW_array__Array(var4);
9791 var_listnode3 = var4;
9792 var_tclassidnode4 = var_nodearraylist1;
9793 /* <var_tclassidnode4:nullable Object> isa nullable TClassid */
9794 cltype = type_nullable_parser_nodes__TClassid.color;
9795 idtype = type_nullable_parser_nodes__TClassid.id;
9796 if(var_tclassidnode4 == NULL) {
9797 var5 = 1;
9798 } else {
9799 if(cltype >= var_tclassidnode4->type->table_size) {
9800 var5 = 0;
9801 } else {
9802 var5 = var_tclassidnode4->type->type_table[cltype] == idtype;
9803 }
9804 }
9805 if (!var5) {
9806 fprintf(stderr, "Runtime error: %s", "Assert failed");
9807 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24463);
9808 exit(1);
9809 }
9810 var6 = NEW_parser_nodes__AQualified(&type_parser_nodes__AQualified);
9811 ((void (*)(val*, val*, val*))(var6->class->vft[COLOR_parser_prod__AQualified__init_aqualified]))(var6, var_listnode3, var_tclassidnode4) /* init_aqualified on <var6:AQualified>*/;
9812 CHECK_NEW_parser_nodes__AQualified(var6);
9813 var_pqualifiednode2 = var6;
9814 var_tkwsupernode5 = var_nodearraylist2;
9815 /* <var_tkwsupernode5:nullable Object> isa nullable TKwsuper */
9816 cltype8 = type_nullable_parser_nodes__TKwsuper.color;
9817 idtype9 = type_nullable_parser_nodes__TKwsuper.id;
9818 if(var_tkwsupernode5 == NULL) {
9819 var7 = 1;
9820 } else {
9821 if(cltype8 >= var_tkwsupernode5->type->table_size) {
9822 var7 = 0;
9823 } else {
9824 var7 = var_tkwsupernode5->type->type_table[cltype8] == idtype9;
9825 }
9826 }
9827 if (!var7) {
9828 fprintf(stderr, "Runtime error: %s", "Assert failed");
9829 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24469);
9830 exit(1);
9831 }
9832 var_pexprsnode6 = var_nodearraylist3;
9833 /* <var_pexprsnode6:nullable Object> isa nullable AExprs */
9834 cltype11 = type_nullable_parser_nodes__AExprs.color;
9835 idtype12 = type_nullable_parser_nodes__AExprs.id;
9836 if(var_pexprsnode6 == NULL) {
9837 var10 = 1;
9838 } else {
9839 if(cltype11 >= var_pexprsnode6->type->table_size) {
9840 var10 = 0;
9841 } else {
9842 var10 = var_pexprsnode6->type->type_table[cltype11] == idtype12;
9843 }
9844 }
9845 if (!var10) {
9846 fprintf(stderr, "Runtime error: %s", "Assert failed");
9847 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24471);
9848 exit(1);
9849 }
9850 var13 = NEW_parser_nodes__ASuperExpr(&type_parser_nodes__ASuperExpr);
9851 ((void (*)(val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__ASuperExpr__init_asuperexpr]))(var13, var_pqualifiednode2, var_tkwsupernode5, var_pexprsnode6) /* init_asuperexpr on <var13:ASuperExpr>*/;
9852 CHECK_NEW_parser_nodes__ASuperExpr(var13);
9853 var_pexprnode1 = var13;
9854 var_node_list = var_pexprnode1;
9855 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction628> */
9856 var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
9857 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
9858 RET_LABEL:;
9859 }
9860 /* method parser#ReduceAction628#action for (self: Object, Parser) */
9861 void VIRTUAL_parser__ReduceAction628__action(val* self, val* p0) {
9862 parser__ReduceAction628__action(self, p0);
9863 RET_LABEL:;
9864 }