c_src: update with new intern methods
[nit.git] / c_src / parser.sep.15.c
1 #include "parser.sep.0.h"
2 /* method parser#ReduceAction775#action for (self: ReduceAction775, Parser) */
3 void parser__ReduceAction775__action(val* self, val* p0) {
4 val* var_p /* var p: Parser */;
5 val* var /* : null */;
6 val* var_node_list /* var node_list: nullable Object */;
7 val* var1 /* : nullable Object */;
8 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9 val* var2 /* : nullable Object */;
10 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
11 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
12 short int var3 /* : Bool */;
13 int cltype;
14 int idtype;
15 val* var_pexprsnode3 /* var pexprsnode3: nullable Object */;
16 short int var4 /* : Bool */;
17 int cltype5;
18 int idtype6;
19 val* var7 /* : ABraExpr */;
20 val* var_pexprnode1 /* var pexprnode1: nullable ABraExpr */;
21 long var8 /* : Int */;
22 long var9 /* : Int */;
23 var_p = p0;
24 var = NULL;
25 var_node_list = var;
26 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
27 var_nodearraylist2 = var1;
28 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
29 var_nodearraylist1 = var2;
30 var_pexprnode2 = var_nodearraylist1;
31 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
32 cltype = type_nullable_parser_nodes__AExpr.color;
33 idtype = type_nullable_parser_nodes__AExpr.id;
34 if(var_pexprnode2 == NULL) {
35 var3 = 1;
36 } else {
37 if(cltype >= var_pexprnode2->type->table_size) {
38 var3 = 0;
39 } else {
40 var3 = var_pexprnode2->type->type_table[cltype] == idtype;
41 }
42 }
43 if (!var3) {
44 fprintf(stderr, "Runtime error: %s", "Assert failed");
45 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27257);
46 show_backtrace(1);
47 }
48 var_pexprsnode3 = var_nodearraylist2;
49 /* <var_pexprsnode3:nullable Object> isa nullable AExprs */
50 cltype5 = type_nullable_parser_nodes__AExprs.color;
51 idtype6 = type_nullable_parser_nodes__AExprs.id;
52 if(var_pexprsnode3 == NULL) {
53 var4 = 1;
54 } else {
55 if(cltype5 >= var_pexprsnode3->type->table_size) {
56 var4 = 0;
57 } else {
58 var4 = var_pexprsnode3->type->type_table[cltype5] == idtype6;
59 }
60 }
61 if (!var4) {
62 fprintf(stderr, "Runtime error: %s", "Assert failed");
63 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27259);
64 show_backtrace(1);
65 }
66 var7 = NEW_parser_nodes__ABraExpr(&type_parser_nodes__ABraExpr);
67 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ABraExpr__init_abraexpr]))(var7, var_pexprnode2, var_pexprsnode3) /* init_abraexpr on <var7:ABraExpr>*/;
68 var_pexprnode1 = var7;
69 var_node_list = var_pexprnode1;
70 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction775> */
71 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
72 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
73 RET_LABEL:;
74 }
75 /* method parser#ReduceAction775#action for (self: Object, Parser) */
76 void VIRTUAL_parser__ReduceAction775__action(val* self, val* p0) {
77 parser__ReduceAction775__action(self, p0);
78 RET_LABEL:;
79 }
80 /* method parser#ReduceAction776#action for (self: ReduceAction776, Parser) */
81 void parser__ReduceAction776__action(val* self, val* p0) {
82 val* var_p /* var p: Parser */;
83 val* var /* : null */;
84 val* var_node_list /* var node_list: nullable Object */;
85 val* var1 /* : nullable Object */;
86 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
87 val* var2 /* : nullable Object */;
88 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
89 val* var3 /* : nullable Object */;
90 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
91 val* var4 /* : nullable Object */;
92 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
93 val* var5 /* : nullable Object */;
94 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
95 val* var6 /* : nullable Object */;
96 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
97 val* var7 /* : nullable Object */;
98 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
99 val* var_tkwnewnode2 /* var tkwnewnode2: nullable Object */;
100 short int var8 /* : Bool */;
101 int cltype;
102 int idtype;
103 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
104 short int var9 /* : Bool */;
105 int cltype10;
106 int idtype11;
107 val* var_tidnode4 /* var tidnode4: nullable Object */;
108 short int var12 /* : Bool */;
109 int cltype13;
110 int idtype14;
111 val* var_pexprsnode5 /* var pexprsnode5: nullable Object */;
112 short int var15 /* : Bool */;
113 int cltype16;
114 int idtype17;
115 val* var18 /* : ANewExpr */;
116 val* var_pexprnode1 /* var pexprnode1: nullable ANewExpr */;
117 long var19 /* : Int */;
118 long var20 /* : Int */;
119 var_p = p0;
120 var = NULL;
121 var_node_list = var;
122 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
123 var_nodearraylist7 = var1;
124 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
125 var_nodearraylist6 = var2;
126 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
127 var_nodearraylist5 = var3;
128 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
129 var_nodearraylist4 = var4;
130 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
131 var_nodearraylist3 = var5;
132 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
133 var_nodearraylist2 = var6;
134 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
135 var_nodearraylist1 = var7;
136 var_tkwnewnode2 = var_nodearraylist1;
137 /* <var_tkwnewnode2:nullable Object> isa nullable TKwnew */
138 cltype = type_nullable_parser_nodes__TKwnew.color;
139 idtype = type_nullable_parser_nodes__TKwnew.id;
140 if(var_tkwnewnode2 == NULL) {
141 var8 = 1;
142 } else {
143 if(cltype >= var_tkwnewnode2->type->table_size) {
144 var8 = 0;
145 } else {
146 var8 = var_tkwnewnode2->type->type_table[cltype] == idtype;
147 }
148 }
149 if (!var8) {
150 fprintf(stderr, "Runtime error: %s", "Assert failed");
151 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27281);
152 show_backtrace(1);
153 }
154 var_ptypenode3 = var_nodearraylist3;
155 /* <var_ptypenode3:nullable Object> isa nullable AType */
156 cltype10 = type_nullable_parser_nodes__AType.color;
157 idtype11 = type_nullable_parser_nodes__AType.id;
158 if(var_ptypenode3 == NULL) {
159 var9 = 1;
160 } else {
161 if(cltype10 >= var_ptypenode3->type->table_size) {
162 var9 = 0;
163 } else {
164 var9 = var_ptypenode3->type->type_table[cltype10] == idtype11;
165 }
166 }
167 if (!var9) {
168 fprintf(stderr, "Runtime error: %s", "Assert failed");
169 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27283);
170 show_backtrace(1);
171 }
172 var_tidnode4 = var_nodearraylist6;
173 /* <var_tidnode4:nullable Object> isa nullable TId */
174 cltype13 = type_nullable_parser_nodes__TId.color;
175 idtype14 = type_nullable_parser_nodes__TId.id;
176 if(var_tidnode4 == NULL) {
177 var12 = 1;
178 } else {
179 if(cltype13 >= var_tidnode4->type->table_size) {
180 var12 = 0;
181 } else {
182 var12 = var_tidnode4->type->type_table[cltype13] == idtype14;
183 }
184 }
185 if (!var12) {
186 fprintf(stderr, "Runtime error: %s", "Assert failed");
187 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27285);
188 show_backtrace(1);
189 }
190 var_pexprsnode5 = var_nodearraylist7;
191 /* <var_pexprsnode5:nullable Object> isa nullable AExprs */
192 cltype16 = type_nullable_parser_nodes__AExprs.color;
193 idtype17 = type_nullable_parser_nodes__AExprs.id;
194 if(var_pexprsnode5 == NULL) {
195 var15 = 1;
196 } else {
197 if(cltype16 >= var_pexprsnode5->type->table_size) {
198 var15 = 0;
199 } else {
200 var15 = var_pexprsnode5->type->type_table[cltype16] == idtype17;
201 }
202 }
203 if (!var15) {
204 fprintf(stderr, "Runtime error: %s", "Assert failed");
205 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27287);
206 show_backtrace(1);
207 }
208 var18 = NEW_parser_nodes__ANewExpr(&type_parser_nodes__ANewExpr);
209 ((void (*)(val*, val*, val*, val*, val*))(var18->class->vft[COLOR_parser_prod__ANewExpr__init_anewexpr]))(var18, var_tkwnewnode2, var_ptypenode3, var_tidnode4, var_pexprsnode5) /* init_anewexpr on <var18:ANewExpr>*/;
210 var_pexprnode1 = var18;
211 var_node_list = var_pexprnode1;
212 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction776> */
213 var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
214 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
215 RET_LABEL:;
216 }
217 /* method parser#ReduceAction776#action for (self: Object, Parser) */
218 void VIRTUAL_parser__ReduceAction776__action(val* self, val* p0) {
219 parser__ReduceAction776__action(self, p0);
220 RET_LABEL:;
221 }
222 /* method parser#ReduceAction777#action for (self: ReduceAction777, Parser) */
223 void parser__ReduceAction777__action(val* self, val* p0) {
224 val* var_p /* var p: Parser */;
225 val* var /* : null */;
226 val* var_node_list /* var node_list: nullable Object */;
227 val* var1 /* : nullable Object */;
228 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
229 val* var2 /* : nullable Object */;
230 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
231 val* var3 /* : nullable Object */;
232 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
233 val* var4 /* : nullable Object */;
234 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
235 val* var5 /* : nullable Object */;
236 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
237 val* var6 /* : nullable Object */;
238 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
239 val* var7 /* : nullable Object */;
240 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
241 val* var8 /* : nullable Object */;
242 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
243 val* var_tkwnewnode2 /* var tkwnewnode2: nullable Object */;
244 short int var9 /* : Bool */;
245 int cltype;
246 int idtype;
247 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
248 short int var10 /* : Bool */;
249 int cltype11;
250 int idtype12;
251 val* var_tidnode4 /* var tidnode4: nullable Object */;
252 short int var13 /* : Bool */;
253 int cltype14;
254 int idtype15;
255 val* var_pexprsnode5 /* var pexprsnode5: nullable Object */;
256 short int var16 /* : Bool */;
257 int cltype17;
258 int idtype18;
259 val* var19 /* : ANewExpr */;
260 val* var_pexprnode1 /* var pexprnode1: nullable ANewExpr */;
261 long var20 /* : Int */;
262 long var21 /* : Int */;
263 var_p = p0;
264 var = NULL;
265 var_node_list = var;
266 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
267 var_nodearraylist8 = var1;
268 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
269 var_nodearraylist7 = var2;
270 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
271 var_nodearraylist6 = var3;
272 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
273 var_nodearraylist5 = var4;
274 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
275 var_nodearraylist4 = var5;
276 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
277 var_nodearraylist3 = var6;
278 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
279 var_nodearraylist2 = var7;
280 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
281 var_nodearraylist1 = var8;
282 var_tkwnewnode2 = var_nodearraylist1;
283 /* <var_tkwnewnode2:nullable Object> isa nullable TKwnew */
284 cltype = type_nullable_parser_nodes__TKwnew.color;
285 idtype = type_nullable_parser_nodes__TKwnew.id;
286 if(var_tkwnewnode2 == NULL) {
287 var9 = 1;
288 } else {
289 if(cltype >= var_tkwnewnode2->type->table_size) {
290 var9 = 0;
291 } else {
292 var9 = var_tkwnewnode2->type->type_table[cltype] == idtype;
293 }
294 }
295 if (!var9) {
296 fprintf(stderr, "Runtime error: %s", "Assert failed");
297 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27312);
298 show_backtrace(1);
299 }
300 var_ptypenode3 = var_nodearraylist3;
301 /* <var_ptypenode3:nullable Object> isa nullable AType */
302 cltype11 = type_nullable_parser_nodes__AType.color;
303 idtype12 = type_nullable_parser_nodes__AType.id;
304 if(var_ptypenode3 == NULL) {
305 var10 = 1;
306 } else {
307 if(cltype11 >= var_ptypenode3->type->table_size) {
308 var10 = 0;
309 } else {
310 var10 = var_ptypenode3->type->type_table[cltype11] == idtype12;
311 }
312 }
313 if (!var10) {
314 fprintf(stderr, "Runtime error: %s", "Assert failed");
315 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27314);
316 show_backtrace(1);
317 }
318 var_tidnode4 = var_nodearraylist7;
319 /* <var_tidnode4:nullable Object> isa nullable TId */
320 cltype14 = type_nullable_parser_nodes__TId.color;
321 idtype15 = type_nullable_parser_nodes__TId.id;
322 if(var_tidnode4 == NULL) {
323 var13 = 1;
324 } else {
325 if(cltype14 >= var_tidnode4->type->table_size) {
326 var13 = 0;
327 } else {
328 var13 = var_tidnode4->type->type_table[cltype14] == idtype15;
329 }
330 }
331 if (!var13) {
332 fprintf(stderr, "Runtime error: %s", "Assert failed");
333 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27316);
334 show_backtrace(1);
335 }
336 var_pexprsnode5 = var_nodearraylist8;
337 /* <var_pexprsnode5:nullable Object> isa nullable AExprs */
338 cltype17 = type_nullable_parser_nodes__AExprs.color;
339 idtype18 = type_nullable_parser_nodes__AExprs.id;
340 if(var_pexprsnode5 == NULL) {
341 var16 = 1;
342 } else {
343 if(cltype17 >= var_pexprsnode5->type->table_size) {
344 var16 = 0;
345 } else {
346 var16 = var_pexprsnode5->type->type_table[cltype17] == idtype18;
347 }
348 }
349 if (!var16) {
350 fprintf(stderr, "Runtime error: %s", "Assert failed");
351 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27318);
352 show_backtrace(1);
353 }
354 var19 = NEW_parser_nodes__ANewExpr(&type_parser_nodes__ANewExpr);
355 ((void (*)(val*, val*, val*, val*, val*))(var19->class->vft[COLOR_parser_prod__ANewExpr__init_anewexpr]))(var19, var_tkwnewnode2, var_ptypenode3, var_tidnode4, var_pexprsnode5) /* init_anewexpr on <var19:ANewExpr>*/;
356 var_pexprnode1 = var19;
357 var_node_list = var_pexprnode1;
358 var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction777> */
359 var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on <var_p:Parser>*/;
360 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on <var_p:Parser>*/;
361 RET_LABEL:;
362 }
363 /* method parser#ReduceAction777#action for (self: Object, Parser) */
364 void VIRTUAL_parser__ReduceAction777__action(val* self, val* p0) {
365 parser__ReduceAction777__action(self, p0);
366 RET_LABEL:;
367 }
368 /* method parser#ReduceAction778#action for (self: ReduceAction778, Parser) */
369 void parser__ReduceAction778__action(val* self, val* p0) {
370 val* var_p /* var p: Parser */;
371 val* var /* : null */;
372 val* var_node_list /* var node_list: nullable Object */;
373 val* var1 /* : nullable Object */;
374 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
375 val* var2 /* : nullable Object */;
376 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
377 val* var3 /* : nullable Object */;
378 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
379 val* var4 /* : nullable Object */;
380 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
381 val* var5 /* : nullable Object */;
382 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
383 val* var6 /* : nullable Object */;
384 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
385 val* var7 /* : nullable Object */;
386 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
387 val* var8 /* : nullable Object */;
388 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
389 val* var9 /* : nullable Object */;
390 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
391 val* var_tkwnewnode2 /* var tkwnewnode2: nullable Object */;
392 short int var10 /* : Bool */;
393 int cltype;
394 int idtype;
395 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
396 short int var11 /* : Bool */;
397 int cltype12;
398 int idtype13;
399 val* var_tidnode4 /* var tidnode4: nullable Object */;
400 short int var14 /* : Bool */;
401 int cltype15;
402 int idtype16;
403 val* var_pexprsnode5 /* var pexprsnode5: nullable Object */;
404 short int var17 /* : Bool */;
405 int cltype18;
406 int idtype19;
407 val* var20 /* : ANewExpr */;
408 val* var_pexprnode1 /* var pexprnode1: nullable ANewExpr */;
409 long var21 /* : Int */;
410 long var22 /* : Int */;
411 var_p = p0;
412 var = NULL;
413 var_node_list = var;
414 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
415 var_nodearraylist9 = var1;
416 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
417 var_nodearraylist8 = var2;
418 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
419 var_nodearraylist7 = var3;
420 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
421 var_nodearraylist6 = var4;
422 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
423 var_nodearraylist5 = var5;
424 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
425 var_nodearraylist4 = var6;
426 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
427 var_nodearraylist3 = var7;
428 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
429 var_nodearraylist2 = var8;
430 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
431 var_nodearraylist1 = var9;
432 var_tkwnewnode2 = var_nodearraylist1;
433 /* <var_tkwnewnode2:nullable Object> isa nullable TKwnew */
434 cltype = type_nullable_parser_nodes__TKwnew.color;
435 idtype = type_nullable_parser_nodes__TKwnew.id;
436 if(var_tkwnewnode2 == NULL) {
437 var10 = 1;
438 } else {
439 if(cltype >= var_tkwnewnode2->type->table_size) {
440 var10 = 0;
441 } else {
442 var10 = var_tkwnewnode2->type->type_table[cltype] == idtype;
443 }
444 }
445 if (!var10) {
446 fprintf(stderr, "Runtime error: %s", "Assert failed");
447 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27344);
448 show_backtrace(1);
449 }
450 var_ptypenode3 = var_nodearraylist3;
451 /* <var_ptypenode3:nullable Object> isa nullable AType */
452 cltype12 = type_nullable_parser_nodes__AType.color;
453 idtype13 = type_nullable_parser_nodes__AType.id;
454 if(var_ptypenode3 == NULL) {
455 var11 = 1;
456 } else {
457 if(cltype12 >= var_ptypenode3->type->table_size) {
458 var11 = 0;
459 } else {
460 var11 = var_ptypenode3->type->type_table[cltype12] == idtype13;
461 }
462 }
463 if (!var11) {
464 fprintf(stderr, "Runtime error: %s", "Assert failed");
465 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27346);
466 show_backtrace(1);
467 }
468 var_tidnode4 = var_nodearraylist8;
469 /* <var_tidnode4:nullable Object> isa nullable TId */
470 cltype15 = type_nullable_parser_nodes__TId.color;
471 idtype16 = type_nullable_parser_nodes__TId.id;
472 if(var_tidnode4 == NULL) {
473 var14 = 1;
474 } else {
475 if(cltype15 >= var_tidnode4->type->table_size) {
476 var14 = 0;
477 } else {
478 var14 = var_tidnode4->type->type_table[cltype15] == idtype16;
479 }
480 }
481 if (!var14) {
482 fprintf(stderr, "Runtime error: %s", "Assert failed");
483 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27348);
484 show_backtrace(1);
485 }
486 var_pexprsnode5 = var_nodearraylist9;
487 /* <var_pexprsnode5:nullable Object> isa nullable AExprs */
488 cltype18 = type_nullable_parser_nodes__AExprs.color;
489 idtype19 = type_nullable_parser_nodes__AExprs.id;
490 if(var_pexprsnode5 == NULL) {
491 var17 = 1;
492 } else {
493 if(cltype18 >= var_pexprsnode5->type->table_size) {
494 var17 = 0;
495 } else {
496 var17 = var_pexprsnode5->type->type_table[cltype18] == idtype19;
497 }
498 }
499 if (!var17) {
500 fprintf(stderr, "Runtime error: %s", "Assert failed");
501 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27350);
502 show_backtrace(1);
503 }
504 var20 = NEW_parser_nodes__ANewExpr(&type_parser_nodes__ANewExpr);
505 ((void (*)(val*, val*, val*, val*, val*))(var20->class->vft[COLOR_parser_prod__ANewExpr__init_anewexpr]))(var20, var_tkwnewnode2, var_ptypenode3, var_tidnode4, var_pexprsnode5) /* init_anewexpr on <var20:ANewExpr>*/;
506 var_pexprnode1 = var20;
507 var_node_list = var_pexprnode1;
508 var21 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction778> */
509 var22 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var21) /* go_to on <var_p:Parser>*/;
510 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var22, var_node_list) /* push on <var_p:Parser>*/;
511 RET_LABEL:;
512 }
513 /* method parser#ReduceAction778#action for (self: Object, Parser) */
514 void VIRTUAL_parser__ReduceAction778__action(val* self, val* p0) {
515 parser__ReduceAction778__action(self, p0);
516 RET_LABEL:;
517 }
518 /* method parser#ReduceAction780#action for (self: ReduceAction780, Parser) */
519 void parser__ReduceAction780__action(val* self, val* p0) {
520 val* var_p /* var p: Parser */;
521 val* var /* : null */;
522 val* var_node_list /* var node_list: nullable Object */;
523 val* var1 /* : nullable Object */;
524 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
525 val* var2 /* : nullable Object */;
526 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
527 val* var3 /* : nullable Object */;
528 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
529 val* var4 /* : nullable Object */;
530 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
531 val* var5 /* : nullable Object */;
532 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
533 val* var6 /* : nullable Object */;
534 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
535 val* var7 /* : nullable Object */;
536 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
537 val* var8 /* : nullable Object */;
538 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
539 val* var9 /* : nullable Object */;
540 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
541 val* var_tobranode2 /* var tobranode2: nullable Object */;
542 short int var10 /* : Bool */;
543 int cltype;
544 int idtype;
545 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
546 short int var11 /* : Bool */;
547 int cltype12;
548 int idtype13;
549 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
550 short int var14 /* : Bool */;
551 int cltype15;
552 int idtype16;
553 val* var_tcbranode5 /* var tcbranode5: nullable Object */;
554 short int var17 /* : Bool */;
555 int cltype18;
556 int idtype19;
557 val* var20 /* : ACrangeExpr */;
558 val* var21 /* : null */;
559 val* var_pexprnode1 /* var pexprnode1: nullable ACrangeExpr */;
560 long var22 /* : Int */;
561 long var23 /* : Int */;
562 var_p = p0;
563 var = NULL;
564 var_node_list = var;
565 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
566 var_nodearraylist9 = var1;
567 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
568 var_nodearraylist8 = var2;
569 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
570 var_nodearraylist7 = var3;
571 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
572 var_nodearraylist6 = var4;
573 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
574 var_nodearraylist5 = var5;
575 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
576 var_nodearraylist4 = var6;
577 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
578 var_nodearraylist3 = var7;
579 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
580 var_nodearraylist2 = var8;
581 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
582 var_nodearraylist1 = var9;
583 var_tobranode2 = var_nodearraylist1;
584 /* <var_tobranode2:nullable Object> isa nullable TObra */
585 cltype = type_nullable_parser_nodes__TObra.color;
586 idtype = type_nullable_parser_nodes__TObra.id;
587 if(var_tobranode2 == NULL) {
588 var10 = 1;
589 } else {
590 if(cltype >= var_tobranode2->type->table_size) {
591 var10 = 0;
592 } else {
593 var10 = var_tobranode2->type->type_table[cltype] == idtype;
594 }
595 }
596 if (!var10) {
597 fprintf(stderr, "Runtime error: %s", "Assert failed");
598 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27376);
599 show_backtrace(1);
600 }
601 var_pexprnode3 = var_nodearraylist3;
602 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
603 cltype12 = type_nullable_parser_nodes__AExpr.color;
604 idtype13 = type_nullable_parser_nodes__AExpr.id;
605 if(var_pexprnode3 == NULL) {
606 var11 = 1;
607 } else {
608 if(cltype12 >= var_pexprnode3->type->table_size) {
609 var11 = 0;
610 } else {
611 var11 = var_pexprnode3->type->type_table[cltype12] == idtype13;
612 }
613 }
614 if (!var11) {
615 fprintf(stderr, "Runtime error: %s", "Assert failed");
616 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27378);
617 show_backtrace(1);
618 }
619 var_pexprnode4 = var_nodearraylist7;
620 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
621 cltype15 = type_nullable_parser_nodes__AExpr.color;
622 idtype16 = type_nullable_parser_nodes__AExpr.id;
623 if(var_pexprnode4 == NULL) {
624 var14 = 1;
625 } else {
626 if(cltype15 >= var_pexprnode4->type->table_size) {
627 var14 = 0;
628 } else {
629 var14 = var_pexprnode4->type->type_table[cltype15] == idtype16;
630 }
631 }
632 if (!var14) {
633 fprintf(stderr, "Runtime error: %s", "Assert failed");
634 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27380);
635 show_backtrace(1);
636 }
637 var_tcbranode5 = var_nodearraylist9;
638 /* <var_tcbranode5:nullable Object> isa nullable TCbra */
639 cltype18 = type_nullable_parser_nodes__TCbra.color;
640 idtype19 = type_nullable_parser_nodes__TCbra.id;
641 if(var_tcbranode5 == NULL) {
642 var17 = 1;
643 } else {
644 if(cltype18 >= var_tcbranode5->type->table_size) {
645 var17 = 0;
646 } else {
647 var17 = var_tcbranode5->type->type_table[cltype18] == idtype19;
648 }
649 }
650 if (!var17) {
651 fprintf(stderr, "Runtime error: %s", "Assert failed");
652 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27382);
653 show_backtrace(1);
654 }
655 var20 = NEW_parser_nodes__ACrangeExpr(&type_parser_nodes__ACrangeExpr);
656 var21 = NULL;
657 ((void (*)(val*, val*, val*, val*, val*, val*))(var20->class->vft[COLOR_parser_prod__ACrangeExpr__init_acrangeexpr]))(var20, var_tobranode2, var_pexprnode3, var_pexprnode4, var_tcbranode5, var21) /* init_acrangeexpr on <var20:ACrangeExpr>*/;
658 var_pexprnode1 = var20;
659 var_node_list = var_pexprnode1;
660 var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction780> */
661 var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
662 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
663 RET_LABEL:;
664 }
665 /* method parser#ReduceAction780#action for (self: Object, Parser) */
666 void VIRTUAL_parser__ReduceAction780__action(val* self, val* p0) {
667 parser__ReduceAction780__action(self, p0);
668 RET_LABEL:;
669 }
670 /* method parser#ReduceAction781#action for (self: ReduceAction781, Parser) */
671 void parser__ReduceAction781__action(val* self, val* p0) {
672 val* var_p /* var p: Parser */;
673 val* var /* : null */;
674 val* var_node_list /* var node_list: nullable Object */;
675 val* var1 /* : nullable Object */;
676 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
677 val* var2 /* : nullable Object */;
678 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
679 val* var3 /* : nullable Object */;
680 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
681 val* var4 /* : nullable Object */;
682 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
683 val* var5 /* : nullable Object */;
684 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
685 val* var6 /* : nullable Object */;
686 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
687 val* var7 /* : nullable Object */;
688 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
689 val* var8 /* : nullable Object */;
690 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
691 val* var9 /* : nullable Object */;
692 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
693 val* var10 /* : nullable Object */;
694 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
695 val* var_tobranode2 /* var tobranode2: nullable Object */;
696 short int var11 /* : Bool */;
697 int cltype;
698 int idtype;
699 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
700 short int var12 /* : Bool */;
701 int cltype13;
702 int idtype14;
703 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
704 short int var15 /* : Bool */;
705 int cltype16;
706 int idtype17;
707 val* var_tcbranode5 /* var tcbranode5: nullable Object */;
708 short int var18 /* : Bool */;
709 int cltype19;
710 int idtype20;
711 val* var_pannotationsnode6 /* var pannotationsnode6: nullable Object */;
712 short int var21 /* : Bool */;
713 int cltype22;
714 int idtype23;
715 val* var24 /* : ACrangeExpr */;
716 val* var_pexprnode1 /* var pexprnode1: nullable ACrangeExpr */;
717 long var25 /* : Int */;
718 long var26 /* : Int */;
719 var_p = p0;
720 var = NULL;
721 var_node_list = var;
722 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
723 var_nodearraylist10 = var1;
724 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
725 var_nodearraylist9 = var2;
726 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
727 var_nodearraylist8 = var3;
728 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
729 var_nodearraylist7 = var4;
730 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
731 var_nodearraylist6 = var5;
732 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
733 var_nodearraylist5 = var6;
734 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
735 var_nodearraylist4 = var7;
736 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
737 var_nodearraylist3 = var8;
738 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
739 var_nodearraylist2 = var9;
740 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
741 var_nodearraylist1 = var10;
742 var_tobranode2 = var_nodearraylist1;
743 /* <var_tobranode2:nullable Object> isa nullable TObra */
744 cltype = type_nullable_parser_nodes__TObra.color;
745 idtype = type_nullable_parser_nodes__TObra.id;
746 if(var_tobranode2 == NULL) {
747 var11 = 1;
748 } else {
749 if(cltype >= var_tobranode2->type->table_size) {
750 var11 = 0;
751 } else {
752 var11 = var_tobranode2->type->type_table[cltype] == idtype;
753 }
754 }
755 if (!var11) {
756 fprintf(stderr, "Runtime error: %s", "Assert failed");
757 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27410);
758 show_backtrace(1);
759 }
760 var_pexprnode3 = var_nodearraylist3;
761 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
762 cltype13 = type_nullable_parser_nodes__AExpr.color;
763 idtype14 = type_nullable_parser_nodes__AExpr.id;
764 if(var_pexprnode3 == NULL) {
765 var12 = 1;
766 } else {
767 if(cltype13 >= var_pexprnode3->type->table_size) {
768 var12 = 0;
769 } else {
770 var12 = var_pexprnode3->type->type_table[cltype13] == idtype14;
771 }
772 }
773 if (!var12) {
774 fprintf(stderr, "Runtime error: %s", "Assert failed");
775 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27412);
776 show_backtrace(1);
777 }
778 var_pexprnode4 = var_nodearraylist7;
779 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
780 cltype16 = type_nullable_parser_nodes__AExpr.color;
781 idtype17 = type_nullable_parser_nodes__AExpr.id;
782 if(var_pexprnode4 == NULL) {
783 var15 = 1;
784 } else {
785 if(cltype16 >= var_pexprnode4->type->table_size) {
786 var15 = 0;
787 } else {
788 var15 = var_pexprnode4->type->type_table[cltype16] == idtype17;
789 }
790 }
791 if (!var15) {
792 fprintf(stderr, "Runtime error: %s", "Assert failed");
793 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27414);
794 show_backtrace(1);
795 }
796 var_tcbranode5 = var_nodearraylist9;
797 /* <var_tcbranode5:nullable Object> isa nullable TCbra */
798 cltype19 = type_nullable_parser_nodes__TCbra.color;
799 idtype20 = type_nullable_parser_nodes__TCbra.id;
800 if(var_tcbranode5 == NULL) {
801 var18 = 1;
802 } else {
803 if(cltype19 >= var_tcbranode5->type->table_size) {
804 var18 = 0;
805 } else {
806 var18 = var_tcbranode5->type->type_table[cltype19] == idtype20;
807 }
808 }
809 if (!var18) {
810 fprintf(stderr, "Runtime error: %s", "Assert failed");
811 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27416);
812 show_backtrace(1);
813 }
814 var_pannotationsnode6 = var_nodearraylist10;
815 /* <var_pannotationsnode6:nullable Object> isa nullable AAnnotations */
816 cltype22 = type_nullable_parser_nodes__AAnnotations.color;
817 idtype23 = type_nullable_parser_nodes__AAnnotations.id;
818 if(var_pannotationsnode6 == NULL) {
819 var21 = 1;
820 } else {
821 if(cltype22 >= var_pannotationsnode6->type->table_size) {
822 var21 = 0;
823 } else {
824 var21 = var_pannotationsnode6->type->type_table[cltype22] == idtype23;
825 }
826 }
827 if (!var21) {
828 fprintf(stderr, "Runtime error: %s", "Assert failed");
829 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27418);
830 show_backtrace(1);
831 }
832 var24 = NEW_parser_nodes__ACrangeExpr(&type_parser_nodes__ACrangeExpr);
833 ((void (*)(val*, val*, val*, val*, val*, val*))(var24->class->vft[COLOR_parser_prod__ACrangeExpr__init_acrangeexpr]))(var24, var_tobranode2, var_pexprnode3, var_pexprnode4, var_tcbranode5, var_pannotationsnode6) /* init_acrangeexpr on <var24:ACrangeExpr>*/;
834 var_pexprnode1 = var24;
835 var_node_list = var_pexprnode1;
836 var25 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction781> */
837 var26 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var25) /* go_to on <var_p:Parser>*/;
838 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var26, var_node_list) /* push on <var_p:Parser>*/;
839 RET_LABEL:;
840 }
841 /* method parser#ReduceAction781#action for (self: Object, Parser) */
842 void VIRTUAL_parser__ReduceAction781__action(val* self, val* p0) {
843 parser__ReduceAction781__action(self, p0);
844 RET_LABEL:;
845 }
846 /* method parser#ReduceAction782#action for (self: ReduceAction782, Parser) */
847 void parser__ReduceAction782__action(val* self, val* p0) {
848 val* var_p /* var p: Parser */;
849 val* var /* : null */;
850 val* var_node_list /* var node_list: nullable Object */;
851 val* var1 /* : nullable Object */;
852 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
853 val* var2 /* : nullable Object */;
854 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
855 val* var3 /* : nullable Object */;
856 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
857 val* var4 /* : nullable Object */;
858 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
859 val* var5 /* : nullable Object */;
860 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
861 val* var6 /* : nullable Object */;
862 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
863 val* var7 /* : nullable Object */;
864 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
865 val* var8 /* : nullable Object */;
866 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
867 val* var9 /* : nullable Object */;
868 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
869 val* var_tobranode2 /* var tobranode2: nullable Object */;
870 short int var10 /* : Bool */;
871 int cltype;
872 int idtype;
873 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
874 short int var11 /* : Bool */;
875 int cltype12;
876 int idtype13;
877 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
878 short int var14 /* : Bool */;
879 int cltype15;
880 int idtype16;
881 val* var_tobranode5 /* var tobranode5: nullable Object */;
882 short int var17 /* : Bool */;
883 int cltype18;
884 int idtype19;
885 val* var20 /* : AOrangeExpr */;
886 val* var21 /* : null */;
887 val* var_pexprnode1 /* var pexprnode1: nullable AOrangeExpr */;
888 long var22 /* : Int */;
889 long var23 /* : Int */;
890 var_p = p0;
891 var = NULL;
892 var_node_list = var;
893 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
894 var_nodearraylist9 = var1;
895 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
896 var_nodearraylist8 = var2;
897 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
898 var_nodearraylist7 = var3;
899 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
900 var_nodearraylist6 = var4;
901 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
902 var_nodearraylist5 = var5;
903 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
904 var_nodearraylist4 = var6;
905 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
906 var_nodearraylist3 = var7;
907 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
908 var_nodearraylist2 = var8;
909 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
910 var_nodearraylist1 = var9;
911 var_tobranode2 = var_nodearraylist1;
912 /* <var_tobranode2:nullable Object> isa nullable TObra */
913 cltype = type_nullable_parser_nodes__TObra.color;
914 idtype = type_nullable_parser_nodes__TObra.id;
915 if(var_tobranode2 == NULL) {
916 var10 = 1;
917 } else {
918 if(cltype >= var_tobranode2->type->table_size) {
919 var10 = 0;
920 } else {
921 var10 = var_tobranode2->type->type_table[cltype] == idtype;
922 }
923 }
924 if (!var10) {
925 fprintf(stderr, "Runtime error: %s", "Assert failed");
926 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27445);
927 show_backtrace(1);
928 }
929 var_pexprnode3 = var_nodearraylist3;
930 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
931 cltype12 = type_nullable_parser_nodes__AExpr.color;
932 idtype13 = type_nullable_parser_nodes__AExpr.id;
933 if(var_pexprnode3 == NULL) {
934 var11 = 1;
935 } else {
936 if(cltype12 >= var_pexprnode3->type->table_size) {
937 var11 = 0;
938 } else {
939 var11 = var_pexprnode3->type->type_table[cltype12] == idtype13;
940 }
941 }
942 if (!var11) {
943 fprintf(stderr, "Runtime error: %s", "Assert failed");
944 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27447);
945 show_backtrace(1);
946 }
947 var_pexprnode4 = var_nodearraylist7;
948 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
949 cltype15 = type_nullable_parser_nodes__AExpr.color;
950 idtype16 = type_nullable_parser_nodes__AExpr.id;
951 if(var_pexprnode4 == NULL) {
952 var14 = 1;
953 } else {
954 if(cltype15 >= var_pexprnode4->type->table_size) {
955 var14 = 0;
956 } else {
957 var14 = var_pexprnode4->type->type_table[cltype15] == idtype16;
958 }
959 }
960 if (!var14) {
961 fprintf(stderr, "Runtime error: %s", "Assert failed");
962 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27449);
963 show_backtrace(1);
964 }
965 var_tobranode5 = var_nodearraylist9;
966 /* <var_tobranode5:nullable Object> isa nullable TObra */
967 cltype18 = type_nullable_parser_nodes__TObra.color;
968 idtype19 = type_nullable_parser_nodes__TObra.id;
969 if(var_tobranode5 == NULL) {
970 var17 = 1;
971 } else {
972 if(cltype18 >= var_tobranode5->type->table_size) {
973 var17 = 0;
974 } else {
975 var17 = var_tobranode5->type->type_table[cltype18] == idtype19;
976 }
977 }
978 if (!var17) {
979 fprintf(stderr, "Runtime error: %s", "Assert failed");
980 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27451);
981 show_backtrace(1);
982 }
983 var20 = NEW_parser_nodes__AOrangeExpr(&type_parser_nodes__AOrangeExpr);
984 var21 = NULL;
985 ((void (*)(val*, val*, val*, val*, val*, val*))(var20->class->vft[COLOR_parser_prod__AOrangeExpr__init_aorangeexpr]))(var20, var_tobranode2, var_pexprnode3, var_pexprnode4, var_tobranode5, var21) /* init_aorangeexpr on <var20:AOrangeExpr>*/;
986 var_pexprnode1 = var20;
987 var_node_list = var_pexprnode1;
988 var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction782> */
989 var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
990 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
991 RET_LABEL:;
992 }
993 /* method parser#ReduceAction782#action for (self: Object, Parser) */
994 void VIRTUAL_parser__ReduceAction782__action(val* self, val* p0) {
995 parser__ReduceAction782__action(self, p0);
996 RET_LABEL:;
997 }
998 /* method parser#ReduceAction783#action for (self: ReduceAction783, Parser) */
999 void parser__ReduceAction783__action(val* self, val* p0) {
1000 val* var_p /* var p: Parser */;
1001 val* var /* : null */;
1002 val* var_node_list /* var node_list: nullable Object */;
1003 val* var1 /* : nullable Object */;
1004 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
1005 val* var2 /* : nullable Object */;
1006 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
1007 val* var3 /* : nullable Object */;
1008 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
1009 val* var4 /* : nullable Object */;
1010 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
1011 val* var5 /* : nullable Object */;
1012 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
1013 val* var6 /* : nullable Object */;
1014 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1015 val* var7 /* : nullable Object */;
1016 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1017 val* var8 /* : nullable Object */;
1018 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1019 val* var9 /* : nullable Object */;
1020 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1021 val* var10 /* : nullable Object */;
1022 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1023 val* var_tobranode2 /* var tobranode2: nullable Object */;
1024 short int var11 /* : Bool */;
1025 int cltype;
1026 int idtype;
1027 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
1028 short int var12 /* : Bool */;
1029 int cltype13;
1030 int idtype14;
1031 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
1032 short int var15 /* : Bool */;
1033 int cltype16;
1034 int idtype17;
1035 val* var_tobranode5 /* var tobranode5: nullable Object */;
1036 short int var18 /* : Bool */;
1037 int cltype19;
1038 int idtype20;
1039 val* var_pannotationsnode6 /* var pannotationsnode6: nullable Object */;
1040 short int var21 /* : Bool */;
1041 int cltype22;
1042 int idtype23;
1043 val* var24 /* : AOrangeExpr */;
1044 val* var_pexprnode1 /* var pexprnode1: nullable AOrangeExpr */;
1045 long var25 /* : Int */;
1046 long var26 /* : Int */;
1047 var_p = p0;
1048 var = NULL;
1049 var_node_list = var;
1050 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1051 var_nodearraylist10 = var1;
1052 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1053 var_nodearraylist9 = var2;
1054 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1055 var_nodearraylist8 = var3;
1056 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1057 var_nodearraylist7 = var4;
1058 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1059 var_nodearraylist6 = var5;
1060 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1061 var_nodearraylist5 = var6;
1062 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1063 var_nodearraylist4 = var7;
1064 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1065 var_nodearraylist3 = var8;
1066 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1067 var_nodearraylist2 = var9;
1068 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1069 var_nodearraylist1 = var10;
1070 var_tobranode2 = var_nodearraylist1;
1071 /* <var_tobranode2:nullable Object> isa nullable TObra */
1072 cltype = type_nullable_parser_nodes__TObra.color;
1073 idtype = type_nullable_parser_nodes__TObra.id;
1074 if(var_tobranode2 == NULL) {
1075 var11 = 1;
1076 } else {
1077 if(cltype >= var_tobranode2->type->table_size) {
1078 var11 = 0;
1079 } else {
1080 var11 = var_tobranode2->type->type_table[cltype] == idtype;
1081 }
1082 }
1083 if (!var11) {
1084 fprintf(stderr, "Runtime error: %s", "Assert failed");
1085 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27479);
1086 show_backtrace(1);
1087 }
1088 var_pexprnode3 = var_nodearraylist3;
1089 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
1090 cltype13 = type_nullable_parser_nodes__AExpr.color;
1091 idtype14 = type_nullable_parser_nodes__AExpr.id;
1092 if(var_pexprnode3 == NULL) {
1093 var12 = 1;
1094 } else {
1095 if(cltype13 >= var_pexprnode3->type->table_size) {
1096 var12 = 0;
1097 } else {
1098 var12 = var_pexprnode3->type->type_table[cltype13] == idtype14;
1099 }
1100 }
1101 if (!var12) {
1102 fprintf(stderr, "Runtime error: %s", "Assert failed");
1103 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27481);
1104 show_backtrace(1);
1105 }
1106 var_pexprnode4 = var_nodearraylist7;
1107 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
1108 cltype16 = type_nullable_parser_nodes__AExpr.color;
1109 idtype17 = type_nullable_parser_nodes__AExpr.id;
1110 if(var_pexprnode4 == NULL) {
1111 var15 = 1;
1112 } else {
1113 if(cltype16 >= var_pexprnode4->type->table_size) {
1114 var15 = 0;
1115 } else {
1116 var15 = var_pexprnode4->type->type_table[cltype16] == idtype17;
1117 }
1118 }
1119 if (!var15) {
1120 fprintf(stderr, "Runtime error: %s", "Assert failed");
1121 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27483);
1122 show_backtrace(1);
1123 }
1124 var_tobranode5 = var_nodearraylist9;
1125 /* <var_tobranode5:nullable Object> isa nullable TObra */
1126 cltype19 = type_nullable_parser_nodes__TObra.color;
1127 idtype20 = type_nullable_parser_nodes__TObra.id;
1128 if(var_tobranode5 == NULL) {
1129 var18 = 1;
1130 } else {
1131 if(cltype19 >= var_tobranode5->type->table_size) {
1132 var18 = 0;
1133 } else {
1134 var18 = var_tobranode5->type->type_table[cltype19] == idtype20;
1135 }
1136 }
1137 if (!var18) {
1138 fprintf(stderr, "Runtime error: %s", "Assert failed");
1139 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27485);
1140 show_backtrace(1);
1141 }
1142 var_pannotationsnode6 = var_nodearraylist10;
1143 /* <var_pannotationsnode6:nullable Object> isa nullable AAnnotations */
1144 cltype22 = type_nullable_parser_nodes__AAnnotations.color;
1145 idtype23 = type_nullable_parser_nodes__AAnnotations.id;
1146 if(var_pannotationsnode6 == NULL) {
1147 var21 = 1;
1148 } else {
1149 if(cltype22 >= var_pannotationsnode6->type->table_size) {
1150 var21 = 0;
1151 } else {
1152 var21 = var_pannotationsnode6->type->type_table[cltype22] == idtype23;
1153 }
1154 }
1155 if (!var21) {
1156 fprintf(stderr, "Runtime error: %s", "Assert failed");
1157 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27487);
1158 show_backtrace(1);
1159 }
1160 var24 = NEW_parser_nodes__AOrangeExpr(&type_parser_nodes__AOrangeExpr);
1161 ((void (*)(val*, val*, val*, val*, val*, val*))(var24->class->vft[COLOR_parser_prod__AOrangeExpr__init_aorangeexpr]))(var24, var_tobranode2, var_pexprnode3, var_pexprnode4, var_tobranode5, var_pannotationsnode6) /* init_aorangeexpr on <var24:AOrangeExpr>*/;
1162 var_pexprnode1 = var24;
1163 var_node_list = var_pexprnode1;
1164 var25 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction783> */
1165 var26 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var25) /* go_to on <var_p:Parser>*/;
1166 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var26, var_node_list) /* push on <var_p:Parser>*/;
1167 RET_LABEL:;
1168 }
1169 /* method parser#ReduceAction783#action for (self: Object, Parser) */
1170 void VIRTUAL_parser__ReduceAction783__action(val* self, val* p0) {
1171 parser__ReduceAction783__action(self, p0);
1172 RET_LABEL:;
1173 }
1174 /* method parser#ReduceAction784#action for (self: ReduceAction784, Parser) */
1175 void parser__ReduceAction784__action(val* self, val* p0) {
1176 val* var_p /* var p: Parser */;
1177 val* var /* : null */;
1178 val* var_node_list /* var node_list: nullable Object */;
1179 val* var1 /* : nullable Object */;
1180 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1181 val* var_pexprsnode2 /* var pexprsnode2: nullable Object */;
1182 short int var2 /* : Bool */;
1183 int cltype;
1184 int idtype;
1185 val* var3 /* : AArrayExpr */;
1186 val* var4 /* : null */;
1187 val* var_pexprnode1 /* var pexprnode1: nullable AArrayExpr */;
1188 long var5 /* : Int */;
1189 long var6 /* : Int */;
1190 var_p = p0;
1191 var = NULL;
1192 var_node_list = var;
1193 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1194 var_nodearraylist1 = var1;
1195 var_pexprsnode2 = var_nodearraylist1;
1196 /* <var_pexprsnode2:nullable Object> isa nullable AExprs */
1197 cltype = type_nullable_parser_nodes__AExprs.color;
1198 idtype = type_nullable_parser_nodes__AExprs.id;
1199 if(var_pexprsnode2 == NULL) {
1200 var2 = 1;
1201 } else {
1202 if(cltype >= var_pexprsnode2->type->table_size) {
1203 var2 = 0;
1204 } else {
1205 var2 = var_pexprsnode2->type->type_table[cltype] == idtype;
1206 }
1207 }
1208 if (!var2) {
1209 fprintf(stderr, "Runtime error: %s", "Assert failed");
1210 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27506);
1211 show_backtrace(1);
1212 }
1213 var3 = NEW_parser_nodes__AArrayExpr(&type_parser_nodes__AArrayExpr);
1214 var4 = NULL;
1215 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AArrayExpr__init_aarrayexpr]))(var3, var_pexprsnode2, var4) /* init_aarrayexpr on <var3:AArrayExpr>*/;
1216 var_pexprnode1 = var3;
1217 var_node_list = var_pexprnode1;
1218 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction784> */
1219 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
1220 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
1221 RET_LABEL:;
1222 }
1223 /* method parser#ReduceAction784#action for (self: Object, Parser) */
1224 void VIRTUAL_parser__ReduceAction784__action(val* self, val* p0) {
1225 parser__ReduceAction784__action(self, p0);
1226 RET_LABEL:;
1227 }
1228 /* method parser#ReduceAction785#action for (self: ReduceAction785, Parser) */
1229 void parser__ReduceAction785__action(val* self, val* p0) {
1230 val* var_p /* var p: Parser */;
1231 val* var /* : null */;
1232 val* var_node_list /* var node_list: nullable Object */;
1233 val* var1 /* : nullable Object */;
1234 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1235 val* var2 /* : nullable Object */;
1236 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1237 val* var_pexprsnode2 /* var pexprsnode2: nullable Object */;
1238 short int var3 /* : Bool */;
1239 int cltype;
1240 int idtype;
1241 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
1242 short int var4 /* : Bool */;
1243 int cltype5;
1244 int idtype6;
1245 val* var7 /* : AArrayExpr */;
1246 val* var_pexprnode1 /* var pexprnode1: nullable AArrayExpr */;
1247 long var8 /* : Int */;
1248 long var9 /* : Int */;
1249 var_p = p0;
1250 var = NULL;
1251 var_node_list = var;
1252 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1253 var_nodearraylist2 = var1;
1254 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1255 var_nodearraylist1 = var2;
1256 var_pexprsnode2 = var_nodearraylist1;
1257 /* <var_pexprsnode2:nullable Object> isa nullable AExprs */
1258 cltype = type_nullable_parser_nodes__AExprs.color;
1259 idtype = type_nullable_parser_nodes__AExprs.id;
1260 if(var_pexprsnode2 == NULL) {
1261 var3 = 1;
1262 } else {
1263 if(cltype >= var_pexprsnode2->type->table_size) {
1264 var3 = 0;
1265 } else {
1266 var3 = var_pexprsnode2->type->type_table[cltype] == idtype;
1267 }
1268 }
1269 if (!var3) {
1270 fprintf(stderr, "Runtime error: %s", "Assert failed");
1271 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27523);
1272 show_backtrace(1);
1273 }
1274 var_pannotationsnode3 = var_nodearraylist2;
1275 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
1276 cltype5 = type_nullable_parser_nodes__AAnnotations.color;
1277 idtype6 = type_nullable_parser_nodes__AAnnotations.id;
1278 if(var_pannotationsnode3 == NULL) {
1279 var4 = 1;
1280 } else {
1281 if(cltype5 >= var_pannotationsnode3->type->table_size) {
1282 var4 = 0;
1283 } else {
1284 var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
1285 }
1286 }
1287 if (!var4) {
1288 fprintf(stderr, "Runtime error: %s", "Assert failed");
1289 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27525);
1290 show_backtrace(1);
1291 }
1292 var7 = NEW_parser_nodes__AArrayExpr(&type_parser_nodes__AArrayExpr);
1293 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AArrayExpr__init_aarrayexpr]))(var7, var_pexprsnode2, var_pannotationsnode3) /* init_aarrayexpr on <var7:AArrayExpr>*/;
1294 var_pexprnode1 = var7;
1295 var_node_list = var_pexprnode1;
1296 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction785> */
1297 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
1298 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
1299 RET_LABEL:;
1300 }
1301 /* method parser#ReduceAction785#action for (self: Object, Parser) */
1302 void VIRTUAL_parser__ReduceAction785__action(val* self, val* p0) {
1303 parser__ReduceAction785__action(self, p0);
1304 RET_LABEL:;
1305 }
1306 /* method parser#ReduceAction786#action for (self: ReduceAction786, Parser) */
1307 void parser__ReduceAction786__action(val* self, val* p0) {
1308 val* var_p /* var p: Parser */;
1309 val* var /* : null */;
1310 val* var_node_list /* var node_list: nullable Object */;
1311 val* var1 /* : nullable Object */;
1312 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1313 val* var_tkwselfnode2 /* var tkwselfnode2: nullable Object */;
1314 short int var2 /* : Bool */;
1315 int cltype;
1316 int idtype;
1317 val* var3 /* : ASelfExpr */;
1318 val* var4 /* : null */;
1319 val* var_pexprnode1 /* var pexprnode1: nullable ASelfExpr */;
1320 long var5 /* : Int */;
1321 long var6 /* : Int */;
1322 var_p = p0;
1323 var = NULL;
1324 var_node_list = var;
1325 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1326 var_nodearraylist1 = var1;
1327 var_tkwselfnode2 = var_nodearraylist1;
1328 /* <var_tkwselfnode2:nullable Object> isa nullable TKwself */
1329 cltype = type_nullable_parser_nodes__TKwself.color;
1330 idtype = type_nullable_parser_nodes__TKwself.id;
1331 if(var_tkwselfnode2 == NULL) {
1332 var2 = 1;
1333 } else {
1334 if(cltype >= var_tkwselfnode2->type->table_size) {
1335 var2 = 0;
1336 } else {
1337 var2 = var_tkwselfnode2->type->type_table[cltype] == idtype;
1338 }
1339 }
1340 if (!var2) {
1341 fprintf(stderr, "Runtime error: %s", "Assert failed");
1342 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27541);
1343 show_backtrace(1);
1344 }
1345 var3 = NEW_parser_nodes__ASelfExpr(&type_parser_nodes__ASelfExpr);
1346 var4 = NULL;
1347 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_prod__ASelfExpr__init_aselfexpr]))(var3, var_tkwselfnode2, var4) /* init_aselfexpr on <var3:ASelfExpr>*/;
1348 var_pexprnode1 = var3;
1349 var_node_list = var_pexprnode1;
1350 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction786> */
1351 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
1352 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
1353 RET_LABEL:;
1354 }
1355 /* method parser#ReduceAction786#action for (self: Object, Parser) */
1356 void VIRTUAL_parser__ReduceAction786__action(val* self, val* p0) {
1357 parser__ReduceAction786__action(self, p0);
1358 RET_LABEL:;
1359 }
1360 /* method parser#ReduceAction787#action for (self: ReduceAction787, Parser) */
1361 void parser__ReduceAction787__action(val* self, val* p0) {
1362 val* var_p /* var p: Parser */;
1363 val* var /* : null */;
1364 val* var_node_list /* var node_list: nullable Object */;
1365 val* var1 /* : nullable Object */;
1366 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1367 val* var2 /* : nullable Object */;
1368 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1369 val* var_tkwselfnode2 /* var tkwselfnode2: nullable Object */;
1370 short int var3 /* : Bool */;
1371 int cltype;
1372 int idtype;
1373 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
1374 short int var4 /* : Bool */;
1375 int cltype5;
1376 int idtype6;
1377 val* var7 /* : ASelfExpr */;
1378 val* var_pexprnode1 /* var pexprnode1: nullable ASelfExpr */;
1379 long var8 /* : Int */;
1380 long var9 /* : Int */;
1381 var_p = p0;
1382 var = NULL;
1383 var_node_list = var;
1384 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1385 var_nodearraylist2 = var1;
1386 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1387 var_nodearraylist1 = var2;
1388 var_tkwselfnode2 = var_nodearraylist1;
1389 /* <var_tkwselfnode2:nullable Object> isa nullable TKwself */
1390 cltype = type_nullable_parser_nodes__TKwself.color;
1391 idtype = type_nullable_parser_nodes__TKwself.id;
1392 if(var_tkwselfnode2 == NULL) {
1393 var3 = 1;
1394 } else {
1395 if(cltype >= var_tkwselfnode2->type->table_size) {
1396 var3 = 0;
1397 } else {
1398 var3 = var_tkwselfnode2->type->type_table[cltype] == idtype;
1399 }
1400 }
1401 if (!var3) {
1402 fprintf(stderr, "Runtime error: %s", "Assert failed");
1403 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27558);
1404 show_backtrace(1);
1405 }
1406 var_pannotationsnode3 = var_nodearraylist2;
1407 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
1408 cltype5 = type_nullable_parser_nodes__AAnnotations.color;
1409 idtype6 = type_nullable_parser_nodes__AAnnotations.id;
1410 if(var_pannotationsnode3 == NULL) {
1411 var4 = 1;
1412 } else {
1413 if(cltype5 >= var_pannotationsnode3->type->table_size) {
1414 var4 = 0;
1415 } else {
1416 var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
1417 }
1418 }
1419 if (!var4) {
1420 fprintf(stderr, "Runtime error: %s", "Assert failed");
1421 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27560);
1422 show_backtrace(1);
1423 }
1424 var7 = NEW_parser_nodes__ASelfExpr(&type_parser_nodes__ASelfExpr);
1425 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ASelfExpr__init_aselfexpr]))(var7, var_tkwselfnode2, var_pannotationsnode3) /* init_aselfexpr on <var7:ASelfExpr>*/;
1426 var_pexprnode1 = var7;
1427 var_node_list = var_pexprnode1;
1428 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction787> */
1429 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
1430 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
1431 RET_LABEL:;
1432 }
1433 /* method parser#ReduceAction787#action for (self: Object, Parser) */
1434 void VIRTUAL_parser__ReduceAction787__action(val* self, val* p0) {
1435 parser__ReduceAction787__action(self, p0);
1436 RET_LABEL:;
1437 }
1438 /* method parser#ReduceAction788#action for (self: ReduceAction788, Parser) */
1439 void parser__ReduceAction788__action(val* self, val* p0) {
1440 val* var_p /* var p: Parser */;
1441 val* var /* : null */;
1442 val* var_node_list /* var node_list: nullable Object */;
1443 val* var1 /* : nullable Object */;
1444 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1445 val* var_tkwtruenode2 /* var tkwtruenode2: nullable Object */;
1446 short int var2 /* : Bool */;
1447 int cltype;
1448 int idtype;
1449 val* var3 /* : ATrueExpr */;
1450 val* var4 /* : null */;
1451 val* var_pexprnode1 /* var pexprnode1: nullable ATrueExpr */;
1452 long var5 /* : Int */;
1453 long var6 /* : Int */;
1454 var_p = p0;
1455 var = NULL;
1456 var_node_list = var;
1457 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1458 var_nodearraylist1 = var1;
1459 var_tkwtruenode2 = var_nodearraylist1;
1460 /* <var_tkwtruenode2:nullable Object> isa nullable TKwtrue */
1461 cltype = type_nullable_parser_nodes__TKwtrue.color;
1462 idtype = type_nullable_parser_nodes__TKwtrue.id;
1463 if(var_tkwtruenode2 == NULL) {
1464 var2 = 1;
1465 } else {
1466 if(cltype >= var_tkwtruenode2->type->table_size) {
1467 var2 = 0;
1468 } else {
1469 var2 = var_tkwtruenode2->type->type_table[cltype] == idtype;
1470 }
1471 }
1472 if (!var2) {
1473 fprintf(stderr, "Runtime error: %s", "Assert failed");
1474 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27576);
1475 show_backtrace(1);
1476 }
1477 var3 = NEW_parser_nodes__ATrueExpr(&type_parser_nodes__ATrueExpr);
1478 var4 = NULL;
1479 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_prod__ATrueExpr__init_atrueexpr]))(var3, var_tkwtruenode2, var4) /* init_atrueexpr on <var3:ATrueExpr>*/;
1480 var_pexprnode1 = var3;
1481 var_node_list = var_pexprnode1;
1482 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction788> */
1483 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
1484 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
1485 RET_LABEL:;
1486 }
1487 /* method parser#ReduceAction788#action for (self: Object, Parser) */
1488 void VIRTUAL_parser__ReduceAction788__action(val* self, val* p0) {
1489 parser__ReduceAction788__action(self, p0);
1490 RET_LABEL:;
1491 }
1492 /* method parser#ReduceAction789#action for (self: ReduceAction789, Parser) */
1493 void parser__ReduceAction789__action(val* self, val* p0) {
1494 val* var_p /* var p: Parser */;
1495 val* var /* : null */;
1496 val* var_node_list /* var node_list: nullable Object */;
1497 val* var1 /* : nullable Object */;
1498 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1499 val* var2 /* : nullable Object */;
1500 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1501 val* var_tkwtruenode2 /* var tkwtruenode2: nullable Object */;
1502 short int var3 /* : Bool */;
1503 int cltype;
1504 int idtype;
1505 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
1506 short int var4 /* : Bool */;
1507 int cltype5;
1508 int idtype6;
1509 val* var7 /* : ATrueExpr */;
1510 val* var_pexprnode1 /* var pexprnode1: nullable ATrueExpr */;
1511 long var8 /* : Int */;
1512 long var9 /* : Int */;
1513 var_p = p0;
1514 var = NULL;
1515 var_node_list = var;
1516 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1517 var_nodearraylist2 = var1;
1518 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1519 var_nodearraylist1 = var2;
1520 var_tkwtruenode2 = var_nodearraylist1;
1521 /* <var_tkwtruenode2:nullable Object> isa nullable TKwtrue */
1522 cltype = type_nullable_parser_nodes__TKwtrue.color;
1523 idtype = type_nullable_parser_nodes__TKwtrue.id;
1524 if(var_tkwtruenode2 == NULL) {
1525 var3 = 1;
1526 } else {
1527 if(cltype >= var_tkwtruenode2->type->table_size) {
1528 var3 = 0;
1529 } else {
1530 var3 = var_tkwtruenode2->type->type_table[cltype] == idtype;
1531 }
1532 }
1533 if (!var3) {
1534 fprintf(stderr, "Runtime error: %s", "Assert failed");
1535 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27593);
1536 show_backtrace(1);
1537 }
1538 var_pannotationsnode3 = var_nodearraylist2;
1539 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
1540 cltype5 = type_nullable_parser_nodes__AAnnotations.color;
1541 idtype6 = type_nullable_parser_nodes__AAnnotations.id;
1542 if(var_pannotationsnode3 == NULL) {
1543 var4 = 1;
1544 } else {
1545 if(cltype5 >= var_pannotationsnode3->type->table_size) {
1546 var4 = 0;
1547 } else {
1548 var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
1549 }
1550 }
1551 if (!var4) {
1552 fprintf(stderr, "Runtime error: %s", "Assert failed");
1553 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27595);
1554 show_backtrace(1);
1555 }
1556 var7 = NEW_parser_nodes__ATrueExpr(&type_parser_nodes__ATrueExpr);
1557 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ATrueExpr__init_atrueexpr]))(var7, var_tkwtruenode2, var_pannotationsnode3) /* init_atrueexpr on <var7:ATrueExpr>*/;
1558 var_pexprnode1 = var7;
1559 var_node_list = var_pexprnode1;
1560 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction789> */
1561 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
1562 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
1563 RET_LABEL:;
1564 }
1565 /* method parser#ReduceAction789#action for (self: Object, Parser) */
1566 void VIRTUAL_parser__ReduceAction789__action(val* self, val* p0) {
1567 parser__ReduceAction789__action(self, p0);
1568 RET_LABEL:;
1569 }
1570 /* method parser#ReduceAction790#action for (self: ReduceAction790, Parser) */
1571 void parser__ReduceAction790__action(val* self, val* p0) {
1572 val* var_p /* var p: Parser */;
1573 val* var /* : null */;
1574 val* var_node_list /* var node_list: nullable Object */;
1575 val* var1 /* : nullable Object */;
1576 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1577 val* var_tkwfalsenode2 /* var tkwfalsenode2: nullable Object */;
1578 short int var2 /* : Bool */;
1579 int cltype;
1580 int idtype;
1581 val* var3 /* : AFalseExpr */;
1582 val* var4 /* : null */;
1583 val* var_pexprnode1 /* var pexprnode1: nullable AFalseExpr */;
1584 long var5 /* : Int */;
1585 long var6 /* : Int */;
1586 var_p = p0;
1587 var = NULL;
1588 var_node_list = var;
1589 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1590 var_nodearraylist1 = var1;
1591 var_tkwfalsenode2 = var_nodearraylist1;
1592 /* <var_tkwfalsenode2:nullable Object> isa nullable TKwfalse */
1593 cltype = type_nullable_parser_nodes__TKwfalse.color;
1594 idtype = type_nullable_parser_nodes__TKwfalse.id;
1595 if(var_tkwfalsenode2 == NULL) {
1596 var2 = 1;
1597 } else {
1598 if(cltype >= var_tkwfalsenode2->type->table_size) {
1599 var2 = 0;
1600 } else {
1601 var2 = var_tkwfalsenode2->type->type_table[cltype] == idtype;
1602 }
1603 }
1604 if (!var2) {
1605 fprintf(stderr, "Runtime error: %s", "Assert failed");
1606 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27611);
1607 show_backtrace(1);
1608 }
1609 var3 = NEW_parser_nodes__AFalseExpr(&type_parser_nodes__AFalseExpr);
1610 var4 = NULL;
1611 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AFalseExpr__init_afalseexpr]))(var3, var_tkwfalsenode2, var4) /* init_afalseexpr on <var3:AFalseExpr>*/;
1612 var_pexprnode1 = var3;
1613 var_node_list = var_pexprnode1;
1614 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction790> */
1615 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
1616 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
1617 RET_LABEL:;
1618 }
1619 /* method parser#ReduceAction790#action for (self: Object, Parser) */
1620 void VIRTUAL_parser__ReduceAction790__action(val* self, val* p0) {
1621 parser__ReduceAction790__action(self, p0);
1622 RET_LABEL:;
1623 }
1624 /* method parser#ReduceAction791#action for (self: ReduceAction791, Parser) */
1625 void parser__ReduceAction791__action(val* self, val* p0) {
1626 val* var_p /* var p: Parser */;
1627 val* var /* : null */;
1628 val* var_node_list /* var node_list: nullable Object */;
1629 val* var1 /* : nullable Object */;
1630 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1631 val* var2 /* : nullable Object */;
1632 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1633 val* var_tkwfalsenode2 /* var tkwfalsenode2: nullable Object */;
1634 short int var3 /* : Bool */;
1635 int cltype;
1636 int idtype;
1637 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
1638 short int var4 /* : Bool */;
1639 int cltype5;
1640 int idtype6;
1641 val* var7 /* : AFalseExpr */;
1642 val* var_pexprnode1 /* var pexprnode1: nullable AFalseExpr */;
1643 long var8 /* : Int */;
1644 long var9 /* : Int */;
1645 var_p = p0;
1646 var = NULL;
1647 var_node_list = var;
1648 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1649 var_nodearraylist2 = var1;
1650 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1651 var_nodearraylist1 = var2;
1652 var_tkwfalsenode2 = var_nodearraylist1;
1653 /* <var_tkwfalsenode2:nullable Object> isa nullable TKwfalse */
1654 cltype = type_nullable_parser_nodes__TKwfalse.color;
1655 idtype = type_nullable_parser_nodes__TKwfalse.id;
1656 if(var_tkwfalsenode2 == NULL) {
1657 var3 = 1;
1658 } else {
1659 if(cltype >= var_tkwfalsenode2->type->table_size) {
1660 var3 = 0;
1661 } else {
1662 var3 = var_tkwfalsenode2->type->type_table[cltype] == idtype;
1663 }
1664 }
1665 if (!var3) {
1666 fprintf(stderr, "Runtime error: %s", "Assert failed");
1667 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27628);
1668 show_backtrace(1);
1669 }
1670 var_pannotationsnode3 = var_nodearraylist2;
1671 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
1672 cltype5 = type_nullable_parser_nodes__AAnnotations.color;
1673 idtype6 = type_nullable_parser_nodes__AAnnotations.id;
1674 if(var_pannotationsnode3 == NULL) {
1675 var4 = 1;
1676 } else {
1677 if(cltype5 >= var_pannotationsnode3->type->table_size) {
1678 var4 = 0;
1679 } else {
1680 var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
1681 }
1682 }
1683 if (!var4) {
1684 fprintf(stderr, "Runtime error: %s", "Assert failed");
1685 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27630);
1686 show_backtrace(1);
1687 }
1688 var7 = NEW_parser_nodes__AFalseExpr(&type_parser_nodes__AFalseExpr);
1689 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AFalseExpr__init_afalseexpr]))(var7, var_tkwfalsenode2, var_pannotationsnode3) /* init_afalseexpr on <var7:AFalseExpr>*/;
1690 var_pexprnode1 = var7;
1691 var_node_list = var_pexprnode1;
1692 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction791> */
1693 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
1694 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
1695 RET_LABEL:;
1696 }
1697 /* method parser#ReduceAction791#action for (self: Object, Parser) */
1698 void VIRTUAL_parser__ReduceAction791__action(val* self, val* p0) {
1699 parser__ReduceAction791__action(self, p0);
1700 RET_LABEL:;
1701 }
1702 /* method parser#ReduceAction792#action for (self: ReduceAction792, Parser) */
1703 void parser__ReduceAction792__action(val* self, val* p0) {
1704 val* var_p /* var p: Parser */;
1705 val* var /* : null */;
1706 val* var_node_list /* var node_list: nullable Object */;
1707 val* var1 /* : nullable Object */;
1708 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1709 val* var_tkwnullnode2 /* var tkwnullnode2: nullable Object */;
1710 short int var2 /* : Bool */;
1711 int cltype;
1712 int idtype;
1713 val* var3 /* : ANullExpr */;
1714 val* var4 /* : null */;
1715 val* var_pexprnode1 /* var pexprnode1: nullable ANullExpr */;
1716 long var5 /* : Int */;
1717 long var6 /* : Int */;
1718 var_p = p0;
1719 var = NULL;
1720 var_node_list = var;
1721 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1722 var_nodearraylist1 = var1;
1723 var_tkwnullnode2 = var_nodearraylist1;
1724 /* <var_tkwnullnode2:nullable Object> isa nullable TKwnull */
1725 cltype = type_nullable_parser_nodes__TKwnull.color;
1726 idtype = type_nullable_parser_nodes__TKwnull.id;
1727 if(var_tkwnullnode2 == NULL) {
1728 var2 = 1;
1729 } else {
1730 if(cltype >= var_tkwnullnode2->type->table_size) {
1731 var2 = 0;
1732 } else {
1733 var2 = var_tkwnullnode2->type->type_table[cltype] == idtype;
1734 }
1735 }
1736 if (!var2) {
1737 fprintf(stderr, "Runtime error: %s", "Assert failed");
1738 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27646);
1739 show_backtrace(1);
1740 }
1741 var3 = NEW_parser_nodes__ANullExpr(&type_parser_nodes__ANullExpr);
1742 var4 = NULL;
1743 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_prod__ANullExpr__init_anullexpr]))(var3, var_tkwnullnode2, var4) /* init_anullexpr on <var3:ANullExpr>*/;
1744 var_pexprnode1 = var3;
1745 var_node_list = var_pexprnode1;
1746 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction792> */
1747 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
1748 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
1749 RET_LABEL:;
1750 }
1751 /* method parser#ReduceAction792#action for (self: Object, Parser) */
1752 void VIRTUAL_parser__ReduceAction792__action(val* self, val* p0) {
1753 parser__ReduceAction792__action(self, p0);
1754 RET_LABEL:;
1755 }
1756 /* method parser#ReduceAction793#action for (self: ReduceAction793, Parser) */
1757 void parser__ReduceAction793__action(val* self, val* p0) {
1758 val* var_p /* var p: Parser */;
1759 val* var /* : null */;
1760 val* var_node_list /* var node_list: nullable Object */;
1761 val* var1 /* : nullable Object */;
1762 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1763 val* var2 /* : nullable Object */;
1764 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1765 val* var_tkwnullnode2 /* var tkwnullnode2: nullable Object */;
1766 short int var3 /* : Bool */;
1767 int cltype;
1768 int idtype;
1769 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
1770 short int var4 /* : Bool */;
1771 int cltype5;
1772 int idtype6;
1773 val* var7 /* : ANullExpr */;
1774 val* var_pexprnode1 /* var pexprnode1: nullable ANullExpr */;
1775 long var8 /* : Int */;
1776 long var9 /* : Int */;
1777 var_p = p0;
1778 var = NULL;
1779 var_node_list = var;
1780 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1781 var_nodearraylist2 = var1;
1782 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1783 var_nodearraylist1 = var2;
1784 var_tkwnullnode2 = var_nodearraylist1;
1785 /* <var_tkwnullnode2:nullable Object> isa nullable TKwnull */
1786 cltype = type_nullable_parser_nodes__TKwnull.color;
1787 idtype = type_nullable_parser_nodes__TKwnull.id;
1788 if(var_tkwnullnode2 == NULL) {
1789 var3 = 1;
1790 } else {
1791 if(cltype >= var_tkwnullnode2->type->table_size) {
1792 var3 = 0;
1793 } else {
1794 var3 = var_tkwnullnode2->type->type_table[cltype] == idtype;
1795 }
1796 }
1797 if (!var3) {
1798 fprintf(stderr, "Runtime error: %s", "Assert failed");
1799 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27663);
1800 show_backtrace(1);
1801 }
1802 var_pannotationsnode3 = var_nodearraylist2;
1803 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
1804 cltype5 = type_nullable_parser_nodes__AAnnotations.color;
1805 idtype6 = type_nullable_parser_nodes__AAnnotations.id;
1806 if(var_pannotationsnode3 == NULL) {
1807 var4 = 1;
1808 } else {
1809 if(cltype5 >= var_pannotationsnode3->type->table_size) {
1810 var4 = 0;
1811 } else {
1812 var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
1813 }
1814 }
1815 if (!var4) {
1816 fprintf(stderr, "Runtime error: %s", "Assert failed");
1817 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27665);
1818 show_backtrace(1);
1819 }
1820 var7 = NEW_parser_nodes__ANullExpr(&type_parser_nodes__ANullExpr);
1821 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ANullExpr__init_anullexpr]))(var7, var_tkwnullnode2, var_pannotationsnode3) /* init_anullexpr on <var7:ANullExpr>*/;
1822 var_pexprnode1 = var7;
1823 var_node_list = var_pexprnode1;
1824 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction793> */
1825 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
1826 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
1827 RET_LABEL:;
1828 }
1829 /* method parser#ReduceAction793#action for (self: Object, Parser) */
1830 void VIRTUAL_parser__ReduceAction793__action(val* self, val* p0) {
1831 parser__ReduceAction793__action(self, p0);
1832 RET_LABEL:;
1833 }
1834 /* method parser#ReduceAction794#action for (self: ReduceAction794, Parser) */
1835 void parser__ReduceAction794__action(val* self, val* p0) {
1836 val* var_p /* var p: Parser */;
1837 val* var /* : null */;
1838 val* var_node_list /* var node_list: nullable Object */;
1839 val* var1 /* : nullable Object */;
1840 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1841 val* var_tnumbernode2 /* var tnumbernode2: nullable Object */;
1842 short int var2 /* : Bool */;
1843 int cltype;
1844 int idtype;
1845 val* var3 /* : AIntExpr */;
1846 val* var4 /* : null */;
1847 val* var_pexprnode1 /* var pexprnode1: nullable AIntExpr */;
1848 long var5 /* : Int */;
1849 long var6 /* : Int */;
1850 var_p = p0;
1851 var = NULL;
1852 var_node_list = var;
1853 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1854 var_nodearraylist1 = var1;
1855 var_tnumbernode2 = var_nodearraylist1;
1856 /* <var_tnumbernode2:nullable Object> isa nullable TNumber */
1857 cltype = type_nullable_parser_nodes__TNumber.color;
1858 idtype = type_nullable_parser_nodes__TNumber.id;
1859 if(var_tnumbernode2 == NULL) {
1860 var2 = 1;
1861 } else {
1862 if(cltype >= var_tnumbernode2->type->table_size) {
1863 var2 = 0;
1864 } else {
1865 var2 = var_tnumbernode2->type->type_table[cltype] == idtype;
1866 }
1867 }
1868 if (!var2) {
1869 fprintf(stderr, "Runtime error: %s", "Assert failed");
1870 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27681);
1871 show_backtrace(1);
1872 }
1873 var3 = NEW_parser_nodes__AIntExpr(&type_parser_nodes__AIntExpr);
1874 var4 = NULL;
1875 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AIntExpr__init_aintexpr]))(var3, var_tnumbernode2, var4) /* init_aintexpr on <var3:AIntExpr>*/;
1876 var_pexprnode1 = var3;
1877 var_node_list = var_pexprnode1;
1878 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction794> */
1879 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
1880 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
1881 RET_LABEL:;
1882 }
1883 /* method parser#ReduceAction794#action for (self: Object, Parser) */
1884 void VIRTUAL_parser__ReduceAction794__action(val* self, val* p0) {
1885 parser__ReduceAction794__action(self, p0);
1886 RET_LABEL:;
1887 }
1888 /* method parser#ReduceAction795#action for (self: ReduceAction795, Parser) */
1889 void parser__ReduceAction795__action(val* self, val* p0) {
1890 val* var_p /* var p: Parser */;
1891 val* var /* : null */;
1892 val* var_node_list /* var node_list: nullable Object */;
1893 val* var1 /* : nullable Object */;
1894 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1895 val* var2 /* : nullable Object */;
1896 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1897 val* var_tnumbernode2 /* var tnumbernode2: nullable Object */;
1898 short int var3 /* : Bool */;
1899 int cltype;
1900 int idtype;
1901 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
1902 short int var4 /* : Bool */;
1903 int cltype5;
1904 int idtype6;
1905 val* var7 /* : AIntExpr */;
1906 val* var_pexprnode1 /* var pexprnode1: nullable AIntExpr */;
1907 long var8 /* : Int */;
1908 long var9 /* : Int */;
1909 var_p = p0;
1910 var = NULL;
1911 var_node_list = var;
1912 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1913 var_nodearraylist2 = var1;
1914 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1915 var_nodearraylist1 = var2;
1916 var_tnumbernode2 = var_nodearraylist1;
1917 /* <var_tnumbernode2:nullable Object> isa nullable TNumber */
1918 cltype = type_nullable_parser_nodes__TNumber.color;
1919 idtype = type_nullable_parser_nodes__TNumber.id;
1920 if(var_tnumbernode2 == NULL) {
1921 var3 = 1;
1922 } else {
1923 if(cltype >= var_tnumbernode2->type->table_size) {
1924 var3 = 0;
1925 } else {
1926 var3 = var_tnumbernode2->type->type_table[cltype] == idtype;
1927 }
1928 }
1929 if (!var3) {
1930 fprintf(stderr, "Runtime error: %s", "Assert failed");
1931 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27698);
1932 show_backtrace(1);
1933 }
1934 var_pannotationsnode3 = var_nodearraylist2;
1935 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
1936 cltype5 = type_nullable_parser_nodes__AAnnotations.color;
1937 idtype6 = type_nullable_parser_nodes__AAnnotations.id;
1938 if(var_pannotationsnode3 == NULL) {
1939 var4 = 1;
1940 } else {
1941 if(cltype5 >= var_pannotationsnode3->type->table_size) {
1942 var4 = 0;
1943 } else {
1944 var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
1945 }
1946 }
1947 if (!var4) {
1948 fprintf(stderr, "Runtime error: %s", "Assert failed");
1949 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27700);
1950 show_backtrace(1);
1951 }
1952 var7 = NEW_parser_nodes__AIntExpr(&type_parser_nodes__AIntExpr);
1953 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AIntExpr__init_aintexpr]))(var7, var_tnumbernode2, var_pannotationsnode3) /* init_aintexpr on <var7:AIntExpr>*/;
1954 var_pexprnode1 = var7;
1955 var_node_list = var_pexprnode1;
1956 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction795> */
1957 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
1958 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
1959 RET_LABEL:;
1960 }
1961 /* method parser#ReduceAction795#action for (self: Object, Parser) */
1962 void VIRTUAL_parser__ReduceAction795__action(val* self, val* p0) {
1963 parser__ReduceAction795__action(self, p0);
1964 RET_LABEL:;
1965 }
1966 /* method parser#ReduceAction796#action for (self: ReduceAction796, Parser) */
1967 void parser__ReduceAction796__action(val* self, val* p0) {
1968 val* var_p /* var p: Parser */;
1969 val* var /* : null */;
1970 val* var_node_list /* var node_list: nullable Object */;
1971 val* var1 /* : nullable Object */;
1972 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1973 val* var_tfloatnode2 /* var tfloatnode2: nullable Object */;
1974 short int var2 /* : Bool */;
1975 int cltype;
1976 int idtype;
1977 val* var3 /* : AFloatExpr */;
1978 val* var4 /* : null */;
1979 val* var_pexprnode1 /* var pexprnode1: nullable AFloatExpr */;
1980 long var5 /* : Int */;
1981 long var6 /* : Int */;
1982 var_p = p0;
1983 var = NULL;
1984 var_node_list = var;
1985 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1986 var_nodearraylist1 = var1;
1987 var_tfloatnode2 = var_nodearraylist1;
1988 /* <var_tfloatnode2:nullable Object> isa nullable TFloat */
1989 cltype = type_nullable_parser_nodes__TFloat.color;
1990 idtype = type_nullable_parser_nodes__TFloat.id;
1991 if(var_tfloatnode2 == NULL) {
1992 var2 = 1;
1993 } else {
1994 if(cltype >= var_tfloatnode2->type->table_size) {
1995 var2 = 0;
1996 } else {
1997 var2 = var_tfloatnode2->type->type_table[cltype] == idtype;
1998 }
1999 }
2000 if (!var2) {
2001 fprintf(stderr, "Runtime error: %s", "Assert failed");
2002 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27716);
2003 show_backtrace(1);
2004 }
2005 var3 = NEW_parser_nodes__AFloatExpr(&type_parser_nodes__AFloatExpr);
2006 var4 = NULL;
2007 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AFloatExpr__init_afloatexpr]))(var3, var_tfloatnode2, var4) /* init_afloatexpr on <var3:AFloatExpr>*/;
2008 var_pexprnode1 = var3;
2009 var_node_list = var_pexprnode1;
2010 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction796> */
2011 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
2012 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
2013 RET_LABEL:;
2014 }
2015 /* method parser#ReduceAction796#action for (self: Object, Parser) */
2016 void VIRTUAL_parser__ReduceAction796__action(val* self, val* p0) {
2017 parser__ReduceAction796__action(self, p0);
2018 RET_LABEL:;
2019 }
2020 /* method parser#ReduceAction797#action for (self: ReduceAction797, Parser) */
2021 void parser__ReduceAction797__action(val* self, val* p0) {
2022 val* var_p /* var p: Parser */;
2023 val* var /* : null */;
2024 val* var_node_list /* var node_list: nullable Object */;
2025 val* var1 /* : nullable Object */;
2026 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2027 val* var2 /* : nullable Object */;
2028 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2029 val* var_tfloatnode2 /* var tfloatnode2: nullable Object */;
2030 short int var3 /* : Bool */;
2031 int cltype;
2032 int idtype;
2033 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
2034 short int var4 /* : Bool */;
2035 int cltype5;
2036 int idtype6;
2037 val* var7 /* : AFloatExpr */;
2038 val* var_pexprnode1 /* var pexprnode1: nullable AFloatExpr */;
2039 long var8 /* : Int */;
2040 long var9 /* : Int */;
2041 var_p = p0;
2042 var = NULL;
2043 var_node_list = var;
2044 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2045 var_nodearraylist2 = var1;
2046 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2047 var_nodearraylist1 = var2;
2048 var_tfloatnode2 = var_nodearraylist1;
2049 /* <var_tfloatnode2:nullable Object> isa nullable TFloat */
2050 cltype = type_nullable_parser_nodes__TFloat.color;
2051 idtype = type_nullable_parser_nodes__TFloat.id;
2052 if(var_tfloatnode2 == NULL) {
2053 var3 = 1;
2054 } else {
2055 if(cltype >= var_tfloatnode2->type->table_size) {
2056 var3 = 0;
2057 } else {
2058 var3 = var_tfloatnode2->type->type_table[cltype] == idtype;
2059 }
2060 }
2061 if (!var3) {
2062 fprintf(stderr, "Runtime error: %s", "Assert failed");
2063 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27733);
2064 show_backtrace(1);
2065 }
2066 var_pannotationsnode3 = var_nodearraylist2;
2067 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
2068 cltype5 = type_nullable_parser_nodes__AAnnotations.color;
2069 idtype6 = type_nullable_parser_nodes__AAnnotations.id;
2070 if(var_pannotationsnode3 == NULL) {
2071 var4 = 1;
2072 } else {
2073 if(cltype5 >= var_pannotationsnode3->type->table_size) {
2074 var4 = 0;
2075 } else {
2076 var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
2077 }
2078 }
2079 if (!var4) {
2080 fprintf(stderr, "Runtime error: %s", "Assert failed");
2081 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27735);
2082 show_backtrace(1);
2083 }
2084 var7 = NEW_parser_nodes__AFloatExpr(&type_parser_nodes__AFloatExpr);
2085 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AFloatExpr__init_afloatexpr]))(var7, var_tfloatnode2, var_pannotationsnode3) /* init_afloatexpr on <var7:AFloatExpr>*/;
2086 var_pexprnode1 = var7;
2087 var_node_list = var_pexprnode1;
2088 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction797> */
2089 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
2090 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
2091 RET_LABEL:;
2092 }
2093 /* method parser#ReduceAction797#action for (self: Object, Parser) */
2094 void VIRTUAL_parser__ReduceAction797__action(val* self, val* p0) {
2095 parser__ReduceAction797__action(self, p0);
2096 RET_LABEL:;
2097 }
2098 /* method parser#ReduceAction798#action for (self: ReduceAction798, Parser) */
2099 void parser__ReduceAction798__action(val* self, val* p0) {
2100 val* var_p /* var p: Parser */;
2101 val* var /* : null */;
2102 val* var_node_list /* var node_list: nullable Object */;
2103 val* var1 /* : nullable Object */;
2104 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2105 val* var_tcharnode2 /* var tcharnode2: nullable Object */;
2106 short int var2 /* : Bool */;
2107 int cltype;
2108 int idtype;
2109 val* var3 /* : ACharExpr */;
2110 val* var4 /* : null */;
2111 val* var_pexprnode1 /* var pexprnode1: nullable ACharExpr */;
2112 long var5 /* : Int */;
2113 long var6 /* : Int */;
2114 var_p = p0;
2115 var = NULL;
2116 var_node_list = var;
2117 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2118 var_nodearraylist1 = var1;
2119 var_tcharnode2 = var_nodearraylist1;
2120 /* <var_tcharnode2:nullable Object> isa nullable TChar */
2121 cltype = type_nullable_parser_nodes__TChar.color;
2122 idtype = type_nullable_parser_nodes__TChar.id;
2123 if(var_tcharnode2 == NULL) {
2124 var2 = 1;
2125 } else {
2126 if(cltype >= var_tcharnode2->type->table_size) {
2127 var2 = 0;
2128 } else {
2129 var2 = var_tcharnode2->type->type_table[cltype] == idtype;
2130 }
2131 }
2132 if (!var2) {
2133 fprintf(stderr, "Runtime error: %s", "Assert failed");
2134 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27751);
2135 show_backtrace(1);
2136 }
2137 var3 = NEW_parser_nodes__ACharExpr(&type_parser_nodes__ACharExpr);
2138 var4 = NULL;
2139 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_prod__ACharExpr__init_acharexpr]))(var3, var_tcharnode2, var4) /* init_acharexpr on <var3:ACharExpr>*/;
2140 var_pexprnode1 = var3;
2141 var_node_list = var_pexprnode1;
2142 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction798> */
2143 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
2144 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
2145 RET_LABEL:;
2146 }
2147 /* method parser#ReduceAction798#action for (self: Object, Parser) */
2148 void VIRTUAL_parser__ReduceAction798__action(val* self, val* p0) {
2149 parser__ReduceAction798__action(self, p0);
2150 RET_LABEL:;
2151 }
2152 /* method parser#ReduceAction799#action for (self: ReduceAction799, Parser) */
2153 void parser__ReduceAction799__action(val* self, val* p0) {
2154 val* var_p /* var p: Parser */;
2155 val* var /* : null */;
2156 val* var_node_list /* var node_list: nullable Object */;
2157 val* var1 /* : nullable Object */;
2158 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2159 val* var2 /* : nullable Object */;
2160 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2161 val* var_tcharnode2 /* var tcharnode2: nullable Object */;
2162 short int var3 /* : Bool */;
2163 int cltype;
2164 int idtype;
2165 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
2166 short int var4 /* : Bool */;
2167 int cltype5;
2168 int idtype6;
2169 val* var7 /* : ACharExpr */;
2170 val* var_pexprnode1 /* var pexprnode1: nullable ACharExpr */;
2171 long var8 /* : Int */;
2172 long var9 /* : Int */;
2173 var_p = p0;
2174 var = NULL;
2175 var_node_list = var;
2176 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2177 var_nodearraylist2 = var1;
2178 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2179 var_nodearraylist1 = var2;
2180 var_tcharnode2 = var_nodearraylist1;
2181 /* <var_tcharnode2:nullable Object> isa nullable TChar */
2182 cltype = type_nullable_parser_nodes__TChar.color;
2183 idtype = type_nullable_parser_nodes__TChar.id;
2184 if(var_tcharnode2 == NULL) {
2185 var3 = 1;
2186 } else {
2187 if(cltype >= var_tcharnode2->type->table_size) {
2188 var3 = 0;
2189 } else {
2190 var3 = var_tcharnode2->type->type_table[cltype] == idtype;
2191 }
2192 }
2193 if (!var3) {
2194 fprintf(stderr, "Runtime error: %s", "Assert failed");
2195 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27768);
2196 show_backtrace(1);
2197 }
2198 var_pannotationsnode3 = var_nodearraylist2;
2199 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
2200 cltype5 = type_nullable_parser_nodes__AAnnotations.color;
2201 idtype6 = type_nullable_parser_nodes__AAnnotations.id;
2202 if(var_pannotationsnode3 == NULL) {
2203 var4 = 1;
2204 } else {
2205 if(cltype5 >= var_pannotationsnode3->type->table_size) {
2206 var4 = 0;
2207 } else {
2208 var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
2209 }
2210 }
2211 if (!var4) {
2212 fprintf(stderr, "Runtime error: %s", "Assert failed");
2213 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27770);
2214 show_backtrace(1);
2215 }
2216 var7 = NEW_parser_nodes__ACharExpr(&type_parser_nodes__ACharExpr);
2217 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ACharExpr__init_acharexpr]))(var7, var_tcharnode2, var_pannotationsnode3) /* init_acharexpr on <var7:ACharExpr>*/;
2218 var_pexprnode1 = var7;
2219 var_node_list = var_pexprnode1;
2220 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction799> */
2221 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
2222 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
2223 RET_LABEL:;
2224 }
2225 /* method parser#ReduceAction799#action for (self: Object, Parser) */
2226 void VIRTUAL_parser__ReduceAction799__action(val* self, val* p0) {
2227 parser__ReduceAction799__action(self, p0);
2228 RET_LABEL:;
2229 }
2230 /* method parser#ReduceAction800#action for (self: ReduceAction800, Parser) */
2231 void parser__ReduceAction800__action(val* self, val* p0) {
2232 val* var_p /* var p: Parser */;
2233 val* var /* : null */;
2234 val* var_node_list /* var node_list: nullable Object */;
2235 val* var1 /* : nullable Object */;
2236 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2237 val* var_tstringnode2 /* var tstringnode2: nullable Object */;
2238 short int var2 /* : Bool */;
2239 int cltype;
2240 int idtype;
2241 val* var3 /* : AStringExpr */;
2242 val* var4 /* : null */;
2243 val* var_pexprnode1 /* var pexprnode1: nullable AStringExpr */;
2244 long var5 /* : Int */;
2245 long var6 /* : Int */;
2246 var_p = p0;
2247 var = NULL;
2248 var_node_list = var;
2249 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2250 var_nodearraylist1 = var1;
2251 var_tstringnode2 = var_nodearraylist1;
2252 /* <var_tstringnode2:nullable Object> isa nullable TString */
2253 cltype = type_nullable_parser_nodes__TString.color;
2254 idtype = type_nullable_parser_nodes__TString.id;
2255 if(var_tstringnode2 == NULL) {
2256 var2 = 1;
2257 } else {
2258 if(cltype >= var_tstringnode2->type->table_size) {
2259 var2 = 0;
2260 } else {
2261 var2 = var_tstringnode2->type->type_table[cltype] == idtype;
2262 }
2263 }
2264 if (!var2) {
2265 fprintf(stderr, "Runtime error: %s", "Assert failed");
2266 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27786);
2267 show_backtrace(1);
2268 }
2269 var3 = NEW_parser_nodes__AStringExpr(&type_parser_nodes__AStringExpr);
2270 var4 = NULL;
2271 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AStringExpr__init_astringexpr]))(var3, var_tstringnode2, var4) /* init_astringexpr on <var3:AStringExpr>*/;
2272 var_pexprnode1 = var3;
2273 var_node_list = var_pexprnode1;
2274 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction800> */
2275 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
2276 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
2277 RET_LABEL:;
2278 }
2279 /* method parser#ReduceAction800#action for (self: Object, Parser) */
2280 void VIRTUAL_parser__ReduceAction800__action(val* self, val* p0) {
2281 parser__ReduceAction800__action(self, p0);
2282 RET_LABEL:;
2283 }
2284 /* method parser#ReduceAction801#action for (self: ReduceAction801, Parser) */
2285 void parser__ReduceAction801__action(val* self, val* p0) {
2286 val* var_p /* var p: Parser */;
2287 val* var /* : null */;
2288 val* var_node_list /* var node_list: nullable Object */;
2289 val* var1 /* : nullable Object */;
2290 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2291 val* var2 /* : nullable Object */;
2292 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2293 val* var_tstringnode2 /* var tstringnode2: nullable Object */;
2294 short int var3 /* : Bool */;
2295 int cltype;
2296 int idtype;
2297 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
2298 short int var4 /* : Bool */;
2299 int cltype5;
2300 int idtype6;
2301 val* var7 /* : AStringExpr */;
2302 val* var_pexprnode1 /* var pexprnode1: nullable AStringExpr */;
2303 long var8 /* : Int */;
2304 long var9 /* : Int */;
2305 var_p = p0;
2306 var = NULL;
2307 var_node_list = var;
2308 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2309 var_nodearraylist2 = var1;
2310 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2311 var_nodearraylist1 = var2;
2312 var_tstringnode2 = var_nodearraylist1;
2313 /* <var_tstringnode2:nullable Object> isa nullable TString */
2314 cltype = type_nullable_parser_nodes__TString.color;
2315 idtype = type_nullable_parser_nodes__TString.id;
2316 if(var_tstringnode2 == NULL) {
2317 var3 = 1;
2318 } else {
2319 if(cltype >= var_tstringnode2->type->table_size) {
2320 var3 = 0;
2321 } else {
2322 var3 = var_tstringnode2->type->type_table[cltype] == idtype;
2323 }
2324 }
2325 if (!var3) {
2326 fprintf(stderr, "Runtime error: %s", "Assert failed");
2327 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27803);
2328 show_backtrace(1);
2329 }
2330 var_pannotationsnode3 = var_nodearraylist2;
2331 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
2332 cltype5 = type_nullable_parser_nodes__AAnnotations.color;
2333 idtype6 = type_nullable_parser_nodes__AAnnotations.id;
2334 if(var_pannotationsnode3 == NULL) {
2335 var4 = 1;
2336 } else {
2337 if(cltype5 >= var_pannotationsnode3->type->table_size) {
2338 var4 = 0;
2339 } else {
2340 var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
2341 }
2342 }
2343 if (!var4) {
2344 fprintf(stderr, "Runtime error: %s", "Assert failed");
2345 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27805);
2346 show_backtrace(1);
2347 }
2348 var7 = NEW_parser_nodes__AStringExpr(&type_parser_nodes__AStringExpr);
2349 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AStringExpr__init_astringexpr]))(var7, var_tstringnode2, var_pannotationsnode3) /* init_astringexpr on <var7:AStringExpr>*/;
2350 var_pexprnode1 = var7;
2351 var_node_list = var_pexprnode1;
2352 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction801> */
2353 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
2354 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
2355 RET_LABEL:;
2356 }
2357 /* method parser#ReduceAction801#action for (self: Object, Parser) */
2358 void VIRTUAL_parser__ReduceAction801__action(val* self, val* p0) {
2359 parser__ReduceAction801__action(self, p0);
2360 RET_LABEL:;
2361 }
2362 /* method parser#ReduceAction803#action for (self: ReduceAction803, Parser) */
2363 void parser__ReduceAction803__action(val* self, val* p0) {
2364 val* var_p /* var p: Parser */;
2365 val* var /* : null */;
2366 val* var_node_list /* var node_list: nullable Object */;
2367 val* var1 /* : nullable Object */;
2368 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2369 val* var2 /* : nullable Object */;
2370 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2371 val* var3 /* : nullable Object */;
2372 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2373 val* var4 /* : nullable Object */;
2374 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2375 val* var5 /* : nullable Object */;
2376 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2377 val* var_toparnode2 /* var toparnode2: nullable Object */;
2378 short int var6 /* : Bool */;
2379 int cltype;
2380 int idtype;
2381 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
2382 short int var7 /* : Bool */;
2383 int cltype8;
2384 int idtype9;
2385 val* var_tcparnode4 /* var tcparnode4: nullable Object */;
2386 short int var10 /* : Bool */;
2387 int cltype11;
2388 int idtype12;
2389 val* var13 /* : AParExpr */;
2390 val* var14 /* : null */;
2391 val* var_pexprnode1 /* var pexprnode1: nullable AParExpr */;
2392 long var15 /* : Int */;
2393 long var16 /* : Int */;
2394 var_p = p0;
2395 var = NULL;
2396 var_node_list = var;
2397 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2398 var_nodearraylist5 = var1;
2399 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2400 var_nodearraylist4 = var2;
2401 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2402 var_nodearraylist3 = var3;
2403 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2404 var_nodearraylist2 = var4;
2405 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2406 var_nodearraylist1 = var5;
2407 var_toparnode2 = var_nodearraylist1;
2408 /* <var_toparnode2:nullable Object> isa nullable TOpar */
2409 cltype = type_nullable_parser_nodes__TOpar.color;
2410 idtype = type_nullable_parser_nodes__TOpar.id;
2411 if(var_toparnode2 == NULL) {
2412 var6 = 1;
2413 } else {
2414 if(cltype >= var_toparnode2->type->table_size) {
2415 var6 = 0;
2416 } else {
2417 var6 = var_toparnode2->type->type_table[cltype] == idtype;
2418 }
2419 }
2420 if (!var6) {
2421 fprintf(stderr, "Runtime error: %s", "Assert failed");
2422 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27825);
2423 show_backtrace(1);
2424 }
2425 var_pexprnode3 = var_nodearraylist3;
2426 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
2427 cltype8 = type_nullable_parser_nodes__AExpr.color;
2428 idtype9 = type_nullable_parser_nodes__AExpr.id;
2429 if(var_pexprnode3 == NULL) {
2430 var7 = 1;
2431 } else {
2432 if(cltype8 >= var_pexprnode3->type->table_size) {
2433 var7 = 0;
2434 } else {
2435 var7 = var_pexprnode3->type->type_table[cltype8] == idtype9;
2436 }
2437 }
2438 if (!var7) {
2439 fprintf(stderr, "Runtime error: %s", "Assert failed");
2440 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27827);
2441 show_backtrace(1);
2442 }
2443 var_tcparnode4 = var_nodearraylist5;
2444 /* <var_tcparnode4:nullable Object> isa nullable TCpar */
2445 cltype11 = type_nullable_parser_nodes__TCpar.color;
2446 idtype12 = type_nullable_parser_nodes__TCpar.id;
2447 if(var_tcparnode4 == NULL) {
2448 var10 = 1;
2449 } else {
2450 if(cltype11 >= var_tcparnode4->type->table_size) {
2451 var10 = 0;
2452 } else {
2453 var10 = var_tcparnode4->type->type_table[cltype11] == idtype12;
2454 }
2455 }
2456 if (!var10) {
2457 fprintf(stderr, "Runtime error: %s", "Assert failed");
2458 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27829);
2459 show_backtrace(1);
2460 }
2461 var13 = NEW_parser_nodes__AParExpr(&type_parser_nodes__AParExpr);
2462 var14 = NULL;
2463 ((void (*)(val*, val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__AParExpr__init_aparexpr]))(var13, var_toparnode2, var_pexprnode3, var_tcparnode4, var14) /* init_aparexpr on <var13:AParExpr>*/;
2464 var_pexprnode1 = var13;
2465 var_node_list = var_pexprnode1;
2466 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction803> */
2467 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
2468 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
2469 RET_LABEL:;
2470 }
2471 /* method parser#ReduceAction803#action for (self: Object, Parser) */
2472 void VIRTUAL_parser__ReduceAction803__action(val* self, val* p0) {
2473 parser__ReduceAction803__action(self, p0);
2474 RET_LABEL:;
2475 }
2476 /* method parser#ReduceAction804#action for (self: ReduceAction804, Parser) */
2477 void parser__ReduceAction804__action(val* self, val* p0) {
2478 val* var_p /* var p: Parser */;
2479 val* var /* : null */;
2480 val* var_node_list /* var node_list: nullable Object */;
2481 val* var1 /* : nullable Object */;
2482 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
2483 val* var2 /* : nullable Object */;
2484 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2485 val* var3 /* : nullable Object */;
2486 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2487 val* var4 /* : nullable Object */;
2488 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2489 val* var5 /* : nullable Object */;
2490 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2491 val* var6 /* : nullable Object */;
2492 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2493 val* var_toparnode2 /* var toparnode2: nullable Object */;
2494 short int var7 /* : Bool */;
2495 int cltype;
2496 int idtype;
2497 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
2498 short int var8 /* : Bool */;
2499 int cltype9;
2500 int idtype10;
2501 val* var_tcparnode4 /* var tcparnode4: nullable Object */;
2502 short int var11 /* : Bool */;
2503 int cltype12;
2504 int idtype13;
2505 val* var_pannotationsnode5 /* var pannotationsnode5: nullable Object */;
2506 short int var14 /* : Bool */;
2507 int cltype15;
2508 int idtype16;
2509 val* var17 /* : AParExpr */;
2510 val* var_pexprnode1 /* var pexprnode1: nullable AParExpr */;
2511 long var18 /* : Int */;
2512 long var19 /* : Int */;
2513 var_p = p0;
2514 var = NULL;
2515 var_node_list = var;
2516 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2517 var_nodearraylist6 = var1;
2518 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2519 var_nodearraylist5 = var2;
2520 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2521 var_nodearraylist4 = var3;
2522 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2523 var_nodearraylist3 = var4;
2524 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2525 var_nodearraylist2 = var5;
2526 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2527 var_nodearraylist1 = var6;
2528 var_toparnode2 = var_nodearraylist1;
2529 /* <var_toparnode2:nullable Object> isa nullable TOpar */
2530 cltype = type_nullable_parser_nodes__TOpar.color;
2531 idtype = type_nullable_parser_nodes__TOpar.id;
2532 if(var_toparnode2 == NULL) {
2533 var7 = 1;
2534 } else {
2535 if(cltype >= var_toparnode2->type->table_size) {
2536 var7 = 0;
2537 } else {
2538 var7 = var_toparnode2->type->type_table[cltype] == idtype;
2539 }
2540 }
2541 if (!var7) {
2542 fprintf(stderr, "Runtime error: %s", "Assert failed");
2543 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27852);
2544 show_backtrace(1);
2545 }
2546 var_pexprnode3 = var_nodearraylist3;
2547 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
2548 cltype9 = type_nullable_parser_nodes__AExpr.color;
2549 idtype10 = type_nullable_parser_nodes__AExpr.id;
2550 if(var_pexprnode3 == NULL) {
2551 var8 = 1;
2552 } else {
2553 if(cltype9 >= var_pexprnode3->type->table_size) {
2554 var8 = 0;
2555 } else {
2556 var8 = var_pexprnode3->type->type_table[cltype9] == idtype10;
2557 }
2558 }
2559 if (!var8) {
2560 fprintf(stderr, "Runtime error: %s", "Assert failed");
2561 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27854);
2562 show_backtrace(1);
2563 }
2564 var_tcparnode4 = var_nodearraylist5;
2565 /* <var_tcparnode4:nullable Object> isa nullable TCpar */
2566 cltype12 = type_nullable_parser_nodes__TCpar.color;
2567 idtype13 = type_nullable_parser_nodes__TCpar.id;
2568 if(var_tcparnode4 == NULL) {
2569 var11 = 1;
2570 } else {
2571 if(cltype12 >= var_tcparnode4->type->table_size) {
2572 var11 = 0;
2573 } else {
2574 var11 = var_tcparnode4->type->type_table[cltype12] == idtype13;
2575 }
2576 }
2577 if (!var11) {
2578 fprintf(stderr, "Runtime error: %s", "Assert failed");
2579 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27856);
2580 show_backtrace(1);
2581 }
2582 var_pannotationsnode5 = var_nodearraylist6;
2583 /* <var_pannotationsnode5:nullable Object> isa nullable AAnnotations */
2584 cltype15 = type_nullable_parser_nodes__AAnnotations.color;
2585 idtype16 = type_nullable_parser_nodes__AAnnotations.id;
2586 if(var_pannotationsnode5 == NULL) {
2587 var14 = 1;
2588 } else {
2589 if(cltype15 >= var_pannotationsnode5->type->table_size) {
2590 var14 = 0;
2591 } else {
2592 var14 = var_pannotationsnode5->type->type_table[cltype15] == idtype16;
2593 }
2594 }
2595 if (!var14) {
2596 fprintf(stderr, "Runtime error: %s", "Assert failed");
2597 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27858);
2598 show_backtrace(1);
2599 }
2600 var17 = NEW_parser_nodes__AParExpr(&type_parser_nodes__AParExpr);
2601 ((void (*)(val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AParExpr__init_aparexpr]))(var17, var_toparnode2, var_pexprnode3, var_tcparnode4, var_pannotationsnode5) /* init_aparexpr on <var17:AParExpr>*/;
2602 var_pexprnode1 = var17;
2603 var_node_list = var_pexprnode1;
2604 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction804> */
2605 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
2606 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
2607 RET_LABEL:;
2608 }
2609 /* method parser#ReduceAction804#action for (self: Object, Parser) */
2610 void VIRTUAL_parser__ReduceAction804__action(val* self, val* p0) {
2611 parser__ReduceAction804__action(self, p0);
2612 RET_LABEL:;
2613 }
2614 /* method parser#ReduceAction805#action for (self: ReduceAction805, Parser) */
2615 void parser__ReduceAction805__action(val* self, val* p0) {
2616 val* var_p /* var p: Parser */;
2617 val* var /* : null */;
2618 val* var_node_list /* var node_list: nullable Object */;
2619 val* var1 /* : nullable Object */;
2620 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
2621 val* var2 /* : nullable Object */;
2622 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
2623 val* var3 /* : nullable Object */;
2624 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
2625 val* var4 /* : nullable Object */;
2626 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
2627 val* var5 /* : nullable Object */;
2628 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
2629 val* var6 /* : nullable Object */;
2630 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2631 val* var7 /* : nullable Object */;
2632 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2633 val* var8 /* : nullable Object */;
2634 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2635 val* var9 /* : nullable Object */;
2636 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2637 val* var10 /* : nullable Object */;
2638 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2639 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
2640 short int var11 /* : Bool */;
2641 int cltype;
2642 int idtype;
2643 val* var_tkwasnode3 /* var tkwasnode3: nullable Object */;
2644 short int var12 /* : Bool */;
2645 int cltype13;
2646 int idtype14;
2647 val* var_toparnode4 /* var toparnode4: nullable Object */;
2648 short int var15 /* : Bool */;
2649 int cltype16;
2650 int idtype17;
2651 val* var_ptypenode5 /* var ptypenode5: nullable Object */;
2652 short int var18 /* : Bool */;
2653 int cltype19;
2654 int idtype20;
2655 val* var_tcparnode6 /* var tcparnode6: nullable Object */;
2656 short int var21 /* : Bool */;
2657 int cltype22;
2658 int idtype23;
2659 val* var24 /* : AAsCastExpr */;
2660 val* var_pexprnode1 /* var pexprnode1: nullable AAsCastExpr */;
2661 long var25 /* : Int */;
2662 long var26 /* : Int */;
2663 var_p = p0;
2664 var = NULL;
2665 var_node_list = var;
2666 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2667 var_nodearraylist10 = var1;
2668 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2669 var_nodearraylist9 = var2;
2670 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2671 var_nodearraylist8 = var3;
2672 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2673 var_nodearraylist7 = var4;
2674 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2675 var_nodearraylist6 = var5;
2676 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2677 var_nodearraylist5 = var6;
2678 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2679 var_nodearraylist4 = var7;
2680 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2681 var_nodearraylist3 = var8;
2682 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2683 var_nodearraylist2 = var9;
2684 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2685 var_nodearraylist1 = var10;
2686 var_pexprnode2 = var_nodearraylist1;
2687 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2688 cltype = type_nullable_parser_nodes__AExpr.color;
2689 idtype = type_nullable_parser_nodes__AExpr.id;
2690 if(var_pexprnode2 == NULL) {
2691 var11 = 1;
2692 } else {
2693 if(cltype >= var_pexprnode2->type->table_size) {
2694 var11 = 0;
2695 } else {
2696 var11 = var_pexprnode2->type->type_table[cltype] == idtype;
2697 }
2698 }
2699 if (!var11) {
2700 fprintf(stderr, "Runtime error: %s", "Assert failed");
2701 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27885);
2702 show_backtrace(1);
2703 }
2704 var_tkwasnode3 = var_nodearraylist4;
2705 /* <var_tkwasnode3:nullable Object> isa nullable TKwas */
2706 cltype13 = type_nullable_parser_nodes__TKwas.color;
2707 idtype14 = type_nullable_parser_nodes__TKwas.id;
2708 if(var_tkwasnode3 == NULL) {
2709 var12 = 1;
2710 } else {
2711 if(cltype13 >= var_tkwasnode3->type->table_size) {
2712 var12 = 0;
2713 } else {
2714 var12 = var_tkwasnode3->type->type_table[cltype13] == idtype14;
2715 }
2716 }
2717 if (!var12) {
2718 fprintf(stderr, "Runtime error: %s", "Assert failed");
2719 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27887);
2720 show_backtrace(1);
2721 }
2722 var_toparnode4 = var_nodearraylist6;
2723 /* <var_toparnode4:nullable Object> isa nullable TOpar */
2724 cltype16 = type_nullable_parser_nodes__TOpar.color;
2725 idtype17 = type_nullable_parser_nodes__TOpar.id;
2726 if(var_toparnode4 == NULL) {
2727 var15 = 1;
2728 } else {
2729 if(cltype16 >= var_toparnode4->type->table_size) {
2730 var15 = 0;
2731 } else {
2732 var15 = var_toparnode4->type->type_table[cltype16] == idtype17;
2733 }
2734 }
2735 if (!var15) {
2736 fprintf(stderr, "Runtime error: %s", "Assert failed");
2737 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27889);
2738 show_backtrace(1);
2739 }
2740 var_ptypenode5 = var_nodearraylist8;
2741 /* <var_ptypenode5:nullable Object> isa nullable AType */
2742 cltype19 = type_nullable_parser_nodes__AType.color;
2743 idtype20 = type_nullable_parser_nodes__AType.id;
2744 if(var_ptypenode5 == NULL) {
2745 var18 = 1;
2746 } else {
2747 if(cltype19 >= var_ptypenode5->type->table_size) {
2748 var18 = 0;
2749 } else {
2750 var18 = var_ptypenode5->type->type_table[cltype19] == idtype20;
2751 }
2752 }
2753 if (!var18) {
2754 fprintf(stderr, "Runtime error: %s", "Assert failed");
2755 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27891);
2756 show_backtrace(1);
2757 }
2758 var_tcparnode6 = var_nodearraylist10;
2759 /* <var_tcparnode6:nullable Object> isa nullable TCpar */
2760 cltype22 = type_nullable_parser_nodes__TCpar.color;
2761 idtype23 = type_nullable_parser_nodes__TCpar.id;
2762 if(var_tcparnode6 == NULL) {
2763 var21 = 1;
2764 } else {
2765 if(cltype22 >= var_tcparnode6->type->table_size) {
2766 var21 = 0;
2767 } else {
2768 var21 = var_tcparnode6->type->type_table[cltype22] == idtype23;
2769 }
2770 }
2771 if (!var21) {
2772 fprintf(stderr, "Runtime error: %s", "Assert failed");
2773 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27893);
2774 show_backtrace(1);
2775 }
2776 var24 = NEW_parser_nodes__AAsCastExpr(&type_parser_nodes__AAsCastExpr);
2777 ((void (*)(val*, val*, val*, val*, val*, val*))(var24->class->vft[COLOR_parser_prod__AAsCastExpr__init_aascastexpr]))(var24, var_pexprnode2, var_tkwasnode3, var_toparnode4, var_ptypenode5, var_tcparnode6) /* init_aascastexpr on <var24:AAsCastExpr>*/;
2778 var_pexprnode1 = var24;
2779 var_node_list = var_pexprnode1;
2780 var25 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction805> */
2781 var26 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var25) /* go_to on <var_p:Parser>*/;
2782 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var26, var_node_list) /* push on <var_p:Parser>*/;
2783 RET_LABEL:;
2784 }
2785 /* method parser#ReduceAction805#action for (self: Object, Parser) */
2786 void VIRTUAL_parser__ReduceAction805__action(val* self, val* p0) {
2787 parser__ReduceAction805__action(self, p0);
2788 RET_LABEL:;
2789 }
2790 /* method parser#ReduceAction806#action for (self: ReduceAction806, Parser) */
2791 void parser__ReduceAction806__action(val* self, val* p0) {
2792 val* var_p /* var p: Parser */;
2793 val* var /* : null */;
2794 val* var_node_list /* var node_list: nullable Object */;
2795 val* var1 /* : nullable Object */;
2796 val* var_nodearraylist12 /* var nodearraylist12: nullable Object */;
2797 val* var2 /* : nullable Object */;
2798 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
2799 val* var3 /* : nullable Object */;
2800 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
2801 val* var4 /* : nullable Object */;
2802 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
2803 val* var5 /* : nullable Object */;
2804 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
2805 val* var6 /* : nullable Object */;
2806 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
2807 val* var7 /* : nullable Object */;
2808 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
2809 val* var8 /* : nullable Object */;
2810 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2811 val* var9 /* : nullable Object */;
2812 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2813 val* var10 /* : nullable Object */;
2814 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2815 val* var11 /* : nullable Object */;
2816 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2817 val* var12 /* : nullable Object */;
2818 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2819 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
2820 short int var13 /* : Bool */;
2821 int cltype;
2822 int idtype;
2823 val* var_tkwasnode3 /* var tkwasnode3: nullable Object */;
2824 short int var14 /* : Bool */;
2825 int cltype15;
2826 int idtype16;
2827 val* var_toparnode4 /* var toparnode4: nullable Object */;
2828 short int var17 /* : Bool */;
2829 int cltype18;
2830 int idtype19;
2831 val* var_tkwnotnode5 /* var tkwnotnode5: nullable Object */;
2832 short int var20 /* : Bool */;
2833 int cltype21;
2834 int idtype22;
2835 val* var_tkwnullnode6 /* var tkwnullnode6: nullable Object */;
2836 short int var23 /* : Bool */;
2837 int cltype24;
2838 int idtype25;
2839 val* var_tcparnode7 /* var tcparnode7: nullable Object */;
2840 short int var26 /* : Bool */;
2841 int cltype27;
2842 int idtype28;
2843 val* var29 /* : AAsNotnullExpr */;
2844 val* var_pexprnode1 /* var pexprnode1: nullable AAsNotnullExpr */;
2845 long var30 /* : Int */;
2846 long var31 /* : Int */;
2847 var_p = p0;
2848 var = NULL;
2849 var_node_list = var;
2850 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2851 var_nodearraylist12 = var1;
2852 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2853 var_nodearraylist11 = var2;
2854 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2855 var_nodearraylist10 = var3;
2856 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2857 var_nodearraylist9 = var4;
2858 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2859 var_nodearraylist8 = var5;
2860 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2861 var_nodearraylist7 = var6;
2862 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2863 var_nodearraylist6 = var7;
2864 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2865 var_nodearraylist5 = var8;
2866 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2867 var_nodearraylist4 = var9;
2868 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2869 var_nodearraylist3 = var10;
2870 var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2871 var_nodearraylist2 = var11;
2872 var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2873 var_nodearraylist1 = var12;
2874 var_pexprnode2 = var_nodearraylist1;
2875 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2876 cltype = type_nullable_parser_nodes__AExpr.color;
2877 idtype = type_nullable_parser_nodes__AExpr.id;
2878 if(var_pexprnode2 == NULL) {
2879 var13 = 1;
2880 } else {
2881 if(cltype >= var_pexprnode2->type->table_size) {
2882 var13 = 0;
2883 } else {
2884 var13 = var_pexprnode2->type->type_table[cltype] == idtype;
2885 }
2886 }
2887 if (!var13) {
2888 fprintf(stderr, "Runtime error: %s", "Assert failed");
2889 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27923);
2890 show_backtrace(1);
2891 }
2892 var_tkwasnode3 = var_nodearraylist4;
2893 /* <var_tkwasnode3:nullable Object> isa nullable TKwas */
2894 cltype15 = type_nullable_parser_nodes__TKwas.color;
2895 idtype16 = type_nullable_parser_nodes__TKwas.id;
2896 if(var_tkwasnode3 == NULL) {
2897 var14 = 1;
2898 } else {
2899 if(cltype15 >= var_tkwasnode3->type->table_size) {
2900 var14 = 0;
2901 } else {
2902 var14 = var_tkwasnode3->type->type_table[cltype15] == idtype16;
2903 }
2904 }
2905 if (!var14) {
2906 fprintf(stderr, "Runtime error: %s", "Assert failed");
2907 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27925);
2908 show_backtrace(1);
2909 }
2910 var_toparnode4 = var_nodearraylist6;
2911 /* <var_toparnode4:nullable Object> isa nullable TOpar */
2912 cltype18 = type_nullable_parser_nodes__TOpar.color;
2913 idtype19 = type_nullable_parser_nodes__TOpar.id;
2914 if(var_toparnode4 == NULL) {
2915 var17 = 1;
2916 } else {
2917 if(cltype18 >= var_toparnode4->type->table_size) {
2918 var17 = 0;
2919 } else {
2920 var17 = var_toparnode4->type->type_table[cltype18] == idtype19;
2921 }
2922 }
2923 if (!var17) {
2924 fprintf(stderr, "Runtime error: %s", "Assert failed");
2925 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27927);
2926 show_backtrace(1);
2927 }
2928 var_tkwnotnode5 = var_nodearraylist8;
2929 /* <var_tkwnotnode5:nullable Object> isa nullable TKwnot */
2930 cltype21 = type_nullable_parser_nodes__TKwnot.color;
2931 idtype22 = type_nullable_parser_nodes__TKwnot.id;
2932 if(var_tkwnotnode5 == NULL) {
2933 var20 = 1;
2934 } else {
2935 if(cltype21 >= var_tkwnotnode5->type->table_size) {
2936 var20 = 0;
2937 } else {
2938 var20 = var_tkwnotnode5->type->type_table[cltype21] == idtype22;
2939 }
2940 }
2941 if (!var20) {
2942 fprintf(stderr, "Runtime error: %s", "Assert failed");
2943 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27929);
2944 show_backtrace(1);
2945 }
2946 var_tkwnullnode6 = var_nodearraylist10;
2947 /* <var_tkwnullnode6:nullable Object> isa nullable TKwnull */
2948 cltype24 = type_nullable_parser_nodes__TKwnull.color;
2949 idtype25 = type_nullable_parser_nodes__TKwnull.id;
2950 if(var_tkwnullnode6 == NULL) {
2951 var23 = 1;
2952 } else {
2953 if(cltype24 >= var_tkwnullnode6->type->table_size) {
2954 var23 = 0;
2955 } else {
2956 var23 = var_tkwnullnode6->type->type_table[cltype24] == idtype25;
2957 }
2958 }
2959 if (!var23) {
2960 fprintf(stderr, "Runtime error: %s", "Assert failed");
2961 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27931);
2962 show_backtrace(1);
2963 }
2964 var_tcparnode7 = var_nodearraylist12;
2965 /* <var_tcparnode7:nullable Object> isa nullable TCpar */
2966 cltype27 = type_nullable_parser_nodes__TCpar.color;
2967 idtype28 = type_nullable_parser_nodes__TCpar.id;
2968 if(var_tcparnode7 == NULL) {
2969 var26 = 1;
2970 } else {
2971 if(cltype27 >= var_tcparnode7->type->table_size) {
2972 var26 = 0;
2973 } else {
2974 var26 = var_tcparnode7->type->type_table[cltype27] == idtype28;
2975 }
2976 }
2977 if (!var26) {
2978 fprintf(stderr, "Runtime error: %s", "Assert failed");
2979 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27933);
2980 show_backtrace(1);
2981 }
2982 var29 = NEW_parser_nodes__AAsNotnullExpr(&type_parser_nodes__AAsNotnullExpr);
2983 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var29->class->vft[COLOR_parser_prod__AAsNotnullExpr__init_aasnotnullexpr]))(var29, var_pexprnode2, var_tkwasnode3, var_toparnode4, var_tkwnotnode5, var_tkwnullnode6, var_tcparnode7) /* init_aasnotnullexpr on <var29:AAsNotnullExpr>*/;
2984 var_pexprnode1 = var29;
2985 var_node_list = var_pexprnode1;
2986 var30 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction806> */
2987 var31 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var30) /* go_to on <var_p:Parser>*/;
2988 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var31, var_node_list) /* push on <var_p:Parser>*/;
2989 RET_LABEL:;
2990 }
2991 /* method parser#ReduceAction806#action for (self: Object, Parser) */
2992 void VIRTUAL_parser__ReduceAction806__action(val* self, val* p0) {
2993 parser__ReduceAction806__action(self, p0);
2994 RET_LABEL:;
2995 }
2996 /* method parser#ReduceAction807#action for (self: ReduceAction807, Parser) */
2997 void parser__ReduceAction807__action(val* self, val* p0) {
2998 val* var_p /* var p: Parser */;
2999 val* var /* : null */;
3000 val* var_node_list /* var node_list: nullable Object */;
3001 val* var1 /* : nullable Object */;
3002 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3003 val* var2 /* : nullable Object */;
3004 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3005 val* var3 /* : Array[Object] */;
3006 val* var_listnode4 /* var listnode4: Array[Object] */;
3007 val* var_listnode2 /* var listnode2: nullable Object */;
3008 short int var4 /* : Bool */;
3009 int cltype;
3010 int idtype;
3011 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
3012 short int var5 /* : Bool */;
3013 int cltype6;
3014 int idtype7;
3015 val* var8 /* : Array[Object] */;
3016 val* var9 /* : null */;
3017 short int var10 /* : Bool */;
3018 val* var11 /* : ASuperstringExpr */;
3019 val* var12 /* : null */;
3020 val* var_pexprnode1 /* var pexprnode1: nullable ASuperstringExpr */;
3021 long var13 /* : Int */;
3022 long var14 /* : Int */;
3023 var_p = p0;
3024 var = NULL;
3025 var_node_list = var;
3026 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3027 var_nodearraylist2 = var1;
3028 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3029 var_nodearraylist1 = var2;
3030 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
3031 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
3032 var_listnode4 = var3;
3033 var_listnode2 = var_nodearraylist1;
3034 /* <var_listnode2:nullable Object> isa Array[Object] */
3035 cltype = type_array__Arraykernel__Object.color;
3036 idtype = type_array__Arraykernel__Object.id;
3037 if(var_listnode2 == NULL) {
3038 var4 = 0;
3039 } else {
3040 if(cltype >= var_listnode2->type->table_size) {
3041 var4 = 0;
3042 } else {
3043 var4 = var_listnode2->type->type_table[cltype] == idtype;
3044 }
3045 }
3046 if (!var4) {
3047 fprintf(stderr, "Runtime error: %s", "Assert failed");
3048 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27955);
3049 show_backtrace(1);
3050 }
3051 var_pexprnode3 = var_nodearraylist2;
3052 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
3053 cltype6 = type_nullable_parser_nodes__AExpr.color;
3054 idtype7 = type_nullable_parser_nodes__AExpr.id;
3055 if(var_pexprnode3 == NULL) {
3056 var5 = 1;
3057 } else {
3058 if(cltype6 >= var_pexprnode3->type->table_size) {
3059 var5 = 0;
3060 } else {
3061 var5 = var_pexprnode3->type->type_table[cltype6] == idtype7;
3062 }
3063 }
3064 if (!var5) {
3065 fprintf(stderr, "Runtime error: %s", "Assert failed");
3066 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27957);
3067 show_backtrace(1);
3068 }
3069 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode2) /* concat on <self:ReduceAction807>*/;
3070 var_listnode4 = var8;
3071 var9 = NULL;
3072 if (var_pexprnode3 == NULL) {
3073 var10 = 0; /* is null */
3074 } else {
3075 var10 = 1; /* arg is null and recv is not */
3076 }
3077 if (var10){
3078 ((void (*)(val*, val*))(var_listnode4->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode4, var_pexprnode3) /* add on <var_listnode4:Array[Object]>*/;
3079 } else {
3080 }
3081 var11 = NEW_parser_nodes__ASuperstringExpr(&type_parser_nodes__ASuperstringExpr);
3082 var12 = NULL;
3083 ((void (*)(val*, val*, val*))(var11->class->vft[COLOR_parser_prod__ASuperstringExpr__init_asuperstringexpr]))(var11, var_listnode4, var12) /* init_asuperstringexpr on <var11:ASuperstringExpr>*/;
3084 var_pexprnode1 = var11;
3085 var_node_list = var_pexprnode1;
3086 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction807> */
3087 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
3088 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
3089 RET_LABEL:;
3090 }
3091 /* method parser#ReduceAction807#action for (self: Object, Parser) */
3092 void VIRTUAL_parser__ReduceAction807__action(val* self, val* p0) {
3093 parser__ReduceAction807__action(self, p0);
3094 RET_LABEL:;
3095 }
3096 /* method parser#ReduceAction808#action for (self: ReduceAction808, Parser) */
3097 void parser__ReduceAction808__action(val* self, val* p0) {
3098 val* var_p /* var p: Parser */;
3099 val* var /* : null */;
3100 val* var_node_list /* var node_list: nullable Object */;
3101 val* var1 /* : nullable Object */;
3102 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3103 val* var2 /* : nullable Object */;
3104 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3105 val* var3 /* : nullable Object */;
3106 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3107 val* var4 /* : Array[Object] */;
3108 val* var_listnode5 /* var listnode5: Array[Object] */;
3109 val* var_listnode2 /* var listnode2: nullable Object */;
3110 short int var5 /* : Bool */;
3111 int cltype;
3112 int idtype;
3113 val* var_listnode3 /* var listnode3: nullable Object */;
3114 short int var6 /* : Bool */;
3115 int cltype7;
3116 int idtype8;
3117 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
3118 short int var9 /* : Bool */;
3119 int cltype10;
3120 int idtype11;
3121 val* var12 /* : Array[Object] */;
3122 val* var13 /* : Array[Object] */;
3123 val* var14 /* : null */;
3124 short int var15 /* : Bool */;
3125 val* var16 /* : ASuperstringExpr */;
3126 val* var17 /* : null */;
3127 val* var_pexprnode1 /* var pexprnode1: nullable ASuperstringExpr */;
3128 long var18 /* : Int */;
3129 long var19 /* : Int */;
3130 var_p = p0;
3131 var = NULL;
3132 var_node_list = var;
3133 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3134 var_nodearraylist3 = var1;
3135 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3136 var_nodearraylist2 = var2;
3137 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3138 var_nodearraylist1 = var3;
3139 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
3140 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
3141 var_listnode5 = var4;
3142 var_listnode2 = var_nodearraylist1;
3143 /* <var_listnode2:nullable Object> isa Array[Object] */
3144 cltype = type_array__Arraykernel__Object.color;
3145 idtype = type_array__Arraykernel__Object.id;
3146 if(var_listnode2 == NULL) {
3147 var5 = 0;
3148 } else {
3149 if(cltype >= var_listnode2->type->table_size) {
3150 var5 = 0;
3151 } else {
3152 var5 = var_listnode2->type->type_table[cltype] == idtype;
3153 }
3154 }
3155 if (!var5) {
3156 fprintf(stderr, "Runtime error: %s", "Assert failed");
3157 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27980);
3158 show_backtrace(1);
3159 }
3160 var_listnode3 = var_nodearraylist2;
3161 /* <var_listnode3:nullable Object> isa Array[Object] */
3162 cltype7 = type_array__Arraykernel__Object.color;
3163 idtype8 = type_array__Arraykernel__Object.id;
3164 if(var_listnode3 == NULL) {
3165 var6 = 0;
3166 } else {
3167 if(cltype7 >= var_listnode3->type->table_size) {
3168 var6 = 0;
3169 } else {
3170 var6 = var_listnode3->type->type_table[cltype7] == idtype8;
3171 }
3172 }
3173 if (!var6) {
3174 fprintf(stderr, "Runtime error: %s", "Assert failed");
3175 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27982);
3176 show_backtrace(1);
3177 }
3178 var_pexprnode4 = var_nodearraylist3;
3179 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
3180 cltype10 = type_nullable_parser_nodes__AExpr.color;
3181 idtype11 = type_nullable_parser_nodes__AExpr.id;
3182 if(var_pexprnode4 == NULL) {
3183 var9 = 1;
3184 } else {
3185 if(cltype10 >= var_pexprnode4->type->table_size) {
3186 var9 = 0;
3187 } else {
3188 var9 = var_pexprnode4->type->type_table[cltype10] == idtype11;
3189 }
3190 }
3191 if (!var9) {
3192 fprintf(stderr, "Runtime error: %s", "Assert failed");
3193 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27984);
3194 show_backtrace(1);
3195 }
3196 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode2) /* concat on <self:ReduceAction808>*/;
3197 var_listnode5 = var12;
3198 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode3) /* concat on <self:ReduceAction808>*/;
3199 var_listnode5 = var13;
3200 var14 = NULL;
3201 if (var_pexprnode4 == NULL) {
3202 var15 = 0; /* is null */
3203 } else {
3204 var15 = 1; /* arg is null and recv is not */
3205 }
3206 if (var15){
3207 ((void (*)(val*, val*))(var_listnode5->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode5, var_pexprnode4) /* add on <var_listnode5:Array[Object]>*/;
3208 } else {
3209 }
3210 var16 = NEW_parser_nodes__ASuperstringExpr(&type_parser_nodes__ASuperstringExpr);
3211 var17 = NULL;
3212 ((void (*)(val*, val*, val*))(var16->class->vft[COLOR_parser_prod__ASuperstringExpr__init_asuperstringexpr]))(var16, var_listnode5, var17) /* init_asuperstringexpr on <var16:ASuperstringExpr>*/;
3213 var_pexprnode1 = var16;
3214 var_node_list = var_pexprnode1;
3215 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction808> */
3216 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
3217 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
3218 RET_LABEL:;
3219 }
3220 /* method parser#ReduceAction808#action for (self: Object, Parser) */
3221 void VIRTUAL_parser__ReduceAction808__action(val* self, val* p0) {
3222 parser__ReduceAction808__action(self, p0);
3223 RET_LABEL:;
3224 }
3225 /* method parser#ReduceAction809#action for (self: ReduceAction809, Parser) */
3226 void parser__ReduceAction809__action(val* self, val* p0) {
3227 val* var_p /* var p: Parser */;
3228 val* var /* : null */;
3229 val* var_node_list /* var node_list: nullable Object */;
3230 val* var1 /* : nullable Object */;
3231 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3232 val* var2 /* : nullable Object */;
3233 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3234 val* var3 /* : nullable Object */;
3235 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3236 val* var4 /* : Array[Object] */;
3237 val* var_listnode4 /* var listnode4: Array[Object] */;
3238 val* var_listnode2 /* var listnode2: nullable Object */;
3239 short int var5 /* : Bool */;
3240 int cltype;
3241 int idtype;
3242 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
3243 short int var6 /* : Bool */;
3244 int cltype7;
3245 int idtype8;
3246 val* var9 /* : Array[Object] */;
3247 val* var10 /* : null */;
3248 short int var11 /* : Bool */;
3249 val* var_pannotationsnode5 /* var pannotationsnode5: nullable Object */;
3250 short int var12 /* : Bool */;
3251 int cltype13;
3252 int idtype14;
3253 val* var15 /* : ASuperstringExpr */;
3254 val* var_pexprnode1 /* var pexprnode1: nullable ASuperstringExpr */;
3255 long var16 /* : Int */;
3256 long var17 /* : Int */;
3257 var_p = p0;
3258 var = NULL;
3259 var_node_list = var;
3260 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3261 var_nodearraylist3 = var1;
3262 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3263 var_nodearraylist2 = var2;
3264 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3265 var_nodearraylist1 = var3;
3266 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
3267 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
3268 var_listnode4 = var4;
3269 var_listnode2 = var_nodearraylist1;
3270 /* <var_listnode2:nullable Object> isa Array[Object] */
3271 cltype = type_array__Arraykernel__Object.color;
3272 idtype = type_array__Arraykernel__Object.id;
3273 if(var_listnode2 == NULL) {
3274 var5 = 0;
3275 } else {
3276 if(cltype >= var_listnode2->type->table_size) {
3277 var5 = 0;
3278 } else {
3279 var5 = var_listnode2->type->type_table[cltype] == idtype;
3280 }
3281 }
3282 if (!var5) {
3283 fprintf(stderr, "Runtime error: %s", "Assert failed");
3284 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28008);
3285 show_backtrace(1);
3286 }
3287 var_pexprnode3 = var_nodearraylist2;
3288 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
3289 cltype7 = type_nullable_parser_nodes__AExpr.color;
3290 idtype8 = type_nullable_parser_nodes__AExpr.id;
3291 if(var_pexprnode3 == NULL) {
3292 var6 = 1;
3293 } else {
3294 if(cltype7 >= var_pexprnode3->type->table_size) {
3295 var6 = 0;
3296 } else {
3297 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
3298 }
3299 }
3300 if (!var6) {
3301 fprintf(stderr, "Runtime error: %s", "Assert failed");
3302 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28010);
3303 show_backtrace(1);
3304 }
3305 var9 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode2) /* concat on <self:ReduceAction809>*/;
3306 var_listnode4 = var9;
3307 var10 = NULL;
3308 if (var_pexprnode3 == NULL) {
3309 var11 = 0; /* is null */
3310 } else {
3311 var11 = 1; /* arg is null and recv is not */
3312 }
3313 if (var11){
3314 ((void (*)(val*, val*))(var_listnode4->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode4, var_pexprnode3) /* add on <var_listnode4:Array[Object]>*/;
3315 } else {
3316 }
3317 var_pannotationsnode5 = var_nodearraylist3;
3318 /* <var_pannotationsnode5:nullable Object> isa nullable AAnnotations */
3319 cltype13 = type_nullable_parser_nodes__AAnnotations.color;
3320 idtype14 = type_nullable_parser_nodes__AAnnotations.id;
3321 if(var_pannotationsnode5 == NULL) {
3322 var12 = 1;
3323 } else {
3324 if(cltype13 >= var_pannotationsnode5->type->table_size) {
3325 var12 = 0;
3326 } else {
3327 var12 = var_pannotationsnode5->type->type_table[cltype13] == idtype14;
3328 }
3329 }
3330 if (!var12) {
3331 fprintf(stderr, "Runtime error: %s", "Assert failed");
3332 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28016);
3333 show_backtrace(1);
3334 }
3335 var15 = NEW_parser_nodes__ASuperstringExpr(&type_parser_nodes__ASuperstringExpr);
3336 ((void (*)(val*, val*, val*))(var15->class->vft[COLOR_parser_prod__ASuperstringExpr__init_asuperstringexpr]))(var15, var_listnode4, var_pannotationsnode5) /* init_asuperstringexpr on <var15:ASuperstringExpr>*/;
3337 var_pexprnode1 = var15;
3338 var_node_list = var_pexprnode1;
3339 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction809> */
3340 var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
3341 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
3342 RET_LABEL:;
3343 }
3344 /* method parser#ReduceAction809#action for (self: Object, Parser) */
3345 void VIRTUAL_parser__ReduceAction809__action(val* self, val* p0) {
3346 parser__ReduceAction809__action(self, p0);
3347 RET_LABEL:;
3348 }
3349 /* method parser#ReduceAction810#action for (self: ReduceAction810, Parser) */
3350 void parser__ReduceAction810__action(val* self, val* p0) {
3351 val* var_p /* var p: Parser */;
3352 val* var /* : null */;
3353 val* var_node_list /* var node_list: nullable Object */;
3354 val* var1 /* : nullable Object */;
3355 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3356 val* var2 /* : nullable Object */;
3357 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3358 val* var3 /* : nullable Object */;
3359 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3360 val* var4 /* : nullable Object */;
3361 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3362 val* var5 /* : Array[Object] */;
3363 val* var_listnode5 /* var listnode5: Array[Object] */;
3364 val* var_listnode2 /* var listnode2: nullable Object */;
3365 short int var6 /* : Bool */;
3366 int cltype;
3367 int idtype;
3368 val* var_listnode3 /* var listnode3: nullable Object */;
3369 short int var7 /* : Bool */;
3370 int cltype8;
3371 int idtype9;
3372 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
3373 short int var10 /* : Bool */;
3374 int cltype11;
3375 int idtype12;
3376 val* var13 /* : Array[Object] */;
3377 val* var14 /* : Array[Object] */;
3378 val* var15 /* : null */;
3379 short int var16 /* : Bool */;
3380 val* var_pannotationsnode6 /* var pannotationsnode6: nullable Object */;
3381 short int var17 /* : Bool */;
3382 int cltype18;
3383 int idtype19;
3384 val* var20 /* : ASuperstringExpr */;
3385 val* var_pexprnode1 /* var pexprnode1: nullable ASuperstringExpr */;
3386 long var21 /* : Int */;
3387 long var22 /* : Int */;
3388 var_p = p0;
3389 var = NULL;
3390 var_node_list = var;
3391 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3392 var_nodearraylist4 = var1;
3393 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3394 var_nodearraylist3 = var2;
3395 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3396 var_nodearraylist2 = var3;
3397 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3398 var_nodearraylist1 = var4;
3399 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
3400 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
3401 var_listnode5 = var5;
3402 var_listnode2 = var_nodearraylist1;
3403 /* <var_listnode2:nullable Object> isa Array[Object] */
3404 cltype = type_array__Arraykernel__Object.color;
3405 idtype = type_array__Arraykernel__Object.id;
3406 if(var_listnode2 == NULL) {
3407 var6 = 0;
3408 } else {
3409 if(cltype >= var_listnode2->type->table_size) {
3410 var6 = 0;
3411 } else {
3412 var6 = var_listnode2->type->type_table[cltype] == idtype;
3413 }
3414 }
3415 if (!var6) {
3416 fprintf(stderr, "Runtime error: %s", "Assert failed");
3417 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28036);
3418 show_backtrace(1);
3419 }
3420 var_listnode3 = var_nodearraylist2;
3421 /* <var_listnode3:nullable Object> isa Array[Object] */
3422 cltype8 = type_array__Arraykernel__Object.color;
3423 idtype9 = type_array__Arraykernel__Object.id;
3424 if(var_listnode3 == NULL) {
3425 var7 = 0;
3426 } else {
3427 if(cltype8 >= var_listnode3->type->table_size) {
3428 var7 = 0;
3429 } else {
3430 var7 = var_listnode3->type->type_table[cltype8] == idtype9;
3431 }
3432 }
3433 if (!var7) {
3434 fprintf(stderr, "Runtime error: %s", "Assert failed");
3435 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28038);
3436 show_backtrace(1);
3437 }
3438 var_pexprnode4 = var_nodearraylist3;
3439 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
3440 cltype11 = type_nullable_parser_nodes__AExpr.color;
3441 idtype12 = type_nullable_parser_nodes__AExpr.id;
3442 if(var_pexprnode4 == NULL) {
3443 var10 = 1;
3444 } else {
3445 if(cltype11 >= var_pexprnode4->type->table_size) {
3446 var10 = 0;
3447 } else {
3448 var10 = var_pexprnode4->type->type_table[cltype11] == idtype12;
3449 }
3450 }
3451 if (!var10) {
3452 fprintf(stderr, "Runtime error: %s", "Assert failed");
3453 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28040);
3454 show_backtrace(1);
3455 }
3456 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode2) /* concat on <self:ReduceAction810>*/;
3457 var_listnode5 = var13;
3458 var14 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode3) /* concat on <self:ReduceAction810>*/;
3459 var_listnode5 = var14;
3460 var15 = NULL;
3461 if (var_pexprnode4 == NULL) {
3462 var16 = 0; /* is null */
3463 } else {
3464 var16 = 1; /* arg is null and recv is not */
3465 }
3466 if (var16){
3467 ((void (*)(val*, val*))(var_listnode5->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode5, var_pexprnode4) /* add on <var_listnode5:Array[Object]>*/;
3468 } else {
3469 }
3470 var_pannotationsnode6 = var_nodearraylist4;
3471 /* <var_pannotationsnode6:nullable Object> isa nullable AAnnotations */
3472 cltype18 = type_nullable_parser_nodes__AAnnotations.color;
3473 idtype19 = type_nullable_parser_nodes__AAnnotations.id;
3474 if(var_pannotationsnode6 == NULL) {
3475 var17 = 1;
3476 } else {
3477 if(cltype18 >= var_pannotationsnode6->type->table_size) {
3478 var17 = 0;
3479 } else {
3480 var17 = var_pannotationsnode6->type->type_table[cltype18] == idtype19;
3481 }
3482 }
3483 if (!var17) {
3484 fprintf(stderr, "Runtime error: %s", "Assert failed");
3485 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28047);
3486 show_backtrace(1);
3487 }
3488 var20 = NEW_parser_nodes__ASuperstringExpr(&type_parser_nodes__ASuperstringExpr);
3489 ((void (*)(val*, val*, val*))(var20->class->vft[COLOR_parser_prod__ASuperstringExpr__init_asuperstringexpr]))(var20, var_listnode5, var_pannotationsnode6) /* init_asuperstringexpr on <var20:ASuperstringExpr>*/;
3490 var_pexprnode1 = var20;
3491 var_node_list = var_pexprnode1;
3492 var21 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction810> */
3493 var22 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var21) /* go_to on <var_p:Parser>*/;
3494 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var22, var_node_list) /* push on <var_p:Parser>*/;
3495 RET_LABEL:;
3496 }
3497 /* method parser#ReduceAction810#action for (self: Object, Parser) */
3498 void VIRTUAL_parser__ReduceAction810__action(val* self, val* p0) {
3499 parser__ReduceAction810__action(self, p0);
3500 RET_LABEL:;
3501 }
3502 /* method parser#ReduceAction811#action for (self: ReduceAction811, Parser) */
3503 void parser__ReduceAction811__action(val* self, val* p0) {
3504 val* var_p /* var p: Parser */;
3505 val* var /* : null */;
3506 val* var_node_list /* var node_list: nullable Object */;
3507 val* var1 /* : nullable Object */;
3508 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3509 val* var2 /* : nullable Object */;
3510 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3511 val* var3 /* : nullable Object */;
3512 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3513 val* var4 /* : nullable Object */;
3514 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3515 val* var5 /* : Array[Object] */;
3516 val* var_listnode3 /* var listnode3: Array[Object] */;
3517 val* var_pexprnode1 /* var pexprnode1: nullable Object */;
3518 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
3519 val* var6 /* : null */;
3520 short int var7 /* : Bool */;
3521 val* var8 /* : null */;
3522 short int var9 /* : Bool */;
3523 long var10 /* : Int */;
3524 long var11 /* : Int */;
3525 var_p = p0;
3526 var = NULL;
3527 var_node_list = var;
3528 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3529 var_nodearraylist4 = var1;
3530 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3531 var_nodearraylist3 = var2;
3532 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3533 var_nodearraylist2 = var3;
3534 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3535 var_nodearraylist1 = var4;
3536 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
3537 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
3538 var_listnode3 = var5;
3539 var_pexprnode1 = var_nodearraylist1;
3540 var_pexprnode2 = var_nodearraylist3;
3541 var6 = NULL;
3542 if (var_pexprnode1 == NULL) {
3543 var7 = 0; /* is null */
3544 } else {
3545 var7 = 1; /* arg is null and recv is not */
3546 }
3547 if (var7){
3548 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pexprnode1) /* add on <var_listnode3:Array[Object]>*/;
3549 } else {
3550 }
3551 var8 = NULL;
3552 if (var_pexprnode2 == NULL) {
3553 var9 = 0; /* is null */
3554 } else {
3555 var9 = 1; /* arg is null and recv is not */
3556 }
3557 if (var9){
3558 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pexprnode2) /* add on <var_listnode3:Array[Object]>*/;
3559 } else {
3560 }
3561 var_node_list = var_listnode3;
3562 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction811> */
3563 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
3564 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
3565 RET_LABEL:;
3566 }
3567 /* method parser#ReduceAction811#action for (self: Object, Parser) */
3568 void VIRTUAL_parser__ReduceAction811__action(val* self, val* p0) {
3569 parser__ReduceAction811__action(self, p0);
3570 RET_LABEL:;
3571 }
3572 /* method parser#ReduceAction812#action for (self: ReduceAction812, Parser) */
3573 void parser__ReduceAction812__action(val* self, val* p0) {
3574 val* var_p /* var p: Parser */;
3575 val* var /* : null */;
3576 val* var_node_list /* var node_list: nullable Object */;
3577 val* var1 /* : nullable Object */;
3578 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3579 val* var2 /* : nullable Object */;
3580 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3581 val* var3 /* : Array[Object] */;
3582 val* var_listnode2 /* var listnode2: Array[Object] */;
3583 val* var_pexprnode1 /* var pexprnode1: nullable Object */;
3584 val* var4 /* : null */;
3585 short int var5 /* : Bool */;
3586 long var6 /* : Int */;
3587 long var7 /* : Int */;
3588 var_p = p0;
3589 var = NULL;
3590 var_node_list = var;
3591 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3592 var_nodearraylist2 = var1;
3593 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3594 var_nodearraylist1 = var2;
3595 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
3596 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
3597 var_listnode2 = var3;
3598 var_pexprnode1 = var_nodearraylist1;
3599 var4 = NULL;
3600 if (var_pexprnode1 == NULL) {
3601 var5 = 0; /* is null */
3602 } else {
3603 var5 = 1; /* arg is null and recv is not */
3604 }
3605 if (var5){
3606 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_pexprnode1) /* add on <var_listnode2:Array[Object]>*/;
3607 } else {
3608 }
3609 var_node_list = var_listnode2;
3610 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction812> */
3611 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
3612 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
3613 RET_LABEL:;
3614 }
3615 /* method parser#ReduceAction812#action for (self: Object, Parser) */
3616 void VIRTUAL_parser__ReduceAction812__action(val* self, val* p0) {
3617 parser__ReduceAction812__action(self, p0);
3618 RET_LABEL:;
3619 }
3620 /* method parser#ReduceAction813#action for (self: ReduceAction813, Parser) */
3621 void parser__ReduceAction813__action(val* self, val* p0) {
3622 val* var_p /* var p: Parser */;
3623 val* var /* : null */;
3624 val* var_node_list /* var node_list: nullable Object */;
3625 val* var1 /* : nullable Object */;
3626 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3627 val* var_tstartstringnode2 /* var tstartstringnode2: nullable Object */;
3628 short int var2 /* : Bool */;
3629 int cltype;
3630 int idtype;
3631 val* var3 /* : AStartStringExpr */;
3632 val* var_pexprnode1 /* var pexprnode1: nullable AStartStringExpr */;
3633 long var4 /* : Int */;
3634 long var5 /* : Int */;
3635 var_p = p0;
3636 var = NULL;
3637 var_node_list = var;
3638 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3639 var_nodearraylist1 = var1;
3640 var_tstartstringnode2 = var_nodearraylist1;
3641 /* <var_tstartstringnode2:nullable Object> isa nullable TStartString */
3642 cltype = type_nullable_parser_nodes__TStartString.color;
3643 idtype = type_nullable_parser_nodes__TStartString.id;
3644 if(var_tstartstringnode2 == NULL) {
3645 var2 = 1;
3646 } else {
3647 if(cltype >= var_tstartstringnode2->type->table_size) {
3648 var2 = 0;
3649 } else {
3650 var2 = var_tstartstringnode2->type->type_table[cltype] == idtype;
3651 }
3652 }
3653 if (!var2) {
3654 fprintf(stderr, "Runtime error: %s", "Assert failed");
3655 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28101);
3656 show_backtrace(1);
3657 }
3658 var3 = NEW_parser_nodes__AStartStringExpr(&type_parser_nodes__AStartStringExpr);
3659 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AStartStringExpr__init_astartstringexpr]))(var3, var_tstartstringnode2) /* init_astartstringexpr on <var3:AStartStringExpr>*/;
3660 var_pexprnode1 = var3;
3661 var_node_list = var_pexprnode1;
3662 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction813> */
3663 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
3664 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
3665 RET_LABEL:;
3666 }
3667 /* method parser#ReduceAction813#action for (self: Object, Parser) */
3668 void VIRTUAL_parser__ReduceAction813__action(val* self, val* p0) {
3669 parser__ReduceAction813__action(self, p0);
3670 RET_LABEL:;
3671 }
3672 /* method parser#ReduceAction816#action for (self: ReduceAction816, Parser) */
3673 void parser__ReduceAction816__action(val* self, val* p0) {
3674 val* var_p /* var p: Parser */;
3675 val* var /* : null */;
3676 val* var_node_list /* var node_list: nullable Object */;
3677 val* var1 /* : nullable Object */;
3678 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3679 val* var_tmidstringnode2 /* var tmidstringnode2: nullable Object */;
3680 short int var2 /* : Bool */;
3681 int cltype;
3682 int idtype;
3683 val* var3 /* : AMidStringExpr */;
3684 val* var_pexprnode1 /* var pexprnode1: nullable AMidStringExpr */;
3685 long var4 /* : Int */;
3686 long var5 /* : Int */;
3687 var_p = p0;
3688 var = NULL;
3689 var_node_list = var;
3690 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3691 var_nodearraylist1 = var1;
3692 var_tmidstringnode2 = var_nodearraylist1;
3693 /* <var_tmidstringnode2:nullable Object> isa nullable TMidString */
3694 cltype = type_nullable_parser_nodes__TMidString.color;
3695 idtype = type_nullable_parser_nodes__TMidString.id;
3696 if(var_tmidstringnode2 == NULL) {
3697 var2 = 1;
3698 } else {
3699 if(cltype >= var_tmidstringnode2->type->table_size) {
3700 var2 = 0;
3701 } else {
3702 var2 = var_tmidstringnode2->type->type_table[cltype] == idtype;
3703 }
3704 }
3705 if (!var2) {
3706 fprintf(stderr, "Runtime error: %s", "Assert failed");
3707 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28116);
3708 show_backtrace(1);
3709 }
3710 var3 = NEW_parser_nodes__AMidStringExpr(&type_parser_nodes__AMidStringExpr);
3711 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AMidStringExpr__init_amidstringexpr]))(var3, var_tmidstringnode2) /* init_amidstringexpr on <var3:AMidStringExpr>*/;
3712 var_pexprnode1 = var3;
3713 var_node_list = var_pexprnode1;
3714 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction816> */
3715 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
3716 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
3717 RET_LABEL:;
3718 }
3719 /* method parser#ReduceAction816#action for (self: Object, Parser) */
3720 void VIRTUAL_parser__ReduceAction816__action(val* self, val* p0) {
3721 parser__ReduceAction816__action(self, p0);
3722 RET_LABEL:;
3723 }
3724 /* method parser#ReduceAction817#action for (self: ReduceAction817, Parser) */
3725 void parser__ReduceAction817__action(val* self, val* p0) {
3726 val* var_p /* var p: Parser */;
3727 val* var /* : null */;
3728 val* var_node_list /* var node_list: nullable Object */;
3729 val* var1 /* : nullable Object */;
3730 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3731 val* var_tendstringnode2 /* var tendstringnode2: nullable Object */;
3732 short int var2 /* : Bool */;
3733 int cltype;
3734 int idtype;
3735 val* var3 /* : AEndStringExpr */;
3736 val* var_pexprnode1 /* var pexprnode1: nullable AEndStringExpr */;
3737 long var4 /* : Int */;
3738 long var5 /* : Int */;
3739 var_p = p0;
3740 var = NULL;
3741 var_node_list = var;
3742 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3743 var_nodearraylist1 = var1;
3744 var_tendstringnode2 = var_nodearraylist1;
3745 /* <var_tendstringnode2:nullable Object> isa nullable TEndString */
3746 cltype = type_nullable_parser_nodes__TEndString.color;
3747 idtype = type_nullable_parser_nodes__TEndString.id;
3748 if(var_tendstringnode2 == NULL) {
3749 var2 = 1;
3750 } else {
3751 if(cltype >= var_tendstringnode2->type->table_size) {
3752 var2 = 0;
3753 } else {
3754 var2 = var_tendstringnode2->type->type_table[cltype] == idtype;
3755 }
3756 }
3757 if (!var2) {
3758 fprintf(stderr, "Runtime error: %s", "Assert failed");
3759 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28131);
3760 show_backtrace(1);
3761 }
3762 var3 = NEW_parser_nodes__AEndStringExpr(&type_parser_nodes__AEndStringExpr);
3763 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AEndStringExpr__init_aendstringexpr]))(var3, var_tendstringnode2) /* init_aendstringexpr on <var3:AEndStringExpr>*/;
3764 var_pexprnode1 = var3;
3765 var_node_list = var_pexprnode1;
3766 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction817> */
3767 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
3768 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
3769 RET_LABEL:;
3770 }
3771 /* method parser#ReduceAction817#action for (self: Object, Parser) */
3772 void VIRTUAL_parser__ReduceAction817__action(val* self, val* p0) {
3773 parser__ReduceAction817__action(self, p0);
3774 RET_LABEL:;
3775 }
3776 /* method parser#ReduceAction818#action for (self: ReduceAction818, Parser) */
3777 void parser__ReduceAction818__action(val* self, val* p0) {
3778 val* var_p /* var p: Parser */;
3779 val* var /* : null */;
3780 val* var_node_list /* var node_list: nullable Object */;
3781 val* var1 /* : nullable Object */;
3782 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3783 val* var2 /* : nullable Object */;
3784 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3785 val* var3 /* : Array[Object] */;
3786 val* var_listnode5 /* var listnode5: Array[Object] */;
3787 val* var_tatnode2 /* var tatnode2: nullable Object */;
3788 short int var4 /* : Bool */;
3789 int cltype;
3790 int idtype;
3791 val* var_pannotationnode4 /* var pannotationnode4: nullable Object */;
3792 short int var5 /* : Bool */;
3793 int cltype6;
3794 int idtype7;
3795 val* var8 /* : null */;
3796 short int var9 /* : Bool */;
3797 val* var10 /* : AAnnotations */;
3798 val* var11 /* : null */;
3799 val* var12 /* : null */;
3800 val* var_pannotationsnode1 /* var pannotationsnode1: nullable AAnnotations */;
3801 long var13 /* : Int */;
3802 long var14 /* : Int */;
3803 var_p = p0;
3804 var = NULL;
3805 var_node_list = var;
3806 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3807 var_nodearraylist2 = var1;
3808 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3809 var_nodearraylist1 = var2;
3810 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
3811 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
3812 var_listnode5 = var3;
3813 var_tatnode2 = var_nodearraylist1;
3814 /* <var_tatnode2:nullable Object> isa nullable TAt */
3815 cltype = type_nullable_parser_nodes__TAt.color;
3816 idtype = type_nullable_parser_nodes__TAt.id;
3817 if(var_tatnode2 == NULL) {
3818 var4 = 1;
3819 } else {
3820 if(cltype >= var_tatnode2->type->table_size) {
3821 var4 = 0;
3822 } else {
3823 var4 = var_tatnode2->type->type_table[cltype] == idtype;
3824 }
3825 }
3826 if (!var4) {
3827 fprintf(stderr, "Runtime error: %s", "Assert failed");
3828 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28148);
3829 show_backtrace(1);
3830 }
3831 var_pannotationnode4 = var_nodearraylist2;
3832 /* <var_pannotationnode4:nullable Object> isa nullable AAnnotation */
3833 cltype6 = type_nullable_parser_nodes__AAnnotation.color;
3834 idtype7 = type_nullable_parser_nodes__AAnnotation.id;
3835 if(var_pannotationnode4 == NULL) {
3836 var5 = 1;
3837 } else {
3838 if(cltype6 >= var_pannotationnode4->type->table_size) {
3839 var5 = 0;
3840 } else {
3841 var5 = var_pannotationnode4->type->type_table[cltype6] == idtype7;
3842 }
3843 }
3844 if (!var5) {
3845 fprintf(stderr, "Runtime error: %s", "Assert failed");
3846 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28150);
3847 show_backtrace(1);
3848 }
3849 var8 = NULL;
3850 if (var_pannotationnode4 == NULL) {
3851 var9 = 0; /* is null */
3852 } else {
3853 var9 = 1; /* arg is null and recv is not */
3854 }
3855 if (var9){
3856 ((void (*)(val*, val*))(var_listnode5->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode5, var_pannotationnode4) /* add on <var_listnode5:Array[Object]>*/;
3857 } else {
3858 }
3859 var10 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations);
3860 var11 = NULL;
3861 var12 = NULL;
3862 ((void (*)(val*, val*, val*, val*, val*))(var10->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var10, var_tatnode2, var11, var_listnode5, var12) /* init_aannotations on <var10:AAnnotations>*/;
3863 var_pannotationsnode1 = var10;
3864 var_node_list = var_pannotationsnode1;
3865 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction818> */
3866 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
3867 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
3868 RET_LABEL:;
3869 }
3870 /* method parser#ReduceAction818#action for (self: Object, Parser) */
3871 void VIRTUAL_parser__ReduceAction818__action(val* self, val* p0) {
3872 parser__ReduceAction818__action(self, p0);
3873 RET_LABEL:;
3874 }
3875 /* method parser#ReduceAction819#action for (self: ReduceAction819, Parser) */
3876 void parser__ReduceAction819__action(val* self, val* p0) {
3877 val* var_p /* var p: Parser */;
3878 val* var /* : null */;
3879 val* var_node_list /* var node_list: nullable Object */;
3880 val* var1 /* : nullable Object */;
3881 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
3882 val* var2 /* : nullable Object */;
3883 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
3884 val* var3 /* : nullable Object */;
3885 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3886 val* var4 /* : nullable Object */;
3887 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3888 val* var5 /* : nullable Object */;
3889 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3890 val* var6 /* : nullable Object */;
3891 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3892 val* var7 /* : Array[Object] */;
3893 val* var_listnode5 /* var listnode5: Array[Object] */;
3894 val* var_tatnode2 /* var tatnode2: nullable Object */;
3895 short int var8 /* : Bool */;
3896 int cltype;
3897 int idtype;
3898 val* var_toparnode3 /* var toparnode3: nullable Object */;
3899 short int var9 /* : Bool */;
3900 int cltype10;
3901 int idtype11;
3902 val* var_listnode4 /* var listnode4: nullable Object */;
3903 short int var12 /* : Bool */;
3904 int cltype13;
3905 int idtype14;
3906 val* var15 /* : Array[Object] */;
3907 val* var_tcparnode6 /* var tcparnode6: nullable Object */;
3908 short int var16 /* : Bool */;
3909 int cltype17;
3910 int idtype18;
3911 val* var19 /* : AAnnotations */;
3912 val* var_pannotationsnode1 /* var pannotationsnode1: nullable AAnnotations */;
3913 long var20 /* : Int */;
3914 long var21 /* : Int */;
3915 var_p = p0;
3916 var = NULL;
3917 var_node_list = var;
3918 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3919 var_nodearraylist6 = var1;
3920 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3921 var_nodearraylist5 = var2;
3922 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3923 var_nodearraylist4 = var3;
3924 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3925 var_nodearraylist3 = var4;
3926 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3927 var_nodearraylist2 = var5;
3928 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3929 var_nodearraylist1 = var6;
3930 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
3931 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
3932 var_listnode5 = var7;
3933 var_tatnode2 = var_nodearraylist1;
3934 /* <var_tatnode2:nullable Object> isa nullable TAt */
3935 cltype = type_nullable_parser_nodes__TAt.color;
3936 idtype = type_nullable_parser_nodes__TAt.id;
3937 if(var_tatnode2 == NULL) {
3938 var8 = 1;
3939 } else {
3940 if(cltype >= var_tatnode2->type->table_size) {
3941 var8 = 0;
3942 } else {
3943 var8 = var_tatnode2->type->type_table[cltype] == idtype;
3944 }
3945 }
3946 if (!var8) {
3947 fprintf(stderr, "Runtime error: %s", "Assert failed");
3948 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28177);
3949 show_backtrace(1);
3950 }
3951 var_toparnode3 = var_nodearraylist2;
3952 /* <var_toparnode3:nullable Object> isa nullable TOpar */
3953 cltype10 = type_nullable_parser_nodes__TOpar.color;
3954 idtype11 = type_nullable_parser_nodes__TOpar.id;
3955 if(var_toparnode3 == NULL) {
3956 var9 = 1;
3957 } else {
3958 if(cltype10 >= var_toparnode3->type->table_size) {
3959 var9 = 0;
3960 } else {
3961 var9 = var_toparnode3->type->type_table[cltype10] == idtype11;
3962 }
3963 }
3964 if (!var9) {
3965 fprintf(stderr, "Runtime error: %s", "Assert failed");
3966 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28179);
3967 show_backtrace(1);
3968 }
3969 var_listnode4 = var_nodearraylist4;
3970 /* <var_listnode4:nullable Object> isa Array[Object] */
3971 cltype13 = type_array__Arraykernel__Object.color;
3972 idtype14 = type_array__Arraykernel__Object.id;
3973 if(var_listnode4 == NULL) {
3974 var12 = 0;
3975 } else {
3976 if(cltype13 >= var_listnode4->type->table_size) {
3977 var12 = 0;
3978 } else {
3979 var12 = var_listnode4->type->type_table[cltype13] == idtype14;
3980 }
3981 }
3982 if (!var12) {
3983 fprintf(stderr, "Runtime error: %s", "Assert failed");
3984 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28181);
3985 show_backtrace(1);
3986 }
3987 var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction819>*/;
3988 var_listnode5 = var15;
3989 var_tcparnode6 = var_nodearraylist6;
3990 /* <var_tcparnode6:nullable Object> isa nullable TCpar */
3991 cltype17 = type_nullable_parser_nodes__TCpar.color;
3992 idtype18 = type_nullable_parser_nodes__TCpar.id;
3993 if(var_tcparnode6 == NULL) {
3994 var16 = 1;
3995 } else {
3996 if(cltype17 >= var_tcparnode6->type->table_size) {
3997 var16 = 0;
3998 } else {
3999 var16 = var_tcparnode6->type->type_table[cltype17] == idtype18;
4000 }
4001 }
4002 if (!var16) {
4003 fprintf(stderr, "Runtime error: %s", "Assert failed");
4004 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28184);
4005 show_backtrace(1);
4006 }
4007 var19 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations);
4008 ((void (*)(val*, val*, val*, val*, val*))(var19->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var19, var_tatnode2, var_toparnode3, var_listnode5, var_tcparnode6) /* init_aannotations on <var19:AAnnotations>*/;
4009 var_pannotationsnode1 = var19;
4010 var_node_list = var_pannotationsnode1;
4011 var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction819> */
4012 var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on <var_p:Parser>*/;
4013 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on <var_p:Parser>*/;
4014 RET_LABEL:;
4015 }
4016 /* method parser#ReduceAction819#action for (self: Object, Parser) */
4017 void VIRTUAL_parser__ReduceAction819__action(val* self, val* p0) {
4018 parser__ReduceAction819__action(self, p0);
4019 RET_LABEL:;
4020 }
4021 /* method parser#ReduceAction820#action for (self: ReduceAction820, Parser) */
4022 void parser__ReduceAction820__action(val* self, val* p0) {
4023 val* var_p /* var p: Parser */;
4024 val* var /* : null */;
4025 val* var_node_list /* var node_list: nullable Object */;
4026 val* var1 /* : nullable Object */;
4027 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4028 val* var2 /* : Array[Object] */;
4029 val* var_listnode4 /* var listnode4: Array[Object] */;
4030 val* var_patidnode2 /* var patidnode2: nullable Object */;
4031 short int var3 /* : Bool */;
4032 int cltype;
4033 int idtype;
4034 val* var4 /* : AAnnotation */;
4035 val* var5 /* : null */;
4036 val* var6 /* : null */;
4037 val* var7 /* : null */;
4038 val* var_pannotationnode1 /* var pannotationnode1: nullable AAnnotation */;
4039 long var8 /* : Int */;
4040 long var9 /* : Int */;
4041 var_p = p0;
4042 var = NULL;
4043 var_node_list = var;
4044 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4045 var_nodearraylist1 = var1;
4046 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
4047 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
4048 var_listnode4 = var2;
4049 var_patidnode2 = var_nodearraylist1;
4050 /* <var_patidnode2:nullable Object> isa nullable AAtid */
4051 cltype = type_nullable_parser_nodes__AAtid.color;
4052 idtype = type_nullable_parser_nodes__AAtid.id;
4053 if(var_patidnode2 == NULL) {
4054 var3 = 1;
4055 } else {
4056 if(cltype >= var_patidnode2->type->table_size) {
4057 var3 = 0;
4058 } else {
4059 var3 = var_patidnode2->type->type_table[cltype] == idtype;
4060 }
4061 }
4062 if (!var3) {
4063 fprintf(stderr, "Runtime error: %s", "Assert failed");
4064 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28203);
4065 show_backtrace(1);
4066 }
4067 var4 = NEW_parser_nodes__AAnnotation(&type_parser_nodes__AAnnotation);
4068 var5 = NULL;
4069 var6 = NULL;
4070 var7 = NULL;
4071 ((void (*)(val*, val*, val*, val*, val*, val*))(var4->class->vft[COLOR_parser_prod__AAnnotation__init_aannotation]))(var4, var_patidnode2, var5, var_listnode4, var6, var7) /* init_aannotation on <var4:AAnnotation>*/;
4072 var_pannotationnode1 = var4;
4073 var_node_list = var_pannotationnode1;
4074 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction820> */
4075 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
4076 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
4077 RET_LABEL:;
4078 }
4079 /* method parser#ReduceAction820#action for (self: Object, Parser) */
4080 void VIRTUAL_parser__ReduceAction820__action(val* self, val* p0) {
4081 parser__ReduceAction820__action(self, p0);
4082 RET_LABEL:;
4083 }
4084 /* method parser#ReduceAction821#action for (self: ReduceAction821, Parser) */
4085 void parser__ReduceAction821__action(val* self, val* p0) {
4086 val* var_p /* var p: Parser */;
4087 val* var /* : null */;
4088 val* var_node_list /* var node_list: nullable Object */;
4089 val* var1 /* : nullable Object */;
4090 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4091 val* var2 /* : nullable Object */;
4092 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4093 val* var3 /* : Array[Object] */;
4094 val* var_listnode4 /* var listnode4: Array[Object] */;
4095 val* var_patidnode2 /* var patidnode2: nullable Object */;
4096 short int var4 /* : Bool */;
4097 int cltype;
4098 int idtype;
4099 val* var_pannotationsnode6 /* var pannotationsnode6: nullable Object */;
4100 short int var5 /* : Bool */;
4101 int cltype6;
4102 int idtype7;
4103 val* var8 /* : AAnnotation */;
4104 val* var9 /* : null */;
4105 val* var10 /* : null */;
4106 val* var_pannotationnode1 /* var pannotationnode1: nullable AAnnotation */;
4107 long var11 /* : Int */;
4108 long var12 /* : Int */;
4109 var_p = p0;
4110 var = NULL;
4111 var_node_list = var;
4112 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4113 var_nodearraylist2 = var1;
4114 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4115 var_nodearraylist1 = var2;
4116 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
4117 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
4118 var_listnode4 = var3;
4119 var_patidnode2 = var_nodearraylist1;
4120 /* <var_patidnode2:nullable Object> isa nullable AAtid */
4121 cltype = type_nullable_parser_nodes__AAtid.color;
4122 idtype = type_nullable_parser_nodes__AAtid.id;
4123 if(var_patidnode2 == NULL) {
4124 var4 = 1;
4125 } else {
4126 if(cltype >= var_patidnode2->type->table_size) {
4127 var4 = 0;
4128 } else {
4129 var4 = var_patidnode2->type->type_table[cltype] == idtype;
4130 }
4131 }
4132 if (!var4) {
4133 fprintf(stderr, "Runtime error: %s", "Assert failed");
4134 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28224);
4135 show_backtrace(1);
4136 }
4137 var_pannotationsnode6 = var_nodearraylist2;
4138 /* <var_pannotationsnode6:nullable Object> isa nullable AAnnotations */
4139 cltype6 = type_nullable_parser_nodes__AAnnotations.color;
4140 idtype7 = type_nullable_parser_nodes__AAnnotations.id;
4141 if(var_pannotationsnode6 == NULL) {
4142 var5 = 1;
4143 } else {
4144 if(cltype6 >= var_pannotationsnode6->type->table_size) {
4145 var5 = 0;
4146 } else {
4147 var5 = var_pannotationsnode6->type->type_table[cltype6] == idtype7;
4148 }
4149 }
4150 if (!var5) {
4151 fprintf(stderr, "Runtime error: %s", "Assert failed");
4152 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28226);
4153 show_backtrace(1);
4154 }
4155 var8 = NEW_parser_nodes__AAnnotation(&type_parser_nodes__AAnnotation);
4156 var9 = NULL;
4157 var10 = NULL;
4158 ((void (*)(val*, val*, val*, val*, val*, val*))(var8->class->vft[COLOR_parser_prod__AAnnotation__init_aannotation]))(var8, var_patidnode2, var9, var_listnode4, var10, var_pannotationsnode6) /* init_aannotation on <var8:AAnnotation>*/;
4159 var_pannotationnode1 = var8;
4160 var_node_list = var_pannotationnode1;
4161 var11 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction821> */
4162 var12 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var11) /* go_to on <var_p:Parser>*/;
4163 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var12, var_node_list) /* push on <var_p:Parser>*/;
4164 RET_LABEL:;
4165 }
4166 /* method parser#ReduceAction821#action for (self: Object, Parser) */
4167 void VIRTUAL_parser__ReduceAction821__action(val* self, val* p0) {
4168 parser__ReduceAction821__action(self, p0);
4169 RET_LABEL:;
4170 }
4171 /* method parser#ReduceAction822#action for (self: ReduceAction822, Parser) */
4172 void parser__ReduceAction822__action(val* self, val* p0) {
4173 val* var_p /* var p: Parser */;
4174 val* var /* : null */;
4175 val* var_node_list /* var node_list: nullable Object */;
4176 val* var1 /* : nullable Object */;
4177 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4178 val* var2 /* : nullable Object */;
4179 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4180 val* var3 /* : nullable Object */;
4181 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4182 val* var4 /* : nullable Object */;
4183 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4184 val* var5 /* : nullable Object */;
4185 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4186 val* var6 /* : nullable Object */;
4187 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4188 val* var7 /* : Array[Object] */;
4189 val* var_listnode5 /* var listnode5: Array[Object] */;
4190 val* var_patidnode2 /* var patidnode2: nullable Object */;
4191 short int var8 /* : Bool */;
4192 int cltype;
4193 int idtype;
4194 val* var_toparnode3 /* var toparnode3: nullable Object */;
4195 short int var9 /* : Bool */;
4196 int cltype10;
4197 int idtype11;
4198 val* var_listnode4 /* var listnode4: nullable Object */;
4199 short int var12 /* : Bool */;
4200 int cltype13;
4201 int idtype14;
4202 val* var15 /* : Array[Object] */;
4203 val* var_tcparnode6 /* var tcparnode6: nullable Object */;
4204 short int var16 /* : Bool */;
4205 int cltype17;
4206 int idtype18;
4207 val* var19 /* : AAnnotation */;
4208 val* var20 /* : null */;
4209 val* var_pannotationnode1 /* var pannotationnode1: nullable AAnnotation */;
4210 long var21 /* : Int */;
4211 long var22 /* : Int */;
4212 var_p = p0;
4213 var = NULL;
4214 var_node_list = var;
4215 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4216 var_nodearraylist6 = var1;
4217 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4218 var_nodearraylist5 = var2;
4219 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4220 var_nodearraylist4 = var3;
4221 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4222 var_nodearraylist3 = var4;
4223 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4224 var_nodearraylist2 = var5;
4225 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4226 var_nodearraylist1 = var6;
4227 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
4228 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
4229 var_listnode5 = var7;
4230 var_patidnode2 = var_nodearraylist1;
4231 /* <var_patidnode2:nullable Object> isa nullable AAtid */
4232 cltype = type_nullable_parser_nodes__AAtid.color;
4233 idtype = type_nullable_parser_nodes__AAtid.id;
4234 if(var_patidnode2 == NULL) {
4235 var8 = 1;
4236 } else {
4237 if(cltype >= var_patidnode2->type->table_size) {
4238 var8 = 0;
4239 } else {
4240 var8 = var_patidnode2->type->type_table[cltype] == idtype;
4241 }
4242 }
4243 if (!var8) {
4244 fprintf(stderr, "Runtime error: %s", "Assert failed");
4245 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28251);
4246 show_backtrace(1);
4247 }
4248 var_toparnode3 = var_nodearraylist2;
4249 /* <var_toparnode3:nullable Object> isa nullable TOpar */
4250 cltype10 = type_nullable_parser_nodes__TOpar.color;
4251 idtype11 = type_nullable_parser_nodes__TOpar.id;
4252 if(var_toparnode3 == NULL) {
4253 var9 = 1;
4254 } else {
4255 if(cltype10 >= var_toparnode3->type->table_size) {
4256 var9 = 0;
4257 } else {
4258 var9 = var_toparnode3->type->type_table[cltype10] == idtype11;
4259 }
4260 }
4261 if (!var9) {
4262 fprintf(stderr, "Runtime error: %s", "Assert failed");
4263 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28253);
4264 show_backtrace(1);
4265 }
4266 var_listnode4 = var_nodearraylist4;
4267 /* <var_listnode4:nullable Object> isa Array[Object] */
4268 cltype13 = type_array__Arraykernel__Object.color;
4269 idtype14 = type_array__Arraykernel__Object.id;
4270 if(var_listnode4 == NULL) {
4271 var12 = 0;
4272 } else {
4273 if(cltype13 >= var_listnode4->type->table_size) {
4274 var12 = 0;
4275 } else {
4276 var12 = var_listnode4->type->type_table[cltype13] == idtype14;
4277 }
4278 }
4279 if (!var12) {
4280 fprintf(stderr, "Runtime error: %s", "Assert failed");
4281 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28255);
4282 show_backtrace(1);
4283 }
4284 var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction822>*/;
4285 var_listnode5 = var15;
4286 var_tcparnode6 = var_nodearraylist6;
4287 /* <var_tcparnode6:nullable Object> isa nullable TCpar */
4288 cltype17 = type_nullable_parser_nodes__TCpar.color;
4289 idtype18 = type_nullable_parser_nodes__TCpar.id;
4290 if(var_tcparnode6 == NULL) {
4291 var16 = 1;
4292 } else {
4293 if(cltype17 >= var_tcparnode6->type->table_size) {
4294 var16 = 0;
4295 } else {
4296 var16 = var_tcparnode6->type->type_table[cltype17] == idtype18;
4297 }
4298 }
4299 if (!var16) {
4300 fprintf(stderr, "Runtime error: %s", "Assert failed");
4301 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28258);
4302 show_backtrace(1);
4303 }
4304 var19 = NEW_parser_nodes__AAnnotation(&type_parser_nodes__AAnnotation);
4305 var20 = NULL;
4306 ((void (*)(val*, val*, val*, val*, val*, val*))(var19->class->vft[COLOR_parser_prod__AAnnotation__init_aannotation]))(var19, var_patidnode2, var_toparnode3, var_listnode5, var_tcparnode6, var20) /* init_aannotation on <var19:AAnnotation>*/;
4307 var_pannotationnode1 = var19;
4308 var_node_list = var_pannotationnode1;
4309 var21 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction822> */
4310 var22 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var21) /* go_to on <var_p:Parser>*/;
4311 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var22, var_node_list) /* push on <var_p:Parser>*/;
4312 RET_LABEL:;
4313 }
4314 /* method parser#ReduceAction822#action for (self: Object, Parser) */
4315 void VIRTUAL_parser__ReduceAction822__action(val* self, val* p0) {
4316 parser__ReduceAction822__action(self, p0);
4317 RET_LABEL:;
4318 }
4319 /* method parser#ReduceAction823#action for (self: ReduceAction823, Parser) */
4320 void parser__ReduceAction823__action(val* self, val* p0) {
4321 val* var_p /* var p: Parser */;
4322 val* var /* : null */;
4323 val* var_node_list /* var node_list: nullable Object */;
4324 val* var1 /* : nullable Object */;
4325 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
4326 val* var2 /* : nullable Object */;
4327 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4328 val* var3 /* : nullable Object */;
4329 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4330 val* var4 /* : nullable Object */;
4331 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4332 val* var5 /* : nullable Object */;
4333 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4334 val* var6 /* : nullable Object */;
4335 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4336 val* var7 /* : nullable Object */;
4337 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4338 val* var8 /* : Array[Object] */;
4339 val* var_listnode5 /* var listnode5: Array[Object] */;
4340 val* var_patidnode2 /* var patidnode2: nullable Object */;
4341 short int var9 /* : Bool */;
4342 int cltype;
4343 int idtype;
4344 val* var_toparnode3 /* var toparnode3: nullable Object */;
4345 short int var10 /* : Bool */;
4346 int cltype11;
4347 int idtype12;
4348 val* var_listnode4 /* var listnode4: nullable Object */;
4349 short int var13 /* : Bool */;
4350 int cltype14;
4351 int idtype15;
4352 val* var16 /* : Array[Object] */;
4353 val* var_tcparnode6 /* var tcparnode6: nullable Object */;
4354 short int var17 /* : Bool */;
4355 int cltype18;
4356 int idtype19;
4357 val* var_pannotationsnode7 /* var pannotationsnode7: nullable Object */;
4358 short int var20 /* : Bool */;
4359 int cltype21;
4360 int idtype22;
4361 val* var23 /* : AAnnotation */;
4362 val* var_pannotationnode1 /* var pannotationnode1: nullable AAnnotation */;
4363 long var24 /* : Int */;
4364 long var25 /* : 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_nodearraylist7 = var1;
4370 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4371 var_nodearraylist6 = var2;
4372 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4373 var_nodearraylist5 = var3;
4374 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4375 var_nodearraylist4 = var4;
4376 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4377 var_nodearraylist3 = var5;
4378 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4379 var_nodearraylist2 = var6;
4380 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4381 var_nodearraylist1 = var7;
4382 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
4383 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
4384 var_listnode5 = var8;
4385 var_patidnode2 = var_nodearraylist1;
4386 /* <var_patidnode2:nullable Object> isa nullable AAtid */
4387 cltype = type_nullable_parser_nodes__AAtid.color;
4388 idtype = type_nullable_parser_nodes__AAtid.id;
4389 if(var_patidnode2 == NULL) {
4390 var9 = 1;
4391 } else {
4392 if(cltype >= var_patidnode2->type->table_size) {
4393 var9 = 0;
4394 } else {
4395 var9 = var_patidnode2->type->type_table[cltype] == idtype;
4396 }
4397 }
4398 if (!var9) {
4399 fprintf(stderr, "Runtime error: %s", "Assert failed");
4400 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28284);
4401 show_backtrace(1);
4402 }
4403 var_toparnode3 = var_nodearraylist2;
4404 /* <var_toparnode3:nullable Object> isa nullable TOpar */
4405 cltype11 = type_nullable_parser_nodes__TOpar.color;
4406 idtype12 = type_nullable_parser_nodes__TOpar.id;
4407 if(var_toparnode3 == NULL) {
4408 var10 = 1;
4409 } else {
4410 if(cltype11 >= var_toparnode3->type->table_size) {
4411 var10 = 0;
4412 } else {
4413 var10 = var_toparnode3->type->type_table[cltype11] == idtype12;
4414 }
4415 }
4416 if (!var10) {
4417 fprintf(stderr, "Runtime error: %s", "Assert failed");
4418 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28286);
4419 show_backtrace(1);
4420 }
4421 var_listnode4 = var_nodearraylist4;
4422 /* <var_listnode4:nullable Object> isa Array[Object] */
4423 cltype14 = type_array__Arraykernel__Object.color;
4424 idtype15 = type_array__Arraykernel__Object.id;
4425 if(var_listnode4 == NULL) {
4426 var13 = 0;
4427 } else {
4428 if(cltype14 >= var_listnode4->type->table_size) {
4429 var13 = 0;
4430 } else {
4431 var13 = var_listnode4->type->type_table[cltype14] == idtype15;
4432 }
4433 }
4434 if (!var13) {
4435 fprintf(stderr, "Runtime error: %s", "Assert failed");
4436 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28288);
4437 show_backtrace(1);
4438 }
4439 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction823>*/;
4440 var_listnode5 = var16;
4441 var_tcparnode6 = var_nodearraylist6;
4442 /* <var_tcparnode6:nullable Object> isa nullable TCpar */
4443 cltype18 = type_nullable_parser_nodes__TCpar.color;
4444 idtype19 = type_nullable_parser_nodes__TCpar.id;
4445 if(var_tcparnode6 == NULL) {
4446 var17 = 1;
4447 } else {
4448 if(cltype18 >= var_tcparnode6->type->table_size) {
4449 var17 = 0;
4450 } else {
4451 var17 = var_tcparnode6->type->type_table[cltype18] == idtype19;
4452 }
4453 }
4454 if (!var17) {
4455 fprintf(stderr, "Runtime error: %s", "Assert failed");
4456 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28291);
4457 show_backtrace(1);
4458 }
4459 var_pannotationsnode7 = var_nodearraylist7;
4460 /* <var_pannotationsnode7:nullable Object> isa nullable AAnnotations */
4461 cltype21 = type_nullable_parser_nodes__AAnnotations.color;
4462 idtype22 = type_nullable_parser_nodes__AAnnotations.id;
4463 if(var_pannotationsnode7 == NULL) {
4464 var20 = 1;
4465 } else {
4466 if(cltype21 >= var_pannotationsnode7->type->table_size) {
4467 var20 = 0;
4468 } else {
4469 var20 = var_pannotationsnode7->type->type_table[cltype21] == idtype22;
4470 }
4471 }
4472 if (!var20) {
4473 fprintf(stderr, "Runtime error: %s", "Assert failed");
4474 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28293);
4475 show_backtrace(1);
4476 }
4477 var23 = NEW_parser_nodes__AAnnotation(&type_parser_nodes__AAnnotation);
4478 ((void (*)(val*, val*, val*, val*, val*, val*))(var23->class->vft[COLOR_parser_prod__AAnnotation__init_aannotation]))(var23, var_patidnode2, var_toparnode3, var_listnode5, var_tcparnode6, var_pannotationsnode7) /* init_aannotation on <var23:AAnnotation>*/;
4479 var_pannotationnode1 = var23;
4480 var_node_list = var_pannotationnode1;
4481 var24 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction823> */
4482 var25 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var24) /* go_to on <var_p:Parser>*/;
4483 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var25, var_node_list) /* push on <var_p:Parser>*/;
4484 RET_LABEL:;
4485 }
4486 /* method parser#ReduceAction823#action for (self: Object, Parser) */
4487 void VIRTUAL_parser__ReduceAction823__action(val* self, val* p0) {
4488 parser__ReduceAction823__action(self, p0);
4489 RET_LABEL:;
4490 }
4491 /* method parser#ReduceAction824#action for (self: ReduceAction824, Parser) */
4492 void parser__ReduceAction824__action(val* self, val* p0) {
4493 val* var_p /* var p: Parser */;
4494 val* var /* : null */;
4495 val* var_node_list /* var node_list: nullable Object */;
4496 val* var1 /* : nullable Object */;
4497 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4498 val* var2 /* : Array[Object] */;
4499 val* var_listnode5 /* var listnode5: Array[Object] */;
4500 val* var_listnode4 /* var listnode4: nullable Object */;
4501 short int var3 /* : Bool */;
4502 int cltype;
4503 int idtype;
4504 val* var4 /* : Array[Object] */;
4505 val* var5 /* : AAnnotations */;
4506 val* var6 /* : null */;
4507 val* var7 /* : null */;
4508 val* var8 /* : null */;
4509 val* var_pannotationsnode1 /* var pannotationsnode1: nullable AAnnotations */;
4510 long var9 /* : Int */;
4511 long var10 /* : Int */;
4512 var_p = p0;
4513 var = NULL;
4514 var_node_list = var;
4515 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4516 var_nodearraylist1 = var1;
4517 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
4518 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
4519 var_listnode5 = var2;
4520 var_listnode4 = var_nodearraylist1;
4521 /* <var_listnode4:nullable Object> isa Array[Object] */
4522 cltype = type_array__Arraykernel__Object.color;
4523 idtype = type_array__Arraykernel__Object.id;
4524 if(var_listnode4 == NULL) {
4525 var3 = 0;
4526 } else {
4527 if(cltype >= var_listnode4->type->table_size) {
4528 var3 = 0;
4529 } else {
4530 var3 = var_listnode4->type->type_table[cltype] == idtype;
4531 }
4532 }
4533 if (!var3) {
4534 fprintf(stderr, "Runtime error: %s", "Assert failed");
4535 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28313);
4536 show_backtrace(1);
4537 }
4538 var4 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction824>*/;
4539 var_listnode5 = var4;
4540 var5 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations);
4541 var6 = NULL;
4542 var7 = NULL;
4543 var8 = NULL;
4544 ((void (*)(val*, val*, val*, val*, val*))(var5->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var5, var6, var7, var_listnode5, var8) /* init_aannotations on <var5:AAnnotations>*/;
4545 var_pannotationsnode1 = var5;
4546 var_node_list = var_pannotationsnode1;
4547 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction824> */
4548 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
4549 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
4550 RET_LABEL:;
4551 }
4552 /* method parser#ReduceAction824#action for (self: Object, Parser) */
4553 void VIRTUAL_parser__ReduceAction824__action(val* self, val* p0) {
4554 parser__ReduceAction824__action(self, p0);
4555 RET_LABEL:;
4556 }
4557 /* method parser#ReduceAction825#action for (self: ReduceAction825, Parser) */
4558 void parser__ReduceAction825__action(val* self, val* p0) {
4559 val* var_p /* var p: Parser */;
4560 val* var /* : null */;
4561 val* var_node_list /* var node_list: nullable Object */;
4562 val* var1 /* : nullable Object */;
4563 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4564 val* var2 /* : Array[Object] */;
4565 val* var_listnode2 /* var listnode2: Array[Object] */;
4566 val* var_pannotationnode1 /* var pannotationnode1: nullable Object */;
4567 val* var3 /* : null */;
4568 short int var4 /* : Bool */;
4569 long var5 /* : Int */;
4570 long var6 /* : Int */;
4571 var_p = p0;
4572 var = NULL;
4573 var_node_list = var;
4574 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4575 var_nodearraylist1 = var1;
4576 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
4577 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
4578 var_listnode2 = var2;
4579 var_pannotationnode1 = var_nodearraylist1;
4580 var3 = NULL;
4581 if (var_pannotationnode1 == NULL) {
4582 var4 = 0; /* is null */
4583 } else {
4584 var4 = 1; /* arg is null and recv is not */
4585 }
4586 if (var4){
4587 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_pannotationnode1) /* add on <var_listnode2:Array[Object]>*/;
4588 } else {
4589 }
4590 var_node_list = var_listnode2;
4591 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction825> */
4592 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
4593 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
4594 RET_LABEL:;
4595 }
4596 /* method parser#ReduceAction825#action for (self: Object, Parser) */
4597 void VIRTUAL_parser__ReduceAction825__action(val* self, val* p0) {
4598 parser__ReduceAction825__action(self, p0);
4599 RET_LABEL:;
4600 }
4601 /* method parser#ReduceAction826#action for (self: ReduceAction826, Parser) */
4602 void parser__ReduceAction826__action(val* self, val* p0) {
4603 val* var_p /* var p: Parser */;
4604 val* var /* : null */;
4605 val* var_node_list /* var node_list: nullable Object */;
4606 val* var1 /* : nullable Object */;
4607 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4608 val* var2 /* : nullable Object */;
4609 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4610 val* var3 /* : Array[Object] */;
4611 val* var_listnode3 /* var listnode3: Array[Object] */;
4612 val* var_pannotationnode1 /* var pannotationnode1: nullable Object */;
4613 val* var_listnode2 /* var listnode2: nullable Object */;
4614 short int var4 /* : Bool */;
4615 int cltype;
4616 int idtype;
4617 val* var5 /* : null */;
4618 short int var6 /* : Bool */;
4619 val* var7 /* : Array[Object] */;
4620 long var8 /* : Int */;
4621 long var9 /* : Int */;
4622 var_p = p0;
4623 var = NULL;
4624 var_node_list = var;
4625 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4626 var_nodearraylist2 = var1;
4627 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4628 var_nodearraylist1 = var2;
4629 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
4630 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
4631 var_listnode3 = var3;
4632 var_pannotationnode1 = var_nodearraylist1;
4633 var_listnode2 = var_nodearraylist2;
4634 /* <var_listnode2:nullable Object> isa Array[Object] */
4635 cltype = type_array__Arraykernel__Object.color;
4636 idtype = type_array__Arraykernel__Object.id;
4637 if(var_listnode2 == NULL) {
4638 var4 = 0;
4639 } else {
4640 if(cltype >= var_listnode2->type->table_size) {
4641 var4 = 0;
4642 } else {
4643 var4 = var_listnode2->type->type_table[cltype] == idtype;
4644 }
4645 }
4646 if (!var4) {
4647 fprintf(stderr, "Runtime error: %s", "Assert failed");
4648 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28350);
4649 show_backtrace(1);
4650 }
4651 var5 = NULL;
4652 if (var_pannotationnode1 == NULL) {
4653 var6 = 0; /* is null */
4654 } else {
4655 var6 = 1; /* arg is null and recv is not */
4656 }
4657 if (var6){
4658 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pannotationnode1) /* add on <var_listnode3:Array[Object]>*/;
4659 } else {
4660 }
4661 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode2) /* concat on <self:ReduceAction826>*/;
4662 var_listnode3 = var7;
4663 var_node_list = var_listnode3;
4664 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction826> */
4665 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
4666 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
4667 RET_LABEL:;
4668 }
4669 /* method parser#ReduceAction826#action for (self: Object, Parser) */
4670 void VIRTUAL_parser__ReduceAction826__action(val* self, val* p0) {
4671 parser__ReduceAction826__action(self, p0);
4672 RET_LABEL:;
4673 }
4674 /* method parser#ReduceAction828#action for (self: ReduceAction828, Parser) */
4675 void parser__ReduceAction828__action(val* self, val* p0) {
4676 val* var_p /* var p: Parser */;
4677 val* var /* : null */;
4678 val* var_node_list /* var node_list: nullable Object */;
4679 val* var1 /* : nullable Object */;
4680 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4681 val* var2 /* : nullable Object */;
4682 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4683 val* var3 /* : nullable Object */;
4684 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4685 val* var4 /* : Array[Object] */;
4686 val* var_listnode4 /* var listnode4: Array[Object] */;
4687 val* var_patidnode2 /* var patidnode2: nullable Object */;
4688 short int var5 /* : Bool */;
4689 int cltype;
4690 int idtype;
4691 val* var6 /* : AAnnotation */;
4692 val* var7 /* : null */;
4693 val* var8 /* : null */;
4694 val* var9 /* : null */;
4695 val* var_pannotationnode1 /* var pannotationnode1: nullable AAnnotation */;
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_nodearraylist3 = var1;
4703 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4704 var_nodearraylist2 = var2;
4705 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4706 var_nodearraylist1 = var3;
4707 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
4708 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
4709 var_listnode4 = var4;
4710 var_patidnode2 = var_nodearraylist2;
4711 /* <var_patidnode2:nullable Object> isa nullable AAtid */
4712 cltype = type_nullable_parser_nodes__AAtid.color;
4713 idtype = type_nullable_parser_nodes__AAtid.id;
4714 if(var_patidnode2 == NULL) {
4715 var5 = 1;
4716 } else {
4717 if(cltype >= var_patidnode2->type->table_size) {
4718 var5 = 0;
4719 } else {
4720 var5 = var_patidnode2->type->type_table[cltype] == idtype;
4721 }
4722 }
4723 if (!var5) {
4724 fprintf(stderr, "Runtime error: %s", "Assert failed");
4725 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28369);
4726 show_backtrace(1);
4727 }
4728 var6 = NEW_parser_nodes__AAnnotation(&type_parser_nodes__AAnnotation);
4729 var7 = NULL;
4730 var8 = NULL;
4731 var9 = NULL;
4732 ((void (*)(val*, val*, val*, val*, val*, val*))(var6->class->vft[COLOR_parser_prod__AAnnotation__init_aannotation]))(var6, var_patidnode2, var7, var_listnode4, var8, var9) /* init_aannotation on <var6:AAnnotation>*/;
4733 var_pannotationnode1 = var6;
4734 var_node_list = var_pannotationnode1;
4735 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction828> */
4736 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
4737 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
4738 RET_LABEL:;
4739 }
4740 /* method parser#ReduceAction828#action for (self: Object, Parser) */
4741 void VIRTUAL_parser__ReduceAction828__action(val* self, val* p0) {
4742 parser__ReduceAction828__action(self, p0);
4743 RET_LABEL:;
4744 }
4745 /* method parser#ReduceAction829#action for (self: ReduceAction829, Parser) */
4746 void parser__ReduceAction829__action(val* self, val* p0) {
4747 val* var_p /* var p: Parser */;
4748 val* var /* : null */;
4749 val* var_node_list /* var node_list: nullable Object */;
4750 val* var1 /* : nullable Object */;
4751 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4752 val* var2 /* : nullable Object */;
4753 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4754 val* var3 /* : nullable Object */;
4755 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4756 val* var4 /* : nullable Object */;
4757 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4758 val* var5 /* : Array[Object] */;
4759 val* var_listnode4 /* var listnode4: Array[Object] */;
4760 val* var_patidnode2 /* var patidnode2: nullable Object */;
4761 short int var6 /* : Bool */;
4762 int cltype;
4763 int idtype;
4764 val* var_pannotationsnode6 /* var pannotationsnode6: nullable Object */;
4765 short int var7 /* : Bool */;
4766 int cltype8;
4767 int idtype9;
4768 val* var10 /* : AAnnotation */;
4769 val* var11 /* : null */;
4770 val* var12 /* : null */;
4771 val* var_pannotationnode1 /* var pannotationnode1: nullable AAnnotation */;
4772 long var13 /* : Int */;
4773 long var14 /* : Int */;
4774 var_p = p0;
4775 var = NULL;
4776 var_node_list = var;
4777 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4778 var_nodearraylist4 = var1;
4779 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4780 var_nodearraylist3 = var2;
4781 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4782 var_nodearraylist2 = var3;
4783 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4784 var_nodearraylist1 = var4;
4785 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
4786 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
4787 var_listnode4 = var5;
4788 var_patidnode2 = var_nodearraylist2;
4789 /* <var_patidnode2:nullable Object> isa nullable AAtid */
4790 cltype = type_nullable_parser_nodes__AAtid.color;
4791 idtype = type_nullable_parser_nodes__AAtid.id;
4792 if(var_patidnode2 == NULL) {
4793 var6 = 1;
4794 } else {
4795 if(cltype >= var_patidnode2->type->table_size) {
4796 var6 = 0;
4797 } else {
4798 var6 = var_patidnode2->type->type_table[cltype] == idtype;
4799 }
4800 }
4801 if (!var6) {
4802 fprintf(stderr, "Runtime error: %s", "Assert failed");
4803 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28392);
4804 show_backtrace(1);
4805 }
4806 var_pannotationsnode6 = var_nodearraylist3;
4807 /* <var_pannotationsnode6:nullable Object> isa nullable AAnnotations */
4808 cltype8 = type_nullable_parser_nodes__AAnnotations.color;
4809 idtype9 = type_nullable_parser_nodes__AAnnotations.id;
4810 if(var_pannotationsnode6 == NULL) {
4811 var7 = 1;
4812 } else {
4813 if(cltype8 >= var_pannotationsnode6->type->table_size) {
4814 var7 = 0;
4815 } else {
4816 var7 = var_pannotationsnode6->type->type_table[cltype8] == idtype9;
4817 }
4818 }
4819 if (!var7) {
4820 fprintf(stderr, "Runtime error: %s", "Assert failed");
4821 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28394);
4822 show_backtrace(1);
4823 }
4824 var10 = NEW_parser_nodes__AAnnotation(&type_parser_nodes__AAnnotation);
4825 var11 = NULL;
4826 var12 = NULL;
4827 ((void (*)(val*, val*, val*, val*, val*, val*))(var10->class->vft[COLOR_parser_prod__AAnnotation__init_aannotation]))(var10, var_patidnode2, var11, var_listnode4, var12, var_pannotationsnode6) /* init_aannotation on <var10:AAnnotation>*/;
4828 var_pannotationnode1 = var10;
4829 var_node_list = var_pannotationnode1;
4830 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction829> */
4831 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
4832 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
4833 RET_LABEL:;
4834 }
4835 /* method parser#ReduceAction829#action for (self: Object, Parser) */
4836 void VIRTUAL_parser__ReduceAction829__action(val* self, val* p0) {
4837 parser__ReduceAction829__action(self, p0);
4838 RET_LABEL:;
4839 }
4840 /* method parser#ReduceAction830#action for (self: ReduceAction830, Parser) */
4841 void parser__ReduceAction830__action(val* self, val* p0) {
4842 val* var_p /* var p: Parser */;
4843 val* var /* : null */;
4844 val* var_node_list /* var node_list: nullable Object */;
4845 val* var1 /* : nullable Object */;
4846 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
4847 val* var2 /* : nullable Object */;
4848 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4849 val* var3 /* : nullable Object */;
4850 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4851 val* var4 /* : nullable Object */;
4852 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4853 val* var5 /* : nullable Object */;
4854 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4855 val* var6 /* : nullable Object */;
4856 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4857 val* var7 /* : nullable Object */;
4858 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4859 val* var8 /* : Array[Object] */;
4860 val* var_listnode5 /* var listnode5: Array[Object] */;
4861 val* var_patidnode2 /* var patidnode2: nullable Object */;
4862 short int var9 /* : Bool */;
4863 int cltype;
4864 int idtype;
4865 val* var_toparnode3 /* var toparnode3: nullable Object */;
4866 short int var10 /* : Bool */;
4867 int cltype11;
4868 int idtype12;
4869 val* var_listnode4 /* var listnode4: nullable Object */;
4870 short int var13 /* : Bool */;
4871 int cltype14;
4872 int idtype15;
4873 val* var16 /* : Array[Object] */;
4874 val* var_tcparnode6 /* var tcparnode6: nullable Object */;
4875 short int var17 /* : Bool */;
4876 int cltype18;
4877 int idtype19;
4878 val* var20 /* : AAnnotation */;
4879 val* var21 /* : null */;
4880 val* var_pannotationnode1 /* var pannotationnode1: nullable AAnnotation */;
4881 long var22 /* : Int */;
4882 long var23 /* : Int */;
4883 var_p = p0;
4884 var = NULL;
4885 var_node_list = var;
4886 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4887 var_nodearraylist7 = var1;
4888 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4889 var_nodearraylist6 = var2;
4890 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4891 var_nodearraylist5 = var3;
4892 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4893 var_nodearraylist4 = var4;
4894 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4895 var_nodearraylist3 = var5;
4896 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4897 var_nodearraylist2 = var6;
4898 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4899 var_nodearraylist1 = var7;
4900 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
4901 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
4902 var_listnode5 = var8;
4903 var_patidnode2 = var_nodearraylist2;
4904 /* <var_patidnode2:nullable Object> isa nullable AAtid */
4905 cltype = type_nullable_parser_nodes__AAtid.color;
4906 idtype = type_nullable_parser_nodes__AAtid.id;
4907 if(var_patidnode2 == NULL) {
4908 var9 = 1;
4909 } else {
4910 if(cltype >= var_patidnode2->type->table_size) {
4911 var9 = 0;
4912 } else {
4913 var9 = var_patidnode2->type->type_table[cltype] == idtype;
4914 }
4915 }
4916 if (!var9) {
4917 fprintf(stderr, "Runtime error: %s", "Assert failed");
4918 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28420);
4919 show_backtrace(1);
4920 }
4921 var_toparnode3 = var_nodearraylist3;
4922 /* <var_toparnode3:nullable Object> isa nullable TOpar */
4923 cltype11 = type_nullable_parser_nodes__TOpar.color;
4924 idtype12 = type_nullable_parser_nodes__TOpar.id;
4925 if(var_toparnode3 == NULL) {
4926 var10 = 1;
4927 } else {
4928 if(cltype11 >= var_toparnode3->type->table_size) {
4929 var10 = 0;
4930 } else {
4931 var10 = var_toparnode3->type->type_table[cltype11] == idtype12;
4932 }
4933 }
4934 if (!var10) {
4935 fprintf(stderr, "Runtime error: %s", "Assert failed");
4936 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28422);
4937 show_backtrace(1);
4938 }
4939 var_listnode4 = var_nodearraylist5;
4940 /* <var_listnode4:nullable Object> isa Array[Object] */
4941 cltype14 = type_array__Arraykernel__Object.color;
4942 idtype15 = type_array__Arraykernel__Object.id;
4943 if(var_listnode4 == NULL) {
4944 var13 = 0;
4945 } else {
4946 if(cltype14 >= var_listnode4->type->table_size) {
4947 var13 = 0;
4948 } else {
4949 var13 = var_listnode4->type->type_table[cltype14] == idtype15;
4950 }
4951 }
4952 if (!var13) {
4953 fprintf(stderr, "Runtime error: %s", "Assert failed");
4954 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28424);
4955 show_backtrace(1);
4956 }
4957 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction830>*/;
4958 var_listnode5 = var16;
4959 var_tcparnode6 = var_nodearraylist6;
4960 /* <var_tcparnode6:nullable Object> isa nullable TCpar */
4961 cltype18 = type_nullable_parser_nodes__TCpar.color;
4962 idtype19 = type_nullable_parser_nodes__TCpar.id;
4963 if(var_tcparnode6 == NULL) {
4964 var17 = 1;
4965 } else {
4966 if(cltype18 >= var_tcparnode6->type->table_size) {
4967 var17 = 0;
4968 } else {
4969 var17 = var_tcparnode6->type->type_table[cltype18] == idtype19;
4970 }
4971 }
4972 if (!var17) {
4973 fprintf(stderr, "Runtime error: %s", "Assert failed");
4974 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28427);
4975 show_backtrace(1);
4976 }
4977 var20 = NEW_parser_nodes__AAnnotation(&type_parser_nodes__AAnnotation);
4978 var21 = NULL;
4979 ((void (*)(val*, val*, val*, val*, val*, val*))(var20->class->vft[COLOR_parser_prod__AAnnotation__init_aannotation]))(var20, var_patidnode2, var_toparnode3, var_listnode5, var_tcparnode6, var21) /* init_aannotation on <var20:AAnnotation>*/;
4980 var_pannotationnode1 = var20;
4981 var_node_list = var_pannotationnode1;
4982 var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction830> */
4983 var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
4984 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
4985 RET_LABEL:;
4986 }
4987 /* method parser#ReduceAction830#action for (self: Object, Parser) */
4988 void VIRTUAL_parser__ReduceAction830__action(val* self, val* p0) {
4989 parser__ReduceAction830__action(self, p0);
4990 RET_LABEL:;
4991 }
4992 /* method parser#ReduceAction831#action for (self: ReduceAction831, Parser) */
4993 void parser__ReduceAction831__action(val* self, val* p0) {
4994 val* var_p /* var p: Parser */;
4995 val* var /* : null */;
4996 val* var_node_list /* var node_list: nullable Object */;
4997 val* var1 /* : nullable Object */;
4998 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
4999 val* var2 /* : nullable Object */;
5000 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
5001 val* var3 /* : nullable Object */;
5002 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5003 val* var4 /* : nullable Object */;
5004 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5005 val* var5 /* : nullable Object */;
5006 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5007 val* var6 /* : nullable Object */;
5008 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5009 val* var7 /* : nullable Object */;
5010 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5011 val* var8 /* : nullable Object */;
5012 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5013 val* var9 /* : Array[Object] */;
5014 val* var_listnode5 /* var listnode5: Array[Object] */;
5015 val* var_patidnode2 /* var patidnode2: nullable Object */;
5016 short int var10 /* : Bool */;
5017 int cltype;
5018 int idtype;
5019 val* var_toparnode3 /* var toparnode3: nullable Object */;
5020 short int var11 /* : Bool */;
5021 int cltype12;
5022 int idtype13;
5023 val* var_listnode4 /* var listnode4: nullable Object */;
5024 short int var14 /* : Bool */;
5025 int cltype15;
5026 int idtype16;
5027 val* var17 /* : Array[Object] */;
5028 val* var_tcparnode6 /* var tcparnode6: nullable Object */;
5029 short int var18 /* : Bool */;
5030 int cltype19;
5031 int idtype20;
5032 val* var_pannotationsnode7 /* var pannotationsnode7: nullable Object */;
5033 short int var21 /* : Bool */;
5034 int cltype22;
5035 int idtype23;
5036 val* var24 /* : AAnnotation */;
5037 val* var_pannotationnode1 /* var pannotationnode1: nullable AAnnotation */;
5038 long var25 /* : Int */;
5039 long var26 /* : Int */;
5040 var_p = p0;
5041 var = NULL;
5042 var_node_list = var;
5043 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5044 var_nodearraylist8 = var1;
5045 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5046 var_nodearraylist7 = var2;
5047 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5048 var_nodearraylist6 = var3;
5049 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5050 var_nodearraylist5 = var4;
5051 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5052 var_nodearraylist4 = var5;
5053 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5054 var_nodearraylist3 = var6;
5055 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5056 var_nodearraylist2 = var7;
5057 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5058 var_nodearraylist1 = var8;
5059 var9 = NEW_array__Array(&type_array__Arraykernel__Object);
5060 ((void (*)(val*))(var9->class->vft[COLOR_array__Array__init]))(var9) /* init on <var9:Array[Object]>*/;
5061 var_listnode5 = var9;
5062 var_patidnode2 = var_nodearraylist2;
5063 /* <var_patidnode2:nullable Object> isa nullable AAtid */
5064 cltype = type_nullable_parser_nodes__AAtid.color;
5065 idtype = type_nullable_parser_nodes__AAtid.id;
5066 if(var_patidnode2 == NULL) {
5067 var10 = 1;
5068 } else {
5069 if(cltype >= var_patidnode2->type->table_size) {
5070 var10 = 0;
5071 } else {
5072 var10 = var_patidnode2->type->type_table[cltype] == idtype;
5073 }
5074 }
5075 if (!var10) {
5076 fprintf(stderr, "Runtime error: %s", "Assert failed");
5077 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28454);
5078 show_backtrace(1);
5079 }
5080 var_toparnode3 = var_nodearraylist3;
5081 /* <var_toparnode3:nullable Object> isa nullable TOpar */
5082 cltype12 = type_nullable_parser_nodes__TOpar.color;
5083 idtype13 = type_nullable_parser_nodes__TOpar.id;
5084 if(var_toparnode3 == NULL) {
5085 var11 = 1;
5086 } else {
5087 if(cltype12 >= var_toparnode3->type->table_size) {
5088 var11 = 0;
5089 } else {
5090 var11 = var_toparnode3->type->type_table[cltype12] == idtype13;
5091 }
5092 }
5093 if (!var11) {
5094 fprintf(stderr, "Runtime error: %s", "Assert failed");
5095 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28456);
5096 show_backtrace(1);
5097 }
5098 var_listnode4 = var_nodearraylist5;
5099 /* <var_listnode4:nullable Object> isa Array[Object] */
5100 cltype15 = type_array__Arraykernel__Object.color;
5101 idtype16 = type_array__Arraykernel__Object.id;
5102 if(var_listnode4 == NULL) {
5103 var14 = 0;
5104 } else {
5105 if(cltype15 >= var_listnode4->type->table_size) {
5106 var14 = 0;
5107 } else {
5108 var14 = var_listnode4->type->type_table[cltype15] == idtype16;
5109 }
5110 }
5111 if (!var14) {
5112 fprintf(stderr, "Runtime error: %s", "Assert failed");
5113 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28458);
5114 show_backtrace(1);
5115 }
5116 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction831>*/;
5117 var_listnode5 = var17;
5118 var_tcparnode6 = var_nodearraylist6;
5119 /* <var_tcparnode6:nullable Object> isa nullable TCpar */
5120 cltype19 = type_nullable_parser_nodes__TCpar.color;
5121 idtype20 = type_nullable_parser_nodes__TCpar.id;
5122 if(var_tcparnode6 == NULL) {
5123 var18 = 1;
5124 } else {
5125 if(cltype19 >= var_tcparnode6->type->table_size) {
5126 var18 = 0;
5127 } else {
5128 var18 = var_tcparnode6->type->type_table[cltype19] == idtype20;
5129 }
5130 }
5131 if (!var18) {
5132 fprintf(stderr, "Runtime error: %s", "Assert failed");
5133 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28461);
5134 show_backtrace(1);
5135 }
5136 var_pannotationsnode7 = var_nodearraylist7;
5137 /* <var_pannotationsnode7:nullable Object> isa nullable AAnnotations */
5138 cltype22 = type_nullable_parser_nodes__AAnnotations.color;
5139 idtype23 = type_nullable_parser_nodes__AAnnotations.id;
5140 if(var_pannotationsnode7 == NULL) {
5141 var21 = 1;
5142 } else {
5143 if(cltype22 >= var_pannotationsnode7->type->table_size) {
5144 var21 = 0;
5145 } else {
5146 var21 = var_pannotationsnode7->type->type_table[cltype22] == idtype23;
5147 }
5148 }
5149 if (!var21) {
5150 fprintf(stderr, "Runtime error: %s", "Assert failed");
5151 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28463);
5152 show_backtrace(1);
5153 }
5154 var24 = NEW_parser_nodes__AAnnotation(&type_parser_nodes__AAnnotation);
5155 ((void (*)(val*, val*, val*, val*, val*, val*))(var24->class->vft[COLOR_parser_prod__AAnnotation__init_aannotation]))(var24, var_patidnode2, var_toparnode3, var_listnode5, var_tcparnode6, var_pannotationsnode7) /* init_aannotation on <var24:AAnnotation>*/;
5156 var_pannotationnode1 = var24;
5157 var_node_list = var_pannotationnode1;
5158 var25 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction831> */
5159 var26 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var25) /* go_to on <var_p:Parser>*/;
5160 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var26, var_node_list) /* push on <var_p:Parser>*/;
5161 RET_LABEL:;
5162 }
5163 /* method parser#ReduceAction831#action for (self: Object, Parser) */
5164 void VIRTUAL_parser__ReduceAction831__action(val* self, val* p0) {
5165 parser__ReduceAction831__action(self, p0);
5166 RET_LABEL:;
5167 }
5168 /* method parser#ReduceAction832#action for (self: ReduceAction832, Parser) */
5169 void parser__ReduceAction832__action(val* self, val* p0) {
5170 val* var_p /* var p: Parser */;
5171 val* var /* : null */;
5172 val* var_node_list /* var node_list: nullable Object */;
5173 val* var1 /* : nullable Object */;
5174 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5175 val* var2 /* : nullable Object */;
5176 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5177 val* var3 /* : nullable Object */;
5178 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5179 val* var4 /* : nullable Object */;
5180 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5181 val* var5 /* : Array[Object] */;
5182 val* var_listnode5 /* var listnode5: Array[Object] */;
5183 val* var_patidnode2 /* var patidnode2: nullable Object */;
5184 short int var6 /* : Bool */;
5185 int cltype;
5186 int idtype;
5187 val* var_listnode4 /* var listnode4: nullable Object */;
5188 short int var7 /* : Bool */;
5189 int cltype8;
5190 int idtype9;
5191 val* var10 /* : Array[Object] */;
5192 val* var11 /* : AAnnotation */;
5193 val* var12 /* : null */;
5194 val* var13 /* : null */;
5195 val* var14 /* : null */;
5196 val* var_pannotationnode1 /* var pannotationnode1: nullable AAnnotation */;
5197 long var15 /* : Int */;
5198 long var16 /* : Int */;
5199 var_p = p0;
5200 var = NULL;
5201 var_node_list = var;
5202 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5203 var_nodearraylist4 = var1;
5204 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5205 var_nodearraylist3 = var2;
5206 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5207 var_nodearraylist2 = var3;
5208 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5209 var_nodearraylist1 = var4;
5210 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
5211 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
5212 var_listnode5 = var5;
5213 var_patidnode2 = var_nodearraylist2;
5214 /* <var_patidnode2:nullable Object> isa nullable AAtid */
5215 cltype = type_nullable_parser_nodes__AAtid.color;
5216 idtype = type_nullable_parser_nodes__AAtid.id;
5217 if(var_patidnode2 == NULL) {
5218 var6 = 1;
5219 } else {
5220 if(cltype >= var_patidnode2->type->table_size) {
5221 var6 = 0;
5222 } else {
5223 var6 = var_patidnode2->type->type_table[cltype] == idtype;
5224 }
5225 }
5226 if (!var6) {
5227 fprintf(stderr, "Runtime error: %s", "Assert failed");
5228 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28486);
5229 show_backtrace(1);
5230 }
5231 var_listnode4 = var_nodearraylist3;
5232 /* <var_listnode4:nullable Object> isa Array[Object] */
5233 cltype8 = type_array__Arraykernel__Object.color;
5234 idtype9 = type_array__Arraykernel__Object.id;
5235 if(var_listnode4 == NULL) {
5236 var7 = 0;
5237 } else {
5238 if(cltype8 >= var_listnode4->type->table_size) {
5239 var7 = 0;
5240 } else {
5241 var7 = var_listnode4->type->type_table[cltype8] == idtype9;
5242 }
5243 }
5244 if (!var7) {
5245 fprintf(stderr, "Runtime error: %s", "Assert failed");
5246 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28488);
5247 show_backtrace(1);
5248 }
5249 var10 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction832>*/;
5250 var_listnode5 = var10;
5251 var11 = NEW_parser_nodes__AAnnotation(&type_parser_nodes__AAnnotation);
5252 var12 = NULL;
5253 var13 = NULL;
5254 var14 = NULL;
5255 ((void (*)(val*, val*, val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AAnnotation__init_aannotation]))(var11, var_patidnode2, var12, var_listnode5, var13, var14) /* init_aannotation on <var11:AAnnotation>*/;
5256 var_pannotationnode1 = var11;
5257 var_node_list = var_pannotationnode1;
5258 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction832> */
5259 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
5260 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
5261 RET_LABEL:;
5262 }
5263 /* method parser#ReduceAction832#action for (self: Object, Parser) */
5264 void VIRTUAL_parser__ReduceAction832__action(val* self, val* p0) {
5265 parser__ReduceAction832__action(self, p0);
5266 RET_LABEL:;
5267 }
5268 /* method parser#ReduceAction833#action for (self: ReduceAction833, Parser) */
5269 void parser__ReduceAction833__action(val* self, val* p0) {
5270 val* var_p /* var p: Parser */;
5271 val* var /* : null */;
5272 val* var_node_list /* var node_list: nullable Object */;
5273 val* var1 /* : nullable Object */;
5274 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5275 val* var2 /* : nullable Object */;
5276 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5277 val* var3 /* : nullable Object */;
5278 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5279 val* var_pannotationnode1 /* var pannotationnode1: nullable Object */;
5280 long var4 /* : Int */;
5281 long var5 /* : Int */;
5282 var_p = p0;
5283 var = NULL;
5284 var_node_list = var;
5285 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5286 var_nodearraylist3 = var1;
5287 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5288 var_nodearraylist2 = var2;
5289 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5290 var_nodearraylist1 = var3;
5291 var_pannotationnode1 = var_nodearraylist3;
5292 var_node_list = var_pannotationnode1;
5293 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction833> */
5294 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
5295 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
5296 RET_LABEL:;
5297 }
5298 /* method parser#ReduceAction833#action for (self: Object, Parser) */
5299 void VIRTUAL_parser__ReduceAction833__action(val* self, val* p0) {
5300 parser__ReduceAction833__action(self, p0);
5301 RET_LABEL:;
5302 }
5303 /* method parser#ReduceAction834#action for (self: ReduceAction834, Parser) */
5304 void parser__ReduceAction834__action(val* self, val* p0) {
5305 val* var_p /* var p: Parser */;
5306 val* var /* : null */;
5307 val* var_node_list /* var node_list: nullable Object */;
5308 val* var1 /* : nullable Object */;
5309 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5310 val* var2 /* : Array[Object] */;
5311 val* var_listnode2 /* var listnode2: Array[Object] */;
5312 val* var_patargnode1 /* var patargnode1: nullable Object */;
5313 val* var3 /* : null */;
5314 short int var4 /* : Bool */;
5315 long var5 /* : Int */;
5316 long var6 /* : Int */;
5317 var_p = p0;
5318 var = NULL;
5319 var_node_list = var;
5320 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5321 var_nodearraylist1 = var1;
5322 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
5323 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
5324 var_listnode2 = var2;
5325 var_patargnode1 = var_nodearraylist1;
5326 var3 = NULL;
5327 if (var_patargnode1 == NULL) {
5328 var4 = 0; /* is null */
5329 } else {
5330 var4 = 1; /* arg is null and recv is not */
5331 }
5332 if (var4){
5333 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_patargnode1) /* add on <var_listnode2:Array[Object]>*/;
5334 } else {
5335 }
5336 var_node_list = var_listnode2;
5337 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction834> */
5338 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
5339 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
5340 RET_LABEL:;
5341 }
5342 /* method parser#ReduceAction834#action for (self: Object, Parser) */
5343 void VIRTUAL_parser__ReduceAction834__action(val* self, val* p0) {
5344 parser__ReduceAction834__action(self, p0);
5345 RET_LABEL:;
5346 }
5347 /* method parser#ReduceAction835#action for (self: ReduceAction835, Parser) */
5348 void parser__ReduceAction835__action(val* self, val* p0) {
5349 val* var_p /* var p: Parser */;
5350 val* var /* : null */;
5351 val* var_node_list /* var node_list: nullable Object */;
5352 val* var1 /* : nullable Object */;
5353 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5354 val* var2 /* : nullable Object */;
5355 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5356 val* var3 /* : Array[Object] */;
5357 val* var_listnode3 /* var listnode3: Array[Object] */;
5358 val* var_patargnode1 /* var patargnode1: nullable Object */;
5359 val* var_listnode2 /* var listnode2: nullable Object */;
5360 short int var4 /* : Bool */;
5361 int cltype;
5362 int idtype;
5363 val* var5 /* : null */;
5364 short int var6 /* : Bool */;
5365 val* var7 /* : Array[Object] */;
5366 long var8 /* : Int */;
5367 long var9 /* : Int */;
5368 var_p = p0;
5369 var = NULL;
5370 var_node_list = var;
5371 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5372 var_nodearraylist2 = var1;
5373 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5374 var_nodearraylist1 = var2;
5375 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
5376 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
5377 var_listnode3 = var3;
5378 var_patargnode1 = var_nodearraylist1;
5379 var_listnode2 = var_nodearraylist2;
5380 /* <var_listnode2:nullable Object> isa Array[Object] */
5381 cltype = type_array__Arraykernel__Object.color;
5382 idtype = type_array__Arraykernel__Object.id;
5383 if(var_listnode2 == NULL) {
5384 var4 = 0;
5385 } else {
5386 if(cltype >= var_listnode2->type->table_size) {
5387 var4 = 0;
5388 } else {
5389 var4 = var_listnode2->type->type_table[cltype] == idtype;
5390 }
5391 }
5392 if (!var4) {
5393 fprintf(stderr, "Runtime error: %s", "Assert failed");
5394 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28539);
5395 show_backtrace(1);
5396 }
5397 var5 = NULL;
5398 if (var_patargnode1 == NULL) {
5399 var6 = 0; /* is null */
5400 } else {
5401 var6 = 1; /* arg is null and recv is not */
5402 }
5403 if (var6){
5404 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_patargnode1) /* add on <var_listnode3:Array[Object]>*/;
5405 } else {
5406 }
5407 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode2) /* concat on <self:ReduceAction835>*/;
5408 var_listnode3 = var7;
5409 var_node_list = var_listnode3;
5410 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction835> */
5411 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
5412 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
5413 RET_LABEL:;
5414 }
5415 /* method parser#ReduceAction835#action for (self: Object, Parser) */
5416 void VIRTUAL_parser__ReduceAction835__action(val* self, val* p0) {
5417 parser__ReduceAction835__action(self, p0);
5418 RET_LABEL:;
5419 }
5420 /* method parser#ReduceAction836#action for (self: ReduceAction836, Parser) */
5421 void parser__ReduceAction836__action(val* self, val* p0) {
5422 val* var_p /* var p: Parser */;
5423 val* var /* : null */;
5424 val* var_node_list /* var node_list: nullable Object */;
5425 val* var1 /* : nullable Object */;
5426 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5427 val* var2 /* : nullable Object */;
5428 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5429 val* var3 /* : nullable Object */;
5430 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5431 val* var_patargnode1 /* var patargnode1: nullable Object */;
5432 long var4 /* : Int */;
5433 long var5 /* : Int */;
5434 var_p = p0;
5435 var = NULL;
5436 var_node_list = var;
5437 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5438 var_nodearraylist3 = var1;
5439 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5440 var_nodearraylist2 = var2;
5441 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5442 var_nodearraylist1 = var3;
5443 var_patargnode1 = var_nodearraylist3;
5444 var_node_list = var_patargnode1;
5445 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction836> */
5446 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
5447 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
5448 RET_LABEL:;
5449 }
5450 /* method parser#ReduceAction836#action for (self: Object, Parser) */
5451 void VIRTUAL_parser__ReduceAction836__action(val* self, val* p0) {
5452 parser__ReduceAction836__action(self, p0);
5453 RET_LABEL:;
5454 }
5455 /* method parser#ReduceAction837#action for (self: ReduceAction837, Parser) */
5456 void parser__ReduceAction837__action(val* self, val* p0) {
5457 val* var_p /* var p: Parser */;
5458 val* var /* : null */;
5459 val* var_node_list /* var node_list: nullable Object */;
5460 val* var1 /* : nullable Object */;
5461 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5462 val* var_ptypenode2 /* var ptypenode2: nullable Object */;
5463 short int var2 /* : Bool */;
5464 int cltype;
5465 int idtype;
5466 val* var3 /* : ATypeAtArg */;
5467 val* var_patargnode1 /* var patargnode1: nullable ATypeAtArg */;
5468 long var4 /* : Int */;
5469 long var5 /* : Int */;
5470 var_p = p0;
5471 var = NULL;
5472 var_node_list = var;
5473 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5474 var_nodearraylist1 = var1;
5475 var_ptypenode2 = var_nodearraylist1;
5476 /* <var_ptypenode2:nullable Object> isa nullable AType */
5477 cltype = type_nullable_parser_nodes__AType.color;
5478 idtype = type_nullable_parser_nodes__AType.id;
5479 if(var_ptypenode2 == NULL) {
5480 var2 = 1;
5481 } else {
5482 if(cltype >= var_ptypenode2->type->table_size) {
5483 var2 = 0;
5484 } else {
5485 var2 = var_ptypenode2->type->type_table[cltype] == idtype;
5486 }
5487 }
5488 if (!var2) {
5489 fprintf(stderr, "Runtime error: %s", "Assert failed");
5490 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28568);
5491 show_backtrace(1);
5492 }
5493 var3 = NEW_parser_nodes__ATypeAtArg(&type_parser_nodes__ATypeAtArg);
5494 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__ATypeAtArg__init_atypeatarg]))(var3, var_ptypenode2) /* init_atypeatarg on <var3:ATypeAtArg>*/;
5495 var_patargnode1 = var3;
5496 var_node_list = var_patargnode1;
5497 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction837> */
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#ReduceAction837#action for (self: Object, Parser) */
5503 void VIRTUAL_parser__ReduceAction837__action(val* self, val* p0) {
5504 parser__ReduceAction837__action(self, p0);
5505 RET_LABEL:;
5506 }
5507 /* method parser#ReduceAction838#action for (self: ReduceAction838, Parser) */
5508 void parser__ReduceAction838__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_pexprnode2 /* var pexprnode2: nullable Object */;
5515 short int var2 /* : Bool */;
5516 int cltype;
5517 int idtype;
5518 val* var3 /* : AExprAtArg */;
5519 val* var_patargnode1 /* var patargnode1: nullable AExprAtArg */;
5520 long var4 /* : Int */;
5521 long var5 /* : Int */;
5522 var_p = p0;
5523 var = NULL;
5524 var_node_list = var;
5525 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5526 var_nodearraylist1 = var1;
5527 var_pexprnode2 = var_nodearraylist1;
5528 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
5529 cltype = type_nullable_parser_nodes__AExpr.color;
5530 idtype = type_nullable_parser_nodes__AExpr.id;
5531 if(var_pexprnode2 == NULL) {
5532 var2 = 1;
5533 } else {
5534 if(cltype >= var_pexprnode2->type->table_size) {
5535 var2 = 0;
5536 } else {
5537 var2 = var_pexprnode2->type->type_table[cltype] == idtype;
5538 }
5539 }
5540 if (!var2) {
5541 fprintf(stderr, "Runtime error: %s", "Assert failed");
5542 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28583);
5543 show_backtrace(1);
5544 }
5545 var3 = NEW_parser_nodes__AExprAtArg(&type_parser_nodes__AExprAtArg);
5546 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AExprAtArg__init_aexpratarg]))(var3, var_pexprnode2) /* init_aexpratarg on <var3:AExprAtArg>*/;
5547 var_patargnode1 = var3;
5548 var_node_list = var_patargnode1;
5549 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction838> */
5550 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
5551 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
5552 RET_LABEL:;
5553 }
5554 /* method parser#ReduceAction838#action for (self: Object, Parser) */
5555 void VIRTUAL_parser__ReduceAction838__action(val* self, val* p0) {
5556 parser__ReduceAction838__action(self, p0);
5557 RET_LABEL:;
5558 }
5559 /* method parser#ReduceAction840#action for (self: ReduceAction840, Parser) */
5560 void parser__ReduceAction840__action(val* self, val* p0) {
5561 val* var_p /* var p: Parser */;
5562 val* var /* : null */;
5563 val* var_node_list /* var node_list: nullable Object */;
5564 val* var1 /* : nullable Object */;
5565 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5566 val* var_pannotationsnode2 /* var pannotationsnode2: nullable Object */;
5567 short int var2 /* : Bool */;
5568 int cltype;
5569 int idtype;
5570 val* var3 /* : AAtAtArg */;
5571 val* var_patargnode1 /* var patargnode1: nullable AAtAtArg */;
5572 long var4 /* : Int */;
5573 long var5 /* : Int */;
5574 var_p = p0;
5575 var = NULL;
5576 var_node_list = var;
5577 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5578 var_nodearraylist1 = var1;
5579 var_pannotationsnode2 = var_nodearraylist1;
5580 /* <var_pannotationsnode2:nullable Object> isa nullable AAnnotations */
5581 cltype = type_nullable_parser_nodes__AAnnotations.color;
5582 idtype = type_nullable_parser_nodes__AAnnotations.id;
5583 if(var_pannotationsnode2 == NULL) {
5584 var2 = 1;
5585 } else {
5586 if(cltype >= var_pannotationsnode2->type->table_size) {
5587 var2 = 0;
5588 } else {
5589 var2 = var_pannotationsnode2->type->type_table[cltype] == idtype;
5590 }
5591 }
5592 if (!var2) {
5593 fprintf(stderr, "Runtime error: %s", "Assert failed");
5594 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28598);
5595 show_backtrace(1);
5596 }
5597 var3 = NEW_parser_nodes__AAtAtArg(&type_parser_nodes__AAtAtArg);
5598 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AAtAtArg__init_aatatarg]))(var3, var_pannotationsnode2) /* init_aatatarg on <var3:AAtAtArg>*/;
5599 var_patargnode1 = var3;
5600 var_node_list = var_patargnode1;
5601 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction840> */
5602 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
5603 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
5604 RET_LABEL:;
5605 }
5606 /* method parser#ReduceAction840#action for (self: Object, Parser) */
5607 void VIRTUAL_parser__ReduceAction840__action(val* self, val* p0) {
5608 parser__ReduceAction840__action(self, p0);
5609 RET_LABEL:;
5610 }
5611 /* method parser#ReduceAction841#action for (self: ReduceAction841, Parser) */
5612 void parser__ReduceAction841__action(val* self, val* p0) {
5613 val* var_p /* var p: Parser */;
5614 val* var /* : null */;
5615 val* var_node_list /* var node_list: nullable Object */;
5616 val* var1 /* : nullable Object */;
5617 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5618 val* var_tidnode2 /* var tidnode2: nullable Object */;
5619 short int var2 /* : Bool */;
5620 int cltype;
5621 int idtype;
5622 val* var3 /* : AIdAtid */;
5623 val* var_patidnode1 /* var patidnode1: nullable AIdAtid */;
5624 long var4 /* : Int */;
5625 long var5 /* : Int */;
5626 var_p = p0;
5627 var = NULL;
5628 var_node_list = var;
5629 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5630 var_nodearraylist1 = var1;
5631 var_tidnode2 = var_nodearraylist1;
5632 /* <var_tidnode2:nullable Object> isa nullable TId */
5633 cltype = type_nullable_parser_nodes__TId.color;
5634 idtype = type_nullable_parser_nodes__TId.id;
5635 if(var_tidnode2 == NULL) {
5636 var2 = 1;
5637 } else {
5638 if(cltype >= var_tidnode2->type->table_size) {
5639 var2 = 0;
5640 } else {
5641 var2 = var_tidnode2->type->type_table[cltype] == idtype;
5642 }
5643 }
5644 if (!var2) {
5645 fprintf(stderr, "Runtime error: %s", "Assert failed");
5646 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28613);
5647 show_backtrace(1);
5648 }
5649 var3 = NEW_parser_nodes__AIdAtid(&type_parser_nodes__AIdAtid);
5650 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AIdAtid__init_aidatid]))(var3, var_tidnode2) /* init_aidatid on <var3:AIdAtid>*/;
5651 var_patidnode1 = var3;
5652 var_node_list = var_patidnode1;
5653 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction841> */
5654 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
5655 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
5656 RET_LABEL:;
5657 }
5658 /* method parser#ReduceAction841#action for (self: Object, Parser) */
5659 void VIRTUAL_parser__ReduceAction841__action(val* self, val* p0) {
5660 parser__ReduceAction841__action(self, p0);
5661 RET_LABEL:;
5662 }
5663 /* method parser#ReduceAction842#action for (self: ReduceAction842, Parser) */
5664 void parser__ReduceAction842__action(val* self, val* p0) {
5665 val* var_p /* var p: Parser */;
5666 val* var /* : null */;
5667 val* var_node_list /* var node_list: nullable Object */;
5668 val* var1 /* : nullable Object */;
5669 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5670 val* var_tkwreadablenode2 /* var tkwreadablenode2: nullable Object */;
5671 short int var2 /* : Bool */;
5672 int cltype;
5673 int idtype;
5674 val* var3 /* : AKwreadableAtid */;
5675 val* var_patidnode1 /* var patidnode1: nullable AKwreadableAtid */;
5676 long var4 /* : Int */;
5677 long var5 /* : Int */;
5678 var_p = p0;
5679 var = NULL;
5680 var_node_list = var;
5681 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5682 var_nodearraylist1 = var1;
5683 var_tkwreadablenode2 = var_nodearraylist1;
5684 /* <var_tkwreadablenode2:nullable Object> isa nullable TKwreadable */
5685 cltype = type_nullable_parser_nodes__TKwreadable.color;
5686 idtype = type_nullable_parser_nodes__TKwreadable.id;
5687 if(var_tkwreadablenode2 == NULL) {
5688 var2 = 1;
5689 } else {
5690 if(cltype >= var_tkwreadablenode2->type->table_size) {
5691 var2 = 0;
5692 } else {
5693 var2 = var_tkwreadablenode2->type->type_table[cltype] == idtype;
5694 }
5695 }
5696 if (!var2) {
5697 fprintf(stderr, "Runtime error: %s", "Assert failed");
5698 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28628);
5699 show_backtrace(1);
5700 }
5701 var3 = NEW_parser_nodes__AKwreadableAtid(&type_parser_nodes__AKwreadableAtid);
5702 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AKwreadableAtid__init_akwreadableatid]))(var3, var_tkwreadablenode2) /* init_akwreadableatid on <var3:AKwreadableAtid>*/;
5703 var_patidnode1 = var3;
5704 var_node_list = var_patidnode1;
5705 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction842> */
5706 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
5707 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
5708 RET_LABEL:;
5709 }
5710 /* method parser#ReduceAction842#action for (self: Object, Parser) */
5711 void VIRTUAL_parser__ReduceAction842__action(val* self, val* p0) {
5712 parser__ReduceAction842__action(self, p0);
5713 RET_LABEL:;
5714 }
5715 /* method parser#ReduceAction843#action for (self: ReduceAction843, Parser) */
5716 void parser__ReduceAction843__action(val* self, val* p0) {
5717 val* var_p /* var p: Parser */;
5718 val* var /* : null */;
5719 val* var_node_list /* var node_list: nullable Object */;
5720 val* var1 /* : nullable Object */;
5721 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5722 val* var_tkwwritablenode2 /* var tkwwritablenode2: nullable Object */;
5723 short int var2 /* : Bool */;
5724 int cltype;
5725 int idtype;
5726 val* var3 /* : AKwwritableAtid */;
5727 val* var_patidnode1 /* var patidnode1: nullable AKwwritableAtid */;
5728 long var4 /* : Int */;
5729 long var5 /* : Int */;
5730 var_p = p0;
5731 var = NULL;
5732 var_node_list = var;
5733 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5734 var_nodearraylist1 = var1;
5735 var_tkwwritablenode2 = var_nodearraylist1;
5736 /* <var_tkwwritablenode2:nullable Object> isa nullable TKwwritable */
5737 cltype = type_nullable_parser_nodes__TKwwritable.color;
5738 idtype = type_nullable_parser_nodes__TKwwritable.id;
5739 if(var_tkwwritablenode2 == NULL) {
5740 var2 = 1;
5741 } else {
5742 if(cltype >= var_tkwwritablenode2->type->table_size) {
5743 var2 = 0;
5744 } else {
5745 var2 = var_tkwwritablenode2->type->type_table[cltype] == idtype;
5746 }
5747 }
5748 if (!var2) {
5749 fprintf(stderr, "Runtime error: %s", "Assert failed");
5750 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28643);
5751 show_backtrace(1);
5752 }
5753 var3 = NEW_parser_nodes__AKwwritableAtid(&type_parser_nodes__AKwwritableAtid);
5754 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AKwwritableAtid__init_akwwritableatid]))(var3, var_tkwwritablenode2) /* init_akwwritableatid on <var3:AKwwritableAtid>*/;
5755 var_patidnode1 = var3;
5756 var_node_list = var_patidnode1;
5757 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction843> */
5758 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
5759 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
5760 RET_LABEL:;
5761 }
5762 /* method parser#ReduceAction843#action for (self: Object, Parser) */
5763 void VIRTUAL_parser__ReduceAction843__action(val* self, val* p0) {
5764 parser__ReduceAction843__action(self, p0);
5765 RET_LABEL:;
5766 }
5767 /* method parser#ReduceAction844#action for (self: ReduceAction844, Parser) */
5768 void parser__ReduceAction844__action(val* self, val* p0) {
5769 val* var_p /* var p: Parser */;
5770 val* var /* : null */;
5771 val* var_node_list /* var node_list: nullable Object */;
5772 val* var1 /* : nullable Object */;
5773 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5774 val* var_tkwimportnode2 /* var tkwimportnode2: nullable Object */;
5775 short int var2 /* : Bool */;
5776 int cltype;
5777 int idtype;
5778 val* var3 /* : AKwimportAtid */;
5779 val* var_patidnode1 /* var patidnode1: nullable AKwimportAtid */;
5780 long var4 /* : Int */;
5781 long var5 /* : Int */;
5782 var_p = p0;
5783 var = NULL;
5784 var_node_list = var;
5785 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5786 var_nodearraylist1 = var1;
5787 var_tkwimportnode2 = var_nodearraylist1;
5788 /* <var_tkwimportnode2:nullable Object> isa nullable TKwimport */
5789 cltype = type_nullable_parser_nodes__TKwimport.color;
5790 idtype = type_nullable_parser_nodes__TKwimport.id;
5791 if(var_tkwimportnode2 == NULL) {
5792 var2 = 1;
5793 } else {
5794 if(cltype >= var_tkwimportnode2->type->table_size) {
5795 var2 = 0;
5796 } else {
5797 var2 = var_tkwimportnode2->type->type_table[cltype] == idtype;
5798 }
5799 }
5800 if (!var2) {
5801 fprintf(stderr, "Runtime error: %s", "Assert failed");
5802 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28658);
5803 show_backtrace(1);
5804 }
5805 var3 = NEW_parser_nodes__AKwimportAtid(&type_parser_nodes__AKwimportAtid);
5806 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AKwimportAtid__init_akwimportatid]))(var3, var_tkwimportnode2) /* init_akwimportatid on <var3:AKwimportAtid>*/;
5807 var_patidnode1 = var3;
5808 var_node_list = var_patidnode1;
5809 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction844> */
5810 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
5811 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
5812 RET_LABEL:;
5813 }
5814 /* method parser#ReduceAction844#action for (self: Object, Parser) */
5815 void VIRTUAL_parser__ReduceAction844__action(val* self, val* p0) {
5816 parser__ReduceAction844__action(self, p0);
5817 RET_LABEL:;
5818 }
5819 /* method parser#ReduceAction845#action for (self: ReduceAction845, Parser) */
5820 void parser__ReduceAction845__action(val* self, val* p0) {
5821 val* var_p /* var p: Parser */;
5822 val* var /* : null */;
5823 val* var_node_list /* var node_list: nullable Object */;
5824 val* var1 /* : nullable Object */;
5825 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5826 val* var2 /* : nullable Object */;
5827 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5828 val* var3 /* : nullable Object */;
5829 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5830 val* var4 /* : nullable Object */;
5831 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5832 val* var5 /* : Array[Object] */;
5833 val* var_listnode4 /* var listnode4: Array[Object] */;
5834 val* var_toparnode2 /* var toparnode2: nullable Object */;
5835 short int var6 /* : Bool */;
5836 int cltype;
5837 int idtype;
5838 val* var_listnode3 /* var listnode3: nullable Object */;
5839 short int var7 /* : Bool */;
5840 int cltype8;
5841 int idtype9;
5842 val* var10 /* : Array[Object] */;
5843 val* var_tcparnode5 /* var tcparnode5: nullable Object */;
5844 short int var11 /* : Bool */;
5845 int cltype12;
5846 int idtype13;
5847 val* var14 /* : AParExprs */;
5848 val* var_pexprsnode1 /* var pexprsnode1: nullable AParExprs */;
5849 long var15 /* : Int */;
5850 long var16 /* : Int */;
5851 var_p = p0;
5852 var = NULL;
5853 var_node_list = var;
5854 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5855 var_nodearraylist4 = var1;
5856 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5857 var_nodearraylist3 = var2;
5858 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5859 var_nodearraylist2 = var3;
5860 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5861 var_nodearraylist1 = var4;
5862 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
5863 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
5864 var_listnode4 = var5;
5865 var_toparnode2 = var_nodearraylist1;
5866 /* <var_toparnode2:nullable Object> isa nullable TOpar */
5867 cltype = type_nullable_parser_nodes__TOpar.color;
5868 idtype = type_nullable_parser_nodes__TOpar.id;
5869 if(var_toparnode2 == NULL) {
5870 var6 = 1;
5871 } else {
5872 if(cltype >= var_toparnode2->type->table_size) {
5873 var6 = 0;
5874 } else {
5875 var6 = var_toparnode2->type->type_table[cltype] == idtype;
5876 }
5877 }
5878 if (!var6) {
5879 fprintf(stderr, "Runtime error: %s", "Assert failed");
5880 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28677);
5881 show_backtrace(1);
5882 }
5883 var_listnode3 = var_nodearraylist3;
5884 /* <var_listnode3:nullable Object> isa Array[Object] */
5885 cltype8 = type_array__Arraykernel__Object.color;
5886 idtype9 = type_array__Arraykernel__Object.id;
5887 if(var_listnode3 == NULL) {
5888 var7 = 0;
5889 } else {
5890 if(cltype8 >= var_listnode3->type->table_size) {
5891 var7 = 0;
5892 } else {
5893 var7 = var_listnode3->type->type_table[cltype8] == idtype9;
5894 }
5895 }
5896 if (!var7) {
5897 fprintf(stderr, "Runtime error: %s", "Assert failed");
5898 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28679);
5899 show_backtrace(1);
5900 }
5901 var10 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction845>*/;
5902 var_listnode4 = var10;
5903 var_tcparnode5 = var_nodearraylist4;
5904 /* <var_tcparnode5:nullable Object> isa nullable TCpar */
5905 cltype12 = type_nullable_parser_nodes__TCpar.color;
5906 idtype13 = type_nullable_parser_nodes__TCpar.id;
5907 if(var_tcparnode5 == NULL) {
5908 var11 = 1;
5909 } else {
5910 if(cltype12 >= var_tcparnode5->type->table_size) {
5911 var11 = 0;
5912 } else {
5913 var11 = var_tcparnode5->type->type_table[cltype12] == idtype13;
5914 }
5915 }
5916 if (!var11) {
5917 fprintf(stderr, "Runtime error: %s", "Assert failed");
5918 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28682);
5919 show_backtrace(1);
5920 }
5921 var14 = NEW_parser_nodes__AParExprs(&type_parser_nodes__AParExprs);
5922 ((void (*)(val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__AParExprs__init_aparexprs]))(var14, var_toparnode2, var_listnode4, var_tcparnode5) /* init_aparexprs on <var14:AParExprs>*/;
5923 var_pexprsnode1 = var14;
5924 var_node_list = var_pexprsnode1;
5925 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction845> */
5926 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
5927 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
5928 RET_LABEL:;
5929 }
5930 /* method parser#ReduceAction845#action for (self: Object, Parser) */
5931 void VIRTUAL_parser__ReduceAction845__action(val* self, val* p0) {
5932 parser__ReduceAction845__action(self, p0);
5933 RET_LABEL:;
5934 }
5935 /* method parser#ReduceAction846#action for (self: ReduceAction846, Parser) */
5936 void parser__ReduceAction846__action(val* self, val* p0) {
5937 val* var_p /* var p: Parser */;
5938 val* var /* : null */;
5939 val* var_node_list /* var node_list: nullable Object */;
5940 val* var1 /* : nullable Object */;
5941 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5942 val* var2 /* : nullable Object */;
5943 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5944 val* var3 /* : nullable Object */;
5945 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5946 val* var4 /* : Array[Object] */;
5947 val* var_listnode3 /* var listnode3: Array[Object] */;
5948 val* var_toparnode2 /* var toparnode2: nullable Object */;
5949 short int var5 /* : Bool */;
5950 int cltype;
5951 int idtype;
5952 val* var_tcparnode4 /* var tcparnode4: nullable Object */;
5953 short int var6 /* : Bool */;
5954 int cltype7;
5955 int idtype8;
5956 val* var9 /* : AParExprs */;
5957 val* var_pexprsnode1 /* var pexprsnode1: nullable AParExprs */;
5958 long var10 /* : Int */;
5959 long var11 /* : Int */;
5960 var_p = p0;
5961 var = NULL;
5962 var_node_list = var;
5963 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5964 var_nodearraylist3 = var1;
5965 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5966 var_nodearraylist2 = var2;
5967 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5968 var_nodearraylist1 = var3;
5969 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
5970 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
5971 var_listnode3 = var4;
5972 var_toparnode2 = var_nodearraylist1;
5973 /* <var_toparnode2:nullable Object> isa nullable TOpar */
5974 cltype = type_nullable_parser_nodes__TOpar.color;
5975 idtype = type_nullable_parser_nodes__TOpar.id;
5976 if(var_toparnode2 == NULL) {
5977 var5 = 1;
5978 } else {
5979 if(cltype >= var_toparnode2->type->table_size) {
5980 var5 = 0;
5981 } else {
5982 var5 = var_toparnode2->type->type_table[cltype] == idtype;
5983 }
5984 }
5985 if (!var5) {
5986 fprintf(stderr, "Runtime error: %s", "Assert failed");
5987 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28702);
5988 show_backtrace(1);
5989 }
5990 var_tcparnode4 = var_nodearraylist3;
5991 /* <var_tcparnode4:nullable Object> isa nullable TCpar */
5992 cltype7 = type_nullable_parser_nodes__TCpar.color;
5993 idtype8 = type_nullable_parser_nodes__TCpar.id;
5994 if(var_tcparnode4 == NULL) {
5995 var6 = 1;
5996 } else {
5997 if(cltype7 >= var_tcparnode4->type->table_size) {
5998 var6 = 0;
5999 } else {
6000 var6 = var_tcparnode4->type->type_table[cltype7] == idtype8;
6001 }
6002 }
6003 if (!var6) {
6004 fprintf(stderr, "Runtime error: %s", "Assert failed");
6005 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28704);
6006 show_backtrace(1);
6007 }
6008 var9 = NEW_parser_nodes__AParExprs(&type_parser_nodes__AParExprs);
6009 ((void (*)(val*, val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AParExprs__init_aparexprs]))(var9, var_toparnode2, var_listnode3, var_tcparnode4) /* init_aparexprs on <var9:AParExprs>*/;
6010 var_pexprsnode1 = var9;
6011 var_node_list = var_pexprsnode1;
6012 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction846> */
6013 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
6014 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
6015 RET_LABEL:;
6016 }
6017 /* method parser#ReduceAction846#action for (self: Object, Parser) */
6018 void VIRTUAL_parser__ReduceAction846__action(val* self, val* p0) {
6019 parser__ReduceAction846__action(self, p0);
6020 RET_LABEL:;
6021 }
6022 /* method parser#ReduceAction847#action for (self: ReduceAction847, Parser) */
6023 void parser__ReduceAction847__action(val* self, val* p0) {
6024 val* var_p /* var p: Parser */;
6025 val* var /* : null */;
6026 val* var_node_list /* var node_list: nullable Object */;
6027 val* var1 /* : Array[Object] */;
6028 val* var_listnode2 /* var listnode2: Array[Object] */;
6029 val* var2 /* : AListExprs */;
6030 val* var_pexprsnode1 /* var pexprsnode1: nullable AListExprs */;
6031 long var3 /* : Int */;
6032 long var4 /* : Int */;
6033 var_p = p0;
6034 var = NULL;
6035 var_node_list = var;
6036 var1 = NEW_array__Array(&type_array__Arraykernel__Object);
6037 ((void (*)(val*))(var1->class->vft[COLOR_array__Array__init]))(var1) /* init on <var1:Array[Object]>*/;
6038 var_listnode2 = var1;
6039 var2 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs);
6040 ((void (*)(val*, val*))(var2->class->vft[COLOR_parser_prod__AListExprs__init_alistexprs]))(var2, var_listnode2) /* init_alistexprs on <var2:AListExprs>*/;
6041 var_pexprsnode1 = var2;
6042 var_node_list = var_pexprsnode1;
6043 var3 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction847> */
6044 var4 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var3) /* go_to on <var_p:Parser>*/;
6045 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var4, var_node_list) /* push on <var_p:Parser>*/;
6046 RET_LABEL:;
6047 }
6048 /* method parser#ReduceAction847#action for (self: Object, Parser) */
6049 void VIRTUAL_parser__ReduceAction847__action(val* self, val* p0) {
6050 parser__ReduceAction847__action(self, p0);
6051 RET_LABEL:;
6052 }
6053 /* method parser#ReduceAction849#action for (self: ReduceAction849, Parser) */
6054 void parser__ReduceAction849__action(val* self, val* p0) {
6055 val* var_p /* var p: Parser */;
6056 val* var /* : null */;
6057 val* var_node_list /* var node_list: nullable Object */;
6058 val* var1 /* : nullable Object */;
6059 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6060 val* var2 /* : Array[Object] */;
6061 val* var_listnode3 /* var listnode3: Array[Object] */;
6062 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
6063 short int var3 /* : Bool */;
6064 int cltype;
6065 int idtype;
6066 val* var4 /* : null */;
6067 short int var5 /* : Bool */;
6068 val* var6 /* : AListExprs */;
6069 val* var_pexprsnode1 /* var pexprsnode1: nullable AListExprs */;
6070 long var7 /* : Int */;
6071 long var8 /* : Int */;
6072 var_p = p0;
6073 var = NULL;
6074 var_node_list = var;
6075 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6076 var_nodearraylist1 = var1;
6077 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
6078 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
6079 var_listnode3 = var2;
6080 var_pexprnode2 = var_nodearraylist1;
6081 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
6082 cltype = type_nullable_parser_nodes__AExpr.color;
6083 idtype = type_nullable_parser_nodes__AExpr.id;
6084 if(var_pexprnode2 == NULL) {
6085 var3 = 1;
6086 } else {
6087 if(cltype >= var_pexprnode2->type->table_size) {
6088 var3 = 0;
6089 } else {
6090 var3 = var_pexprnode2->type->type_table[cltype] == idtype;
6091 }
6092 }
6093 if (!var3) {
6094 fprintf(stderr, "Runtime error: %s", "Assert failed");
6095 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28735);
6096 show_backtrace(1);
6097 }
6098 var4 = NULL;
6099 if (var_pexprnode2 == NULL) {
6100 var5 = 0; /* is null */
6101 } else {
6102 var5 = 1; /* arg is null and recv is not */
6103 }
6104 if (var5){
6105 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pexprnode2) /* add on <var_listnode3:Array[Object]>*/;
6106 } else {
6107 }
6108 var6 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs);
6109 ((void (*)(val*, val*))(var6->class->vft[COLOR_parser_prod__AListExprs__init_alistexprs]))(var6, var_listnode3) /* init_alistexprs on <var6:AListExprs>*/;
6110 var_pexprsnode1 = var6;
6111 var_node_list = var_pexprsnode1;
6112 var7 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction849> */
6113 var8 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var7) /* go_to on <var_p:Parser>*/;
6114 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var8, var_node_list) /* push on <var_p:Parser>*/;
6115 RET_LABEL:;
6116 }
6117 /* method parser#ReduceAction849#action for (self: Object, Parser) */
6118 void VIRTUAL_parser__ReduceAction849__action(val* self, val* p0) {
6119 parser__ReduceAction849__action(self, p0);
6120 RET_LABEL:;
6121 }
6122 /* method parser#ReduceAction852#action for (self: ReduceAction852, Parser) */
6123 void parser__ReduceAction852__action(val* self, val* p0) {
6124 val* var_p /* var p: Parser */;
6125 val* var /* : null */;
6126 val* var_node_list /* var node_list: nullable Object */;
6127 val* var1 /* : nullable Object */;
6128 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6129 val* var2 /* : nullable Object */;
6130 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6131 val* var3 /* : nullable Object */;
6132 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6133 val* var4 /* : nullable Object */;
6134 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6135 val* var5 /* : Array[Object] */;
6136 val* var_listnode4 /* var listnode4: Array[Object] */;
6137 val* var_tobranode2 /* var tobranode2: nullable Object */;
6138 short int var6 /* : Bool */;
6139 int cltype;
6140 int idtype;
6141 val* var_listnode3 /* var listnode3: nullable Object */;
6142 short int var7 /* : Bool */;
6143 int cltype8;
6144 int idtype9;
6145 val* var10 /* : Array[Object] */;
6146 val* var_tcbranode5 /* var tcbranode5: nullable Object */;
6147 short int var11 /* : Bool */;
6148 int cltype12;
6149 int idtype13;
6150 val* var14 /* : ABraExprs */;
6151 val* var_pexprsnode1 /* var pexprsnode1: nullable ABraExprs */;
6152 long var15 /* : Int */;
6153 long var16 /* : Int */;
6154 var_p = p0;
6155 var = NULL;
6156 var_node_list = var;
6157 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6158 var_nodearraylist4 = var1;
6159 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6160 var_nodearraylist3 = var2;
6161 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6162 var_nodearraylist2 = var3;
6163 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6164 var_nodearraylist1 = var4;
6165 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
6166 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
6167 var_listnode4 = var5;
6168 var_tobranode2 = var_nodearraylist1;
6169 /* <var_tobranode2:nullable Object> isa nullable TObra */
6170 cltype = type_nullable_parser_nodes__TObra.color;
6171 idtype = type_nullable_parser_nodes__TObra.id;
6172 if(var_tobranode2 == NULL) {
6173 var6 = 1;
6174 } else {
6175 if(cltype >= var_tobranode2->type->table_size) {
6176 var6 = 0;
6177 } else {
6178 var6 = var_tobranode2->type->type_table[cltype] == idtype;
6179 }
6180 }
6181 if (!var6) {
6182 fprintf(stderr, "Runtime error: %s", "Assert failed");
6183 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28757);
6184 show_backtrace(1);
6185 }
6186 var_listnode3 = var_nodearraylist3;
6187 /* <var_listnode3:nullable Object> isa Array[Object] */
6188 cltype8 = type_array__Arraykernel__Object.color;
6189 idtype9 = type_array__Arraykernel__Object.id;
6190 if(var_listnode3 == NULL) {
6191 var7 = 0;
6192 } else {
6193 if(cltype8 >= var_listnode3->type->table_size) {
6194 var7 = 0;
6195 } else {
6196 var7 = var_listnode3->type->type_table[cltype8] == idtype9;
6197 }
6198 }
6199 if (!var7) {
6200 fprintf(stderr, "Runtime error: %s", "Assert failed");
6201 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28759);
6202 show_backtrace(1);
6203 }
6204 var10 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction852>*/;
6205 var_listnode4 = var10;
6206 var_tcbranode5 = var_nodearraylist4;
6207 /* <var_tcbranode5:nullable Object> isa nullable TCbra */
6208 cltype12 = type_nullable_parser_nodes__TCbra.color;
6209 idtype13 = type_nullable_parser_nodes__TCbra.id;
6210 if(var_tcbranode5 == NULL) {
6211 var11 = 1;
6212 } else {
6213 if(cltype12 >= var_tcbranode5->type->table_size) {
6214 var11 = 0;
6215 } else {
6216 var11 = var_tcbranode5->type->type_table[cltype12] == idtype13;
6217 }
6218 }
6219 if (!var11) {
6220 fprintf(stderr, "Runtime error: %s", "Assert failed");
6221 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28762);
6222 show_backtrace(1);
6223 }
6224 var14 = NEW_parser_nodes__ABraExprs(&type_parser_nodes__ABraExprs);
6225 ((void (*)(val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__ABraExprs__init_abraexprs]))(var14, var_tobranode2, var_listnode4, var_tcbranode5) /* init_abraexprs on <var14:ABraExprs>*/;
6226 var_pexprsnode1 = var14;
6227 var_node_list = var_pexprsnode1;
6228 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction852> */
6229 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
6230 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
6231 RET_LABEL:;
6232 }
6233 /* method parser#ReduceAction852#action for (self: Object, Parser) */
6234 void VIRTUAL_parser__ReduceAction852__action(val* self, val* p0) {
6235 parser__ReduceAction852__action(self, p0);
6236 RET_LABEL:;
6237 }
6238 /* method parser#ReduceAction854#action for (self: ReduceAction854, Parser) */
6239 void parser__ReduceAction854__action(val* self, val* p0) {
6240 val* var_p /* var p: Parser */;
6241 val* var /* : null */;
6242 val* var_node_list /* var node_list: nullable Object */;
6243 val* var1 /* : nullable Object */;
6244 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6245 val* var2 /* : nullable Object */;
6246 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6247 val* var3 /* : nullable Object */;
6248 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6249 val* var4 /* : Array[Object] */;
6250 val* var_listnode3 /* var listnode3: Array[Object] */;
6251 val* var_pexprnode1 /* var pexprnode1: nullable Object */;
6252 val* var_listnode2 /* var listnode2: nullable Object */;
6253 short int var5 /* : Bool */;
6254 int cltype;
6255 int idtype;
6256 val* var6 /* : null */;
6257 short int var7 /* : Bool */;
6258 val* var8 /* : Array[Object] */;
6259 long var9 /* : Int */;
6260 long var10 /* : Int */;
6261 var_p = p0;
6262 var = NULL;
6263 var_node_list = var;
6264 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6265 var_nodearraylist3 = var1;
6266 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6267 var_nodearraylist2 = var2;
6268 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6269 var_nodearraylist1 = var3;
6270 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
6271 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
6272 var_listnode3 = var4;
6273 var_pexprnode1 = var_nodearraylist1;
6274 var_listnode2 = var_nodearraylist3;
6275 /* <var_listnode2:nullable Object> isa Array[Object] */
6276 cltype = type_array__Arraykernel__Object.color;
6277 idtype = type_array__Arraykernel__Object.id;
6278 if(var_listnode2 == NULL) {
6279 var5 = 0;
6280 } else {
6281 if(cltype >= var_listnode2->type->table_size) {
6282 var5 = 0;
6283 } else {
6284 var5 = var_listnode2->type->type_table[cltype] == idtype;
6285 }
6286 }
6287 if (!var5) {
6288 fprintf(stderr, "Runtime error: %s", "Assert failed");
6289 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28783);
6290 show_backtrace(1);
6291 }
6292 var6 = NULL;
6293 if (var_pexprnode1 == NULL) {
6294 var7 = 0; /* is null */
6295 } else {
6296 var7 = 1; /* arg is null and recv is not */
6297 }
6298 if (var7){
6299 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pexprnode1) /* add on <var_listnode3:Array[Object]>*/;
6300 } else {
6301 }
6302 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode2) /* concat on <self:ReduceAction854>*/;
6303 var_listnode3 = var8;
6304 var_node_list = var_listnode3;
6305 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction854> */
6306 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
6307 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
6308 RET_LABEL:;
6309 }
6310 /* method parser#ReduceAction854#action for (self: Object, Parser) */
6311 void VIRTUAL_parser__ReduceAction854__action(val* self, val* p0) {
6312 parser__ReduceAction854__action(self, p0);
6313 RET_LABEL:;
6314 }
6315 /* method parser#ReduceAction855#action for (self: ReduceAction855, Parser) */
6316 void parser__ReduceAction855__action(val* self, val* p0) {
6317 val* var_p /* var p: Parser */;
6318 val* var /* : null */;
6319 val* var_node_list /* var node_list: nullable Object */;
6320 val* var1 /* : nullable Object */;
6321 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6322 val* var2 /* : nullable Object */;
6323 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6324 val* var3 /* : nullable Object */;
6325 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6326 val* var4 /* : nullable Object */;
6327 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6328 val* var_pexprnode1 /* var pexprnode1: nullable Object */;
6329 long var5 /* : Int */;
6330 long var6 /* : Int */;
6331 var_p = p0;
6332 var = NULL;
6333 var_node_list = var;
6334 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6335 var_nodearraylist4 = var1;
6336 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6337 var_nodearraylist3 = var2;
6338 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6339 var_nodearraylist2 = var3;
6340 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6341 var_nodearraylist1 = var4;
6342 var_pexprnode1 = var_nodearraylist3;
6343 var_node_list = var_pexprnode1;
6344 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction855> */
6345 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
6346 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
6347 RET_LABEL:;
6348 }
6349 /* method parser#ReduceAction855#action for (self: Object, Parser) */
6350 void VIRTUAL_parser__ReduceAction855__action(val* self, val* p0) {
6351 parser__ReduceAction855__action(self, p0);
6352 RET_LABEL:;
6353 }
6354 /* method parser#ReduceAction856#action for (self: ReduceAction856, Parser) */
6355 void parser__ReduceAction856__action(val* self, val* p0) {
6356 val* var_p /* var p: Parser */;
6357 val* var /* : null */;
6358 val* var_node_list /* var node_list: nullable Object */;
6359 val* var1 /* : nullable Object */;
6360 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6361 val* var2 /* : Array[Object] */;
6362 val* var_listnode2 /* var listnode2: Array[Object] */;
6363 val* var_tidnode1 /* var tidnode1: nullable Object */;
6364 val* var3 /* : null */;
6365 short int var4 /* : Bool */;
6366 long var5 /* : Int */;
6367 long var6 /* : Int */;
6368 var_p = p0;
6369 var = NULL;
6370 var_node_list = var;
6371 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6372 var_nodearraylist1 = var1;
6373 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
6374 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
6375 var_listnode2 = var2;
6376 var_tidnode1 = var_nodearraylist1;
6377 var3 = NULL;
6378 if (var_tidnode1 == NULL) {
6379 var4 = 0; /* is null */
6380 } else {
6381 var4 = 1; /* arg is null and recv is not */
6382 }
6383 if (var4){
6384 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_tidnode1) /* add on <var_listnode2:Array[Object]>*/;
6385 } else {
6386 }
6387 var_node_list = var_listnode2;
6388 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction856> */
6389 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
6390 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
6391 RET_LABEL:;
6392 }
6393 /* method parser#ReduceAction856#action for (self: Object, Parser) */
6394 void VIRTUAL_parser__ReduceAction856__action(val* self, val* p0) {
6395 parser__ReduceAction856__action(self, p0);
6396 RET_LABEL:;
6397 }
6398 /* method parser#ReduceAction857#action for (self: ReduceAction857, Parser) */
6399 void parser__ReduceAction857__action(val* self, val* p0) {
6400 val* var_p /* var p: Parser */;
6401 val* var /* : null */;
6402 val* var_node_list /* var node_list: nullable Object */;
6403 val* var1 /* : nullable Object */;
6404 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6405 val* var2 /* : nullable Object */;
6406 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6407 val* var3 /* : nullable Object */;
6408 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6409 val* var4 /* : nullable Object */;
6410 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6411 val* var5 /* : nullable Object */;
6412 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6413 val* var6 /* : Array[Object] */;
6414 val* var_listnode3 /* var listnode3: Array[Object] */;
6415 val* var_listnode1 /* var listnode1: nullable Object */;
6416 short int var7 /* : Bool */;
6417 int cltype;
6418 int idtype;
6419 val* var_tidnode2 /* var tidnode2: nullable Object */;
6420 val* var8 /* : Array[Object] */;
6421 val* var9 /* : null */;
6422 short int var10 /* : Bool */;
6423 long var11 /* : Int */;
6424 long var12 /* : Int */;
6425 var_p = p0;
6426 var = NULL;
6427 var_node_list = var;
6428 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6429 var_nodearraylist5 = var1;
6430 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6431 var_nodearraylist4 = var2;
6432 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6433 var_nodearraylist3 = var3;
6434 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6435 var_nodearraylist2 = var4;
6436 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6437 var_nodearraylist1 = var5;
6438 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
6439 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
6440 var_listnode3 = var6;
6441 var_listnode1 = var_nodearraylist1;
6442 /* <var_listnode1:nullable Object> isa Array[Object] */
6443 cltype = type_array__Arraykernel__Object.color;
6444 idtype = type_array__Arraykernel__Object.id;
6445 if(var_listnode1 == NULL) {
6446 var7 = 0;
6447 } else {
6448 if(cltype >= var_listnode1->type->table_size) {
6449 var7 = 0;
6450 } else {
6451 var7 = var_listnode1->type->type_table[cltype] == idtype;
6452 }
6453 }
6454 if (!var7) {
6455 fprintf(stderr, "Runtime error: %s", "Assert failed");
6456 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28833);
6457 show_backtrace(1);
6458 }
6459 var_tidnode2 = var_nodearraylist5;
6460 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction857>*/;
6461 var_listnode3 = var8;
6462 var9 = NULL;
6463 if (var_tidnode2 == NULL) {
6464 var10 = 0; /* is null */
6465 } else {
6466 var10 = 1; /* arg is null and recv is not */
6467 }
6468 if (var10){
6469 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_tidnode2) /* add on <var_listnode3:Array[Object]>*/;
6470 } else {
6471 }
6472 var_node_list = var_listnode3;
6473 var11 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction857> */
6474 var12 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var11) /* go_to on <var_p:Parser>*/;
6475 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var12, var_node_list) /* push on <var_p:Parser>*/;
6476 RET_LABEL:;
6477 }
6478 /* method parser#ReduceAction857#action for (self: Object, Parser) */
6479 void VIRTUAL_parser__ReduceAction857__action(val* self, val* p0) {
6480 parser__ReduceAction857__action(self, p0);
6481 RET_LABEL:;
6482 }
6483 /* method parser#ReduceAction858#action for (self: ReduceAction858, Parser) */
6484 void parser__ReduceAction858__action(val* self, val* p0) {
6485 val* var_p /* var p: Parser */;
6486 val* var /* : null */;
6487 val* var_node_list /* var node_list: nullable Object */;
6488 val* var1 /* : nullable Object */;
6489 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6490 val* var2 /* : Array[Object] */;
6491 val* var_listnode3 /* var listnode3: Array[Object] */;
6492 val* var_tidnode4 /* var tidnode4: nullable Object */;
6493 short int var3 /* : Bool */;
6494 int cltype;
6495 int idtype;
6496 val* var4 /* : AModuleName */;
6497 val* var5 /* : null */;
6498 val* var_pmodulenamenode1 /* var pmodulenamenode1: nullable AModuleName */;
6499 long var6 /* : Int */;
6500 long var7 /* : Int */;
6501 var_p = p0;
6502 var = NULL;
6503 var_node_list = var;
6504 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6505 var_nodearraylist1 = var1;
6506 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
6507 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
6508 var_listnode3 = var2;
6509 var_tidnode4 = var_nodearraylist1;
6510 /* <var_tidnode4:nullable Object> isa nullable TId */
6511 cltype = type_nullable_parser_nodes__TId.color;
6512 idtype = type_nullable_parser_nodes__TId.id;
6513 if(var_tidnode4 == NULL) {
6514 var3 = 1;
6515 } else {
6516 if(cltype >= var_tidnode4->type->table_size) {
6517 var3 = 0;
6518 } else {
6519 var3 = var_tidnode4->type->type_table[cltype] == idtype;
6520 }
6521 }
6522 if (!var3) {
6523 fprintf(stderr, "Runtime error: %s", "Assert failed");
6524 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28851);
6525 show_backtrace(1);
6526 }
6527 var4 = NEW_parser_nodes__AModuleName(&type_parser_nodes__AModuleName);
6528 var5 = NULL;
6529 ((void (*)(val*, val*, val*, val*))(var4->class->vft[COLOR_parser_prod__AModuleName__init_amodulename]))(var4, var5, var_listnode3, var_tidnode4) /* init_amodulename on <var4:AModuleName>*/;
6530 var_pmodulenamenode1 = var4;
6531 var_node_list = var_pmodulenamenode1;
6532 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction858> */
6533 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
6534 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
6535 RET_LABEL:;
6536 }
6537 /* method parser#ReduceAction858#action for (self: Object, Parser) */
6538 void VIRTUAL_parser__ReduceAction858__action(val* self, val* p0) {
6539 parser__ReduceAction858__action(self, p0);
6540 RET_LABEL:;
6541 }
6542 /* method parser#ReduceAction859#action for (self: ReduceAction859, Parser) */
6543 void parser__ReduceAction859__action(val* self, val* p0) {
6544 val* var_p /* var p: Parser */;
6545 val* var /* : null */;
6546 val* var_node_list /* var node_list: nullable Object */;
6547 val* var1 /* : nullable Object */;
6548 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6549 val* var2 /* : nullable Object */;
6550 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6551 val* var3 /* : Array[Object] */;
6552 val* var_listnode4 /* var listnode4: Array[Object] */;
6553 val* var_listnode3 /* var listnode3: nullable Object */;
6554 short int var4 /* : Bool */;
6555 int cltype;
6556 int idtype;
6557 val* var5 /* : Array[Object] */;
6558 val* var_tidnode5 /* var tidnode5: nullable Object */;
6559 short int var6 /* : Bool */;
6560 int cltype7;
6561 int idtype8;
6562 val* var9 /* : AModuleName */;
6563 val* var10 /* : null */;
6564 val* var_pmodulenamenode1 /* var pmodulenamenode1: nullable AModuleName */;
6565 long var11 /* : Int */;
6566 long var12 /* : Int */;
6567 var_p = p0;
6568 var = NULL;
6569 var_node_list = var;
6570 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6571 var_nodearraylist2 = var1;
6572 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6573 var_nodearraylist1 = var2;
6574 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
6575 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
6576 var_listnode4 = var3;
6577 var_listnode3 = var_nodearraylist1;
6578 /* <var_listnode3:nullable Object> isa Array[Object] */
6579 cltype = type_array__Arraykernel__Object.color;
6580 idtype = type_array__Arraykernel__Object.id;
6581 if(var_listnode3 == NULL) {
6582 var4 = 0;
6583 } else {
6584 if(cltype >= var_listnode3->type->table_size) {
6585 var4 = 0;
6586 } else {
6587 var4 = var_listnode3->type->type_table[cltype] == idtype;
6588 }
6589 }
6590 if (!var4) {
6591 fprintf(stderr, "Runtime error: %s", "Assert failed");
6592 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28870);
6593 show_backtrace(1);
6594 }
6595 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction859>*/;
6596 var_listnode4 = var5;
6597 var_tidnode5 = var_nodearraylist2;
6598 /* <var_tidnode5:nullable Object> isa nullable TId */
6599 cltype7 = type_nullable_parser_nodes__TId.color;
6600 idtype8 = type_nullable_parser_nodes__TId.id;
6601 if(var_tidnode5 == NULL) {
6602 var6 = 1;
6603 } else {
6604 if(cltype7 >= var_tidnode5->type->table_size) {
6605 var6 = 0;
6606 } else {
6607 var6 = var_tidnode5->type->type_table[cltype7] == idtype8;
6608 }
6609 }
6610 if (!var6) {
6611 fprintf(stderr, "Runtime error: %s", "Assert failed");
6612 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28873);
6613 show_backtrace(1);
6614 }
6615 var9 = NEW_parser_nodes__AModuleName(&type_parser_nodes__AModuleName);
6616 var10 = NULL;
6617 ((void (*)(val*, val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AModuleName__init_amodulename]))(var9, var10, var_listnode4, var_tidnode5) /* init_amodulename on <var9:AModuleName>*/;
6618 var_pmodulenamenode1 = var9;
6619 var_node_list = var_pmodulenamenode1;
6620 var11 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction859> */
6621 var12 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var11) /* go_to on <var_p:Parser>*/;
6622 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var12, var_node_list) /* push on <var_p:Parser>*/;
6623 RET_LABEL:;
6624 }
6625 /* method parser#ReduceAction859#action for (self: Object, Parser) */
6626 void VIRTUAL_parser__ReduceAction859__action(val* self, val* p0) {
6627 parser__ReduceAction859__action(self, p0);
6628 RET_LABEL:;
6629 }
6630 /* method parser#ReduceAction860#action for (self: ReduceAction860, Parser) */
6631 void parser__ReduceAction860__action(val* self, val* p0) {
6632 val* var_p /* var p: Parser */;
6633 val* var /* : null */;
6634 val* var_node_list /* var node_list: nullable Object */;
6635 val* var1 /* : nullable Object */;
6636 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6637 val* var2 /* : nullable Object */;
6638 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6639 val* var3 /* : nullable Object */;
6640 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6641 val* var4 /* : Array[Object] */;
6642 val* var_listnode3 /* var listnode3: Array[Object] */;
6643 val* var_tquadnode2 /* var tquadnode2: nullable Object */;
6644 short int var5 /* : Bool */;
6645 int cltype;
6646 int idtype;
6647 val* var_tidnode4 /* var tidnode4: nullable Object */;
6648 short int var6 /* : Bool */;
6649 int cltype7;
6650 int idtype8;
6651 val* var9 /* : AModuleName */;
6652 val* var_pmodulenamenode1 /* var pmodulenamenode1: nullable AModuleName */;
6653 long var10 /* : Int */;
6654 long var11 /* : Int */;
6655 var_p = p0;
6656 var = NULL;
6657 var_node_list = var;
6658 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6659 var_nodearraylist3 = var1;
6660 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6661 var_nodearraylist2 = var2;
6662 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6663 var_nodearraylist1 = var3;
6664 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
6665 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
6666 var_listnode3 = var4;
6667 var_tquadnode2 = var_nodearraylist1;
6668 /* <var_tquadnode2:nullable Object> isa nullable TQuad */
6669 cltype = type_nullable_parser_nodes__TQuad.color;
6670 idtype = type_nullable_parser_nodes__TQuad.id;
6671 if(var_tquadnode2 == NULL) {
6672 var5 = 1;
6673 } else {
6674 if(cltype >= var_tquadnode2->type->table_size) {
6675 var5 = 0;
6676 } else {
6677 var5 = var_tquadnode2->type->type_table[cltype] == idtype;
6678 }
6679 }
6680 if (!var5) {
6681 fprintf(stderr, "Runtime error: %s", "Assert failed");
6682 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28893);
6683 show_backtrace(1);
6684 }
6685 var_tidnode4 = var_nodearraylist3;
6686 /* <var_tidnode4:nullable Object> isa nullable TId */
6687 cltype7 = type_nullable_parser_nodes__TId.color;
6688 idtype8 = type_nullable_parser_nodes__TId.id;
6689 if(var_tidnode4 == NULL) {
6690 var6 = 1;
6691 } else {
6692 if(cltype7 >= var_tidnode4->type->table_size) {
6693 var6 = 0;
6694 } else {
6695 var6 = var_tidnode4->type->type_table[cltype7] == idtype8;
6696 }
6697 }
6698 if (!var6) {
6699 fprintf(stderr, "Runtime error: %s", "Assert failed");
6700 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28895);
6701 show_backtrace(1);
6702 }
6703 var9 = NEW_parser_nodes__AModuleName(&type_parser_nodes__AModuleName);
6704 ((void (*)(val*, val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AModuleName__init_amodulename]))(var9, var_tquadnode2, var_listnode3, var_tidnode4) /* init_amodulename on <var9:AModuleName>*/;
6705 var_pmodulenamenode1 = var9;
6706 var_node_list = var_pmodulenamenode1;
6707 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction860> */
6708 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
6709 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
6710 RET_LABEL:;
6711 }
6712 /* method parser#ReduceAction860#action for (self: Object, Parser) */
6713 void VIRTUAL_parser__ReduceAction860__action(val* self, val* p0) {
6714 parser__ReduceAction860__action(self, p0);
6715 RET_LABEL:;
6716 }
6717 /* method parser#ReduceAction861#action for (self: ReduceAction861, Parser) */
6718 void parser__ReduceAction861__action(val* self, val* p0) {
6719 val* var_p /* var p: Parser */;
6720 val* var /* : null */;
6721 val* var_node_list /* var node_list: nullable Object */;
6722 val* var1 /* : nullable Object */;
6723 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6724 val* var2 /* : nullable Object */;
6725 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6726 val* var3 /* : nullable Object */;
6727 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6728 val* var4 /* : nullable Object */;
6729 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6730 val* var5 /* : Array[Object] */;
6731 val* var_listnode4 /* var listnode4: Array[Object] */;
6732 val* var_tquadnode2 /* var tquadnode2: nullable Object */;
6733 short int var6 /* : Bool */;
6734 int cltype;
6735 int idtype;
6736 val* var_listnode3 /* var listnode3: nullable Object */;
6737 short int var7 /* : Bool */;
6738 int cltype8;
6739 int idtype9;
6740 val* var10 /* : Array[Object] */;
6741 val* var_tidnode5 /* var tidnode5: nullable Object */;
6742 short int var11 /* : Bool */;
6743 int cltype12;
6744 int idtype13;
6745 val* var14 /* : AModuleName */;
6746 val* var_pmodulenamenode1 /* var pmodulenamenode1: nullable AModuleName */;
6747 long var15 /* : Int */;
6748 long var16 /* : Int */;
6749 var_p = p0;
6750 var = NULL;
6751 var_node_list = var;
6752 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6753 var_nodearraylist4 = var1;
6754 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6755 var_nodearraylist3 = var2;
6756 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6757 var_nodearraylist2 = var3;
6758 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6759 var_nodearraylist1 = var4;
6760 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
6761 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
6762 var_listnode4 = var5;
6763 var_tquadnode2 = var_nodearraylist1;
6764 /* <var_tquadnode2:nullable Object> isa nullable TQuad */
6765 cltype = type_nullable_parser_nodes__TQuad.color;
6766 idtype = type_nullable_parser_nodes__TQuad.id;
6767 if(var_tquadnode2 == NULL) {
6768 var6 = 1;
6769 } else {
6770 if(cltype >= var_tquadnode2->type->table_size) {
6771 var6 = 0;
6772 } else {
6773 var6 = var_tquadnode2->type->type_table[cltype] == idtype;
6774 }
6775 }
6776 if (!var6) {
6777 fprintf(stderr, "Runtime error: %s", "Assert failed");
6778 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28916);
6779 show_backtrace(1);
6780 }
6781 var_listnode3 = var_nodearraylist3;
6782 /* <var_listnode3:nullable Object> isa Array[Object] */
6783 cltype8 = type_array__Arraykernel__Object.color;
6784 idtype9 = type_array__Arraykernel__Object.id;
6785 if(var_listnode3 == NULL) {
6786 var7 = 0;
6787 } else {
6788 if(cltype8 >= var_listnode3->type->table_size) {
6789 var7 = 0;
6790 } else {
6791 var7 = var_listnode3->type->type_table[cltype8] == idtype9;
6792 }
6793 }
6794 if (!var7) {
6795 fprintf(stderr, "Runtime error: %s", "Assert failed");
6796 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28918);
6797 show_backtrace(1);
6798 }
6799 var10 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction861>*/;
6800 var_listnode4 = var10;
6801 var_tidnode5 = var_nodearraylist4;
6802 /* <var_tidnode5:nullable Object> isa nullable TId */
6803 cltype12 = type_nullable_parser_nodes__TId.color;
6804 idtype13 = type_nullable_parser_nodes__TId.id;
6805 if(var_tidnode5 == NULL) {
6806 var11 = 1;
6807 } else {
6808 if(cltype12 >= var_tidnode5->type->table_size) {
6809 var11 = 0;
6810 } else {
6811 var11 = var_tidnode5->type->type_table[cltype12] == idtype13;
6812 }
6813 }
6814 if (!var11) {
6815 fprintf(stderr, "Runtime error: %s", "Assert failed");
6816 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28921);
6817 show_backtrace(1);
6818 }
6819 var14 = NEW_parser_nodes__AModuleName(&type_parser_nodes__AModuleName);
6820 ((void (*)(val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__AModuleName__init_amodulename]))(var14, var_tquadnode2, var_listnode4, var_tidnode5) /* init_amodulename on <var14:AModuleName>*/;
6821 var_pmodulenamenode1 = var14;
6822 var_node_list = var_pmodulenamenode1;
6823 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction861> */
6824 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
6825 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
6826 RET_LABEL:;
6827 }
6828 /* method parser#ReduceAction861#action for (self: Object, Parser) */
6829 void VIRTUAL_parser__ReduceAction861__action(val* self, val* p0) {
6830 parser__ReduceAction861__action(self, p0);
6831 RET_LABEL:;
6832 }
6833 /* method parser#ReduceAction862#action for (self: ReduceAction862, Parser) */
6834 void parser__ReduceAction862__action(val* self, val* p0) {
6835 val* var_p /* var p: Parser */;
6836 val* var /* : null */;
6837 val* var_node_list /* var node_list: nullable Object */;
6838 val* var1 /* : nullable Object */;
6839 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6840 val* var2 /* : nullable Object */;
6841 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6842 val* var3 /* : nullable Object */;
6843 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6844 val* var_tidnode1 /* var tidnode1: nullable Object */;
6845 long var4 /* : Int */;
6846 long var5 /* : Int */;
6847 var_p = p0;
6848 var = NULL;
6849 var_node_list = var;
6850 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6851 var_nodearraylist3 = var1;
6852 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6853 var_nodearraylist2 = var2;
6854 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6855 var_nodearraylist1 = var3;
6856 var_tidnode1 = var_nodearraylist1;
6857 var_node_list = var_tidnode1;
6858 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction862> */
6859 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
6860 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
6861 RET_LABEL:;
6862 }
6863 /* method parser#ReduceAction862#action for (self: Object, Parser) */
6864 void VIRTUAL_parser__ReduceAction862__action(val* self, val* p0) {
6865 parser__ReduceAction862__action(self, p0);
6866 RET_LABEL:;
6867 }
6868 /* method parser#ReduceAction863#action for (self: ReduceAction863, Parser) */
6869 void parser__ReduceAction863__action(val* self, val* p0) {
6870 val* var_p /* var p: Parser */;
6871 val* var /* : null */;
6872 val* var_node_list /* var node_list: nullable Object */;
6873 val* var1 /* : nullable Object */;
6874 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6875 val* var2 /* : nullable Object */;
6876 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6877 val* var3 /* : nullable Object */;
6878 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6879 val* var_tclassidnode1 /* var tclassidnode1: nullable Object */;
6880 long var4 /* : Int */;
6881 long var5 /* : Int */;
6882 var_p = p0;
6883 var = NULL;
6884 var_node_list = var;
6885 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6886 var_nodearraylist3 = var1;
6887 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6888 var_nodearraylist2 = var2;
6889 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6890 var_nodearraylist1 = var3;
6891 var_tclassidnode1 = var_nodearraylist1;
6892 var_node_list = var_tclassidnode1;
6893 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction863> */
6894 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
6895 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
6896 RET_LABEL:;
6897 }
6898 /* method parser#ReduceAction863#action for (self: Object, Parser) */
6899 void VIRTUAL_parser__ReduceAction863__action(val* self, val* p0) {
6900 parser__ReduceAction863__action(self, p0);
6901 RET_LABEL:;
6902 }
6903 /* method parser#ReduceAction864#action for (self: ReduceAction864, Parser) */
6904 void parser__ReduceAction864__action(val* self, val* p0) {
6905 val* var_p /* var p: Parser */;
6906 val* var /* : null */;
6907 val* var_node_list /* var node_list: nullable Object */;
6908 val* var1 /* : nullable Object */;
6909 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6910 long var2 /* : Int */;
6911 long var3 /* : Int */;
6912 var_p = p0;
6913 var = NULL;
6914 var_node_list = var;
6915 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6916 var_nodearraylist1 = var1;
6917 var2 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction864> */
6918 var3 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var2) /* go_to on <var_p:Parser>*/;
6919 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var3, var_node_list) /* push on <var_p:Parser>*/;
6920 RET_LABEL:;
6921 }
6922 /* method parser#ReduceAction864#action for (self: Object, Parser) */
6923 void VIRTUAL_parser__ReduceAction864__action(val* self, val* p0) {
6924 parser__ReduceAction864__action(self, p0);
6925 RET_LABEL:;
6926 }
6927 /* method parser#ReduceAction866#action for (self: ReduceAction866, Parser) */
6928 void parser__ReduceAction866__action(val* self, val* p0) {
6929 val* var_p /* var p: Parser */;
6930 val* var /* : null */;
6931 val* var_node_list /* var node_list: nullable Object */;
6932 val* var1 /* : nullable Object */;
6933 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6934 val* var2 /* : Array[Object] */;
6935 val* var_listnode3 /* var listnode3: Array[Object] */;
6936 val* var_listnode2 /* var listnode2: nullable Object */;
6937 short int var3 /* : Bool */;
6938 int cltype;
6939 int idtype;
6940 val* var4 /* : Array[Object] */;
6941 val* var5 /* : ADoc */;
6942 val* var_pdocnode1 /* var pdocnode1: nullable ADoc */;
6943 long var6 /* : Int */;
6944 long var7 /* : Int */;
6945 var_p = p0;
6946 var = NULL;
6947 var_node_list = var;
6948 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6949 var_nodearraylist1 = var1;
6950 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
6951 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
6952 var_listnode3 = var2;
6953 var_listnode2 = var_nodearraylist1;
6954 /* <var_listnode2:nullable Object> isa Array[Object] */
6955 cltype = type_array__Arraykernel__Object.color;
6956 idtype = type_array__Arraykernel__Object.id;
6957 if(var_listnode2 == NULL) {
6958 var3 = 0;
6959 } else {
6960 if(cltype >= var_listnode2->type->table_size) {
6961 var3 = 0;
6962 } else {
6963 var3 = var_listnode2->type->type_table[cltype] == idtype;
6964 }
6965 }
6966 if (!var3) {
6967 fprintf(stderr, "Runtime error: %s", "Assert failed");
6968 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28974);
6969 show_backtrace(1);
6970 }
6971 var4 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode2) /* concat on <self:ReduceAction866>*/;
6972 var_listnode3 = var4;
6973 var5 = NEW_parser_nodes__ADoc(&type_parser_nodes__ADoc);
6974 ((void (*)(val*, val*))(var5->class->vft[COLOR_parser_prod__ADoc__init_adoc]))(var5, var_listnode3) /* init_adoc on <var5:ADoc>*/;
6975 var_pdocnode1 = var5;
6976 var_node_list = var_pdocnode1;
6977 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction866> */
6978 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
6979 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
6980 RET_LABEL:;
6981 }
6982 /* method parser#ReduceAction866#action for (self: Object, Parser) */
6983 void VIRTUAL_parser__ReduceAction866__action(val* self, val* p0) {
6984 parser__ReduceAction866__action(self, p0);
6985 RET_LABEL:;
6986 }
6987 /* method parser#ReduceAction867#action for (self: ReduceAction867, Parser) */
6988 void parser__ReduceAction867__action(val* self, val* p0) {
6989 val* var_p /* var p: Parser */;
6990 val* var /* : null */;
6991 val* var_node_list /* var node_list: nullable Object */;
6992 val* var1 /* : nullable Object */;
6993 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6994 val* var2 /* : nullable Object */;
6995 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6996 val* var3 /* : Array[Object] */;
6997 val* var_listnode3 /* var listnode3: Array[Object] */;
6998 val* var_listnode2 /* var listnode2: nullable Object */;
6999 short int var4 /* : Bool */;
7000 int cltype;
7001 int idtype;
7002 val* var5 /* : Array[Object] */;
7003 val* var6 /* : ADoc */;
7004 val* var_pdocnode1 /* var pdocnode1: nullable ADoc */;
7005 long var7 /* : Int */;
7006 long var8 /* : Int */;
7007 var_p = p0;
7008 var = NULL;
7009 var_node_list = var;
7010 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7011 var_nodearraylist2 = var1;
7012 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7013 var_nodearraylist1 = var2;
7014 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
7015 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
7016 var_listnode3 = var3;
7017 var_listnode2 = var_nodearraylist2;
7018 /* <var_listnode2:nullable Object> isa Array[Object] */
7019 cltype = type_array__Arraykernel__Object.color;
7020 idtype = type_array__Arraykernel__Object.id;
7021 if(var_listnode2 == NULL) {
7022 var4 = 0;
7023 } else {
7024 if(cltype >= var_listnode2->type->table_size) {
7025 var4 = 0;
7026 } else {
7027 var4 = var_listnode2->type->type_table[cltype] == idtype;
7028 }
7029 }
7030 if (!var4) {
7031 fprintf(stderr, "Runtime error: %s", "Assert failed");
7032 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28992);
7033 show_backtrace(1);
7034 }
7035 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode2) /* concat on <self:ReduceAction867>*/;
7036 var_listnode3 = var5;
7037 var6 = NEW_parser_nodes__ADoc(&type_parser_nodes__ADoc);
7038 ((void (*)(val*, val*))(var6->class->vft[COLOR_parser_prod__ADoc__init_adoc]))(var6, var_listnode3) /* init_adoc on <var6:ADoc>*/;
7039 var_pdocnode1 = var6;
7040 var_node_list = var_pdocnode1;
7041 var7 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction867> */
7042 var8 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var7) /* go_to on <var_p:Parser>*/;
7043 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var8, var_node_list) /* push on <var_p:Parser>*/;
7044 RET_LABEL:;
7045 }
7046 /* method parser#ReduceAction867#action for (self: Object, Parser) */
7047 void VIRTUAL_parser__ReduceAction867__action(val* self, val* p0) {
7048 parser__ReduceAction867__action(self, p0);
7049 RET_LABEL:;
7050 }
7051 /* method parser#ReduceAction869#action for (self: ReduceAction869, Parser) */
7052 void parser__ReduceAction869__action(val* self, val* p0) {
7053 val* var_p /* var p: Parser */;
7054 val* var /* : null */;
7055 val* var_node_list /* var node_list: nullable Object */;
7056 val* var1 /* : null */;
7057 long var2 /* : Int */;
7058 long var3 /* : Int */;
7059 var_p = p0;
7060 var = NULL;
7061 var_node_list = var;
7062 var1 = NULL;
7063 var_node_list = var1;
7064 var2 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction869> */
7065 var3 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var2) /* go_to on <var_p:Parser>*/;
7066 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var3, var_node_list) /* push on <var_p:Parser>*/;
7067 RET_LABEL:;
7068 }
7069 /* method parser#ReduceAction869#action for (self: Object, Parser) */
7070 void VIRTUAL_parser__ReduceAction869__action(val* self, val* p0) {
7071 parser__ReduceAction869__action(self, p0);
7072 RET_LABEL:;
7073 }
7074 /* method parser#ReduceAction870#action for (self: ReduceAction870, Parser) */
7075 void parser__ReduceAction870__action(val* self, val* p0) {
7076 val* var_p /* var p: Parser */;
7077 val* var /* : null */;
7078 val* var_node_list /* var node_list: nullable Object */;
7079 val* var1 /* : nullable Object */;
7080 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7081 val* var_pdocnode1 /* var pdocnode1: nullable Object */;
7082 long var2 /* : Int */;
7083 long var3 /* : Int */;
7084 var_p = p0;
7085 var = NULL;
7086 var_node_list = var;
7087 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7088 var_nodearraylist1 = var1;
7089 var_pdocnode1 = var_nodearraylist1;
7090 var_node_list = var_pdocnode1;
7091 var2 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction870> */
7092 var3 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var2) /* go_to on <var_p:Parser>*/;
7093 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var3, var_node_list) /* push on <var_p:Parser>*/;
7094 RET_LABEL:;
7095 }
7096 /* method parser#ReduceAction870#action for (self: Object, Parser) */
7097 void VIRTUAL_parser__ReduceAction870__action(val* self, val* p0) {
7098 parser__ReduceAction870__action(self, p0);
7099 RET_LABEL:;
7100 }
7101 /* method parser#ReduceAction871#action for (self: ReduceAction871, Parser) */
7102 void parser__ReduceAction871__action(val* self, val* p0) {
7103 val* var_p /* var p: Parser */;
7104 val* var /* : null */;
7105 val* var_node_list /* var node_list: nullable Object */;
7106 val* var1 /* : nullable Object */;
7107 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7108 val* var2 /* : nullable Object */;
7109 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7110 long var3 /* : Int */;
7111 long var4 /* : Int */;
7112 var_p = p0;
7113 var = NULL;
7114 var_node_list = var;
7115 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7116 var_nodearraylist2 = var1;
7117 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7118 var_nodearraylist1 = var2;
7119 var3 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction871> */
7120 var4 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var3) /* go_to on <var_p:Parser>*/;
7121 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var4, var_node_list) /* push on <var_p:Parser>*/;
7122 RET_LABEL:;
7123 }
7124 /* method parser#ReduceAction871#action for (self: Object, Parser) */
7125 void VIRTUAL_parser__ReduceAction871__action(val* self, val* p0) {
7126 parser__ReduceAction871__action(self, p0);
7127 RET_LABEL:;
7128 }
7129 /* method parser#ReduceAction872#action for (self: ReduceAction872, Parser) */
7130 void parser__ReduceAction872__action(val* self, val* p0) {
7131 val* var_p /* var p: Parser */;
7132 val* var /* : null */;
7133 val* var_node_list /* var node_list: nullable Object */;
7134 val* var1 /* : nullable Object */;
7135 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7136 val* var2 /* : nullable Object */;
7137 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7138 val* var3 /* : nullable Object */;
7139 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7140 long var4 /* : Int */;
7141 long var5 /* : Int */;
7142 var_p = p0;
7143 var = NULL;
7144 var_node_list = var;
7145 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7146 var_nodearraylist3 = var1;
7147 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7148 var_nodearraylist2 = var2;
7149 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7150 var_nodearraylist1 = var3;
7151 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction872> */
7152 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
7153 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
7154 RET_LABEL:;
7155 }
7156 /* method parser#ReduceAction872#action for (self: Object, Parser) */
7157 void VIRTUAL_parser__ReduceAction872__action(val* self, val* p0) {
7158 parser__ReduceAction872__action(self, p0);
7159 RET_LABEL:;
7160 }
7161 /* method parser#ReduceAction1217#action for (self: ReduceAction1217, Parser) */
7162 void parser__ReduceAction1217__action(val* self, val* p0) {
7163 val* var_p /* var p: Parser */;
7164 val* var /* : null */;
7165 val* var_node_list /* var node_list: nullable Object */;
7166 val* var1 /* : nullable Object */;
7167 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7168 val* var2 /* : nullable Object */;
7169 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7170 val* var3 /* : nullable Object */;
7171 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7172 val* var_tkwissetnode2 /* var tkwissetnode2: nullable Object */;
7173 short int var4 /* : Bool */;
7174 int cltype;
7175 int idtype;
7176 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
7177 short int var5 /* : Bool */;
7178 int cltype6;
7179 int idtype7;
7180 val* var_tattridnode4 /* var tattridnode4: nullable Object */;
7181 short int var8 /* : Bool */;
7182 int cltype9;
7183 int idtype10;
7184 val* var11 /* : AIssetAttrExpr */;
7185 val* var_pexprnode1 /* var pexprnode1: nullable AIssetAttrExpr */;
7186 long var12 /* : Int */;
7187 long var13 /* : Int */;
7188 var_p = p0;
7189 var = NULL;
7190 var_node_list = var;
7191 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7192 var_nodearraylist3 = var1;
7193 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7194 var_nodearraylist2 = var2;
7195 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7196 var_nodearraylist1 = var3;
7197 var_tkwissetnode2 = var_nodearraylist1;
7198 /* <var_tkwissetnode2:nullable Object> isa nullable TKwisset */
7199 cltype = type_nullable_parser_nodes__TKwisset.color;
7200 idtype = type_nullable_parser_nodes__TKwisset.id;
7201 if(var_tkwissetnode2 == NULL) {
7202 var4 = 1;
7203 } else {
7204 if(cltype >= var_tkwissetnode2->type->table_size) {
7205 var4 = 0;
7206 } else {
7207 var4 = var_tkwissetnode2->type->type_table[cltype] == idtype;
7208 }
7209 }
7210 if (!var4) {
7211 fprintf(stderr, "Runtime error: %s", "Assert failed");
7212 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29051);
7213 show_backtrace(1);
7214 }
7215 var_pexprnode3 = var_nodearraylist2;
7216 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
7217 cltype6 = type_nullable_parser_nodes__AExpr.color;
7218 idtype7 = type_nullable_parser_nodes__AExpr.id;
7219 if(var_pexprnode3 == NULL) {
7220 var5 = 1;
7221 } else {
7222 if(cltype6 >= var_pexprnode3->type->table_size) {
7223 var5 = 0;
7224 } else {
7225 var5 = var_pexprnode3->type->type_table[cltype6] == idtype7;
7226 }
7227 }
7228 if (!var5) {
7229 fprintf(stderr, "Runtime error: %s", "Assert failed");
7230 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29053);
7231 show_backtrace(1);
7232 }
7233 var_tattridnode4 = var_nodearraylist3;
7234 /* <var_tattridnode4:nullable Object> isa nullable TAttrid */
7235 cltype9 = type_nullable_parser_nodes__TAttrid.color;
7236 idtype10 = type_nullable_parser_nodes__TAttrid.id;
7237 if(var_tattridnode4 == NULL) {
7238 var8 = 1;
7239 } else {
7240 if(cltype9 >= var_tattridnode4->type->table_size) {
7241 var8 = 0;
7242 } else {
7243 var8 = var_tattridnode4->type->type_table[cltype9] == idtype10;
7244 }
7245 }
7246 if (!var8) {
7247 fprintf(stderr, "Runtime error: %s", "Assert failed");
7248 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29055);
7249 show_backtrace(1);
7250 }
7251 var11 = NEW_parser_nodes__AIssetAttrExpr(&type_parser_nodes__AIssetAttrExpr);
7252 ((void (*)(val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AIssetAttrExpr__init_aissetattrexpr]))(var11, var_tkwissetnode2, var_pexprnode3, var_tattridnode4) /* init_aissetattrexpr on <var11:AIssetAttrExpr>*/;
7253 var_pexprnode1 = var11;
7254 var_node_list = var_pexprnode1;
7255 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1217> */
7256 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
7257 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
7258 RET_LABEL:;
7259 }
7260 /* method parser#ReduceAction1217#action for (self: Object, Parser) */
7261 void VIRTUAL_parser__ReduceAction1217__action(val* self, val* p0) {
7262 parser__ReduceAction1217__action(self, p0);
7263 RET_LABEL:;
7264 }
7265 /* method parser#ReduceAction1218#action for (self: ReduceAction1218, Parser) */
7266 void parser__ReduceAction1218__action(val* self, val* p0) {
7267 val* var_p /* var p: Parser */;
7268 val* var /* : null */;
7269 val* var_node_list /* var node_list: nullable Object */;
7270 val* var1 /* : nullable Object */;
7271 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7272 val* var2 /* : nullable Object */;
7273 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7274 val* var3 /* : nullable Object */;
7275 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7276 val* var4 /* : nullable Object */;
7277 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7278 val* var_tkwissetnode2 /* var tkwissetnode2: nullable Object */;
7279 short int var5 /* : Bool */;
7280 int cltype;
7281 int idtype;
7282 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
7283 short int var6 /* : Bool */;
7284 int cltype7;
7285 int idtype8;
7286 val* var_tattridnode4 /* var tattridnode4: nullable Object */;
7287 short int var9 /* : Bool */;
7288 int cltype10;
7289 int idtype11;
7290 val* var12 /* : AIssetAttrExpr */;
7291 val* var_pexprnode1 /* var pexprnode1: nullable AIssetAttrExpr */;
7292 long var13 /* : Int */;
7293 long var14 /* : Int */;
7294 var_p = p0;
7295 var = NULL;
7296 var_node_list = var;
7297 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7298 var_nodearraylist4 = var1;
7299 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7300 var_nodearraylist3 = var2;
7301 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7302 var_nodearraylist2 = var3;
7303 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7304 var_nodearraylist1 = var4;
7305 var_tkwissetnode2 = var_nodearraylist1;
7306 /* <var_tkwissetnode2:nullable Object> isa nullable TKwisset */
7307 cltype = type_nullable_parser_nodes__TKwisset.color;
7308 idtype = type_nullable_parser_nodes__TKwisset.id;
7309 if(var_tkwissetnode2 == NULL) {
7310 var5 = 1;
7311 } else {
7312 if(cltype >= var_tkwissetnode2->type->table_size) {
7313 var5 = 0;
7314 } else {
7315 var5 = var_tkwissetnode2->type->type_table[cltype] == idtype;
7316 }
7317 }
7318 if (!var5) {
7319 fprintf(stderr, "Runtime error: %s", "Assert failed");
7320 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29075);
7321 show_backtrace(1);
7322 }
7323 var_pexprnode3 = var_nodearraylist2;
7324 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
7325 cltype7 = type_nullable_parser_nodes__AExpr.color;
7326 idtype8 = type_nullable_parser_nodes__AExpr.id;
7327 if(var_pexprnode3 == NULL) {
7328 var6 = 1;
7329 } else {
7330 if(cltype7 >= var_pexprnode3->type->table_size) {
7331 var6 = 0;
7332 } else {
7333 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
7334 }
7335 }
7336 if (!var6) {
7337 fprintf(stderr, "Runtime error: %s", "Assert failed");
7338 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29077);
7339 show_backtrace(1);
7340 }
7341 var_tattridnode4 = var_nodearraylist4;
7342 /* <var_tattridnode4:nullable Object> isa nullable TAttrid */
7343 cltype10 = type_nullable_parser_nodes__TAttrid.color;
7344 idtype11 = type_nullable_parser_nodes__TAttrid.id;
7345 if(var_tattridnode4 == NULL) {
7346 var9 = 1;
7347 } else {
7348 if(cltype10 >= var_tattridnode4->type->table_size) {
7349 var9 = 0;
7350 } else {
7351 var9 = var_tattridnode4->type->type_table[cltype10] == idtype11;
7352 }
7353 }
7354 if (!var9) {
7355 fprintf(stderr, "Runtime error: %s", "Assert failed");
7356 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29079);
7357 show_backtrace(1);
7358 }
7359 var12 = NEW_parser_nodes__AIssetAttrExpr(&type_parser_nodes__AIssetAttrExpr);
7360 ((void (*)(val*, val*, val*, val*))(var12->class->vft[COLOR_parser_prod__AIssetAttrExpr__init_aissetattrexpr]))(var12, var_tkwissetnode2, var_pexprnode3, var_tattridnode4) /* init_aissetattrexpr on <var12:AIssetAttrExpr>*/;
7361 var_pexprnode1 = var12;
7362 var_node_list = var_pexprnode1;
7363 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1218> */
7364 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
7365 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
7366 RET_LABEL:;
7367 }
7368 /* method parser#ReduceAction1218#action for (self: Object, Parser) */
7369 void VIRTUAL_parser__ReduceAction1218__action(val* self, val* p0) {
7370 parser__ReduceAction1218__action(self, p0);
7371 RET_LABEL:;
7372 }
7373 /* method parser#ReduceAction1221#action for (self: ReduceAction1221, Parser) */
7374 void parser__ReduceAction1221__action(val* self, val* p0) {
7375 val* var_p /* var p: Parser */;
7376 val* var /* : null */;
7377 val* var_node_list /* var node_list: nullable Object */;
7378 val* var1 /* : nullable Object */;
7379 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7380 val* var2 /* : nullable Object */;
7381 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7382 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7383 short int var3 /* : Bool */;
7384 int cltype;
7385 int idtype;
7386 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
7387 short int var4 /* : Bool */;
7388 int cltype5;
7389 int idtype6;
7390 val* var7 /* : AAttrExpr */;
7391 val* var_pexprnode1 /* var pexprnode1: nullable AAttrExpr */;
7392 long var8 /* : Int */;
7393 long var9 /* : Int */;
7394 var_p = p0;
7395 var = NULL;
7396 var_node_list = var;
7397 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7398 var_nodearraylist2 = var1;
7399 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7400 var_nodearraylist1 = var2;
7401 var_pexprnode2 = var_nodearraylist1;
7402 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7403 cltype = type_nullable_parser_nodes__AExpr.color;
7404 idtype = type_nullable_parser_nodes__AExpr.id;
7405 if(var_pexprnode2 == NULL) {
7406 var3 = 1;
7407 } else {
7408 if(cltype >= var_pexprnode2->type->table_size) {
7409 var3 = 0;
7410 } else {
7411 var3 = var_pexprnode2->type->type_table[cltype] == idtype;
7412 }
7413 }
7414 if (!var3) {
7415 fprintf(stderr, "Runtime error: %s", "Assert failed");
7416 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29097);
7417 show_backtrace(1);
7418 }
7419 var_tattridnode3 = var_nodearraylist2;
7420 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
7421 cltype5 = type_nullable_parser_nodes__TAttrid.color;
7422 idtype6 = type_nullable_parser_nodes__TAttrid.id;
7423 if(var_tattridnode3 == NULL) {
7424 var4 = 1;
7425 } else {
7426 if(cltype5 >= var_tattridnode3->type->table_size) {
7427 var4 = 0;
7428 } else {
7429 var4 = var_tattridnode3->type->type_table[cltype5] == idtype6;
7430 }
7431 }
7432 if (!var4) {
7433 fprintf(stderr, "Runtime error: %s", "Assert failed");
7434 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29099);
7435 show_backtrace(1);
7436 }
7437 var7 = NEW_parser_nodes__AAttrExpr(&type_parser_nodes__AAttrExpr);
7438 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AAttrExpr__init_aattrexpr]))(var7, var_pexprnode2, var_tattridnode3) /* init_aattrexpr on <var7:AAttrExpr>*/;
7439 var_pexprnode1 = var7;
7440 var_node_list = var_pexprnode1;
7441 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1221> */
7442 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
7443 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
7444 RET_LABEL:;
7445 }
7446 /* method parser#ReduceAction1221#action for (self: Object, Parser) */
7447 void VIRTUAL_parser__ReduceAction1221__action(val* self, val* p0) {
7448 parser__ReduceAction1221__action(self, p0);
7449 RET_LABEL:;
7450 }
7451 /* method parser#ReduceAction1222#action for (self: ReduceAction1222, Parser) */
7452 void parser__ReduceAction1222__action(val* self, val* p0) {
7453 val* var_p /* var p: Parser */;
7454 val* var /* : null */;
7455 val* var_node_list /* var node_list: nullable Object */;
7456 val* var1 /* : nullable Object */;
7457 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7458 val* var2 /* : nullable Object */;
7459 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7460 val* var3 /* : nullable Object */;
7461 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7462 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7463 short int var4 /* : Bool */;
7464 int cltype;
7465 int idtype;
7466 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
7467 short int var5 /* : Bool */;
7468 int cltype6;
7469 int idtype7;
7470 val* var8 /* : AAttrExpr */;
7471 val* var_pexprnode1 /* var pexprnode1: nullable AAttrExpr */;
7472 long var9 /* : Int */;
7473 long var10 /* : Int */;
7474 var_p = p0;
7475 var = NULL;
7476 var_node_list = var;
7477 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7478 var_nodearraylist3 = var1;
7479 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7480 var_nodearraylist2 = var2;
7481 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7482 var_nodearraylist1 = var3;
7483 var_pexprnode2 = var_nodearraylist1;
7484 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7485 cltype = type_nullable_parser_nodes__AExpr.color;
7486 idtype = type_nullable_parser_nodes__AExpr.id;
7487 if(var_pexprnode2 == NULL) {
7488 var4 = 1;
7489 } else {
7490 if(cltype >= var_pexprnode2->type->table_size) {
7491 var4 = 0;
7492 } else {
7493 var4 = var_pexprnode2->type->type_table[cltype] == idtype;
7494 }
7495 }
7496 if (!var4) {
7497 fprintf(stderr, "Runtime error: %s", "Assert failed");
7498 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29117);
7499 show_backtrace(1);
7500 }
7501 var_tattridnode3 = var_nodearraylist3;
7502 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
7503 cltype6 = type_nullable_parser_nodes__TAttrid.color;
7504 idtype7 = type_nullable_parser_nodes__TAttrid.id;
7505 if(var_tattridnode3 == NULL) {
7506 var5 = 1;
7507 } else {
7508 if(cltype6 >= var_tattridnode3->type->table_size) {
7509 var5 = 0;
7510 } else {
7511 var5 = var_tattridnode3->type->type_table[cltype6] == idtype7;
7512 }
7513 }
7514 if (!var5) {
7515 fprintf(stderr, "Runtime error: %s", "Assert failed");
7516 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29119);
7517 show_backtrace(1);
7518 }
7519 var8 = NEW_parser_nodes__AAttrExpr(&type_parser_nodes__AAttrExpr);
7520 ((void (*)(val*, val*, val*))(var8->class->vft[COLOR_parser_prod__AAttrExpr__init_aattrexpr]))(var8, var_pexprnode2, var_tattridnode3) /* init_aattrexpr on <var8:AAttrExpr>*/;
7521 var_pexprnode1 = var8;
7522 var_node_list = var_pexprnode1;
7523 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1222> */
7524 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
7525 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
7526 RET_LABEL:;
7527 }
7528 /* method parser#ReduceAction1222#action for (self: Object, Parser) */
7529 void VIRTUAL_parser__ReduceAction1222__action(val* self, val* p0) {
7530 parser__ReduceAction1222__action(self, p0);
7531 RET_LABEL:;
7532 }
7533 /* method parser#ReduceAction1225#action for (self: ReduceAction1225, Parser) */
7534 void parser__ReduceAction1225__action(val* self, val* p0) {
7535 val* var_p /* var p: Parser */;
7536 val* var /* : null */;
7537 val* var_node_list /* var node_list: nullable Object */;
7538 val* var1 /* : nullable Object */;
7539 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7540 val* var2 /* : nullable Object */;
7541 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7542 val* var3 /* : nullable Object */;
7543 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7544 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7545 short int var4 /* : Bool */;
7546 int cltype;
7547 int idtype;
7548 val* var_tidnode3 /* var tidnode3: nullable Object */;
7549 short int var5 /* : Bool */;
7550 int cltype6;
7551 int idtype7;
7552 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
7553 short int var8 /* : Bool */;
7554 int cltype9;
7555 int idtype10;
7556 val* var11 /* : ACallExpr */;
7557 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
7558 long var12 /* : Int */;
7559 long var13 /* : Int */;
7560 var_p = p0;
7561 var = NULL;
7562 var_node_list = var;
7563 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7564 var_nodearraylist3 = var1;
7565 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7566 var_nodearraylist2 = var2;
7567 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7568 var_nodearraylist1 = var3;
7569 var_pexprnode2 = var_nodearraylist1;
7570 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7571 cltype = type_nullable_parser_nodes__AExpr.color;
7572 idtype = type_nullable_parser_nodes__AExpr.id;
7573 if(var_pexprnode2 == NULL) {
7574 var4 = 1;
7575 } else {
7576 if(cltype >= var_pexprnode2->type->table_size) {
7577 var4 = 0;
7578 } else {
7579 var4 = var_pexprnode2->type->type_table[cltype] == idtype;
7580 }
7581 }
7582 if (!var4) {
7583 fprintf(stderr, "Runtime error: %s", "Assert failed");
7584 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29137);
7585 show_backtrace(1);
7586 }
7587 var_tidnode3 = var_nodearraylist2;
7588 /* <var_tidnode3:nullable Object> isa nullable TId */
7589 cltype6 = type_nullable_parser_nodes__TId.color;
7590 idtype7 = type_nullable_parser_nodes__TId.id;
7591 if(var_tidnode3 == NULL) {
7592 var5 = 1;
7593 } else {
7594 if(cltype6 >= var_tidnode3->type->table_size) {
7595 var5 = 0;
7596 } else {
7597 var5 = var_tidnode3->type->type_table[cltype6] == idtype7;
7598 }
7599 }
7600 if (!var5) {
7601 fprintf(stderr, "Runtime error: %s", "Assert failed");
7602 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29139);
7603 show_backtrace(1);
7604 }
7605 var_pexprsnode4 = var_nodearraylist3;
7606 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
7607 cltype9 = type_nullable_parser_nodes__AExprs.color;
7608 idtype10 = type_nullable_parser_nodes__AExprs.id;
7609 if(var_pexprsnode4 == NULL) {
7610 var8 = 1;
7611 } else {
7612 if(cltype9 >= var_pexprsnode4->type->table_size) {
7613 var8 = 0;
7614 } else {
7615 var8 = var_pexprsnode4->type->type_table[cltype9] == idtype10;
7616 }
7617 }
7618 if (!var8) {
7619 fprintf(stderr, "Runtime error: %s", "Assert failed");
7620 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29141);
7621 show_backtrace(1);
7622 }
7623 var11 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
7624 ((void (*)(val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__ACallExpr__init_acallexpr]))(var11, var_pexprnode2, var_tidnode3, var_pexprsnode4) /* init_acallexpr on <var11:ACallExpr>*/;
7625 var_pexprnode1 = var11;
7626 var_node_list = var_pexprnode1;
7627 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1225> */
7628 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
7629 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
7630 RET_LABEL:;
7631 }
7632 /* method parser#ReduceAction1225#action for (self: Object, Parser) */
7633 void VIRTUAL_parser__ReduceAction1225__action(val* self, val* p0) {
7634 parser__ReduceAction1225__action(self, p0);
7635 RET_LABEL:;
7636 }
7637 /* method parser#ReduceAction1226#action for (self: ReduceAction1226, Parser) */
7638 void parser__ReduceAction1226__action(val* self, val* p0) {
7639 val* var_p /* var p: Parser */;
7640 val* var /* : null */;
7641 val* var_node_list /* var node_list: nullable Object */;
7642 val* var1 /* : nullable Object */;
7643 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7644 val* var2 /* : nullable Object */;
7645 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7646 val* var3 /* : nullable Object */;
7647 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7648 val* var4 /* : nullable Object */;
7649 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7650 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7651 short int var5 /* : Bool */;
7652 int cltype;
7653 int idtype;
7654 val* var_tidnode3 /* var tidnode3: nullable Object */;
7655 short int var6 /* : Bool */;
7656 int cltype7;
7657 int idtype8;
7658 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
7659 short int var9 /* : Bool */;
7660 int cltype10;
7661 int idtype11;
7662 val* var12 /* : ACallExpr */;
7663 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
7664 long var13 /* : Int */;
7665 long var14 /* : Int */;
7666 var_p = p0;
7667 var = NULL;
7668 var_node_list = var;
7669 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7670 var_nodearraylist4 = var1;
7671 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7672 var_nodearraylist3 = var2;
7673 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7674 var_nodearraylist2 = var3;
7675 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7676 var_nodearraylist1 = var4;
7677 var_pexprnode2 = var_nodearraylist1;
7678 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7679 cltype = type_nullable_parser_nodes__AExpr.color;
7680 idtype = type_nullable_parser_nodes__AExpr.id;
7681 if(var_pexprnode2 == NULL) {
7682 var5 = 1;
7683 } else {
7684 if(cltype >= var_pexprnode2->type->table_size) {
7685 var5 = 0;
7686 } else {
7687 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
7688 }
7689 }
7690 if (!var5) {
7691 fprintf(stderr, "Runtime error: %s", "Assert failed");
7692 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29161);
7693 show_backtrace(1);
7694 }
7695 var_tidnode3 = var_nodearraylist3;
7696 /* <var_tidnode3:nullable Object> isa nullable TId */
7697 cltype7 = type_nullable_parser_nodes__TId.color;
7698 idtype8 = type_nullable_parser_nodes__TId.id;
7699 if(var_tidnode3 == NULL) {
7700 var6 = 1;
7701 } else {
7702 if(cltype7 >= var_tidnode3->type->table_size) {
7703 var6 = 0;
7704 } else {
7705 var6 = var_tidnode3->type->type_table[cltype7] == idtype8;
7706 }
7707 }
7708 if (!var6) {
7709 fprintf(stderr, "Runtime error: %s", "Assert failed");
7710 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29163);
7711 show_backtrace(1);
7712 }
7713 var_pexprsnode4 = var_nodearraylist4;
7714 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
7715 cltype10 = type_nullable_parser_nodes__AExprs.color;
7716 idtype11 = type_nullable_parser_nodes__AExprs.id;
7717 if(var_pexprsnode4 == NULL) {
7718 var9 = 1;
7719 } else {
7720 if(cltype10 >= var_pexprsnode4->type->table_size) {
7721 var9 = 0;
7722 } else {
7723 var9 = var_pexprsnode4->type->type_table[cltype10] == idtype11;
7724 }
7725 }
7726 if (!var9) {
7727 fprintf(stderr, "Runtime error: %s", "Assert failed");
7728 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29165);
7729 show_backtrace(1);
7730 }
7731 var12 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
7732 ((void (*)(val*, val*, val*, val*))(var12->class->vft[COLOR_parser_prod__ACallExpr__init_acallexpr]))(var12, var_pexprnode2, var_tidnode3, var_pexprsnode4) /* init_acallexpr on <var12:ACallExpr>*/;
7733 var_pexprnode1 = var12;
7734 var_node_list = var_pexprnode1;
7735 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1226> */
7736 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
7737 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
7738 RET_LABEL:;
7739 }
7740 /* method parser#ReduceAction1226#action for (self: Object, Parser) */
7741 void VIRTUAL_parser__ReduceAction1226__action(val* self, val* p0) {
7742 parser__ReduceAction1226__action(self, p0);
7743 RET_LABEL:;
7744 }
7745 /* method parser#ReduceAction1233#action for (self: ReduceAction1233, Parser) */
7746 void parser__ReduceAction1233__action(val* self, val* p0) {
7747 val* var_p /* var p: Parser */;
7748 val* var /* : null */;
7749 val* var_node_list /* var node_list: nullable Object */;
7750 val* var1 /* : nullable Object */;
7751 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7752 val* var2 /* : nullable Object */;
7753 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7754 val* var3 /* : nullable Object */;
7755 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7756 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7757 short int var4 /* : Bool */;
7758 int cltype;
7759 int idtype;
7760 val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */;
7761 short int var5 /* : Bool */;
7762 int cltype6;
7763 int idtype7;
7764 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
7765 short int var8 /* : Bool */;
7766 int cltype9;
7767 int idtype10;
7768 val* var11 /* : AInitExpr */;
7769 val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */;
7770 long var12 /* : Int */;
7771 long var13 /* : Int */;
7772 var_p = p0;
7773 var = NULL;
7774 var_node_list = var;
7775 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7776 var_nodearraylist3 = var1;
7777 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7778 var_nodearraylist2 = var2;
7779 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7780 var_nodearraylist1 = var3;
7781 var_pexprnode2 = var_nodearraylist1;
7782 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7783 cltype = type_nullable_parser_nodes__AExpr.color;
7784 idtype = type_nullable_parser_nodes__AExpr.id;
7785 if(var_pexprnode2 == NULL) {
7786 var4 = 1;
7787 } else {
7788 if(cltype >= var_pexprnode2->type->table_size) {
7789 var4 = 0;
7790 } else {
7791 var4 = var_pexprnode2->type->type_table[cltype] == idtype;
7792 }
7793 }
7794 if (!var4) {
7795 fprintf(stderr, "Runtime error: %s", "Assert failed");
7796 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29184);
7797 show_backtrace(1);
7798 }
7799 var_tkwinitnode3 = var_nodearraylist2;
7800 /* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
7801 cltype6 = type_nullable_parser_nodes__TKwinit.color;
7802 idtype7 = type_nullable_parser_nodes__TKwinit.id;
7803 if(var_tkwinitnode3 == NULL) {
7804 var5 = 1;
7805 } else {
7806 if(cltype6 >= var_tkwinitnode3->type->table_size) {
7807 var5 = 0;
7808 } else {
7809 var5 = var_tkwinitnode3->type->type_table[cltype6] == idtype7;
7810 }
7811 }
7812 if (!var5) {
7813 fprintf(stderr, "Runtime error: %s", "Assert failed");
7814 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29186);
7815 show_backtrace(1);
7816 }
7817 var_pexprsnode4 = var_nodearraylist3;
7818 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
7819 cltype9 = type_nullable_parser_nodes__AExprs.color;
7820 idtype10 = type_nullable_parser_nodes__AExprs.id;
7821 if(var_pexprsnode4 == NULL) {
7822 var8 = 1;
7823 } else {
7824 if(cltype9 >= var_pexprsnode4->type->table_size) {
7825 var8 = 0;
7826 } else {
7827 var8 = var_pexprsnode4->type->type_table[cltype9] == idtype10;
7828 }
7829 }
7830 if (!var8) {
7831 fprintf(stderr, "Runtime error: %s", "Assert failed");
7832 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29188);
7833 show_backtrace(1);
7834 }
7835 var11 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr);
7836 ((void (*)(val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AInitExpr__init_ainitexpr]))(var11, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4) /* init_ainitexpr on <var11:AInitExpr>*/;
7837 var_pexprnode1 = var11;
7838 var_node_list = var_pexprnode1;
7839 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1233> */
7840 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
7841 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
7842 RET_LABEL:;
7843 }
7844 /* method parser#ReduceAction1233#action for (self: Object, Parser) */
7845 void VIRTUAL_parser__ReduceAction1233__action(val* self, val* p0) {
7846 parser__ReduceAction1233__action(self, p0);
7847 RET_LABEL:;
7848 }
7849 /* method parser#ReduceAction1257#action for (self: ReduceAction1257, Parser) */
7850 void parser__ReduceAction1257__action(val* self, val* p0) {
7851 val* var_p /* var p: Parser */;
7852 val* var /* : null */;
7853 val* var_node_list /* var node_list: nullable Object */;
7854 val* var1 /* : nullable Object */;
7855 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7856 val* var2 /* : nullable Object */;
7857 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7858 val* var3 /* : nullable Object */;
7859 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7860 val* var_pexprnode1 /* var pexprnode1: nullable Object */;
7861 long var4 /* : Int */;
7862 long var5 /* : Int */;
7863 var_p = p0;
7864 var = NULL;
7865 var_node_list = var;
7866 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7867 var_nodearraylist3 = var1;
7868 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7869 var_nodearraylist2 = var2;
7870 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7871 var_nodearraylist1 = var3;
7872 var_pexprnode1 = var_nodearraylist1;
7873 var_node_list = var_pexprnode1;
7874 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1257> */
7875 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
7876 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
7877 RET_LABEL:;
7878 }
7879 /* method parser#ReduceAction1257#action for (self: Object, Parser) */
7880 void VIRTUAL_parser__ReduceAction1257__action(val* self, val* p0) {
7881 parser__ReduceAction1257__action(self, p0);
7882 RET_LABEL:;
7883 }
7884 /* method parser#ReduceAction1258#action for (self: ReduceAction1258, Parser) */
7885 void parser__ReduceAction1258__action(val* self, val* p0) {
7886 val* var_p /* var p: Parser */;
7887 val* var /* : null */;
7888 val* var_node_list /* var node_list: nullable Object */;
7889 val* var1 /* : AImplicitSelfExpr */;
7890 val* var_pexprnode1 /* var pexprnode1: nullable AImplicitSelfExpr */;
7891 long var2 /* : Int */;
7892 long var3 /* : Int */;
7893 var_p = p0;
7894 var = NULL;
7895 var_node_list = var;
7896 var1 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
7897 ((void (*)(val*))(var1->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var1) /* init_aimplicitselfexpr on <var1:AImplicitSelfExpr>*/;
7898 var_pexprnode1 = var1;
7899 var_node_list = var_pexprnode1;
7900 var2 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1258> */
7901 var3 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var2) /* go_to on <var_p:Parser>*/;
7902 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var3, var_node_list) /* push on <var_p:Parser>*/;
7903 RET_LABEL:;
7904 }
7905 /* method parser#ReduceAction1258#action for (self: Object, Parser) */
7906 void VIRTUAL_parser__ReduceAction1258__action(val* self, val* p0) {
7907 parser__ReduceAction1258__action(self, p0);
7908 RET_LABEL:;
7909 }
7910 /* method parser#ReduceAction1526#action for (self: ReduceAction1526, Parser) */
7911 void parser__ReduceAction1526__action(val* self, val* p0) {
7912 val* var_p /* var p: Parser */;
7913 val* var /* : null */;
7914 val* var_node_list /* var node_list: nullable Object */;
7915 val* var1 /* : nullable Object */;
7916 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7917 val* var2 /* : Array[Object] */;
7918 val* var_listnode2 /* var listnode2: Array[Object] */;
7919 val* var_pimportnode1 /* var pimportnode1: nullable Object */;
7920 val* var3 /* : null */;
7921 short int var4 /* : Bool */;
7922 long var5 /* : Int */;
7923 long var6 /* : Int */;
7924 var_p = p0;
7925 var = NULL;
7926 var_node_list = var;
7927 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7928 var_nodearraylist1 = var1;
7929 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
7930 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
7931 var_listnode2 = var2;
7932 var_pimportnode1 = var_nodearraylist1;
7933 var3 = NULL;
7934 if (var_pimportnode1 == NULL) {
7935 var4 = 0; /* is null */
7936 } else {
7937 var4 = 1; /* arg is null and recv is not */
7938 }
7939 if (var4){
7940 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_pimportnode1) /* add on <var_listnode2:Array[Object]>*/;
7941 } else {
7942 }
7943 var_node_list = var_listnode2;
7944 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1526> */
7945 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
7946 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
7947 RET_LABEL:;
7948 }
7949 /* method parser#ReduceAction1526#action for (self: Object, Parser) */
7950 void VIRTUAL_parser__ReduceAction1526__action(val* self, val* p0) {
7951 parser__ReduceAction1526__action(self, p0);
7952 RET_LABEL:;
7953 }
7954 /* method parser#ReduceAction1527#action for (self: ReduceAction1527, Parser) */
7955 void parser__ReduceAction1527__action(val* self, val* p0) {
7956 val* var_p /* var p: Parser */;
7957 val* var /* : null */;
7958 val* var_node_list /* var node_list: nullable Object */;
7959 val* var1 /* : nullable Object */;
7960 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7961 val* var2 /* : nullable Object */;
7962 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7963 val* var3 /* : Array[Object] */;
7964 val* var_listnode3 /* var listnode3: Array[Object] */;
7965 val* var_listnode1 /* var listnode1: nullable Object */;
7966 short int var4 /* : Bool */;
7967 int cltype;
7968 int idtype;
7969 val* var_pimportnode2 /* var pimportnode2: nullable Object */;
7970 val* var5 /* : Array[Object] */;
7971 val* var6 /* : null */;
7972 short int var7 /* : Bool */;
7973 long var8 /* : Int */;
7974 long var9 /* : Int */;
7975 var_p = p0;
7976 var = NULL;
7977 var_node_list = var;
7978 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7979 var_nodearraylist2 = var1;
7980 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7981 var_nodearraylist1 = var2;
7982 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
7983 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
7984 var_listnode3 = var3;
7985 var_listnode1 = var_nodearraylist1;
7986 /* <var_listnode1:nullable Object> isa Array[Object] */
7987 cltype = type_array__Arraykernel__Object.color;
7988 idtype = type_array__Arraykernel__Object.id;
7989 if(var_listnode1 == NULL) {
7990 var4 = 0;
7991 } else {
7992 if(cltype >= var_listnode1->type->table_size) {
7993 var4 = 0;
7994 } else {
7995 var4 = var_listnode1->type->type_table[cltype] == idtype;
7996 }
7997 }
7998 if (!var4) {
7999 fprintf(stderr, "Runtime error: %s", "Assert failed");
8000 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29245);
8001 show_backtrace(1);
8002 }
8003 var_pimportnode2 = var_nodearraylist2;
8004 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1527>*/;
8005 var_listnode3 = var5;
8006 var6 = NULL;
8007 if (var_pimportnode2 == NULL) {
8008 var7 = 0; /* is null */
8009 } else {
8010 var7 = 1; /* arg is null and recv is not */
8011 }
8012 if (var7){
8013 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pimportnode2) /* add on <var_listnode3:Array[Object]>*/;
8014 } else {
8015 }
8016 var_node_list = var_listnode3;
8017 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1527> */
8018 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
8019 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
8020 RET_LABEL:;
8021 }
8022 /* method parser#ReduceAction1527#action for (self: Object, Parser) */
8023 void VIRTUAL_parser__ReduceAction1527__action(val* self, val* p0) {
8024 parser__ReduceAction1527__action(self, p0);
8025 RET_LABEL:;
8026 }
8027 /* method parser#ReduceAction1528#action for (self: ReduceAction1528, Parser) */
8028 void parser__ReduceAction1528__action(val* self, val* p0) {
8029 val* var_p /* var p: Parser */;
8030 val* var /* : null */;
8031 val* var_node_list /* var node_list: nullable Object */;
8032 val* var1 /* : nullable Object */;
8033 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8034 val* var2 /* : Array[Object] */;
8035 val* var_listnode2 /* var listnode2: Array[Object] */;
8036 val* var_pexterncodeblocknode1 /* var pexterncodeblocknode1: nullable Object */;
8037 val* var3 /* : null */;
8038 short int var4 /* : Bool */;
8039 long var5 /* : Int */;
8040 long var6 /* : Int */;
8041 var_p = p0;
8042 var = NULL;
8043 var_node_list = var;
8044 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8045 var_nodearraylist1 = var1;
8046 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
8047 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
8048 var_listnode2 = var2;
8049 var_pexterncodeblocknode1 = var_nodearraylist1;
8050 var3 = NULL;
8051 if (var_pexterncodeblocknode1 == NULL) {
8052 var4 = 0; /* is null */
8053 } else {
8054 var4 = 1; /* arg is null and recv is not */
8055 }
8056 if (var4){
8057 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_pexterncodeblocknode1) /* add on <var_listnode2:Array[Object]>*/;
8058 } else {
8059 }
8060 var_node_list = var_listnode2;
8061 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1528> */
8062 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
8063 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
8064 RET_LABEL:;
8065 }
8066 /* method parser#ReduceAction1528#action for (self: Object, Parser) */
8067 void VIRTUAL_parser__ReduceAction1528__action(val* self, val* p0) {
8068 parser__ReduceAction1528__action(self, p0);
8069 RET_LABEL:;
8070 }
8071 /* method parser#ReduceAction1529#action for (self: ReduceAction1529, Parser) */
8072 void parser__ReduceAction1529__action(val* self, val* p0) {
8073 val* var_p /* var p: Parser */;
8074 val* var /* : null */;
8075 val* var_node_list /* var node_list: nullable Object */;
8076 val* var1 /* : nullable Object */;
8077 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8078 val* var2 /* : nullable Object */;
8079 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8080 val* var3 /* : Array[Object] */;
8081 val* var_listnode3 /* var listnode3: Array[Object] */;
8082 val* var_listnode1 /* var listnode1: nullable Object */;
8083 short int var4 /* : Bool */;
8084 int cltype;
8085 int idtype;
8086 val* var_pexterncodeblocknode2 /* var pexterncodeblocknode2: nullable Object */;
8087 val* var5 /* : Array[Object] */;
8088 val* var6 /* : null */;
8089 short int var7 /* : Bool */;
8090 long var8 /* : Int */;
8091 long var9 /* : Int */;
8092 var_p = p0;
8093 var = NULL;
8094 var_node_list = var;
8095 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8096 var_nodearraylist2 = var1;
8097 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8098 var_nodearraylist1 = var2;
8099 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
8100 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
8101 var_listnode3 = var3;
8102 var_listnode1 = var_nodearraylist1;
8103 /* <var_listnode1:nullable Object> isa Array[Object] */
8104 cltype = type_array__Arraykernel__Object.color;
8105 idtype = type_array__Arraykernel__Object.id;
8106 if(var_listnode1 == NULL) {
8107 var4 = 0;
8108 } else {
8109 if(cltype >= var_listnode1->type->table_size) {
8110 var4 = 0;
8111 } else {
8112 var4 = var_listnode1->type->type_table[cltype] == idtype;
8113 }
8114 }
8115 if (!var4) {
8116 fprintf(stderr, "Runtime error: %s", "Assert failed");
8117 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29279);
8118 show_backtrace(1);
8119 }
8120 var_pexterncodeblocknode2 = var_nodearraylist2;
8121 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1529>*/;
8122 var_listnode3 = var5;
8123 var6 = NULL;
8124 if (var_pexterncodeblocknode2 == NULL) {
8125 var7 = 0; /* is null */
8126 } else {
8127 var7 = 1; /* arg is null and recv is not */
8128 }
8129 if (var7){
8130 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pexterncodeblocknode2) /* add on <var_listnode3:Array[Object]>*/;
8131 } else {
8132 }
8133 var_node_list = var_listnode3;
8134 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1529> */
8135 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
8136 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
8137 RET_LABEL:;
8138 }
8139 /* method parser#ReduceAction1529#action for (self: Object, Parser) */
8140 void VIRTUAL_parser__ReduceAction1529__action(val* self, val* p0) {
8141 parser__ReduceAction1529__action(self, p0);
8142 RET_LABEL:;
8143 }
8144 /* method parser#ReduceAction1530#action for (self: ReduceAction1530, Parser) */
8145 void parser__ReduceAction1530__action(val* self, val* p0) {
8146 val* var_p /* var p: Parser */;
8147 val* var /* : null */;
8148 val* var_node_list /* var node_list: nullable Object */;
8149 val* var1 /* : nullable Object */;
8150 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8151 val* var2 /* : Array[Object] */;
8152 val* var_listnode2 /* var listnode2: Array[Object] */;
8153 val* var_pclassdefnode1 /* var pclassdefnode1: nullable Object */;
8154 val* var3 /* : null */;
8155 short int var4 /* : Bool */;
8156 long var5 /* : Int */;
8157 long var6 /* : Int */;
8158 var_p = p0;
8159 var = NULL;
8160 var_node_list = var;
8161 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8162 var_nodearraylist1 = var1;
8163 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
8164 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
8165 var_listnode2 = var2;
8166 var_pclassdefnode1 = var_nodearraylist1;
8167 var3 = NULL;
8168 if (var_pclassdefnode1 == NULL) {
8169 var4 = 0; /* is null */
8170 } else {
8171 var4 = 1; /* arg is null and recv is not */
8172 }
8173 if (var4){
8174 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_pclassdefnode1) /* add on <var_listnode2:Array[Object]>*/;
8175 } else {
8176 }
8177 var_node_list = var_listnode2;
8178 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1530> */
8179 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
8180 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
8181 RET_LABEL:;
8182 }
8183 /* method parser#ReduceAction1530#action for (self: Object, Parser) */
8184 void VIRTUAL_parser__ReduceAction1530__action(val* self, val* p0) {
8185 parser__ReduceAction1530__action(self, p0);
8186 RET_LABEL:;
8187 }
8188 /* method parser#ReduceAction1531#action for (self: ReduceAction1531, Parser) */
8189 void parser__ReduceAction1531__action(val* self, val* p0) {
8190 val* var_p /* var p: Parser */;
8191 val* var /* : null */;
8192 val* var_node_list /* var node_list: nullable Object */;
8193 val* var1 /* : nullable Object */;
8194 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8195 val* var2 /* : nullable Object */;
8196 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8197 val* var3 /* : Array[Object] */;
8198 val* var_listnode3 /* var listnode3: Array[Object] */;
8199 val* var_listnode1 /* var listnode1: nullable Object */;
8200 short int var4 /* : Bool */;
8201 int cltype;
8202 int idtype;
8203 val* var_pclassdefnode2 /* var pclassdefnode2: nullable Object */;
8204 val* var5 /* : Array[Object] */;
8205 val* var6 /* : null */;
8206 short int var7 /* : Bool */;
8207 long var8 /* : Int */;
8208 long var9 /* : Int */;
8209 var_p = p0;
8210 var = NULL;
8211 var_node_list = var;
8212 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8213 var_nodearraylist2 = var1;
8214 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8215 var_nodearraylist1 = var2;
8216 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
8217 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
8218 var_listnode3 = var3;
8219 var_listnode1 = var_nodearraylist1;
8220 /* <var_listnode1:nullable Object> isa Array[Object] */
8221 cltype = type_array__Arraykernel__Object.color;
8222 idtype = type_array__Arraykernel__Object.id;
8223 if(var_listnode1 == NULL) {
8224 var4 = 0;
8225 } else {
8226 if(cltype >= var_listnode1->type->table_size) {
8227 var4 = 0;
8228 } else {
8229 var4 = var_listnode1->type->type_table[cltype] == idtype;
8230 }
8231 }
8232 if (!var4) {
8233 fprintf(stderr, "Runtime error: %s", "Assert failed");
8234 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29313);
8235 show_backtrace(1);
8236 }
8237 var_pclassdefnode2 = var_nodearraylist2;
8238 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1531>*/;
8239 var_listnode3 = var5;
8240 var6 = NULL;
8241 if (var_pclassdefnode2 == NULL) {
8242 var7 = 0; /* is null */
8243 } else {
8244 var7 = 1; /* arg is null and recv is not */
8245 }
8246 if (var7){
8247 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pclassdefnode2) /* add on <var_listnode3:Array[Object]>*/;
8248 } else {
8249 }
8250 var_node_list = var_listnode3;
8251 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1531> */
8252 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
8253 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
8254 RET_LABEL:;
8255 }
8256 /* method parser#ReduceAction1531#action for (self: Object, Parser) */
8257 void VIRTUAL_parser__ReduceAction1531__action(val* self, val* p0) {
8258 parser__ReduceAction1531__action(self, p0);
8259 RET_LABEL:;
8260 }
8261 /* method parser#ReduceAction1532#action for (self: ReduceAction1532, Parser) */
8262 void parser__ReduceAction1532__action(val* self, val* p0) {
8263 val* var_p /* var p: Parser */;
8264 val* var /* : null */;
8265 val* var_node_list /* var node_list: nullable Object */;
8266 val* var1 /* : nullable Object */;
8267 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8268 val* var2 /* : Array[Object] */;
8269 val* var_listnode2 /* var listnode2: Array[Object] */;
8270 val* var_ppropdefnode1 /* var ppropdefnode1: nullable Object */;
8271 val* var3 /* : null */;
8272 short int var4 /* : Bool */;
8273 long var5 /* : Int */;
8274 long var6 /* : Int */;
8275 var_p = p0;
8276 var = NULL;
8277 var_node_list = var;
8278 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8279 var_nodearraylist1 = var1;
8280 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
8281 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
8282 var_listnode2 = var2;
8283 var_ppropdefnode1 = var_nodearraylist1;
8284 var3 = NULL;
8285 if (var_ppropdefnode1 == NULL) {
8286 var4 = 0; /* is null */
8287 } else {
8288 var4 = 1; /* arg is null and recv is not */
8289 }
8290 if (var4){
8291 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_ppropdefnode1) /* add on <var_listnode2:Array[Object]>*/;
8292 } else {
8293 }
8294 var_node_list = var_listnode2;
8295 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1532> */
8296 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
8297 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
8298 RET_LABEL:;
8299 }
8300 /* method parser#ReduceAction1532#action for (self: Object, Parser) */
8301 void VIRTUAL_parser__ReduceAction1532__action(val* self, val* p0) {
8302 parser__ReduceAction1532__action(self, p0);
8303 RET_LABEL:;
8304 }
8305 /* method parser#ReduceAction1533#action for (self: ReduceAction1533, Parser) */
8306 void parser__ReduceAction1533__action(val* self, val* p0) {
8307 val* var_p /* var p: Parser */;
8308 val* var /* : null */;
8309 val* var_node_list /* var node_list: nullable Object */;
8310 val* var1 /* : nullable Object */;
8311 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8312 val* var2 /* : nullable Object */;
8313 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8314 val* var3 /* : Array[Object] */;
8315 val* var_listnode3 /* var listnode3: Array[Object] */;
8316 val* var_listnode1 /* var listnode1: nullable Object */;
8317 short int var4 /* : Bool */;
8318 int cltype;
8319 int idtype;
8320 val* var_ppropdefnode2 /* var ppropdefnode2: nullable Object */;
8321 val* var5 /* : Array[Object] */;
8322 val* var6 /* : null */;
8323 short int var7 /* : Bool */;
8324 long var8 /* : Int */;
8325 long var9 /* : Int */;
8326 var_p = p0;
8327 var = NULL;
8328 var_node_list = var;
8329 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8330 var_nodearraylist2 = var1;
8331 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8332 var_nodearraylist1 = var2;
8333 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
8334 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
8335 var_listnode3 = var3;
8336 var_listnode1 = var_nodearraylist1;
8337 /* <var_listnode1:nullable Object> isa Array[Object] */
8338 cltype = type_array__Arraykernel__Object.color;
8339 idtype = type_array__Arraykernel__Object.id;
8340 if(var_listnode1 == NULL) {
8341 var4 = 0;
8342 } else {
8343 if(cltype >= var_listnode1->type->table_size) {
8344 var4 = 0;
8345 } else {
8346 var4 = var_listnode1->type->type_table[cltype] == idtype;
8347 }
8348 }
8349 if (!var4) {
8350 fprintf(stderr, "Runtime error: %s", "Assert failed");
8351 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29347);
8352 show_backtrace(1);
8353 }
8354 var_ppropdefnode2 = var_nodearraylist2;
8355 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1533>*/;
8356 var_listnode3 = var5;
8357 var6 = NULL;
8358 if (var_ppropdefnode2 == NULL) {
8359 var7 = 0; /* is null */
8360 } else {
8361 var7 = 1; /* arg is null and recv is not */
8362 }
8363 if (var7){
8364 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_ppropdefnode2) /* add on <var_listnode3:Array[Object]>*/;
8365 } else {
8366 }
8367 var_node_list = var_listnode3;
8368 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1533> */
8369 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
8370 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
8371 RET_LABEL:;
8372 }
8373 /* method parser#ReduceAction1533#action for (self: Object, Parser) */
8374 void VIRTUAL_parser__ReduceAction1533__action(val* self, val* p0) {
8375 parser__ReduceAction1533__action(self, p0);
8376 RET_LABEL:;
8377 }
8378 /* method parser#ReduceAction1534#action for (self: ReduceAction1534, Parser) */
8379 void parser__ReduceAction1534__action(val* self, val* p0) {
8380 val* var_p /* var p: Parser */;
8381 val* var /* : null */;
8382 val* var_node_list /* var node_list: nullable Object */;
8383 val* var1 /* : nullable Object */;
8384 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8385 val* var2 /* : Array[Object] */;
8386 val* var_listnode2 /* var listnode2: Array[Object] */;
8387 val* var_psuperclassnode1 /* var psuperclassnode1: nullable Object */;
8388 val* var3 /* : null */;
8389 short int var4 /* : Bool */;
8390 long var5 /* : Int */;
8391 long var6 /* : Int */;
8392 var_p = p0;
8393 var = NULL;
8394 var_node_list = var;
8395 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8396 var_nodearraylist1 = var1;
8397 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
8398 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
8399 var_listnode2 = var2;
8400 var_psuperclassnode1 = var_nodearraylist1;
8401 var3 = NULL;
8402 if (var_psuperclassnode1 == NULL) {
8403 var4 = 0; /* is null */
8404 } else {
8405 var4 = 1; /* arg is null and recv is not */
8406 }
8407 if (var4){
8408 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_psuperclassnode1) /* add on <var_listnode2:Array[Object]>*/;
8409 } else {
8410 }
8411 var_node_list = var_listnode2;
8412 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1534> */
8413 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
8414 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
8415 RET_LABEL:;
8416 }
8417 /* method parser#ReduceAction1534#action for (self: Object, Parser) */
8418 void VIRTUAL_parser__ReduceAction1534__action(val* self, val* p0) {
8419 parser__ReduceAction1534__action(self, p0);
8420 RET_LABEL:;
8421 }
8422 /* method parser#ReduceAction1535#action for (self: ReduceAction1535, Parser) */
8423 void parser__ReduceAction1535__action(val* self, val* p0) {
8424 val* var_p /* var p: Parser */;
8425 val* var /* : null */;
8426 val* var_node_list /* var node_list: nullable Object */;
8427 val* var1 /* : nullable Object */;
8428 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8429 val* var2 /* : nullable Object */;
8430 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8431 val* var3 /* : Array[Object] */;
8432 val* var_listnode3 /* var listnode3: Array[Object] */;
8433 val* var_listnode1 /* var listnode1: nullable Object */;
8434 short int var4 /* : Bool */;
8435 int cltype;
8436 int idtype;
8437 val* var_psuperclassnode2 /* var psuperclassnode2: nullable Object */;
8438 val* var5 /* : Array[Object] */;
8439 val* var6 /* : null */;
8440 short int var7 /* : Bool */;
8441 long var8 /* : Int */;
8442 long var9 /* : Int */;
8443 var_p = p0;
8444 var = NULL;
8445 var_node_list = var;
8446 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8447 var_nodearraylist2 = var1;
8448 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8449 var_nodearraylist1 = var2;
8450 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
8451 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
8452 var_listnode3 = var3;
8453 var_listnode1 = var_nodearraylist1;
8454 /* <var_listnode1:nullable Object> isa Array[Object] */
8455 cltype = type_array__Arraykernel__Object.color;
8456 idtype = type_array__Arraykernel__Object.id;
8457 if(var_listnode1 == NULL) {
8458 var4 = 0;
8459 } else {
8460 if(cltype >= var_listnode1->type->table_size) {
8461 var4 = 0;
8462 } else {
8463 var4 = var_listnode1->type->type_table[cltype] == idtype;
8464 }
8465 }
8466 if (!var4) {
8467 fprintf(stderr, "Runtime error: %s", "Assert failed");
8468 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29381);
8469 show_backtrace(1);
8470 }
8471 var_psuperclassnode2 = var_nodearraylist2;
8472 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1535>*/;
8473 var_listnode3 = var5;
8474 var6 = NULL;
8475 if (var_psuperclassnode2 == NULL) {
8476 var7 = 0; /* is null */
8477 } else {
8478 var7 = 1; /* arg is null and recv is not */
8479 }
8480 if (var7){
8481 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_psuperclassnode2) /* add on <var_listnode3:Array[Object]>*/;
8482 } else {
8483 }
8484 var_node_list = var_listnode3;
8485 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1535> */
8486 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
8487 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
8488 RET_LABEL:;
8489 }
8490 /* method parser#ReduceAction1535#action for (self: Object, Parser) */
8491 void VIRTUAL_parser__ReduceAction1535__action(val* self, val* p0) {
8492 parser__ReduceAction1535__action(self, p0);
8493 RET_LABEL:;
8494 }
8495 /* method parser#ReduceAction1538#action for (self: ReduceAction1538, Parser) */
8496 void parser__ReduceAction1538__action(val* self, val* p0) {
8497 val* var_p /* var p: Parser */;
8498 val* var /* : null */;
8499 val* var_node_list /* var node_list: nullable Object */;
8500 val* var1 /* : nullable Object */;
8501 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8502 val* var2 /* : Array[Object] */;
8503 val* var_listnode2 /* var listnode2: Array[Object] */;
8504 val* var_pformaldefnode1 /* var pformaldefnode1: nullable Object */;
8505 val* var3 /* : null */;
8506 short int var4 /* : Bool */;
8507 long var5 /* : Int */;
8508 long var6 /* : Int */;
8509 var_p = p0;
8510 var = NULL;
8511 var_node_list = var;
8512 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8513 var_nodearraylist1 = var1;
8514 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
8515 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
8516 var_listnode2 = var2;
8517 var_pformaldefnode1 = var_nodearraylist1;
8518 var3 = NULL;
8519 if (var_pformaldefnode1 == NULL) {
8520 var4 = 0; /* is null */
8521 } else {
8522 var4 = 1; /* arg is null and recv is not */
8523 }
8524 if (var4){
8525 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_pformaldefnode1) /* add on <var_listnode2:Array[Object]>*/;
8526 } else {
8527 }
8528 var_node_list = var_listnode2;
8529 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1538> */
8530 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
8531 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
8532 RET_LABEL:;
8533 }
8534 /* method parser#ReduceAction1538#action for (self: Object, Parser) */
8535 void VIRTUAL_parser__ReduceAction1538__action(val* self, val* p0) {
8536 parser__ReduceAction1538__action(self, p0);
8537 RET_LABEL:;
8538 }
8539 /* method parser#ReduceAction1539#action for (self: ReduceAction1539, Parser) */
8540 void parser__ReduceAction1539__action(val* self, val* p0) {
8541 val* var_p /* var p: Parser */;
8542 val* var /* : null */;
8543 val* var_node_list /* var node_list: nullable Object */;
8544 val* var1 /* : nullable Object */;
8545 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8546 val* var2 /* : nullable Object */;
8547 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8548 val* var3 /* : Array[Object] */;
8549 val* var_listnode3 /* var listnode3: Array[Object] */;
8550 val* var_listnode1 /* var listnode1: nullable Object */;
8551 short int var4 /* : Bool */;
8552 int cltype;
8553 int idtype;
8554 val* var_pformaldefnode2 /* var pformaldefnode2: nullable Object */;
8555 val* var5 /* : Array[Object] */;
8556 val* var6 /* : null */;
8557 short int var7 /* : Bool */;
8558 long var8 /* : Int */;
8559 long var9 /* : Int */;
8560 var_p = p0;
8561 var = NULL;
8562 var_node_list = var;
8563 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8564 var_nodearraylist2 = var1;
8565 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8566 var_nodearraylist1 = var2;
8567 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
8568 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
8569 var_listnode3 = var3;
8570 var_listnode1 = var_nodearraylist1;
8571 /* <var_listnode1:nullable Object> isa Array[Object] */
8572 cltype = type_array__Arraykernel__Object.color;
8573 idtype = type_array__Arraykernel__Object.id;
8574 if(var_listnode1 == NULL) {
8575 var4 = 0;
8576 } else {
8577 if(cltype >= var_listnode1->type->table_size) {
8578 var4 = 0;
8579 } else {
8580 var4 = var_listnode1->type->type_table[cltype] == idtype;
8581 }
8582 }
8583 if (!var4) {
8584 fprintf(stderr, "Runtime error: %s", "Assert failed");
8585 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29415);
8586 show_backtrace(1);
8587 }
8588 var_pformaldefnode2 = var_nodearraylist2;
8589 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1539>*/;
8590 var_listnode3 = var5;
8591 var6 = NULL;
8592 if (var_pformaldefnode2 == NULL) {
8593 var7 = 0; /* is null */
8594 } else {
8595 var7 = 1; /* arg is null and recv is not */
8596 }
8597 if (var7){
8598 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pformaldefnode2) /* add on <var_listnode3:Array[Object]>*/;
8599 } else {
8600 }
8601 var_node_list = var_listnode3;
8602 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1539> */
8603 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
8604 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
8605 RET_LABEL:;
8606 }
8607 /* method parser#ReduceAction1539#action for (self: Object, Parser) */
8608 void VIRTUAL_parser__ReduceAction1539__action(val* self, val* p0) {
8609 parser__ReduceAction1539__action(self, p0);
8610 RET_LABEL:;
8611 }
8612 /* method parser#ReduceAction1540#action for (self: ReduceAction1540, Parser) */
8613 void parser__ReduceAction1540__action(val* self, val* p0) {
8614 val* var_p /* var p: Parser */;
8615 val* var /* : null */;
8616 val* var_node_list /* var node_list: nullable Object */;
8617 val* var1 /* : nullable Object */;
8618 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8619 val* var2 /* : Array[Object] */;
8620 val* var_listnode2 /* var listnode2: Array[Object] */;
8621 val* var_pparamnode1 /* var pparamnode1: nullable Object */;
8622 val* var3 /* : null */;
8623 short int var4 /* : Bool */;
8624 long var5 /* : Int */;
8625 long var6 /* : Int */;
8626 var_p = p0;
8627 var = NULL;
8628 var_node_list = var;
8629 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8630 var_nodearraylist1 = var1;
8631 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
8632 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
8633 var_listnode2 = var2;
8634 var_pparamnode1 = var_nodearraylist1;
8635 var3 = NULL;
8636 if (var_pparamnode1 == NULL) {
8637 var4 = 0; /* is null */
8638 } else {
8639 var4 = 1; /* arg is null and recv is not */
8640 }
8641 if (var4){
8642 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_pparamnode1) /* add on <var_listnode2:Array[Object]>*/;
8643 } else {
8644 }
8645 var_node_list = var_listnode2;
8646 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1540> */
8647 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
8648 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
8649 RET_LABEL:;
8650 }
8651 /* method parser#ReduceAction1540#action for (self: Object, Parser) */
8652 void VIRTUAL_parser__ReduceAction1540__action(val* self, val* p0) {
8653 parser__ReduceAction1540__action(self, p0);
8654 RET_LABEL:;
8655 }
8656 /* method parser#ReduceAction1541#action for (self: ReduceAction1541, Parser) */
8657 void parser__ReduceAction1541__action(val* self, val* p0) {
8658 val* var_p /* var p: Parser */;
8659 val* var /* : null */;
8660 val* var_node_list /* var node_list: nullable Object */;
8661 val* var1 /* : nullable Object */;
8662 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8663 val* var2 /* : nullable Object */;
8664 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8665 val* var3 /* : Array[Object] */;
8666 val* var_listnode3 /* var listnode3: Array[Object] */;
8667 val* var_listnode1 /* var listnode1: nullable Object */;
8668 short int var4 /* : Bool */;
8669 int cltype;
8670 int idtype;
8671 val* var_pparamnode2 /* var pparamnode2: nullable Object */;
8672 val* var5 /* : Array[Object] */;
8673 val* var6 /* : null */;
8674 short int var7 /* : Bool */;
8675 long var8 /* : Int */;
8676 long var9 /* : Int */;
8677 var_p = p0;
8678 var = NULL;
8679 var_node_list = var;
8680 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8681 var_nodearraylist2 = var1;
8682 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8683 var_nodearraylist1 = var2;
8684 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
8685 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
8686 var_listnode3 = var3;
8687 var_listnode1 = var_nodearraylist1;
8688 /* <var_listnode1:nullable Object> isa Array[Object] */
8689 cltype = type_array__Arraykernel__Object.color;
8690 idtype = type_array__Arraykernel__Object.id;
8691 if(var_listnode1 == NULL) {
8692 var4 = 0;
8693 } else {
8694 if(cltype >= var_listnode1->type->table_size) {
8695 var4 = 0;
8696 } else {
8697 var4 = var_listnode1->type->type_table[cltype] == idtype;
8698 }
8699 }
8700 if (!var4) {
8701 fprintf(stderr, "Runtime error: %s", "Assert failed");
8702 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29449);
8703 show_backtrace(1);
8704 }
8705 var_pparamnode2 = var_nodearraylist2;
8706 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1541>*/;
8707 var_listnode3 = var5;
8708 var6 = NULL;
8709 if (var_pparamnode2 == NULL) {
8710 var7 = 0; /* is null */
8711 } else {
8712 var7 = 1; /* arg is null and recv is not */
8713 }
8714 if (var7){
8715 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pparamnode2) /* add on <var_listnode3:Array[Object]>*/;
8716 } else {
8717 }
8718 var_node_list = var_listnode3;
8719 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1541> */
8720 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
8721 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
8722 RET_LABEL:;
8723 }
8724 /* method parser#ReduceAction1541#action for (self: Object, Parser) */
8725 void VIRTUAL_parser__ReduceAction1541__action(val* self, val* p0) {
8726 parser__ReduceAction1541__action(self, p0);
8727 RET_LABEL:;
8728 }
8729 /* method parser#ReduceAction1542#action for (self: ReduceAction1542, Parser) */
8730 void parser__ReduceAction1542__action(val* self, val* p0) {
8731 val* var_p /* var p: Parser */;
8732 val* var /* : null */;
8733 val* var_node_list /* var node_list: nullable Object */;
8734 val* var1 /* : nullable Object */;
8735 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8736 val* var2 /* : Array[Object] */;
8737 val* var_listnode2 /* var listnode2: Array[Object] */;
8738 val* var_pexterncallnode1 /* var pexterncallnode1: nullable Object */;
8739 val* var3 /* : null */;
8740 short int var4 /* : Bool */;
8741 long var5 /* : Int */;
8742 long var6 /* : Int */;
8743 var_p = p0;
8744 var = NULL;
8745 var_node_list = var;
8746 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8747 var_nodearraylist1 = var1;
8748 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
8749 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
8750 var_listnode2 = var2;
8751 var_pexterncallnode1 = var_nodearraylist1;
8752 var3 = NULL;
8753 if (var_pexterncallnode1 == NULL) {
8754 var4 = 0; /* is null */
8755 } else {
8756 var4 = 1; /* arg is null and recv is not */
8757 }
8758 if (var4){
8759 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_pexterncallnode1) /* add on <var_listnode2:Array[Object]>*/;
8760 } else {
8761 }
8762 var_node_list = var_listnode2;
8763 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1542> */
8764 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
8765 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
8766 RET_LABEL:;
8767 }
8768 /* method parser#ReduceAction1542#action for (self: Object, Parser) */
8769 void VIRTUAL_parser__ReduceAction1542__action(val* self, val* p0) {
8770 parser__ReduceAction1542__action(self, p0);
8771 RET_LABEL:;
8772 }
8773 /* method parser#ReduceAction1543#action for (self: ReduceAction1543, Parser) */
8774 void parser__ReduceAction1543__action(val* self, val* p0) {
8775 val* var_p /* var p: Parser */;
8776 val* var /* : null */;
8777 val* var_node_list /* var node_list: nullable Object */;
8778 val* var1 /* : nullable Object */;
8779 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8780 val* var2 /* : nullable Object */;
8781 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8782 val* var3 /* : Array[Object] */;
8783 val* var_listnode3 /* var listnode3: Array[Object] */;
8784 val* var_listnode1 /* var listnode1: nullable Object */;
8785 short int var4 /* : Bool */;
8786 int cltype;
8787 int idtype;
8788 val* var_pexterncallnode2 /* var pexterncallnode2: nullable Object */;
8789 val* var5 /* : Array[Object] */;
8790 val* var6 /* : null */;
8791 short int var7 /* : Bool */;
8792 long var8 /* : Int */;
8793 long var9 /* : Int */;
8794 var_p = p0;
8795 var = NULL;
8796 var_node_list = var;
8797 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8798 var_nodearraylist2 = var1;
8799 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8800 var_nodearraylist1 = var2;
8801 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
8802 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
8803 var_listnode3 = var3;
8804 var_listnode1 = var_nodearraylist1;
8805 /* <var_listnode1:nullable Object> isa Array[Object] */
8806 cltype = type_array__Arraykernel__Object.color;
8807 idtype = type_array__Arraykernel__Object.id;
8808 if(var_listnode1 == NULL) {
8809 var4 = 0;
8810 } else {
8811 if(cltype >= var_listnode1->type->table_size) {
8812 var4 = 0;
8813 } else {
8814 var4 = var_listnode1->type->type_table[cltype] == idtype;
8815 }
8816 }
8817 if (!var4) {
8818 fprintf(stderr, "Runtime error: %s", "Assert failed");
8819 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29483);
8820 show_backtrace(1);
8821 }
8822 var_pexterncallnode2 = var_nodearraylist2;
8823 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1543>*/;
8824 var_listnode3 = var5;
8825 var6 = NULL;
8826 if (var_pexterncallnode2 == NULL) {
8827 var7 = 0; /* is null */
8828 } else {
8829 var7 = 1; /* arg is null and recv is not */
8830 }
8831 if (var7){
8832 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pexterncallnode2) /* add on <var_listnode3:Array[Object]>*/;
8833 } else {
8834 }
8835 var_node_list = var_listnode3;
8836 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1543> */
8837 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
8838 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
8839 RET_LABEL:;
8840 }
8841 /* method parser#ReduceAction1543#action for (self: Object, Parser) */
8842 void VIRTUAL_parser__ReduceAction1543__action(val* self, val* p0) {
8843 parser__ReduceAction1543__action(self, p0);
8844 RET_LABEL:;
8845 }
8846 /* method parser#ReduceAction1545#action for (self: ReduceAction1545, Parser) */
8847 void parser__ReduceAction1545__action(val* self, val* p0) {
8848 val* var_p /* var p: Parser */;
8849 val* var /* : null */;
8850 val* var_node_list /* var node_list: nullable Object */;
8851 val* var1 /* : nullable Object */;
8852 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8853 val* var2 /* : nullable Object */;
8854 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8855 val* var3 /* : Array[Object] */;
8856 val* var_listnode3 /* var listnode3: Array[Object] */;
8857 val* var_listnode1 /* var listnode1: nullable Object */;
8858 short int var4 /* : Bool */;
8859 int cltype;
8860 int idtype;
8861 val* var_ptypenode2 /* var ptypenode2: nullable Object */;
8862 val* var5 /* : Array[Object] */;
8863 val* var6 /* : null */;
8864 short int var7 /* : Bool */;
8865 long var8 /* : Int */;
8866 long var9 /* : Int */;
8867 var_p = p0;
8868 var = NULL;
8869 var_node_list = var;
8870 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8871 var_nodearraylist2 = var1;
8872 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8873 var_nodearraylist1 = var2;
8874 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
8875 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
8876 var_listnode3 = var3;
8877 var_listnode1 = var_nodearraylist1;
8878 /* <var_listnode1:nullable Object> isa Array[Object] */
8879 cltype = type_array__Arraykernel__Object.color;
8880 idtype = type_array__Arraykernel__Object.id;
8881 if(var_listnode1 == NULL) {
8882 var4 = 0;
8883 } else {
8884 if(cltype >= var_listnode1->type->table_size) {
8885 var4 = 0;
8886 } else {
8887 var4 = var_listnode1->type->type_table[cltype] == idtype;
8888 }
8889 }
8890 if (!var4) {
8891 fprintf(stderr, "Runtime error: %s", "Assert failed");
8892 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29502);
8893 show_backtrace(1);
8894 }
8895 var_ptypenode2 = var_nodearraylist2;
8896 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1545>*/;
8897 var_listnode3 = var5;
8898 var6 = NULL;
8899 if (var_ptypenode2 == NULL) {
8900 var7 = 0; /* is null */
8901 } else {
8902 var7 = 1; /* arg is null and recv is not */
8903 }
8904 if (var7){
8905 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_ptypenode2) /* add on <var_listnode3:Array[Object]>*/;
8906 } else {
8907 }
8908 var_node_list = var_listnode3;
8909 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1545> */
8910 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
8911 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
8912 RET_LABEL:;
8913 }
8914 /* method parser#ReduceAction1545#action for (self: Object, Parser) */
8915 void VIRTUAL_parser__ReduceAction1545__action(val* self, val* p0) {
8916 parser__ReduceAction1545__action(self, p0);
8917 RET_LABEL:;
8918 }
8919 /* method parser#ReduceAction1546#action for (self: ReduceAction1546, Parser) */
8920 void parser__ReduceAction1546__action(val* self, val* p0) {
8921 val* var_p /* var p: Parser */;
8922 val* var /* : null */;
8923 val* var_node_list /* var node_list: nullable Object */;
8924 val* var1 /* : nullable Object */;
8925 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8926 val* var2 /* : Array[Object] */;
8927 val* var_listnode2 /* var listnode2: Array[Object] */;
8928 val* var_pexprnode1 /* var pexprnode1: nullable Object */;
8929 val* var3 /* : null */;
8930 short int var4 /* : Bool */;
8931 long var5 /* : Int */;
8932 long var6 /* : Int */;
8933 var_p = p0;
8934 var = NULL;
8935 var_node_list = var;
8936 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8937 var_nodearraylist1 = var1;
8938 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
8939 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
8940 var_listnode2 = var2;
8941 var_pexprnode1 = var_nodearraylist1;
8942 var3 = NULL;
8943 if (var_pexprnode1 == NULL) {
8944 var4 = 0; /* is null */
8945 } else {
8946 var4 = 1; /* arg is null and recv is not */
8947 }
8948 if (var4){
8949 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_pexprnode1) /* add on <var_listnode2:Array[Object]>*/;
8950 } else {
8951 }
8952 var_node_list = var_listnode2;
8953 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1546> */
8954 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
8955 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
8956 RET_LABEL:;
8957 }
8958 /* method parser#ReduceAction1546#action for (self: Object, Parser) */
8959 void VIRTUAL_parser__ReduceAction1546__action(val* self, val* p0) {
8960 parser__ReduceAction1546__action(self, p0);
8961 RET_LABEL:;
8962 }
8963 /* method parser#ReduceAction1547#action for (self: ReduceAction1547, Parser) */
8964 void parser__ReduceAction1547__action(val* self, val* p0) {
8965 val* var_p /* var p: Parser */;
8966 val* var /* : null */;
8967 val* var_node_list /* var node_list: nullable Object */;
8968 val* var1 /* : nullable Object */;
8969 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8970 val* var2 /* : nullable Object */;
8971 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8972 val* var3 /* : Array[Object] */;
8973 val* var_listnode3 /* var listnode3: Array[Object] */;
8974 val* var_listnode1 /* var listnode1: nullable Object */;
8975 short int var4 /* : Bool */;
8976 int cltype;
8977 int idtype;
8978 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
8979 val* var5 /* : Array[Object] */;
8980 val* var6 /* : null */;
8981 short int var7 /* : Bool */;
8982 long var8 /* : Int */;
8983 long var9 /* : Int */;
8984 var_p = p0;
8985 var = NULL;
8986 var_node_list = var;
8987 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8988 var_nodearraylist2 = var1;
8989 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8990 var_nodearraylist1 = var2;
8991 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
8992 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
8993 var_listnode3 = var3;
8994 var_listnode1 = var_nodearraylist1;
8995 /* <var_listnode1:nullable Object> isa Array[Object] */
8996 cltype = type_array__Arraykernel__Object.color;
8997 idtype = type_array__Arraykernel__Object.id;
8998 if(var_listnode1 == NULL) {
8999 var4 = 0;
9000 } else {
9001 if(cltype >= var_listnode1->type->table_size) {
9002 var4 = 0;
9003 } else {
9004 var4 = var_listnode1->type->type_table[cltype] == idtype;
9005 }
9006 }
9007 if (!var4) {
9008 fprintf(stderr, "Runtime error: %s", "Assert failed");
9009 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29536);
9010 show_backtrace(1);
9011 }
9012 var_pexprnode2 = var_nodearraylist2;
9013 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1547>*/;
9014 var_listnode3 = var5;
9015 var6 = NULL;
9016 if (var_pexprnode2 == NULL) {
9017 var7 = 0; /* is null */
9018 } else {
9019 var7 = 1; /* arg is null and recv is not */
9020 }
9021 if (var7){
9022 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pexprnode2) /* add on <var_listnode3:Array[Object]>*/;
9023 } else {
9024 }
9025 var_node_list = var_listnode3;
9026 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1547> */
9027 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
9028 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
9029 RET_LABEL:;
9030 }
9031 /* method parser#ReduceAction1547#action for (self: Object, Parser) */
9032 void VIRTUAL_parser__ReduceAction1547__action(val* self, val* p0) {
9033 parser__ReduceAction1547__action(self, p0);
9034 RET_LABEL:;
9035 }
9036 /* method parser#ReduceAction1548#action for (self: ReduceAction1548, Parser) */
9037 void parser__ReduceAction1548__action(val* self, val* p0) {
9038 val* var_p /* var p: Parser */;
9039 val* var /* : null */;
9040 val* var_node_list /* var node_list: nullable Object */;
9041 val* var1 /* : nullable Object */;
9042 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9043 val* var2 /* : Array[Object] */;
9044 val* var_listnode2 /* var listnode2: Array[Object] */;
9045 val* var_listnode1 /* var listnode1: nullable Object */;
9046 short int var3 /* : Bool */;
9047 int cltype;
9048 int idtype;
9049 val* var4 /* : Array[Object] */;
9050 long var5 /* : Int */;
9051 long var6 /* : Int */;
9052 var_p = p0;
9053 var = NULL;
9054 var_node_list = var;
9055 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9056 var_nodearraylist1 = var1;
9057 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
9058 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
9059 var_listnode2 = var2;
9060 var_listnode1 = var_nodearraylist1;
9061 /* <var_listnode1:nullable Object> isa Array[Object] */
9062 cltype = type_array__Arraykernel__Object.color;
9063 idtype = type_array__Arraykernel__Object.id;
9064 if(var_listnode1 == NULL) {
9065 var3 = 0;
9066 } else {
9067 if(cltype >= var_listnode1->type->table_size) {
9068 var3 = 0;
9069 } else {
9070 var3 = var_listnode1->type->type_table[cltype] == idtype;
9071 }
9072 }
9073 if (!var3) {
9074 fprintf(stderr, "Runtime error: %s", "Assert failed");
9075 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29554);
9076 show_backtrace(1);
9077 }
9078 var4 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode2, var_listnode1) /* concat on <self:ReduceAction1548>*/;
9079 var_listnode2 = var4;
9080 var_node_list = var_listnode2;
9081 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1548> */
9082 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
9083 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
9084 RET_LABEL:;
9085 }
9086 /* method parser#ReduceAction1548#action for (self: Object, Parser) */
9087 void VIRTUAL_parser__ReduceAction1548__action(val* self, val* p0) {
9088 parser__ReduceAction1548__action(self, p0);
9089 RET_LABEL:;
9090 }
9091 /* method parser#ReduceAction1549#action for (self: ReduceAction1549, Parser) */
9092 void parser__ReduceAction1549__action(val* self, val* p0) {
9093 val* var_p /* var p: Parser */;
9094 val* var /* : null */;
9095 val* var_node_list /* var node_list: nullable Object */;
9096 val* var1 /* : nullable Object */;
9097 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9098 val* var2 /* : nullable Object */;
9099 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9100 val* var3 /* : Array[Object] */;
9101 val* var_listnode3 /* var listnode3: Array[Object] */;
9102 val* var_listnode1 /* var listnode1: nullable Object */;
9103 short int var4 /* : Bool */;
9104 int cltype;
9105 int idtype;
9106 val* var_listnode2 /* var listnode2: nullable Object */;
9107 short int var5 /* : Bool */;
9108 int cltype6;
9109 int idtype7;
9110 val* var8 /* : Array[Object] */;
9111 val* var9 /* : Array[Object] */;
9112 long var10 /* : Int */;
9113 long var11 /* : Int */;
9114 var_p = p0;
9115 var = NULL;
9116 var_node_list = var;
9117 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9118 var_nodearraylist2 = var1;
9119 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9120 var_nodearraylist1 = var2;
9121 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
9122 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
9123 var_listnode3 = var3;
9124 var_listnode1 = var_nodearraylist1;
9125 /* <var_listnode1:nullable Object> isa Array[Object] */
9126 cltype = type_array__Arraykernel__Object.color;
9127 idtype = type_array__Arraykernel__Object.id;
9128 if(var_listnode1 == NULL) {
9129 var4 = 0;
9130 } else {
9131 if(cltype >= var_listnode1->type->table_size) {
9132 var4 = 0;
9133 } else {
9134 var4 = var_listnode1->type->type_table[cltype] == idtype;
9135 }
9136 }
9137 if (!var4) {
9138 fprintf(stderr, "Runtime error: %s", "Assert failed");
9139 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29569);
9140 show_backtrace(1);
9141 }
9142 var_listnode2 = var_nodearraylist2;
9143 /* <var_listnode2:nullable Object> isa Array[Object] */
9144 cltype6 = type_array__Arraykernel__Object.color;
9145 idtype7 = type_array__Arraykernel__Object.id;
9146 if(var_listnode2 == NULL) {
9147 var5 = 0;
9148 } else {
9149 if(cltype6 >= var_listnode2->type->table_size) {
9150 var5 = 0;
9151 } else {
9152 var5 = var_listnode2->type->type_table[cltype6] == idtype7;
9153 }
9154 }
9155 if (!var5) {
9156 fprintf(stderr, "Runtime error: %s", "Assert failed");
9157 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29571);
9158 show_backtrace(1);
9159 }
9160 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1549>*/;
9161 var_listnode3 = var8;
9162 var9 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode2) /* concat on <self:ReduceAction1549>*/;
9163 var_listnode3 = var9;
9164 var_node_list = var_listnode3;
9165 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1549> */
9166 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
9167 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
9168 RET_LABEL:;
9169 }
9170 /* method parser#ReduceAction1549#action for (self: Object, Parser) */
9171 void VIRTUAL_parser__ReduceAction1549__action(val* self, val* p0) {
9172 parser__ReduceAction1549__action(self, p0);
9173 RET_LABEL:;
9174 }
9175 /* method parser#ReduceAction1551#action for (self: ReduceAction1551, Parser) */
9176 void parser__ReduceAction1551__action(val* self, val* p0) {
9177 val* var_p /* var p: Parser */;
9178 val* var /* : null */;
9179 val* var_node_list /* var node_list: nullable Object */;
9180 val* var1 /* : nullable Object */;
9181 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9182 val* var2 /* : nullable Object */;
9183 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9184 val* var3 /* : Array[Object] */;
9185 val* var_listnode3 /* var listnode3: Array[Object] */;
9186 val* var_listnode1 /* var listnode1: nullable Object */;
9187 short int var4 /* : Bool */;
9188 int cltype;
9189 int idtype;
9190 val* var_pannotationnode2 /* var pannotationnode2: nullable Object */;
9191 val* var5 /* : Array[Object] */;
9192 val* var6 /* : null */;
9193 short int var7 /* : Bool */;
9194 long var8 /* : Int */;
9195 long var9 /* : Int */;
9196 var_p = p0;
9197 var = NULL;
9198 var_node_list = var;
9199 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9200 var_nodearraylist2 = var1;
9201 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9202 var_nodearraylist1 = var2;
9203 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
9204 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
9205 var_listnode3 = var3;
9206 var_listnode1 = var_nodearraylist1;
9207 /* <var_listnode1:nullable Object> isa Array[Object] */
9208 cltype = type_array__Arraykernel__Object.color;
9209 idtype = type_array__Arraykernel__Object.id;
9210 if(var_listnode1 == NULL) {
9211 var4 = 0;
9212 } else {
9213 if(cltype >= var_listnode1->type->table_size) {
9214 var4 = 0;
9215 } else {
9216 var4 = var_listnode1->type->type_table[cltype] == idtype;
9217 }
9218 }
9219 if (!var4) {
9220 fprintf(stderr, "Runtime error: %s", "Assert failed");
9221 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29587);
9222 show_backtrace(1);
9223 }
9224 var_pannotationnode2 = var_nodearraylist2;
9225 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1551>*/;
9226 var_listnode3 = var5;
9227 var6 = NULL;
9228 if (var_pannotationnode2 == NULL) {
9229 var7 = 0; /* is null */
9230 } else {
9231 var7 = 1; /* arg is null and recv is not */
9232 }
9233 if (var7){
9234 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pannotationnode2) /* add on <var_listnode3:Array[Object]>*/;
9235 } else {
9236 }
9237 var_node_list = var_listnode3;
9238 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1551> */
9239 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
9240 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
9241 RET_LABEL:;
9242 }
9243 /* method parser#ReduceAction1551#action for (self: Object, Parser) */
9244 void VIRTUAL_parser__ReduceAction1551__action(val* self, val* p0) {
9245 parser__ReduceAction1551__action(self, p0);
9246 RET_LABEL:;
9247 }
9248 /* method parser#ReduceAction1555#action for (self: ReduceAction1555, Parser) */
9249 void parser__ReduceAction1555__action(val* self, val* p0) {
9250 val* var_p /* var p: Parser */;
9251 val* var /* : null */;
9252 val* var_node_list /* var node_list: nullable Object */;
9253 val* var1 /* : nullable Object */;
9254 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9255 val* var2 /* : nullable Object */;
9256 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9257 val* var3 /* : Array[Object] */;
9258 val* var_listnode3 /* var listnode3: Array[Object] */;
9259 val* var_listnode1 /* var listnode1: nullable Object */;
9260 short int var4 /* : Bool */;
9261 int cltype;
9262 int idtype;
9263 val* var_patargnode2 /* var patargnode2: nullable Object */;
9264 val* var5 /* : Array[Object] */;
9265 val* var6 /* : null */;
9266 short int var7 /* : Bool */;
9267 long var8 /* : Int */;
9268 long var9 /* : Int */;
9269 var_p = p0;
9270 var = NULL;
9271 var_node_list = var;
9272 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9273 var_nodearraylist2 = var1;
9274 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9275 var_nodearraylist1 = var2;
9276 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
9277 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
9278 var_listnode3 = var3;
9279 var_listnode1 = var_nodearraylist1;
9280 /* <var_listnode1:nullable Object> isa Array[Object] */
9281 cltype = type_array__Arraykernel__Object.color;
9282 idtype = type_array__Arraykernel__Object.id;
9283 if(var_listnode1 == NULL) {
9284 var4 = 0;
9285 } else {
9286 if(cltype >= var_listnode1->type->table_size) {
9287 var4 = 0;
9288 } else {
9289 var4 = var_listnode1->type->type_table[cltype] == idtype;
9290 }
9291 }
9292 if (!var4) {
9293 fprintf(stderr, "Runtime error: %s", "Assert failed");
9294 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29606);
9295 show_backtrace(1);
9296 }
9297 var_patargnode2 = var_nodearraylist2;
9298 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1555>*/;
9299 var_listnode3 = var5;
9300 var6 = NULL;
9301 if (var_patargnode2 == NULL) {
9302 var7 = 0; /* is null */
9303 } else {
9304 var7 = 1; /* arg is null and recv is not */
9305 }
9306 if (var7){
9307 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_patargnode2) /* add on <var_listnode3:Array[Object]>*/;
9308 } else {
9309 }
9310 var_node_list = var_listnode3;
9311 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1555> */
9312 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
9313 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
9314 RET_LABEL:;
9315 }
9316 /* method parser#ReduceAction1555#action for (self: Object, Parser) */
9317 void VIRTUAL_parser__ReduceAction1555__action(val* self, val* p0) {
9318 parser__ReduceAction1555__action(self, p0);
9319 RET_LABEL:;
9320 }
9321 /* method parser#ReduceAction1559#action for (self: ReduceAction1559, Parser) */
9322 void parser__ReduceAction1559__action(val* self, val* p0) {
9323 val* var_p /* var p: Parser */;
9324 val* var /* : null */;
9325 val* var_node_list /* var node_list: nullable Object */;
9326 val* var1 /* : nullable Object */;
9327 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9328 val* var2 /* : nullable Object */;
9329 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9330 val* var3 /* : Array[Object] */;
9331 val* var_listnode3 /* var listnode3: Array[Object] */;
9332 val* var_listnode1 /* var listnode1: nullable Object */;
9333 short int var4 /* : Bool */;
9334 int cltype;
9335 int idtype;
9336 val* var_tidnode2 /* var tidnode2: nullable Object */;
9337 val* var5 /* : Array[Object] */;
9338 val* var6 /* : null */;
9339 short int var7 /* : Bool */;
9340 long var8 /* : Int */;
9341 long var9 /* : Int */;
9342 var_p = p0;
9343 var = NULL;
9344 var_node_list = var;
9345 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9346 var_nodearraylist2 = var1;
9347 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9348 var_nodearraylist1 = var2;
9349 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
9350 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
9351 var_listnode3 = var3;
9352 var_listnode1 = var_nodearraylist1;
9353 /* <var_listnode1:nullable Object> isa Array[Object] */
9354 cltype = type_array__Arraykernel__Object.color;
9355 idtype = type_array__Arraykernel__Object.id;
9356 if(var_listnode1 == NULL) {
9357 var4 = 0;
9358 } else {
9359 if(cltype >= var_listnode1->type->table_size) {
9360 var4 = 0;
9361 } else {
9362 var4 = var_listnode1->type->type_table[cltype] == idtype;
9363 }
9364 }
9365 if (!var4) {
9366 fprintf(stderr, "Runtime error: %s", "Assert failed");
9367 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29625);
9368 show_backtrace(1);
9369 }
9370 var_tidnode2 = var_nodearraylist2;
9371 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1559>*/;
9372 var_listnode3 = var5;
9373 var6 = NULL;
9374 if (var_tidnode2 == NULL) {
9375 var7 = 0; /* is null */
9376 } else {
9377 var7 = 1; /* arg is null and recv is not */
9378 }
9379 if (var7){
9380 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_tidnode2) /* add on <var_listnode3:Array[Object]>*/;
9381 } else {
9382 }
9383 var_node_list = var_listnode3;
9384 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1559> */
9385 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
9386 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
9387 RET_LABEL:;
9388 }
9389 /* method parser#ReduceAction1559#action for (self: Object, Parser) */
9390 void VIRTUAL_parser__ReduceAction1559__action(val* self, val* p0) {
9391 parser__ReduceAction1559__action(self, p0);
9392 RET_LABEL:;
9393 }
9394 /* method parser#ReduceAction1560#action for (self: ReduceAction1560, Parser) */
9395 void parser__ReduceAction1560__action(val* self, val* p0) {
9396 val* var_p /* var p: Parser */;
9397 val* var /* : null */;
9398 val* var_node_list /* var node_list: nullable Object */;
9399 val* var1 /* : nullable Object */;
9400 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9401 val* var2 /* : Array[Object] */;
9402 val* var_listnode2 /* var listnode2: Array[Object] */;
9403 val* var_tcommentnode1 /* var tcommentnode1: nullable Object */;
9404 val* var3 /* : null */;
9405 short int var4 /* : Bool */;
9406 long var5 /* : Int */;
9407 long var6 /* : Int */;
9408 var_p = p0;
9409 var = NULL;
9410 var_node_list = var;
9411 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9412 var_nodearraylist1 = var1;
9413 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
9414 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
9415 var_listnode2 = var2;
9416 var_tcommentnode1 = var_nodearraylist1;
9417 var3 = NULL;
9418 if (var_tcommentnode1 == NULL) {
9419 var4 = 0; /* is null */
9420 } else {
9421 var4 = 1; /* arg is null and recv is not */
9422 }
9423 if (var4){
9424 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_tcommentnode1) /* add on <var_listnode2:Array[Object]>*/;
9425 } else {
9426 }
9427 var_node_list = var_listnode2;
9428 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1560> */
9429 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
9430 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
9431 RET_LABEL:;
9432 }
9433 /* method parser#ReduceAction1560#action for (self: Object, Parser) */
9434 void VIRTUAL_parser__ReduceAction1560__action(val* self, val* p0) {
9435 parser__ReduceAction1560__action(self, p0);
9436 RET_LABEL:;
9437 }
9438 /* method parser#ReduceAction1561#action for (self: ReduceAction1561, Parser) */
9439 void parser__ReduceAction1561__action(val* self, val* p0) {
9440 val* var_p /* var p: Parser */;
9441 val* var /* : null */;
9442 val* var_node_list /* var node_list: nullable Object */;
9443 val* var1 /* : nullable Object */;
9444 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9445 val* var2 /* : nullable Object */;
9446 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9447 val* var3 /* : Array[Object] */;
9448 val* var_listnode3 /* var listnode3: Array[Object] */;
9449 val* var_listnode1 /* var listnode1: nullable Object */;
9450 short int var4 /* : Bool */;
9451 int cltype;
9452 int idtype;
9453 val* var_tcommentnode2 /* var tcommentnode2: nullable Object */;
9454 val* var5 /* : Array[Object] */;
9455 val* var6 /* : null */;
9456 short int var7 /* : Bool */;
9457 long var8 /* : Int */;
9458 long var9 /* : Int */;
9459 var_p = p0;
9460 var = NULL;
9461 var_node_list = var;
9462 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9463 var_nodearraylist2 = var1;
9464 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9465 var_nodearraylist1 = var2;
9466 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
9467 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
9468 var_listnode3 = var3;
9469 var_listnode1 = var_nodearraylist1;
9470 /* <var_listnode1:nullable Object> isa Array[Object] */
9471 cltype = type_array__Arraykernel__Object.color;
9472 idtype = type_array__Arraykernel__Object.id;
9473 if(var_listnode1 == NULL) {
9474 var4 = 0;
9475 } else {
9476 if(cltype >= var_listnode1->type->table_size) {
9477 var4 = 0;
9478 } else {
9479 var4 = var_listnode1->type->type_table[cltype] == idtype;
9480 }
9481 }
9482 if (!var4) {
9483 fprintf(stderr, "Runtime error: %s", "Assert failed");
9484 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29659);
9485 show_backtrace(1);
9486 }
9487 var_tcommentnode2 = var_nodearraylist2;
9488 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1561>*/;
9489 var_listnode3 = var5;
9490 var6 = NULL;
9491 if (var_tcommentnode2 == NULL) {
9492 var7 = 0; /* is null */
9493 } else {
9494 var7 = 1; /* arg is null and recv is not */
9495 }
9496 if (var7){
9497 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_tcommentnode2) /* add on <var_listnode3:Array[Object]>*/;
9498 } else {
9499 }
9500 var_node_list = var_listnode3;
9501 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1561> */
9502 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
9503 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
9504 RET_LABEL:;
9505 }
9506 /* method parser#ReduceAction1561#action for (self: Object, Parser) */
9507 void VIRTUAL_parser__ReduceAction1561__action(val* self, val* p0) {
9508 parser__ReduceAction1561__action(self, p0);
9509 RET_LABEL:;
9510 }
9511 /* method parser#ReduceAction1562#action for (self: ReduceAction1562, Parser) */
9512 void parser__ReduceAction1562__action(val* self, val* p0) {
9513 val* var_p /* var p: Parser */;
9514 val* var /* : null */;
9515 val* var_node_list /* var node_list: nullable Object */;
9516 val* var1 /* : nullable Object */;
9517 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9518 val* var2 /* : Array[Object] */;
9519 val* var_listnode2 /* var listnode2: Array[Object] */;
9520 val* var_teolnode1 /* var teolnode1: nullable Object */;
9521 val* var3 /* : null */;
9522 short int var4 /* : Bool */;
9523 long var5 /* : Int */;
9524 long var6 /* : Int */;
9525 var_p = p0;
9526 var = NULL;
9527 var_node_list = var;
9528 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9529 var_nodearraylist1 = var1;
9530 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
9531 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
9532 var_listnode2 = var2;
9533 var_teolnode1 = var_nodearraylist1;
9534 var3 = NULL;
9535 if (var_teolnode1 == NULL) {
9536 var4 = 0; /* is null */
9537 } else {
9538 var4 = 1; /* arg is null and recv is not */
9539 }
9540 if (var4){
9541 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_teolnode1) /* add on <var_listnode2:Array[Object]>*/;
9542 } else {
9543 }
9544 var_node_list = var_listnode2;
9545 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1562> */
9546 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
9547 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
9548 RET_LABEL:;
9549 }
9550 /* method parser#ReduceAction1562#action for (self: Object, Parser) */
9551 void VIRTUAL_parser__ReduceAction1562__action(val* self, val* p0) {
9552 parser__ReduceAction1562__action(self, p0);
9553 RET_LABEL:;
9554 }
9555 /* method parser#ReduceAction1563#action for (self: ReduceAction1563, Parser) */
9556 void parser__ReduceAction1563__action(val* self, val* p0) {
9557 val* var_p /* var p: Parser */;
9558 val* var /* : null */;
9559 val* var_node_list /* var node_list: nullable Object */;
9560 val* var1 /* : nullable Object */;
9561 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9562 val* var2 /* : nullable Object */;
9563 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9564 val* var3 /* : Array[Object] */;
9565 val* var_listnode3 /* var listnode3: Array[Object] */;
9566 val* var_listnode1 /* var listnode1: nullable Object */;
9567 short int var4 /* : Bool */;
9568 int cltype;
9569 int idtype;
9570 val* var_teolnode2 /* var teolnode2: nullable Object */;
9571 val* var5 /* : Array[Object] */;
9572 val* var6 /* : null */;
9573 short int var7 /* : Bool */;
9574 long var8 /* : Int */;
9575 long var9 /* : Int */;
9576 var_p = p0;
9577 var = NULL;
9578 var_node_list = var;
9579 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9580 var_nodearraylist2 = var1;
9581 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9582 var_nodearraylist1 = var2;
9583 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
9584 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
9585 var_listnode3 = var3;
9586 var_listnode1 = var_nodearraylist1;
9587 /* <var_listnode1:nullable Object> isa Array[Object] */
9588 cltype = type_array__Arraykernel__Object.color;
9589 idtype = type_array__Arraykernel__Object.id;
9590 if(var_listnode1 == NULL) {
9591 var4 = 0;
9592 } else {
9593 if(cltype >= var_listnode1->type->table_size) {
9594 var4 = 0;
9595 } else {
9596 var4 = var_listnode1->type->type_table[cltype] == idtype;
9597 }
9598 }
9599 if (!var4) {
9600 fprintf(stderr, "Runtime error: %s", "Assert failed");
9601 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29693);
9602 show_backtrace(1);
9603 }
9604 var_teolnode2 = var_nodearraylist2;
9605 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1563>*/;
9606 var_listnode3 = var5;
9607 var6 = NULL;
9608 if (var_teolnode2 == NULL) {
9609 var7 = 0; /* is null */
9610 } else {
9611 var7 = 1; /* arg is null and recv is not */
9612 }
9613 if (var7){
9614 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_teolnode2) /* add on <var_listnode3:Array[Object]>*/;
9615 } else {
9616 }
9617 var_node_list = var_listnode3;
9618 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1563> */
9619 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
9620 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
9621 RET_LABEL:;
9622 }
9623 /* method parser#ReduceAction1563#action for (self: Object, Parser) */
9624 void VIRTUAL_parser__ReduceAction1563__action(val* self, val* p0) {
9625 parser__ReduceAction1563__action(self, p0);
9626 RET_LABEL:;
9627 }