nitdoc: remove unused plugin "Copy to Clipboard"
[nit.git] / c_src / parser.sep.16.c
1 #include "parser.sep.0.h"
2 /* method parser#ReduceAction1228#action for (self: ReduceAction1228, Parser) */
3 void parser__ReduceAction1228__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_nodearraylist3 /* var nodearraylist3: nullable Object */;
9 val* var2 /* : nullable Object */;
10 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
11 val* var3 /* : nullable Object */;
12 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
13 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
14 short int var4 /* : Bool */;
15 int cltype;
16 int idtype;
17 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
18 short int var5 /* : Bool */;
19 int cltype6;
20 int idtype7;
21 val* var8 /* : AAttrExpr */;
22 val* var_pexprnode1 /* var pexprnode1: nullable AAttrExpr */;
23 long var9 /* : Int */;
24 long var10 /* : Int */;
25 var_p = p0;
26 var = NULL;
27 var_node_list = var;
28 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
29 var_nodearraylist3 = var1;
30 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
31 var_nodearraylist2 = var2;
32 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
33 var_nodearraylist1 = var3;
34 var_pexprnode2 = var_nodearraylist1;
35 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
36 cltype = type_nullable_parser_nodes__AExpr.color;
37 idtype = type_nullable_parser_nodes__AExpr.id;
38 if(var_pexprnode2 == NULL) {
39 var4 = 1;
40 } else {
41 if(cltype >= var_pexprnode2->type->table_size) {
42 var4 = 0;
43 } else {
44 var4 = var_pexprnode2->type->type_table[cltype] == idtype;
45 }
46 }
47 if (!var4) {
48 fprintf(stderr, "Runtime error: %s", "Assert failed");
49 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29152);
50 exit(1);
51 }
52 var_tattridnode3 = var_nodearraylist3;
53 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
54 cltype6 = type_nullable_parser_nodes__TAttrid.color;
55 idtype7 = type_nullable_parser_nodes__TAttrid.id;
56 if(var_tattridnode3 == NULL) {
57 var5 = 1;
58 } else {
59 if(cltype6 >= var_tattridnode3->type->table_size) {
60 var5 = 0;
61 } else {
62 var5 = var_tattridnode3->type->type_table[cltype6] == idtype7;
63 }
64 }
65 if (!var5) {
66 fprintf(stderr, "Runtime error: %s", "Assert failed");
67 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29154);
68 exit(1);
69 }
70 var8 = NEW_parser_nodes__AAttrExpr(&type_parser_nodes__AAttrExpr);
71 ((void (*)(val*, val*, val*))(var8->class->vft[COLOR_parser_prod__AAttrExpr__init_aattrexpr]))(var8, var_pexprnode2, var_tattridnode3) /* init_aattrexpr on <var8:AAttrExpr>*/;
72 CHECK_NEW_parser_nodes__AAttrExpr(var8);
73 var_pexprnode1 = var8;
74 var_node_list = var_pexprnode1;
75 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1228> */
76 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
77 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
78 RET_LABEL:;
79 }
80 /* method parser#ReduceAction1228#action for (self: Object, Parser) */
81 void VIRTUAL_parser__ReduceAction1228__action(val* self, val* p0) {
82 parser__ReduceAction1228__action(self, p0);
83 RET_LABEL:;
84 }
85 /* method parser#ReduceAction1231#action for (self: ReduceAction1231, Parser) */
86 void parser__ReduceAction1231__action(val* self, val* p0) {
87 val* var_p /* var p: Parser */;
88 val* var /* : null */;
89 val* var_node_list /* var node_list: nullable Object */;
90 val* var1 /* : nullable Object */;
91 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
92 val* var2 /* : nullable Object */;
93 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
94 val* var3 /* : nullable Object */;
95 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
96 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
97 short int var4 /* : Bool */;
98 int cltype;
99 int idtype;
100 val* var_tidnode3 /* var tidnode3: nullable Object */;
101 short int var5 /* : Bool */;
102 int cltype6;
103 int idtype7;
104 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
105 short int var8 /* : Bool */;
106 int cltype9;
107 int idtype10;
108 val* var11 /* : ACallExpr */;
109 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
110 long var12 /* : Int */;
111 long var13 /* : Int */;
112 var_p = p0;
113 var = NULL;
114 var_node_list = var;
115 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
116 var_nodearraylist3 = var1;
117 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
118 var_nodearraylist2 = var2;
119 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
120 var_nodearraylist1 = var3;
121 var_pexprnode2 = var_nodearraylist1;
122 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
123 cltype = type_nullable_parser_nodes__AExpr.color;
124 idtype = type_nullable_parser_nodes__AExpr.id;
125 if(var_pexprnode2 == NULL) {
126 var4 = 1;
127 } else {
128 if(cltype >= var_pexprnode2->type->table_size) {
129 var4 = 0;
130 } else {
131 var4 = var_pexprnode2->type->type_table[cltype] == idtype;
132 }
133 }
134 if (!var4) {
135 fprintf(stderr, "Runtime error: %s", "Assert failed");
136 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29172);
137 exit(1);
138 }
139 var_tidnode3 = var_nodearraylist2;
140 /* <var_tidnode3:nullable Object> isa nullable TId */
141 cltype6 = type_nullable_parser_nodes__TId.color;
142 idtype7 = type_nullable_parser_nodes__TId.id;
143 if(var_tidnode3 == NULL) {
144 var5 = 1;
145 } else {
146 if(cltype6 >= var_tidnode3->type->table_size) {
147 var5 = 0;
148 } else {
149 var5 = var_tidnode3->type->type_table[cltype6] == idtype7;
150 }
151 }
152 if (!var5) {
153 fprintf(stderr, "Runtime error: %s", "Assert failed");
154 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29174);
155 exit(1);
156 }
157 var_pexprsnode4 = var_nodearraylist3;
158 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
159 cltype9 = type_nullable_parser_nodes__AExprs.color;
160 idtype10 = type_nullable_parser_nodes__AExprs.id;
161 if(var_pexprsnode4 == NULL) {
162 var8 = 1;
163 } else {
164 if(cltype9 >= var_pexprsnode4->type->table_size) {
165 var8 = 0;
166 } else {
167 var8 = var_pexprsnode4->type->type_table[cltype9] == idtype10;
168 }
169 }
170 if (!var8) {
171 fprintf(stderr, "Runtime error: %s", "Assert failed");
172 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29176);
173 exit(1);
174 }
175 var11 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
176 ((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>*/;
177 CHECK_NEW_parser_nodes__ACallExpr(var11);
178 var_pexprnode1 = var11;
179 var_node_list = var_pexprnode1;
180 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1231> */
181 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
182 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
183 RET_LABEL:;
184 }
185 /* method parser#ReduceAction1231#action for (self: Object, Parser) */
186 void VIRTUAL_parser__ReduceAction1231__action(val* self, val* p0) {
187 parser__ReduceAction1231__action(self, p0);
188 RET_LABEL:;
189 }
190 /* method parser#ReduceAction1232#action for (self: ReduceAction1232, Parser) */
191 void parser__ReduceAction1232__action(val* self, val* p0) {
192 val* var_p /* var p: Parser */;
193 val* var /* : null */;
194 val* var_node_list /* var node_list: nullable Object */;
195 val* var1 /* : nullable Object */;
196 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
197 val* var2 /* : nullable Object */;
198 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
199 val* var3 /* : nullable Object */;
200 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
201 val* var4 /* : nullable Object */;
202 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
203 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
204 short int var5 /* : Bool */;
205 int cltype;
206 int idtype;
207 val* var_tidnode3 /* var tidnode3: nullable Object */;
208 short int var6 /* : Bool */;
209 int cltype7;
210 int idtype8;
211 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
212 short int var9 /* : Bool */;
213 int cltype10;
214 int idtype11;
215 val* var12 /* : ACallExpr */;
216 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
217 long var13 /* : Int */;
218 long var14 /* : Int */;
219 var_p = p0;
220 var = NULL;
221 var_node_list = var;
222 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
223 var_nodearraylist4 = var1;
224 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
225 var_nodearraylist3 = var2;
226 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
227 var_nodearraylist2 = var3;
228 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
229 var_nodearraylist1 = var4;
230 var_pexprnode2 = var_nodearraylist1;
231 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
232 cltype = type_nullable_parser_nodes__AExpr.color;
233 idtype = type_nullable_parser_nodes__AExpr.id;
234 if(var_pexprnode2 == NULL) {
235 var5 = 1;
236 } else {
237 if(cltype >= var_pexprnode2->type->table_size) {
238 var5 = 0;
239 } else {
240 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
241 }
242 }
243 if (!var5) {
244 fprintf(stderr, "Runtime error: %s", "Assert failed");
245 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29196);
246 exit(1);
247 }
248 var_tidnode3 = var_nodearraylist3;
249 /* <var_tidnode3:nullable Object> isa nullable TId */
250 cltype7 = type_nullable_parser_nodes__TId.color;
251 idtype8 = type_nullable_parser_nodes__TId.id;
252 if(var_tidnode3 == NULL) {
253 var6 = 1;
254 } else {
255 if(cltype7 >= var_tidnode3->type->table_size) {
256 var6 = 0;
257 } else {
258 var6 = var_tidnode3->type->type_table[cltype7] == idtype8;
259 }
260 }
261 if (!var6) {
262 fprintf(stderr, "Runtime error: %s", "Assert failed");
263 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29198);
264 exit(1);
265 }
266 var_pexprsnode4 = var_nodearraylist4;
267 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
268 cltype10 = type_nullable_parser_nodes__AExprs.color;
269 idtype11 = type_nullable_parser_nodes__AExprs.id;
270 if(var_pexprsnode4 == NULL) {
271 var9 = 1;
272 } else {
273 if(cltype10 >= var_pexprsnode4->type->table_size) {
274 var9 = 0;
275 } else {
276 var9 = var_pexprsnode4->type->type_table[cltype10] == idtype11;
277 }
278 }
279 if (!var9) {
280 fprintf(stderr, "Runtime error: %s", "Assert failed");
281 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29200);
282 exit(1);
283 }
284 var12 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
285 ((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>*/;
286 CHECK_NEW_parser_nodes__ACallExpr(var12);
287 var_pexprnode1 = var12;
288 var_node_list = var_pexprnode1;
289 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1232> */
290 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
291 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
292 RET_LABEL:;
293 }
294 /* method parser#ReduceAction1232#action for (self: Object, Parser) */
295 void VIRTUAL_parser__ReduceAction1232__action(val* self, val* p0) {
296 parser__ReduceAction1232__action(self, p0);
297 RET_LABEL:;
298 }
299 /* method parser#ReduceAction1239#action for (self: ReduceAction1239, Parser) */
300 void parser__ReduceAction1239__action(val* self, val* p0) {
301 val* var_p /* var p: Parser */;
302 val* var /* : null */;
303 val* var_node_list /* var node_list: nullable Object */;
304 val* var1 /* : nullable Object */;
305 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
306 val* var2 /* : nullable Object */;
307 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
308 val* var3 /* : nullable Object */;
309 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
310 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
311 short int var4 /* : Bool */;
312 int cltype;
313 int idtype;
314 val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */;
315 short int var5 /* : Bool */;
316 int cltype6;
317 int idtype7;
318 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
319 short int var8 /* : Bool */;
320 int cltype9;
321 int idtype10;
322 val* var11 /* : AInitExpr */;
323 val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */;
324 long var12 /* : Int */;
325 long var13 /* : Int */;
326 var_p = p0;
327 var = NULL;
328 var_node_list = var;
329 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
330 var_nodearraylist3 = var1;
331 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
332 var_nodearraylist2 = var2;
333 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
334 var_nodearraylist1 = var3;
335 var_pexprnode2 = var_nodearraylist1;
336 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
337 cltype = type_nullable_parser_nodes__AExpr.color;
338 idtype = type_nullable_parser_nodes__AExpr.id;
339 if(var_pexprnode2 == NULL) {
340 var4 = 1;
341 } else {
342 if(cltype >= var_pexprnode2->type->table_size) {
343 var4 = 0;
344 } else {
345 var4 = var_pexprnode2->type->type_table[cltype] == idtype;
346 }
347 }
348 if (!var4) {
349 fprintf(stderr, "Runtime error: %s", "Assert failed");
350 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29219);
351 exit(1);
352 }
353 var_tkwinitnode3 = var_nodearraylist2;
354 /* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
355 cltype6 = type_nullable_parser_nodes__TKwinit.color;
356 idtype7 = type_nullable_parser_nodes__TKwinit.id;
357 if(var_tkwinitnode3 == NULL) {
358 var5 = 1;
359 } else {
360 if(cltype6 >= var_tkwinitnode3->type->table_size) {
361 var5 = 0;
362 } else {
363 var5 = var_tkwinitnode3->type->type_table[cltype6] == idtype7;
364 }
365 }
366 if (!var5) {
367 fprintf(stderr, "Runtime error: %s", "Assert failed");
368 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29221);
369 exit(1);
370 }
371 var_pexprsnode4 = var_nodearraylist3;
372 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
373 cltype9 = type_nullable_parser_nodes__AExprs.color;
374 idtype10 = type_nullable_parser_nodes__AExprs.id;
375 if(var_pexprsnode4 == NULL) {
376 var8 = 1;
377 } else {
378 if(cltype9 >= var_pexprsnode4->type->table_size) {
379 var8 = 0;
380 } else {
381 var8 = var_pexprsnode4->type->type_table[cltype9] == idtype10;
382 }
383 }
384 if (!var8) {
385 fprintf(stderr, "Runtime error: %s", "Assert failed");
386 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29223);
387 exit(1);
388 }
389 var11 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr);
390 ((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>*/;
391 CHECK_NEW_parser_nodes__AInitExpr(var11);
392 var_pexprnode1 = var11;
393 var_node_list = var_pexprnode1;
394 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1239> */
395 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
396 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
397 RET_LABEL:;
398 }
399 /* method parser#ReduceAction1239#action for (self: Object, Parser) */
400 void VIRTUAL_parser__ReduceAction1239__action(val* self, val* p0) {
401 parser__ReduceAction1239__action(self, p0);
402 RET_LABEL:;
403 }
404 /* method parser#ReduceAction1263#action for (self: ReduceAction1263, Parser) */
405 void parser__ReduceAction1263__action(val* self, val* p0) {
406 val* var_p /* var p: Parser */;
407 val* var /* : null */;
408 val* var_node_list /* var node_list: nullable Object */;
409 val* var1 /* : nullable Object */;
410 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
411 val* var2 /* : nullable Object */;
412 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
413 val* var3 /* : nullable Object */;
414 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
415 val* var_pexprnode1 /* var pexprnode1: nullable Object */;
416 long var4 /* : Int */;
417 long var5 /* : Int */;
418 var_p = p0;
419 var = NULL;
420 var_node_list = var;
421 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
422 var_nodearraylist3 = var1;
423 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
424 var_nodearraylist2 = var2;
425 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
426 var_nodearraylist1 = var3;
427 var_pexprnode1 = var_nodearraylist1;
428 var_node_list = var_pexprnode1;
429 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1263> */
430 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
431 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
432 RET_LABEL:;
433 }
434 /* method parser#ReduceAction1263#action for (self: Object, Parser) */
435 void VIRTUAL_parser__ReduceAction1263__action(val* self, val* p0) {
436 parser__ReduceAction1263__action(self, p0);
437 RET_LABEL:;
438 }
439 /* method parser#ReduceAction1264#action for (self: ReduceAction1264, Parser) */
440 void parser__ReduceAction1264__action(val* self, val* p0) {
441 val* var_p /* var p: Parser */;
442 val* var /* : null */;
443 val* var_node_list /* var node_list: nullable Object */;
444 val* var1 /* : AImplicitSelfExpr */;
445 val* var_pexprnode1 /* var pexprnode1: nullable AImplicitSelfExpr */;
446 long var2 /* : Int */;
447 long var3 /* : Int */;
448 var_p = p0;
449 var = NULL;
450 var_node_list = var;
451 var1 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
452 ((void (*)(val*))(var1->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var1) /* init_aimplicitselfexpr on <var1:AImplicitSelfExpr>*/;
453 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var1);
454 var_pexprnode1 = var1;
455 var_node_list = var_pexprnode1;
456 var2 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1264> */
457 var3 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var2) /* go_to on <var_p:Parser>*/;
458 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var3, var_node_list) /* push on <var_p:Parser>*/;
459 RET_LABEL:;
460 }
461 /* method parser#ReduceAction1264#action for (self: Object, Parser) */
462 void VIRTUAL_parser__ReduceAction1264__action(val* self, val* p0) {
463 parser__ReduceAction1264__action(self, p0);
464 RET_LABEL:;
465 }
466 /* method parser#ReduceAction1538#action for (self: ReduceAction1538, Parser) */
467 void parser__ReduceAction1538__action(val* self, val* p0) {
468 val* var_p /* var p: Parser */;
469 val* var /* : null */;
470 val* var_node_list /* var node_list: nullable Object */;
471 val* var1 /* : nullable Object */;
472 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
473 val* var2 /* : Array[Object] */;
474 val* var_listnode2 /* var listnode2: Array[Object] */;
475 val* var_pimportnode1 /* var pimportnode1: nullable Object */;
476 val* var3 /* : null */;
477 short int var4 /* : Bool */;
478 long var5 /* : Int */;
479 long var6 /* : Int */;
480 var_p = p0;
481 var = NULL;
482 var_node_list = var;
483 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
484 var_nodearraylist1 = var1;
485 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
486 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
487 CHECK_NEW_array__Array(var2);
488 var_listnode2 = var2;
489 var_pimportnode1 = var_nodearraylist1;
490 var3 = NULL;
491 if (var_pimportnode1 == NULL) {
492 var4 = 0; /* is null */
493 } else {
494 var4 = 1; /* arg is null and recv is not */
495 }
496 if (var4){
497 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_pimportnode1) /* add on <var_listnode2:Array[Object]>*/;
498 } else {
499 }
500 var_node_list = var_listnode2;
501 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1538> */
502 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
503 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
504 RET_LABEL:;
505 }
506 /* method parser#ReduceAction1538#action for (self: Object, Parser) */
507 void VIRTUAL_parser__ReduceAction1538__action(val* self, val* p0) {
508 parser__ReduceAction1538__action(self, p0);
509 RET_LABEL:;
510 }
511 /* method parser#ReduceAction1539#action for (self: ReduceAction1539, Parser) */
512 void parser__ReduceAction1539__action(val* self, val* p0) {
513 val* var_p /* var p: Parser */;
514 val* var /* : null */;
515 val* var_node_list /* var node_list: nullable Object */;
516 val* var1 /* : nullable Object */;
517 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
518 val* var2 /* : nullable Object */;
519 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
520 val* var3 /* : Array[Object] */;
521 val* var_listnode3 /* var listnode3: Array[Object] */;
522 val* var_listnode1 /* var listnode1: nullable Object */;
523 short int var4 /* : Bool */;
524 int cltype;
525 int idtype;
526 val* var_pimportnode2 /* var pimportnode2: nullable Object */;
527 val* var5 /* : Array[Object] */;
528 val* var6 /* : null */;
529 short int var7 /* : Bool */;
530 long var8 /* : Int */;
531 long var9 /* : Int */;
532 var_p = p0;
533 var = NULL;
534 var_node_list = var;
535 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
536 var_nodearraylist2 = var1;
537 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
538 var_nodearraylist1 = var2;
539 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
540 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
541 CHECK_NEW_array__Array(var3);
542 var_listnode3 = var3;
543 var_listnode1 = var_nodearraylist1;
544 /* <var_listnode1:nullable Object> isa Array[Object] */
545 cltype = type_array__Arraykernel__Object.color;
546 idtype = type_array__Arraykernel__Object.id;
547 if(var_listnode1 == NULL) {
548 var4 = 0;
549 } else {
550 if(cltype >= var_listnode1->type->table_size) {
551 var4 = 0;
552 } else {
553 var4 = var_listnode1->type->type_table[cltype] == idtype;
554 }
555 }
556 if (!var4) {
557 fprintf(stderr, "Runtime error: %s", "Assert failed");
558 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29280);
559 exit(1);
560 }
561 var_pimportnode2 = var_nodearraylist2;
562 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1539>*/;
563 var_listnode3 = var5;
564 var6 = NULL;
565 if (var_pimportnode2 == NULL) {
566 var7 = 0; /* is null */
567 } else {
568 var7 = 1; /* arg is null and recv is not */
569 }
570 if (var7){
571 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pimportnode2) /* add on <var_listnode3:Array[Object]>*/;
572 } else {
573 }
574 var_node_list = var_listnode3;
575 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1539> */
576 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
577 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
578 RET_LABEL:;
579 }
580 /* method parser#ReduceAction1539#action for (self: Object, Parser) */
581 void VIRTUAL_parser__ReduceAction1539__action(val* self, val* p0) {
582 parser__ReduceAction1539__action(self, p0);
583 RET_LABEL:;
584 }
585 /* method parser#ReduceAction1540#action for (self: ReduceAction1540, Parser) */
586 void parser__ReduceAction1540__action(val* self, val* p0) {
587 val* var_p /* var p: Parser */;
588 val* var /* : null */;
589 val* var_node_list /* var node_list: nullable Object */;
590 val* var1 /* : nullable Object */;
591 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
592 val* var2 /* : Array[Object] */;
593 val* var_listnode2 /* var listnode2: Array[Object] */;
594 val* var_pexterncodeblocknode1 /* var pexterncodeblocknode1: nullable Object */;
595 val* var3 /* : null */;
596 short int var4 /* : Bool */;
597 long var5 /* : Int */;
598 long var6 /* : Int */;
599 var_p = p0;
600 var = NULL;
601 var_node_list = var;
602 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
603 var_nodearraylist1 = var1;
604 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
605 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
606 CHECK_NEW_array__Array(var2);
607 var_listnode2 = var2;
608 var_pexterncodeblocknode1 = var_nodearraylist1;
609 var3 = NULL;
610 if (var_pexterncodeblocknode1 == NULL) {
611 var4 = 0; /* is null */
612 } else {
613 var4 = 1; /* arg is null and recv is not */
614 }
615 if (var4){
616 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_pexterncodeblocknode1) /* add on <var_listnode2:Array[Object]>*/;
617 } else {
618 }
619 var_node_list = var_listnode2;
620 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1540> */
621 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
622 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
623 RET_LABEL:;
624 }
625 /* method parser#ReduceAction1540#action for (self: Object, Parser) */
626 void VIRTUAL_parser__ReduceAction1540__action(val* self, val* p0) {
627 parser__ReduceAction1540__action(self, p0);
628 RET_LABEL:;
629 }
630 /* method parser#ReduceAction1541#action for (self: ReduceAction1541, Parser) */
631 void parser__ReduceAction1541__action(val* self, val* p0) {
632 val* var_p /* var p: Parser */;
633 val* var /* : null */;
634 val* var_node_list /* var node_list: nullable Object */;
635 val* var1 /* : nullable Object */;
636 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
637 val* var2 /* : nullable Object */;
638 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
639 val* var3 /* : Array[Object] */;
640 val* var_listnode3 /* var listnode3: Array[Object] */;
641 val* var_listnode1 /* var listnode1: nullable Object */;
642 short int var4 /* : Bool */;
643 int cltype;
644 int idtype;
645 val* var_pexterncodeblocknode2 /* var pexterncodeblocknode2: nullable Object */;
646 val* var5 /* : Array[Object] */;
647 val* var6 /* : null */;
648 short int var7 /* : Bool */;
649 long var8 /* : Int */;
650 long var9 /* : Int */;
651 var_p = p0;
652 var = NULL;
653 var_node_list = var;
654 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
655 var_nodearraylist2 = var1;
656 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
657 var_nodearraylist1 = var2;
658 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
659 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
660 CHECK_NEW_array__Array(var3);
661 var_listnode3 = var3;
662 var_listnode1 = var_nodearraylist1;
663 /* <var_listnode1:nullable Object> isa Array[Object] */
664 cltype = type_array__Arraykernel__Object.color;
665 idtype = type_array__Arraykernel__Object.id;
666 if(var_listnode1 == NULL) {
667 var4 = 0;
668 } else {
669 if(cltype >= var_listnode1->type->table_size) {
670 var4 = 0;
671 } else {
672 var4 = var_listnode1->type->type_table[cltype] == idtype;
673 }
674 }
675 if (!var4) {
676 fprintf(stderr, "Runtime error: %s", "Assert failed");
677 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29314);
678 exit(1);
679 }
680 var_pexterncodeblocknode2 = var_nodearraylist2;
681 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1541>*/;
682 var_listnode3 = var5;
683 var6 = NULL;
684 if (var_pexterncodeblocknode2 == NULL) {
685 var7 = 0; /* is null */
686 } else {
687 var7 = 1; /* arg is null and recv is not */
688 }
689 if (var7){
690 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pexterncodeblocknode2) /* add on <var_listnode3:Array[Object]>*/;
691 } else {
692 }
693 var_node_list = var_listnode3;
694 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1541> */
695 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
696 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
697 RET_LABEL:;
698 }
699 /* method parser#ReduceAction1541#action for (self: Object, Parser) */
700 void VIRTUAL_parser__ReduceAction1541__action(val* self, val* p0) {
701 parser__ReduceAction1541__action(self, p0);
702 RET_LABEL:;
703 }
704 /* method parser#ReduceAction1542#action for (self: ReduceAction1542, Parser) */
705 void parser__ReduceAction1542__action(val* self, val* p0) {
706 val* var_p /* var p: Parser */;
707 val* var /* : null */;
708 val* var_node_list /* var node_list: nullable Object */;
709 val* var1 /* : nullable Object */;
710 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
711 val* var2 /* : Array[Object] */;
712 val* var_listnode2 /* var listnode2: Array[Object] */;
713 val* var_pclassdefnode1 /* var pclassdefnode1: nullable Object */;
714 val* var3 /* : null */;
715 short int var4 /* : Bool */;
716 long var5 /* : Int */;
717 long var6 /* : Int */;
718 var_p = p0;
719 var = NULL;
720 var_node_list = var;
721 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
722 var_nodearraylist1 = var1;
723 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
724 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
725 CHECK_NEW_array__Array(var2);
726 var_listnode2 = var2;
727 var_pclassdefnode1 = var_nodearraylist1;
728 var3 = NULL;
729 if (var_pclassdefnode1 == NULL) {
730 var4 = 0; /* is null */
731 } else {
732 var4 = 1; /* arg is null and recv is not */
733 }
734 if (var4){
735 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_pclassdefnode1) /* add on <var_listnode2:Array[Object]>*/;
736 } else {
737 }
738 var_node_list = var_listnode2;
739 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1542> */
740 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
741 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
742 RET_LABEL:;
743 }
744 /* method parser#ReduceAction1542#action for (self: Object, Parser) */
745 void VIRTUAL_parser__ReduceAction1542__action(val* self, val* p0) {
746 parser__ReduceAction1542__action(self, p0);
747 RET_LABEL:;
748 }
749 /* method parser#ReduceAction1543#action for (self: ReduceAction1543, Parser) */
750 void parser__ReduceAction1543__action(val* self, val* p0) {
751 val* var_p /* var p: Parser */;
752 val* var /* : null */;
753 val* var_node_list /* var node_list: nullable Object */;
754 val* var1 /* : nullable Object */;
755 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
756 val* var2 /* : nullable Object */;
757 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
758 val* var3 /* : Array[Object] */;
759 val* var_listnode3 /* var listnode3: Array[Object] */;
760 val* var_listnode1 /* var listnode1: nullable Object */;
761 short int var4 /* : Bool */;
762 int cltype;
763 int idtype;
764 val* var_pclassdefnode2 /* var pclassdefnode2: nullable Object */;
765 val* var5 /* : Array[Object] */;
766 val* var6 /* : null */;
767 short int var7 /* : Bool */;
768 long var8 /* : Int */;
769 long var9 /* : Int */;
770 var_p = p0;
771 var = NULL;
772 var_node_list = var;
773 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
774 var_nodearraylist2 = var1;
775 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
776 var_nodearraylist1 = var2;
777 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
778 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
779 CHECK_NEW_array__Array(var3);
780 var_listnode3 = var3;
781 var_listnode1 = var_nodearraylist1;
782 /* <var_listnode1:nullable Object> isa Array[Object] */
783 cltype = type_array__Arraykernel__Object.color;
784 idtype = type_array__Arraykernel__Object.id;
785 if(var_listnode1 == NULL) {
786 var4 = 0;
787 } else {
788 if(cltype >= var_listnode1->type->table_size) {
789 var4 = 0;
790 } else {
791 var4 = var_listnode1->type->type_table[cltype] == idtype;
792 }
793 }
794 if (!var4) {
795 fprintf(stderr, "Runtime error: %s", "Assert failed");
796 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29348);
797 exit(1);
798 }
799 var_pclassdefnode2 = var_nodearraylist2;
800 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1543>*/;
801 var_listnode3 = var5;
802 var6 = NULL;
803 if (var_pclassdefnode2 == NULL) {
804 var7 = 0; /* is null */
805 } else {
806 var7 = 1; /* arg is null and recv is not */
807 }
808 if (var7){
809 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pclassdefnode2) /* add on <var_listnode3:Array[Object]>*/;
810 } else {
811 }
812 var_node_list = var_listnode3;
813 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1543> */
814 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
815 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
816 RET_LABEL:;
817 }
818 /* method parser#ReduceAction1543#action for (self: Object, Parser) */
819 void VIRTUAL_parser__ReduceAction1543__action(val* self, val* p0) {
820 parser__ReduceAction1543__action(self, p0);
821 RET_LABEL:;
822 }
823 /* method parser#ReduceAction1544#action for (self: ReduceAction1544, Parser) */
824 void parser__ReduceAction1544__action(val* self, val* p0) {
825 val* var_p /* var p: Parser */;
826 val* var /* : null */;
827 val* var_node_list /* var node_list: nullable Object */;
828 val* var1 /* : nullable Object */;
829 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
830 val* var2 /* : Array[Object] */;
831 val* var_listnode2 /* var listnode2: Array[Object] */;
832 val* var_ppropdefnode1 /* var ppropdefnode1: nullable Object */;
833 val* var3 /* : null */;
834 short int var4 /* : Bool */;
835 long var5 /* : Int */;
836 long var6 /* : Int */;
837 var_p = p0;
838 var = NULL;
839 var_node_list = var;
840 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
841 var_nodearraylist1 = var1;
842 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
843 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
844 CHECK_NEW_array__Array(var2);
845 var_listnode2 = var2;
846 var_ppropdefnode1 = var_nodearraylist1;
847 var3 = NULL;
848 if (var_ppropdefnode1 == NULL) {
849 var4 = 0; /* is null */
850 } else {
851 var4 = 1; /* arg is null and recv is not */
852 }
853 if (var4){
854 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_ppropdefnode1) /* add on <var_listnode2:Array[Object]>*/;
855 } else {
856 }
857 var_node_list = var_listnode2;
858 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1544> */
859 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
860 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
861 RET_LABEL:;
862 }
863 /* method parser#ReduceAction1544#action for (self: Object, Parser) */
864 void VIRTUAL_parser__ReduceAction1544__action(val* self, val* p0) {
865 parser__ReduceAction1544__action(self, p0);
866 RET_LABEL:;
867 }
868 /* method parser#ReduceAction1545#action for (self: ReduceAction1545, Parser) */
869 void parser__ReduceAction1545__action(val* self, val* p0) {
870 val* var_p /* var p: Parser */;
871 val* var /* : null */;
872 val* var_node_list /* var node_list: nullable Object */;
873 val* var1 /* : nullable Object */;
874 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
875 val* var2 /* : nullable Object */;
876 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
877 val* var3 /* : Array[Object] */;
878 val* var_listnode3 /* var listnode3: Array[Object] */;
879 val* var_listnode1 /* var listnode1: nullable Object */;
880 short int var4 /* : Bool */;
881 int cltype;
882 int idtype;
883 val* var_ppropdefnode2 /* var ppropdefnode2: nullable Object */;
884 val* var5 /* : Array[Object] */;
885 val* var6 /* : null */;
886 short int var7 /* : Bool */;
887 long var8 /* : Int */;
888 long var9 /* : Int */;
889 var_p = p0;
890 var = NULL;
891 var_node_list = var;
892 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
893 var_nodearraylist2 = var1;
894 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
895 var_nodearraylist1 = var2;
896 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
897 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
898 CHECK_NEW_array__Array(var3);
899 var_listnode3 = var3;
900 var_listnode1 = var_nodearraylist1;
901 /* <var_listnode1:nullable Object> isa Array[Object] */
902 cltype = type_array__Arraykernel__Object.color;
903 idtype = type_array__Arraykernel__Object.id;
904 if(var_listnode1 == NULL) {
905 var4 = 0;
906 } else {
907 if(cltype >= var_listnode1->type->table_size) {
908 var4 = 0;
909 } else {
910 var4 = var_listnode1->type->type_table[cltype] == idtype;
911 }
912 }
913 if (!var4) {
914 fprintf(stderr, "Runtime error: %s", "Assert failed");
915 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29382);
916 exit(1);
917 }
918 var_ppropdefnode2 = var_nodearraylist2;
919 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1545>*/;
920 var_listnode3 = var5;
921 var6 = NULL;
922 if (var_ppropdefnode2 == NULL) {
923 var7 = 0; /* is null */
924 } else {
925 var7 = 1; /* arg is null and recv is not */
926 }
927 if (var7){
928 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_ppropdefnode2) /* add on <var_listnode3:Array[Object]>*/;
929 } else {
930 }
931 var_node_list = var_listnode3;
932 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1545> */
933 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
934 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
935 RET_LABEL:;
936 }
937 /* method parser#ReduceAction1545#action for (self: Object, Parser) */
938 void VIRTUAL_parser__ReduceAction1545__action(val* self, val* p0) {
939 parser__ReduceAction1545__action(self, p0);
940 RET_LABEL:;
941 }
942 /* method parser#ReduceAction1546#action for (self: ReduceAction1546, Parser) */
943 void parser__ReduceAction1546__action(val* self, val* p0) {
944 val* var_p /* var p: Parser */;
945 val* var /* : null */;
946 val* var_node_list /* var node_list: nullable Object */;
947 val* var1 /* : nullable Object */;
948 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
949 val* var2 /* : Array[Object] */;
950 val* var_listnode2 /* var listnode2: Array[Object] */;
951 val* var_psuperclassnode1 /* var psuperclassnode1: nullable Object */;
952 val* var3 /* : null */;
953 short int var4 /* : Bool */;
954 long var5 /* : Int */;
955 long var6 /* : Int */;
956 var_p = p0;
957 var = NULL;
958 var_node_list = var;
959 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
960 var_nodearraylist1 = var1;
961 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
962 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
963 CHECK_NEW_array__Array(var2);
964 var_listnode2 = var2;
965 var_psuperclassnode1 = var_nodearraylist1;
966 var3 = NULL;
967 if (var_psuperclassnode1 == NULL) {
968 var4 = 0; /* is null */
969 } else {
970 var4 = 1; /* arg is null and recv is not */
971 }
972 if (var4){
973 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_psuperclassnode1) /* add on <var_listnode2:Array[Object]>*/;
974 } else {
975 }
976 var_node_list = var_listnode2;
977 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1546> */
978 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
979 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
980 RET_LABEL:;
981 }
982 /* method parser#ReduceAction1546#action for (self: Object, Parser) */
983 void VIRTUAL_parser__ReduceAction1546__action(val* self, val* p0) {
984 parser__ReduceAction1546__action(self, p0);
985 RET_LABEL:;
986 }
987 /* method parser#ReduceAction1547#action for (self: ReduceAction1547, Parser) */
988 void parser__ReduceAction1547__action(val* self, val* p0) {
989 val* var_p /* var p: Parser */;
990 val* var /* : null */;
991 val* var_node_list /* var node_list: nullable Object */;
992 val* var1 /* : nullable Object */;
993 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
994 val* var2 /* : nullable Object */;
995 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
996 val* var3 /* : Array[Object] */;
997 val* var_listnode3 /* var listnode3: Array[Object] */;
998 val* var_listnode1 /* var listnode1: nullable Object */;
999 short int var4 /* : Bool */;
1000 int cltype;
1001 int idtype;
1002 val* var_psuperclassnode2 /* var psuperclassnode2: nullable Object */;
1003 val* var5 /* : Array[Object] */;
1004 val* var6 /* : null */;
1005 short int var7 /* : Bool */;
1006 long var8 /* : Int */;
1007 long var9 /* : Int */;
1008 var_p = p0;
1009 var = NULL;
1010 var_node_list = var;
1011 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1012 var_nodearraylist2 = var1;
1013 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1014 var_nodearraylist1 = var2;
1015 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
1016 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
1017 CHECK_NEW_array__Array(var3);
1018 var_listnode3 = var3;
1019 var_listnode1 = var_nodearraylist1;
1020 /* <var_listnode1:nullable Object> isa Array[Object] */
1021 cltype = type_array__Arraykernel__Object.color;
1022 idtype = type_array__Arraykernel__Object.id;
1023 if(var_listnode1 == NULL) {
1024 var4 = 0;
1025 } else {
1026 if(cltype >= var_listnode1->type->table_size) {
1027 var4 = 0;
1028 } else {
1029 var4 = var_listnode1->type->type_table[cltype] == idtype;
1030 }
1031 }
1032 if (!var4) {
1033 fprintf(stderr, "Runtime error: %s", "Assert failed");
1034 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29416);
1035 exit(1);
1036 }
1037 var_psuperclassnode2 = var_nodearraylist2;
1038 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1547>*/;
1039 var_listnode3 = var5;
1040 var6 = NULL;
1041 if (var_psuperclassnode2 == NULL) {
1042 var7 = 0; /* is null */
1043 } else {
1044 var7 = 1; /* arg is null and recv is not */
1045 }
1046 if (var7){
1047 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_psuperclassnode2) /* add on <var_listnode3:Array[Object]>*/;
1048 } else {
1049 }
1050 var_node_list = var_listnode3;
1051 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1547> */
1052 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
1053 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
1054 RET_LABEL:;
1055 }
1056 /* method parser#ReduceAction1547#action for (self: Object, Parser) */
1057 void VIRTUAL_parser__ReduceAction1547__action(val* self, val* p0) {
1058 parser__ReduceAction1547__action(self, p0);
1059 RET_LABEL:;
1060 }
1061 /* method parser#ReduceAction1550#action for (self: ReduceAction1550, Parser) */
1062 void parser__ReduceAction1550__action(val* self, val* p0) {
1063 val* var_p /* var p: Parser */;
1064 val* var /* : null */;
1065 val* var_node_list /* var node_list: nullable Object */;
1066 val* var1 /* : nullable Object */;
1067 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1068 val* var2 /* : Array[Object] */;
1069 val* var_listnode2 /* var listnode2: Array[Object] */;
1070 val* var_pformaldefnode1 /* var pformaldefnode1: nullable Object */;
1071 val* var3 /* : null */;
1072 short int var4 /* : Bool */;
1073 long var5 /* : Int */;
1074 long var6 /* : Int */;
1075 var_p = p0;
1076 var = NULL;
1077 var_node_list = var;
1078 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1079 var_nodearraylist1 = var1;
1080 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
1081 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
1082 CHECK_NEW_array__Array(var2);
1083 var_listnode2 = var2;
1084 var_pformaldefnode1 = var_nodearraylist1;
1085 var3 = NULL;
1086 if (var_pformaldefnode1 == NULL) {
1087 var4 = 0; /* is null */
1088 } else {
1089 var4 = 1; /* arg is null and recv is not */
1090 }
1091 if (var4){
1092 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_pformaldefnode1) /* add on <var_listnode2:Array[Object]>*/;
1093 } else {
1094 }
1095 var_node_list = var_listnode2;
1096 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1550> */
1097 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
1098 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
1099 RET_LABEL:;
1100 }
1101 /* method parser#ReduceAction1550#action for (self: Object, Parser) */
1102 void VIRTUAL_parser__ReduceAction1550__action(val* self, val* p0) {
1103 parser__ReduceAction1550__action(self, p0);
1104 RET_LABEL:;
1105 }
1106 /* method parser#ReduceAction1551#action for (self: ReduceAction1551, Parser) */
1107 void parser__ReduceAction1551__action(val* self, val* p0) {
1108 val* var_p /* var p: Parser */;
1109 val* var /* : null */;
1110 val* var_node_list /* var node_list: nullable Object */;
1111 val* var1 /* : nullable Object */;
1112 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1113 val* var2 /* : nullable Object */;
1114 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1115 val* var3 /* : Array[Object] */;
1116 val* var_listnode3 /* var listnode3: Array[Object] */;
1117 val* var_listnode1 /* var listnode1: nullable Object */;
1118 short int var4 /* : Bool */;
1119 int cltype;
1120 int idtype;
1121 val* var_pformaldefnode2 /* var pformaldefnode2: nullable Object */;
1122 val* var5 /* : Array[Object] */;
1123 val* var6 /* : null */;
1124 short int var7 /* : Bool */;
1125 long var8 /* : Int */;
1126 long var9 /* : Int */;
1127 var_p = p0;
1128 var = NULL;
1129 var_node_list = var;
1130 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1131 var_nodearraylist2 = var1;
1132 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1133 var_nodearraylist1 = var2;
1134 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
1135 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
1136 CHECK_NEW_array__Array(var3);
1137 var_listnode3 = var3;
1138 var_listnode1 = var_nodearraylist1;
1139 /* <var_listnode1:nullable Object> isa Array[Object] */
1140 cltype = type_array__Arraykernel__Object.color;
1141 idtype = type_array__Arraykernel__Object.id;
1142 if(var_listnode1 == NULL) {
1143 var4 = 0;
1144 } else {
1145 if(cltype >= var_listnode1->type->table_size) {
1146 var4 = 0;
1147 } else {
1148 var4 = var_listnode1->type->type_table[cltype] == idtype;
1149 }
1150 }
1151 if (!var4) {
1152 fprintf(stderr, "Runtime error: %s", "Assert failed");
1153 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29450);
1154 exit(1);
1155 }
1156 var_pformaldefnode2 = var_nodearraylist2;
1157 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1551>*/;
1158 var_listnode3 = var5;
1159 var6 = NULL;
1160 if (var_pformaldefnode2 == NULL) {
1161 var7 = 0; /* is null */
1162 } else {
1163 var7 = 1; /* arg is null and recv is not */
1164 }
1165 if (var7){
1166 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pformaldefnode2) /* add on <var_listnode3:Array[Object]>*/;
1167 } else {
1168 }
1169 var_node_list = var_listnode3;
1170 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1551> */
1171 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
1172 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
1173 RET_LABEL:;
1174 }
1175 /* method parser#ReduceAction1551#action for (self: Object, Parser) */
1176 void VIRTUAL_parser__ReduceAction1551__action(val* self, val* p0) {
1177 parser__ReduceAction1551__action(self, p0);
1178 RET_LABEL:;
1179 }
1180 /* method parser#ReduceAction1552#action for (self: ReduceAction1552, Parser) */
1181 void parser__ReduceAction1552__action(val* self, val* p0) {
1182 val* var_p /* var p: Parser */;
1183 val* var /* : null */;
1184 val* var_node_list /* var node_list: nullable Object */;
1185 val* var1 /* : nullable Object */;
1186 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1187 val* var2 /* : Array[Object] */;
1188 val* var_listnode2 /* var listnode2: Array[Object] */;
1189 val* var_pparamnode1 /* var pparamnode1: nullable Object */;
1190 val* var3 /* : null */;
1191 short int var4 /* : Bool */;
1192 long var5 /* : Int */;
1193 long var6 /* : Int */;
1194 var_p = p0;
1195 var = NULL;
1196 var_node_list = var;
1197 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1198 var_nodearraylist1 = var1;
1199 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
1200 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
1201 CHECK_NEW_array__Array(var2);
1202 var_listnode2 = var2;
1203 var_pparamnode1 = var_nodearraylist1;
1204 var3 = NULL;
1205 if (var_pparamnode1 == NULL) {
1206 var4 = 0; /* is null */
1207 } else {
1208 var4 = 1; /* arg is null and recv is not */
1209 }
1210 if (var4){
1211 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_pparamnode1) /* add on <var_listnode2:Array[Object]>*/;
1212 } else {
1213 }
1214 var_node_list = var_listnode2;
1215 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1552> */
1216 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
1217 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
1218 RET_LABEL:;
1219 }
1220 /* method parser#ReduceAction1552#action for (self: Object, Parser) */
1221 void VIRTUAL_parser__ReduceAction1552__action(val* self, val* p0) {
1222 parser__ReduceAction1552__action(self, p0);
1223 RET_LABEL:;
1224 }
1225 /* method parser#ReduceAction1553#action for (self: ReduceAction1553, Parser) */
1226 void parser__ReduceAction1553__action(val* self, val* p0) {
1227 val* var_p /* var p: Parser */;
1228 val* var /* : null */;
1229 val* var_node_list /* var node_list: nullable Object */;
1230 val* var1 /* : nullable Object */;
1231 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1232 val* var2 /* : nullable Object */;
1233 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1234 val* var3 /* : Array[Object] */;
1235 val* var_listnode3 /* var listnode3: Array[Object] */;
1236 val* var_listnode1 /* var listnode1: nullable Object */;
1237 short int var4 /* : Bool */;
1238 int cltype;
1239 int idtype;
1240 val* var_pparamnode2 /* var pparamnode2: nullable Object */;
1241 val* var5 /* : Array[Object] */;
1242 val* var6 /* : null */;
1243 short int var7 /* : Bool */;
1244 long var8 /* : Int */;
1245 long var9 /* : Int */;
1246 var_p = p0;
1247 var = NULL;
1248 var_node_list = var;
1249 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1250 var_nodearraylist2 = var1;
1251 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1252 var_nodearraylist1 = var2;
1253 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
1254 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
1255 CHECK_NEW_array__Array(var3);
1256 var_listnode3 = var3;
1257 var_listnode1 = var_nodearraylist1;
1258 /* <var_listnode1:nullable Object> isa Array[Object] */
1259 cltype = type_array__Arraykernel__Object.color;
1260 idtype = type_array__Arraykernel__Object.id;
1261 if(var_listnode1 == NULL) {
1262 var4 = 0;
1263 } else {
1264 if(cltype >= var_listnode1->type->table_size) {
1265 var4 = 0;
1266 } else {
1267 var4 = var_listnode1->type->type_table[cltype] == idtype;
1268 }
1269 }
1270 if (!var4) {
1271 fprintf(stderr, "Runtime error: %s", "Assert failed");
1272 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29484);
1273 exit(1);
1274 }
1275 var_pparamnode2 = var_nodearraylist2;
1276 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1553>*/;
1277 var_listnode3 = var5;
1278 var6 = NULL;
1279 if (var_pparamnode2 == NULL) {
1280 var7 = 0; /* is null */
1281 } else {
1282 var7 = 1; /* arg is null and recv is not */
1283 }
1284 if (var7){
1285 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pparamnode2) /* add on <var_listnode3:Array[Object]>*/;
1286 } else {
1287 }
1288 var_node_list = var_listnode3;
1289 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1553> */
1290 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
1291 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
1292 RET_LABEL:;
1293 }
1294 /* method parser#ReduceAction1553#action for (self: Object, Parser) */
1295 void VIRTUAL_parser__ReduceAction1553__action(val* self, val* p0) {
1296 parser__ReduceAction1553__action(self, p0);
1297 RET_LABEL:;
1298 }
1299 /* method parser#ReduceAction1554#action for (self: ReduceAction1554, Parser) */
1300 void parser__ReduceAction1554__action(val* self, val* p0) {
1301 val* var_p /* var p: Parser */;
1302 val* var /* : null */;
1303 val* var_node_list /* var node_list: nullable Object */;
1304 val* var1 /* : nullable Object */;
1305 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1306 val* var2 /* : Array[Object] */;
1307 val* var_listnode2 /* var listnode2: Array[Object] */;
1308 val* var_pexterncallnode1 /* var pexterncallnode1: nullable Object */;
1309 val* var3 /* : null */;
1310 short int var4 /* : Bool */;
1311 long var5 /* : Int */;
1312 long var6 /* : Int */;
1313 var_p = p0;
1314 var = NULL;
1315 var_node_list = var;
1316 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1317 var_nodearraylist1 = var1;
1318 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
1319 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
1320 CHECK_NEW_array__Array(var2);
1321 var_listnode2 = var2;
1322 var_pexterncallnode1 = var_nodearraylist1;
1323 var3 = NULL;
1324 if (var_pexterncallnode1 == NULL) {
1325 var4 = 0; /* is null */
1326 } else {
1327 var4 = 1; /* arg is null and recv is not */
1328 }
1329 if (var4){
1330 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_pexterncallnode1) /* add on <var_listnode2:Array[Object]>*/;
1331 } else {
1332 }
1333 var_node_list = var_listnode2;
1334 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1554> */
1335 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
1336 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
1337 RET_LABEL:;
1338 }
1339 /* method parser#ReduceAction1554#action for (self: Object, Parser) */
1340 void VIRTUAL_parser__ReduceAction1554__action(val* self, val* p0) {
1341 parser__ReduceAction1554__action(self, p0);
1342 RET_LABEL:;
1343 }
1344 /* method parser#ReduceAction1555#action for (self: ReduceAction1555, Parser) */
1345 void parser__ReduceAction1555__action(val* self, val* p0) {
1346 val* var_p /* var p: Parser */;
1347 val* var /* : null */;
1348 val* var_node_list /* var node_list: nullable Object */;
1349 val* var1 /* : nullable Object */;
1350 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1351 val* var2 /* : nullable Object */;
1352 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1353 val* var3 /* : Array[Object] */;
1354 val* var_listnode3 /* var listnode3: Array[Object] */;
1355 val* var_listnode1 /* var listnode1: nullable Object */;
1356 short int var4 /* : Bool */;
1357 int cltype;
1358 int idtype;
1359 val* var_pexterncallnode2 /* var pexterncallnode2: nullable Object */;
1360 val* var5 /* : Array[Object] */;
1361 val* var6 /* : null */;
1362 short int var7 /* : Bool */;
1363 long var8 /* : Int */;
1364 long var9 /* : Int */;
1365 var_p = p0;
1366 var = NULL;
1367 var_node_list = var;
1368 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1369 var_nodearraylist2 = var1;
1370 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1371 var_nodearraylist1 = var2;
1372 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
1373 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
1374 CHECK_NEW_array__Array(var3);
1375 var_listnode3 = var3;
1376 var_listnode1 = var_nodearraylist1;
1377 /* <var_listnode1:nullable Object> isa Array[Object] */
1378 cltype = type_array__Arraykernel__Object.color;
1379 idtype = type_array__Arraykernel__Object.id;
1380 if(var_listnode1 == NULL) {
1381 var4 = 0;
1382 } else {
1383 if(cltype >= var_listnode1->type->table_size) {
1384 var4 = 0;
1385 } else {
1386 var4 = var_listnode1->type->type_table[cltype] == idtype;
1387 }
1388 }
1389 if (!var4) {
1390 fprintf(stderr, "Runtime error: %s", "Assert failed");
1391 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29518);
1392 exit(1);
1393 }
1394 var_pexterncallnode2 = var_nodearraylist2;
1395 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1555>*/;
1396 var_listnode3 = var5;
1397 var6 = NULL;
1398 if (var_pexterncallnode2 == NULL) {
1399 var7 = 0; /* is null */
1400 } else {
1401 var7 = 1; /* arg is null and recv is not */
1402 }
1403 if (var7){
1404 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pexterncallnode2) /* add on <var_listnode3:Array[Object]>*/;
1405 } else {
1406 }
1407 var_node_list = var_listnode3;
1408 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1555> */
1409 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
1410 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
1411 RET_LABEL:;
1412 }
1413 /* method parser#ReduceAction1555#action for (self: Object, Parser) */
1414 void VIRTUAL_parser__ReduceAction1555__action(val* self, val* p0) {
1415 parser__ReduceAction1555__action(self, p0);
1416 RET_LABEL:;
1417 }
1418 /* method parser#ReduceAction1557#action for (self: ReduceAction1557, Parser) */
1419 void parser__ReduceAction1557__action(val* self, val* p0) {
1420 val* var_p /* var p: Parser */;
1421 val* var /* : null */;
1422 val* var_node_list /* var node_list: nullable Object */;
1423 val* var1 /* : nullable Object */;
1424 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1425 val* var2 /* : nullable Object */;
1426 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1427 val* var3 /* : Array[Object] */;
1428 val* var_listnode3 /* var listnode3: Array[Object] */;
1429 val* var_listnode1 /* var listnode1: nullable Object */;
1430 short int var4 /* : Bool */;
1431 int cltype;
1432 int idtype;
1433 val* var_ptypenode2 /* var ptypenode2: nullable Object */;
1434 val* var5 /* : Array[Object] */;
1435 val* var6 /* : null */;
1436 short int var7 /* : Bool */;
1437 long var8 /* : Int */;
1438 long var9 /* : Int */;
1439 var_p = p0;
1440 var = NULL;
1441 var_node_list = var;
1442 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1443 var_nodearraylist2 = var1;
1444 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1445 var_nodearraylist1 = var2;
1446 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
1447 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
1448 CHECK_NEW_array__Array(var3);
1449 var_listnode3 = var3;
1450 var_listnode1 = var_nodearraylist1;
1451 /* <var_listnode1:nullable Object> isa Array[Object] */
1452 cltype = type_array__Arraykernel__Object.color;
1453 idtype = type_array__Arraykernel__Object.id;
1454 if(var_listnode1 == NULL) {
1455 var4 = 0;
1456 } else {
1457 if(cltype >= var_listnode1->type->table_size) {
1458 var4 = 0;
1459 } else {
1460 var4 = var_listnode1->type->type_table[cltype] == idtype;
1461 }
1462 }
1463 if (!var4) {
1464 fprintf(stderr, "Runtime error: %s", "Assert failed");
1465 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29537);
1466 exit(1);
1467 }
1468 var_ptypenode2 = var_nodearraylist2;
1469 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1557>*/;
1470 var_listnode3 = var5;
1471 var6 = NULL;
1472 if (var_ptypenode2 == NULL) {
1473 var7 = 0; /* is null */
1474 } else {
1475 var7 = 1; /* arg is null and recv is not */
1476 }
1477 if (var7){
1478 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_ptypenode2) /* add on <var_listnode3:Array[Object]>*/;
1479 } else {
1480 }
1481 var_node_list = var_listnode3;
1482 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1557> */
1483 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
1484 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
1485 RET_LABEL:;
1486 }
1487 /* method parser#ReduceAction1557#action for (self: Object, Parser) */
1488 void VIRTUAL_parser__ReduceAction1557__action(val* self, val* p0) {
1489 parser__ReduceAction1557__action(self, p0);
1490 RET_LABEL:;
1491 }
1492 /* method parser#ReduceAction1558#action for (self: ReduceAction1558, Parser) */
1493 void parser__ReduceAction1558__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_nodearraylist1 /* var nodearraylist1: nullable Object */;
1499 val* var2 /* : Array[Object] */;
1500 val* var_listnode2 /* var listnode2: Array[Object] */;
1501 val* var_pexprnode1 /* var pexprnode1: nullable Object */;
1502 val* var3 /* : null */;
1503 short int var4 /* : Bool */;
1504 long var5 /* : Int */;
1505 long var6 /* : Int */;
1506 var_p = p0;
1507 var = NULL;
1508 var_node_list = var;
1509 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1510 var_nodearraylist1 = var1;
1511 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
1512 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
1513 CHECK_NEW_array__Array(var2);
1514 var_listnode2 = var2;
1515 var_pexprnode1 = var_nodearraylist1;
1516 var3 = NULL;
1517 if (var_pexprnode1 == NULL) {
1518 var4 = 0; /* is null */
1519 } else {
1520 var4 = 1; /* arg is null and recv is not */
1521 }
1522 if (var4){
1523 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_pexprnode1) /* add on <var_listnode2:Array[Object]>*/;
1524 } else {
1525 }
1526 var_node_list = var_listnode2;
1527 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1558> */
1528 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
1529 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
1530 RET_LABEL:;
1531 }
1532 /* method parser#ReduceAction1558#action for (self: Object, Parser) */
1533 void VIRTUAL_parser__ReduceAction1558__action(val* self, val* p0) {
1534 parser__ReduceAction1558__action(self, p0);
1535 RET_LABEL:;
1536 }
1537 /* method parser#ReduceAction1559#action for (self: ReduceAction1559, Parser) */
1538 void parser__ReduceAction1559__action(val* self, val* p0) {
1539 val* var_p /* var p: Parser */;
1540 val* var /* : null */;
1541 val* var_node_list /* var node_list: nullable Object */;
1542 val* var1 /* : nullable Object */;
1543 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1544 val* var2 /* : nullable Object */;
1545 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1546 val* var3 /* : Array[Object] */;
1547 val* var_listnode3 /* var listnode3: Array[Object] */;
1548 val* var_listnode1 /* var listnode1: nullable Object */;
1549 short int var4 /* : Bool */;
1550 int cltype;
1551 int idtype;
1552 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
1553 val* var5 /* : Array[Object] */;
1554 val* var6 /* : null */;
1555 short int var7 /* : Bool */;
1556 long var8 /* : Int */;
1557 long var9 /* : Int */;
1558 var_p = p0;
1559 var = NULL;
1560 var_node_list = var;
1561 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1562 var_nodearraylist2 = var1;
1563 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1564 var_nodearraylist1 = var2;
1565 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
1566 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
1567 CHECK_NEW_array__Array(var3);
1568 var_listnode3 = var3;
1569 var_listnode1 = var_nodearraylist1;
1570 /* <var_listnode1:nullable Object> isa Array[Object] */
1571 cltype = type_array__Arraykernel__Object.color;
1572 idtype = type_array__Arraykernel__Object.id;
1573 if(var_listnode1 == NULL) {
1574 var4 = 0;
1575 } else {
1576 if(cltype >= var_listnode1->type->table_size) {
1577 var4 = 0;
1578 } else {
1579 var4 = var_listnode1->type->type_table[cltype] == idtype;
1580 }
1581 }
1582 if (!var4) {
1583 fprintf(stderr, "Runtime error: %s", "Assert failed");
1584 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29571);
1585 exit(1);
1586 }
1587 var_pexprnode2 = var_nodearraylist2;
1588 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1559>*/;
1589 var_listnode3 = var5;
1590 var6 = NULL;
1591 if (var_pexprnode2 == NULL) {
1592 var7 = 0; /* is null */
1593 } else {
1594 var7 = 1; /* arg is null and recv is not */
1595 }
1596 if (var7){
1597 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pexprnode2) /* add on <var_listnode3:Array[Object]>*/;
1598 } else {
1599 }
1600 var_node_list = var_listnode3;
1601 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1559> */
1602 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
1603 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
1604 RET_LABEL:;
1605 }
1606 /* method parser#ReduceAction1559#action for (self: Object, Parser) */
1607 void VIRTUAL_parser__ReduceAction1559__action(val* self, val* p0) {
1608 parser__ReduceAction1559__action(self, p0);
1609 RET_LABEL:;
1610 }
1611 /* method parser#ReduceAction1560#action for (self: ReduceAction1560, Parser) */
1612 void parser__ReduceAction1560__action(val* self, val* p0) {
1613 val* var_p /* var p: Parser */;
1614 val* var /* : null */;
1615 val* var_node_list /* var node_list: nullable Object */;
1616 val* var1 /* : nullable Object */;
1617 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1618 val* var2 /* : Array[Object] */;
1619 val* var_listnode2 /* var listnode2: Array[Object] */;
1620 val* var_listnode1 /* var listnode1: nullable Object */;
1621 short int var3 /* : Bool */;
1622 int cltype;
1623 int idtype;
1624 val* var4 /* : Array[Object] */;
1625 long var5 /* : Int */;
1626 long var6 /* : Int */;
1627 var_p = p0;
1628 var = NULL;
1629 var_node_list = var;
1630 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1631 var_nodearraylist1 = var1;
1632 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
1633 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
1634 CHECK_NEW_array__Array(var2);
1635 var_listnode2 = var2;
1636 var_listnode1 = var_nodearraylist1;
1637 /* <var_listnode1:nullable Object> isa Array[Object] */
1638 cltype = type_array__Arraykernel__Object.color;
1639 idtype = type_array__Arraykernel__Object.id;
1640 if(var_listnode1 == NULL) {
1641 var3 = 0;
1642 } else {
1643 if(cltype >= var_listnode1->type->table_size) {
1644 var3 = 0;
1645 } else {
1646 var3 = var_listnode1->type->type_table[cltype] == idtype;
1647 }
1648 }
1649 if (!var3) {
1650 fprintf(stderr, "Runtime error: %s", "Assert failed");
1651 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29589);
1652 exit(1);
1653 }
1654 var4 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode2, var_listnode1) /* concat on <self:ReduceAction1560>*/;
1655 var_listnode2 = var4;
1656 var_node_list = var_listnode2;
1657 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1560> */
1658 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
1659 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
1660 RET_LABEL:;
1661 }
1662 /* method parser#ReduceAction1560#action for (self: Object, Parser) */
1663 void VIRTUAL_parser__ReduceAction1560__action(val* self, val* p0) {
1664 parser__ReduceAction1560__action(self, p0);
1665 RET_LABEL:;
1666 }
1667 /* method parser#ReduceAction1561#action for (self: ReduceAction1561, Parser) */
1668 void parser__ReduceAction1561__action(val* self, val* p0) {
1669 val* var_p /* var p: Parser */;
1670 val* var /* : null */;
1671 val* var_node_list /* var node_list: nullable Object */;
1672 val* var1 /* : nullable Object */;
1673 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1674 val* var2 /* : nullable Object */;
1675 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1676 val* var3 /* : Array[Object] */;
1677 val* var_listnode3 /* var listnode3: Array[Object] */;
1678 val* var_listnode1 /* var listnode1: nullable Object */;
1679 short int var4 /* : Bool */;
1680 int cltype;
1681 int idtype;
1682 val* var_listnode2 /* var listnode2: nullable Object */;
1683 short int var5 /* : Bool */;
1684 int cltype6;
1685 int idtype7;
1686 val* var8 /* : Array[Object] */;
1687 val* var9 /* : Array[Object] */;
1688 long var10 /* : Int */;
1689 long var11 /* : Int */;
1690 var_p = p0;
1691 var = NULL;
1692 var_node_list = var;
1693 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1694 var_nodearraylist2 = var1;
1695 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1696 var_nodearraylist1 = var2;
1697 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
1698 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
1699 CHECK_NEW_array__Array(var3);
1700 var_listnode3 = var3;
1701 var_listnode1 = var_nodearraylist1;
1702 /* <var_listnode1:nullable Object> isa Array[Object] */
1703 cltype = type_array__Arraykernel__Object.color;
1704 idtype = type_array__Arraykernel__Object.id;
1705 if(var_listnode1 == NULL) {
1706 var4 = 0;
1707 } else {
1708 if(cltype >= var_listnode1->type->table_size) {
1709 var4 = 0;
1710 } else {
1711 var4 = var_listnode1->type->type_table[cltype] == idtype;
1712 }
1713 }
1714 if (!var4) {
1715 fprintf(stderr, "Runtime error: %s", "Assert failed");
1716 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29604);
1717 exit(1);
1718 }
1719 var_listnode2 = var_nodearraylist2;
1720 /* <var_listnode2:nullable Object> isa Array[Object] */
1721 cltype6 = type_array__Arraykernel__Object.color;
1722 idtype7 = type_array__Arraykernel__Object.id;
1723 if(var_listnode2 == NULL) {
1724 var5 = 0;
1725 } else {
1726 if(cltype6 >= var_listnode2->type->table_size) {
1727 var5 = 0;
1728 } else {
1729 var5 = var_listnode2->type->type_table[cltype6] == idtype7;
1730 }
1731 }
1732 if (!var5) {
1733 fprintf(stderr, "Runtime error: %s", "Assert failed");
1734 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29606);
1735 exit(1);
1736 }
1737 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1561>*/;
1738 var_listnode3 = var8;
1739 var9 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode2) /* concat on <self:ReduceAction1561>*/;
1740 var_listnode3 = var9;
1741 var_node_list = var_listnode3;
1742 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1561> */
1743 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
1744 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
1745 RET_LABEL:;
1746 }
1747 /* method parser#ReduceAction1561#action for (self: Object, Parser) */
1748 void VIRTUAL_parser__ReduceAction1561__action(val* self, val* p0) {
1749 parser__ReduceAction1561__action(self, p0);
1750 RET_LABEL:;
1751 }
1752 /* method parser#ReduceAction1563#action for (self: ReduceAction1563, Parser) */
1753 void parser__ReduceAction1563__action(val* self, val* p0) {
1754 val* var_p /* var p: Parser */;
1755 val* var /* : null */;
1756 val* var_node_list /* var node_list: nullable Object */;
1757 val* var1 /* : nullable Object */;
1758 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1759 val* var2 /* : nullable Object */;
1760 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1761 val* var3 /* : Array[Object] */;
1762 val* var_listnode3 /* var listnode3: Array[Object] */;
1763 val* var_listnode1 /* var listnode1: nullable Object */;
1764 short int var4 /* : Bool */;
1765 int cltype;
1766 int idtype;
1767 val* var_pannotationnode2 /* var pannotationnode2: nullable Object */;
1768 val* var5 /* : Array[Object] */;
1769 val* var6 /* : null */;
1770 short int var7 /* : Bool */;
1771 long var8 /* : Int */;
1772 long var9 /* : Int */;
1773 var_p = p0;
1774 var = NULL;
1775 var_node_list = var;
1776 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1777 var_nodearraylist2 = var1;
1778 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1779 var_nodearraylist1 = var2;
1780 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
1781 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
1782 CHECK_NEW_array__Array(var3);
1783 var_listnode3 = var3;
1784 var_listnode1 = var_nodearraylist1;
1785 /* <var_listnode1:nullable Object> isa Array[Object] */
1786 cltype = type_array__Arraykernel__Object.color;
1787 idtype = type_array__Arraykernel__Object.id;
1788 if(var_listnode1 == NULL) {
1789 var4 = 0;
1790 } else {
1791 if(cltype >= var_listnode1->type->table_size) {
1792 var4 = 0;
1793 } else {
1794 var4 = var_listnode1->type->type_table[cltype] == idtype;
1795 }
1796 }
1797 if (!var4) {
1798 fprintf(stderr, "Runtime error: %s", "Assert failed");
1799 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29622);
1800 exit(1);
1801 }
1802 var_pannotationnode2 = var_nodearraylist2;
1803 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1563>*/;
1804 var_listnode3 = var5;
1805 var6 = NULL;
1806 if (var_pannotationnode2 == NULL) {
1807 var7 = 0; /* is null */
1808 } else {
1809 var7 = 1; /* arg is null and recv is not */
1810 }
1811 if (var7){
1812 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pannotationnode2) /* add on <var_listnode3:Array[Object]>*/;
1813 } else {
1814 }
1815 var_node_list = var_listnode3;
1816 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1563> */
1817 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
1818 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
1819 RET_LABEL:;
1820 }
1821 /* method parser#ReduceAction1563#action for (self: Object, Parser) */
1822 void VIRTUAL_parser__ReduceAction1563__action(val* self, val* p0) {
1823 parser__ReduceAction1563__action(self, p0);
1824 RET_LABEL:;
1825 }
1826 /* method parser#ReduceAction1567#action for (self: ReduceAction1567, Parser) */
1827 void parser__ReduceAction1567__action(val* self, val* p0) {
1828 val* var_p /* var p: Parser */;
1829 val* var /* : null */;
1830 val* var_node_list /* var node_list: nullable Object */;
1831 val* var1 /* : nullable Object */;
1832 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1833 val* var2 /* : nullable Object */;
1834 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1835 val* var3 /* : Array[Object] */;
1836 val* var_listnode3 /* var listnode3: Array[Object] */;
1837 val* var_listnode1 /* var listnode1: nullable Object */;
1838 short int var4 /* : Bool */;
1839 int cltype;
1840 int idtype;
1841 val* var_patargnode2 /* var patargnode2: nullable Object */;
1842 val* var5 /* : Array[Object] */;
1843 val* var6 /* : null */;
1844 short int var7 /* : Bool */;
1845 long var8 /* : Int */;
1846 long var9 /* : Int */;
1847 var_p = p0;
1848 var = NULL;
1849 var_node_list = var;
1850 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1851 var_nodearraylist2 = var1;
1852 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1853 var_nodearraylist1 = var2;
1854 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
1855 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
1856 CHECK_NEW_array__Array(var3);
1857 var_listnode3 = var3;
1858 var_listnode1 = var_nodearraylist1;
1859 /* <var_listnode1:nullable Object> isa Array[Object] */
1860 cltype = type_array__Arraykernel__Object.color;
1861 idtype = type_array__Arraykernel__Object.id;
1862 if(var_listnode1 == NULL) {
1863 var4 = 0;
1864 } else {
1865 if(cltype >= var_listnode1->type->table_size) {
1866 var4 = 0;
1867 } else {
1868 var4 = var_listnode1->type->type_table[cltype] == idtype;
1869 }
1870 }
1871 if (!var4) {
1872 fprintf(stderr, "Runtime error: %s", "Assert failed");
1873 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29641);
1874 exit(1);
1875 }
1876 var_patargnode2 = var_nodearraylist2;
1877 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1567>*/;
1878 var_listnode3 = var5;
1879 var6 = NULL;
1880 if (var_patargnode2 == NULL) {
1881 var7 = 0; /* is null */
1882 } else {
1883 var7 = 1; /* arg is null and recv is not */
1884 }
1885 if (var7){
1886 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_patargnode2) /* add on <var_listnode3:Array[Object]>*/;
1887 } else {
1888 }
1889 var_node_list = var_listnode3;
1890 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1567> */
1891 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
1892 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
1893 RET_LABEL:;
1894 }
1895 /* method parser#ReduceAction1567#action for (self: Object, Parser) */
1896 void VIRTUAL_parser__ReduceAction1567__action(val* self, val* p0) {
1897 parser__ReduceAction1567__action(self, p0);
1898 RET_LABEL:;
1899 }
1900 /* method parser#ReduceAction1571#action for (self: ReduceAction1571, Parser) */
1901 void parser__ReduceAction1571__action(val* self, val* p0) {
1902 val* var_p /* var p: Parser */;
1903 val* var /* : null */;
1904 val* var_node_list /* var node_list: nullable Object */;
1905 val* var1 /* : nullable Object */;
1906 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1907 val* var2 /* : nullable Object */;
1908 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1909 val* var3 /* : Array[Object] */;
1910 val* var_listnode3 /* var listnode3: Array[Object] */;
1911 val* var_listnode1 /* var listnode1: nullable Object */;
1912 short int var4 /* : Bool */;
1913 int cltype;
1914 int idtype;
1915 val* var_tidnode2 /* var tidnode2: nullable Object */;
1916 val* var5 /* : Array[Object] */;
1917 val* var6 /* : null */;
1918 short int var7 /* : Bool */;
1919 long var8 /* : Int */;
1920 long var9 /* : Int */;
1921 var_p = p0;
1922 var = NULL;
1923 var_node_list = var;
1924 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1925 var_nodearraylist2 = var1;
1926 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1927 var_nodearraylist1 = var2;
1928 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
1929 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
1930 CHECK_NEW_array__Array(var3);
1931 var_listnode3 = var3;
1932 var_listnode1 = var_nodearraylist1;
1933 /* <var_listnode1:nullable Object> isa Array[Object] */
1934 cltype = type_array__Arraykernel__Object.color;
1935 idtype = type_array__Arraykernel__Object.id;
1936 if(var_listnode1 == NULL) {
1937 var4 = 0;
1938 } else {
1939 if(cltype >= var_listnode1->type->table_size) {
1940 var4 = 0;
1941 } else {
1942 var4 = var_listnode1->type->type_table[cltype] == idtype;
1943 }
1944 }
1945 if (!var4) {
1946 fprintf(stderr, "Runtime error: %s", "Assert failed");
1947 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29660);
1948 exit(1);
1949 }
1950 var_tidnode2 = var_nodearraylist2;
1951 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1571>*/;
1952 var_listnode3 = var5;
1953 var6 = NULL;
1954 if (var_tidnode2 == NULL) {
1955 var7 = 0; /* is null */
1956 } else {
1957 var7 = 1; /* arg is null and recv is not */
1958 }
1959 if (var7){
1960 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_tidnode2) /* add on <var_listnode3:Array[Object]>*/;
1961 } else {
1962 }
1963 var_node_list = var_listnode3;
1964 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1571> */
1965 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
1966 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
1967 RET_LABEL:;
1968 }
1969 /* method parser#ReduceAction1571#action for (self: Object, Parser) */
1970 void VIRTUAL_parser__ReduceAction1571__action(val* self, val* p0) {
1971 parser__ReduceAction1571__action(self, p0);
1972 RET_LABEL:;
1973 }
1974 /* method parser#ReduceAction1572#action for (self: ReduceAction1572, Parser) */
1975 void parser__ReduceAction1572__action(val* self, val* p0) {
1976 val* var_p /* var p: Parser */;
1977 val* var /* : null */;
1978 val* var_node_list /* var node_list: nullable Object */;
1979 val* var1 /* : nullable Object */;
1980 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1981 val* var2 /* : Array[Object] */;
1982 val* var_listnode2 /* var listnode2: Array[Object] */;
1983 val* var_tcommentnode1 /* var tcommentnode1: nullable Object */;
1984 val* var3 /* : null */;
1985 short int var4 /* : Bool */;
1986 long var5 /* : Int */;
1987 long var6 /* : Int */;
1988 var_p = p0;
1989 var = NULL;
1990 var_node_list = var;
1991 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1992 var_nodearraylist1 = var1;
1993 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
1994 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
1995 CHECK_NEW_array__Array(var2);
1996 var_listnode2 = var2;
1997 var_tcommentnode1 = var_nodearraylist1;
1998 var3 = NULL;
1999 if (var_tcommentnode1 == NULL) {
2000 var4 = 0; /* is null */
2001 } else {
2002 var4 = 1; /* arg is null and recv is not */
2003 }
2004 if (var4){
2005 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_tcommentnode1) /* add on <var_listnode2:Array[Object]>*/;
2006 } else {
2007 }
2008 var_node_list = var_listnode2;
2009 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1572> */
2010 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
2011 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
2012 RET_LABEL:;
2013 }
2014 /* method parser#ReduceAction1572#action for (self: Object, Parser) */
2015 void VIRTUAL_parser__ReduceAction1572__action(val* self, val* p0) {
2016 parser__ReduceAction1572__action(self, p0);
2017 RET_LABEL:;
2018 }
2019 /* method parser#ReduceAction1573#action for (self: ReduceAction1573, Parser) */
2020 void parser__ReduceAction1573__action(val* self, val* p0) {
2021 val* var_p /* var p: Parser */;
2022 val* var /* : null */;
2023 val* var_node_list /* var node_list: nullable Object */;
2024 val* var1 /* : nullable Object */;
2025 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2026 val* var2 /* : nullable Object */;
2027 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2028 val* var3 /* : Array[Object] */;
2029 val* var_listnode3 /* var listnode3: Array[Object] */;
2030 val* var_listnode1 /* var listnode1: nullable Object */;
2031 short int var4 /* : Bool */;
2032 int cltype;
2033 int idtype;
2034 val* var_tcommentnode2 /* var tcommentnode2: nullable Object */;
2035 val* var5 /* : Array[Object] */;
2036 val* var6 /* : null */;
2037 short int var7 /* : Bool */;
2038 long var8 /* : Int */;
2039 long var9 /* : Int */;
2040 var_p = p0;
2041 var = NULL;
2042 var_node_list = var;
2043 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2044 var_nodearraylist2 = var1;
2045 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2046 var_nodearraylist1 = var2;
2047 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
2048 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
2049 CHECK_NEW_array__Array(var3);
2050 var_listnode3 = var3;
2051 var_listnode1 = var_nodearraylist1;
2052 /* <var_listnode1:nullable Object> isa Array[Object] */
2053 cltype = type_array__Arraykernel__Object.color;
2054 idtype = type_array__Arraykernel__Object.id;
2055 if(var_listnode1 == NULL) {
2056 var4 = 0;
2057 } else {
2058 if(cltype >= var_listnode1->type->table_size) {
2059 var4 = 0;
2060 } else {
2061 var4 = var_listnode1->type->type_table[cltype] == idtype;
2062 }
2063 }
2064 if (!var4) {
2065 fprintf(stderr, "Runtime error: %s", "Assert failed");
2066 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29694);
2067 exit(1);
2068 }
2069 var_tcommentnode2 = var_nodearraylist2;
2070 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1573>*/;
2071 var_listnode3 = var5;
2072 var6 = NULL;
2073 if (var_tcommentnode2 == NULL) {
2074 var7 = 0; /* is null */
2075 } else {
2076 var7 = 1; /* arg is null and recv is not */
2077 }
2078 if (var7){
2079 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_tcommentnode2) /* add on <var_listnode3:Array[Object]>*/;
2080 } else {
2081 }
2082 var_node_list = var_listnode3;
2083 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1573> */
2084 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
2085 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
2086 RET_LABEL:;
2087 }
2088 /* method parser#ReduceAction1573#action for (self: Object, Parser) */
2089 void VIRTUAL_parser__ReduceAction1573__action(val* self, val* p0) {
2090 parser__ReduceAction1573__action(self, p0);
2091 RET_LABEL:;
2092 }
2093 /* method parser#ReduceAction1574#action for (self: ReduceAction1574, Parser) */
2094 void parser__ReduceAction1574__action(val* self, val* p0) {
2095 val* var_p /* var p: Parser */;
2096 val* var /* : null */;
2097 val* var_node_list /* var node_list: nullable Object */;
2098 val* var1 /* : nullable Object */;
2099 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2100 val* var2 /* : Array[Object] */;
2101 val* var_listnode2 /* var listnode2: Array[Object] */;
2102 val* var_teolnode1 /* var teolnode1: nullable Object */;
2103 val* var3 /* : null */;
2104 short int var4 /* : Bool */;
2105 long var5 /* : Int */;
2106 long var6 /* : Int */;
2107 var_p = p0;
2108 var = NULL;
2109 var_node_list = var;
2110 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2111 var_nodearraylist1 = var1;
2112 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
2113 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
2114 CHECK_NEW_array__Array(var2);
2115 var_listnode2 = var2;
2116 var_teolnode1 = var_nodearraylist1;
2117 var3 = NULL;
2118 if (var_teolnode1 == NULL) {
2119 var4 = 0; /* is null */
2120 } else {
2121 var4 = 1; /* arg is null and recv is not */
2122 }
2123 if (var4){
2124 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_teolnode1) /* add on <var_listnode2:Array[Object]>*/;
2125 } else {
2126 }
2127 var_node_list = var_listnode2;
2128 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1574> */
2129 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
2130 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
2131 RET_LABEL:;
2132 }
2133 /* method parser#ReduceAction1574#action for (self: Object, Parser) */
2134 void VIRTUAL_parser__ReduceAction1574__action(val* self, val* p0) {
2135 parser__ReduceAction1574__action(self, p0);
2136 RET_LABEL:;
2137 }
2138 /* method parser#ReduceAction1575#action for (self: ReduceAction1575, Parser) */
2139 void parser__ReduceAction1575__action(val* self, val* p0) {
2140 val* var_p /* var p: Parser */;
2141 val* var /* : null */;
2142 val* var_node_list /* var node_list: nullable Object */;
2143 val* var1 /* : nullable Object */;
2144 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2145 val* var2 /* : nullable Object */;
2146 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2147 val* var3 /* : Array[Object] */;
2148 val* var_listnode3 /* var listnode3: Array[Object] */;
2149 val* var_listnode1 /* var listnode1: nullable Object */;
2150 short int var4 /* : Bool */;
2151 int cltype;
2152 int idtype;
2153 val* var_teolnode2 /* var teolnode2: nullable Object */;
2154 val* var5 /* : Array[Object] */;
2155 val* var6 /* : null */;
2156 short int var7 /* : Bool */;
2157 long var8 /* : Int */;
2158 long var9 /* : Int */;
2159 var_p = p0;
2160 var = NULL;
2161 var_node_list = var;
2162 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2163 var_nodearraylist2 = var1;
2164 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2165 var_nodearraylist1 = var2;
2166 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
2167 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
2168 CHECK_NEW_array__Array(var3);
2169 var_listnode3 = var3;
2170 var_listnode1 = var_nodearraylist1;
2171 /* <var_listnode1:nullable Object> isa Array[Object] */
2172 cltype = type_array__Arraykernel__Object.color;
2173 idtype = type_array__Arraykernel__Object.id;
2174 if(var_listnode1 == NULL) {
2175 var4 = 0;
2176 } else {
2177 if(cltype >= var_listnode1->type->table_size) {
2178 var4 = 0;
2179 } else {
2180 var4 = var_listnode1->type->type_table[cltype] == idtype;
2181 }
2182 }
2183 if (!var4) {
2184 fprintf(stderr, "Runtime error: %s", "Assert failed");
2185 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29728);
2186 exit(1);
2187 }
2188 var_teolnode2 = var_nodearraylist2;
2189 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1575>*/;
2190 var_listnode3 = var5;
2191 var6 = NULL;
2192 if (var_teolnode2 == NULL) {
2193 var7 = 0; /* is null */
2194 } else {
2195 var7 = 1; /* arg is null and recv is not */
2196 }
2197 if (var7){
2198 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_teolnode2) /* add on <var_listnode3:Array[Object]>*/;
2199 } else {
2200 }
2201 var_node_list = var_listnode3;
2202 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1575> */
2203 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
2204 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
2205 RET_LABEL:;
2206 }
2207 /* method parser#ReduceAction1575#action for (self: Object, Parser) */
2208 void VIRTUAL_parser__ReduceAction1575__action(val* self, val* p0) {
2209 parser__ReduceAction1575__action(self, p0);
2210 RET_LABEL:;
2211 }