Merge: Pep8analysis Web Version
[nit.git] / c_src / parser.sep.3.c
1 #include "parser.sep.0.h"
2 /* method parser#ReduceAction3#action for (self: ReduceAction3, Parser) */
3 void parser__ReduceAction3__action(val* self, val* p0) {
4 val* var_p /* var p: Parser */;
5 val* var /* : null */;
6 val* var_node_list /* var node_list: nullable Object */;
7 val* var1 /* : nullable Object */;
8 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9 val* var2 /* : nullable Object */;
10 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
11 val* var3 /* : Array[Object] */;
12 val* var_listnode4 /* var listnode4: Array[Object] */;
13 val* var4 /* : Array[Object] */;
14 val* var_listnode5 /* var listnode5: Array[Object] */;
15 val* var5 /* : Array[Object] */;
16 val* var_listnode6 /* var listnode6: Array[Object] */;
17 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
18 short int var6 /* : Bool */;
19 int cltype;
20 int idtype;
21 val* var_listnode3 /* var listnode3: nullable Object */;
22 short int var7 /* : Bool */;
23 int cltype8;
24 int idtype9;
25 val* var10 /* : Array[Object] */;
26 val* var11 /* : AModule */;
27 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
28 long var12 /* : Int */;
29 long var13 /* : Int */;
30 var_p = p0;
31 var = NULL;
32 var_node_list = var;
33 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
34 var_nodearraylist2 = var1;
35 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
36 var_nodearraylist1 = var2;
37 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
38 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
39 var_listnode4 = var3;
40 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
41 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
42 var_listnode5 = var4;
43 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
44 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
45 var_listnode6 = var5;
46 var_pmoduledeclnode2 = var_nodearraylist1;
47 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
48 cltype = type_nullable_parser_nodes__AModuledecl.color;
49 idtype = type_nullable_parser_nodes__AModuledecl.id;
50 if(var_pmoduledeclnode2 == NULL) {
51 var6 = 1;
52 } else {
53 if(cltype >= var_pmoduledeclnode2->type->table_size) {
54 var6 = 0;
55 } else {
56 var6 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
57 }
58 }
59 if (!var6) {
60 fprintf(stderr, "Runtime error: %s", "Assert failed");
61 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1883);
62 show_backtrace(1);
63 }
64 var_listnode3 = var_nodearraylist2;
65 /* <var_listnode3:nullable Object> isa Array[Object] */
66 cltype8 = type_array__Arraykernel__Object.color;
67 idtype9 = type_array__Arraykernel__Object.id;
68 if(var_listnode3 == NULL) {
69 var7 = 0;
70 } else {
71 if(cltype8 >= var_listnode3->type->table_size) {
72 var7 = 0;
73 } else {
74 var7 = var_listnode3->type->type_table[cltype8] == idtype9;
75 }
76 }
77 if (!var7) {
78 fprintf(stderr, "Runtime error: %s", "Assert failed");
79 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1885);
80 show_backtrace(1);
81 }
82 var10 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction3>*/;
83 var_listnode4 = var10;
84 var11 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
85 ((void (*)(val*, val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var11, var_pmoduledeclnode2, var_listnode4, var_listnode5, var_listnode6) /* init_amodule on <var11:AModule>*/;
86 var_pmodulenode1 = var11;
87 var_node_list = var_pmodulenode1;
88 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction3> */
89 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
90 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
91 RET_LABEL:;
92 }
93 /* method parser#ReduceAction3#action for (self: Object, Parser) */
94 void VIRTUAL_parser__ReduceAction3__action(val* self, val* p0) {
95 parser__ReduceAction3__action(self, p0);
96 RET_LABEL:;
97 }
98 /* method parser#ReduceAction4#action for (self: ReduceAction4, Parser) */
99 void parser__ReduceAction4__action(val* self, val* p0) {
100 val* var_p /* var p: Parser */;
101 val* var /* : null */;
102 val* var_node_list /* var node_list: nullable Object */;
103 val* var1 /* : nullable Object */;
104 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
105 val* var2 /* : Array[Object] */;
106 val* var_listnode3 /* var listnode3: Array[Object] */;
107 val* var3 /* : Array[Object] */;
108 val* var_listnode5 /* var listnode5: Array[Object] */;
109 val* var4 /* : Array[Object] */;
110 val* var_listnode6 /* var listnode6: Array[Object] */;
111 val* var_listnode4 /* var listnode4: nullable Object */;
112 short int var5 /* : Bool */;
113 int cltype;
114 int idtype;
115 val* var6 /* : Array[Object] */;
116 val* var7 /* : AModule */;
117 val* var8 /* : null */;
118 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
119 long var9 /* : Int */;
120 long var10 /* : Int */;
121 var_p = p0;
122 var = NULL;
123 var_node_list = var;
124 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
125 var_nodearraylist1 = var1;
126 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
127 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
128 var_listnode3 = var2;
129 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
130 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
131 var_listnode5 = var3;
132 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
133 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
134 var_listnode6 = var4;
135 var_listnode4 = var_nodearraylist1;
136 /* <var_listnode4:nullable Object> isa Array[Object] */
137 cltype = type_array__Arraykernel__Object.color;
138 idtype = type_array__Arraykernel__Object.id;
139 if(var_listnode4 == NULL) {
140 var5 = 0;
141 } else {
142 if(cltype >= var_listnode4->type->table_size) {
143 var5 = 0;
144 } else {
145 var5 = var_listnode4->type->type_table[cltype] == idtype;
146 }
147 }
148 if (!var5) {
149 fprintf(stderr, "Runtime error: %s", "Assert failed");
150 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1907);
151 show_backtrace(1);
152 }
153 var6 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction4>*/;
154 var_listnode5 = var6;
155 var7 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
156 var8 = NULL;
157 ((void (*)(val*, val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var7, var8, var_listnode3, var_listnode5, var_listnode6) /* init_amodule on <var7:AModule>*/;
158 var_pmodulenode1 = var7;
159 var_node_list = var_pmodulenode1;
160 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction4> */
161 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
162 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
163 RET_LABEL:;
164 }
165 /* method parser#ReduceAction4#action for (self: Object, Parser) */
166 void VIRTUAL_parser__ReduceAction4__action(val* self, val* p0) {
167 parser__ReduceAction4__action(self, p0);
168 RET_LABEL:;
169 }
170 /* method parser#ReduceAction5#action for (self: ReduceAction5, Parser) */
171 void parser__ReduceAction5__action(val* self, val* p0) {
172 val* var_p /* var p: Parser */;
173 val* var /* : null */;
174 val* var_node_list /* var node_list: nullable Object */;
175 val* var1 /* : nullable Object */;
176 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
177 val* var2 /* : nullable Object */;
178 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
179 val* var3 /* : Array[Object] */;
180 val* var_listnode3 /* var listnode3: Array[Object] */;
181 val* var4 /* : Array[Object] */;
182 val* var_listnode5 /* var listnode5: Array[Object] */;
183 val* var5 /* : Array[Object] */;
184 val* var_listnode6 /* var listnode6: Array[Object] */;
185 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
186 short int var6 /* : Bool */;
187 int cltype;
188 int idtype;
189 val* var_listnode4 /* var listnode4: nullable Object */;
190 short int var7 /* : Bool */;
191 int cltype8;
192 int idtype9;
193 val* var10 /* : Array[Object] */;
194 val* var11 /* : AModule */;
195 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
196 long var12 /* : Int */;
197 long var13 /* : Int */;
198 var_p = p0;
199 var = NULL;
200 var_node_list = var;
201 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
202 var_nodearraylist2 = var1;
203 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
204 var_nodearraylist1 = var2;
205 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
206 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
207 var_listnode3 = var3;
208 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
209 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
210 var_listnode5 = var4;
211 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
212 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
213 var_listnode6 = var5;
214 var_pmoduledeclnode2 = var_nodearraylist1;
215 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
216 cltype = type_nullable_parser_nodes__AModuledecl.color;
217 idtype = type_nullable_parser_nodes__AModuledecl.id;
218 if(var_pmoduledeclnode2 == NULL) {
219 var6 = 1;
220 } else {
221 if(cltype >= var_pmoduledeclnode2->type->table_size) {
222 var6 = 0;
223 } else {
224 var6 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
225 }
226 }
227 if (!var6) {
228 fprintf(stderr, "Runtime error: %s", "Assert failed");
229 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1930);
230 show_backtrace(1);
231 }
232 var_listnode4 = var_nodearraylist2;
233 /* <var_listnode4:nullable Object> isa Array[Object] */
234 cltype8 = type_array__Arraykernel__Object.color;
235 idtype9 = type_array__Arraykernel__Object.id;
236 if(var_listnode4 == NULL) {
237 var7 = 0;
238 } else {
239 if(cltype8 >= var_listnode4->type->table_size) {
240 var7 = 0;
241 } else {
242 var7 = var_listnode4->type->type_table[cltype8] == idtype9;
243 }
244 }
245 if (!var7) {
246 fprintf(stderr, "Runtime error: %s", "Assert failed");
247 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1932);
248 show_backtrace(1);
249 }
250 var10 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction5>*/;
251 var_listnode5 = var10;
252 var11 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
253 ((void (*)(val*, val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var11, var_pmoduledeclnode2, var_listnode3, var_listnode5, var_listnode6) /* init_amodule on <var11:AModule>*/;
254 var_pmodulenode1 = var11;
255 var_node_list = var_pmodulenode1;
256 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction5> */
257 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
258 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
259 RET_LABEL:;
260 }
261 /* method parser#ReduceAction5#action for (self: Object, Parser) */
262 void VIRTUAL_parser__ReduceAction5__action(val* self, val* p0) {
263 parser__ReduceAction5__action(self, p0);
264 RET_LABEL:;
265 }
266 /* method parser#ReduceAction6#action for (self: ReduceAction6, Parser) */
267 void parser__ReduceAction6__action(val* self, val* p0) {
268 val* var_p /* var p: Parser */;
269 val* var /* : null */;
270 val* var_node_list /* var node_list: nullable Object */;
271 val* var1 /* : nullable Object */;
272 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
273 val* var2 /* : nullable Object */;
274 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
275 val* var3 /* : Array[Object] */;
276 val* var_listnode4 /* var listnode4: Array[Object] */;
277 val* var4 /* : Array[Object] */;
278 val* var_listnode6 /* var listnode6: Array[Object] */;
279 val* var5 /* : Array[Object] */;
280 val* var_listnode7 /* var listnode7: Array[Object] */;
281 val* var_listnode3 /* var listnode3: nullable Object */;
282 short int var6 /* : Bool */;
283 int cltype;
284 int idtype;
285 val* var7 /* : Array[Object] */;
286 val* var_listnode5 /* var listnode5: nullable Object */;
287 short int var8 /* : Bool */;
288 int cltype9;
289 int idtype10;
290 val* var11 /* : Array[Object] */;
291 val* var12 /* : AModule */;
292 val* var13 /* : null */;
293 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
294 long var14 /* : Int */;
295 long var15 /* : Int */;
296 var_p = p0;
297 var = NULL;
298 var_node_list = var;
299 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
300 var_nodearraylist2 = var1;
301 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
302 var_nodearraylist1 = var2;
303 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
304 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
305 var_listnode4 = var3;
306 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
307 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
308 var_listnode6 = var4;
309 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
310 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
311 var_listnode7 = var5;
312 var_listnode3 = var_nodearraylist1;
313 /* <var_listnode3:nullable Object> isa Array[Object] */
314 cltype = type_array__Arraykernel__Object.color;
315 idtype = type_array__Arraykernel__Object.id;
316 if(var_listnode3 == NULL) {
317 var6 = 0;
318 } else {
319 if(cltype >= var_listnode3->type->table_size) {
320 var6 = 0;
321 } else {
322 var6 = var_listnode3->type->type_table[cltype] == idtype;
323 }
324 }
325 if (!var6) {
326 fprintf(stderr, "Runtime error: %s", "Assert failed");
327 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1955);
328 show_backtrace(1);
329 }
330 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction6>*/;
331 var_listnode4 = var7;
332 var_listnode5 = var_nodearraylist2;
333 /* <var_listnode5:nullable Object> isa Array[Object] */
334 cltype9 = type_array__Arraykernel__Object.color;
335 idtype10 = type_array__Arraykernel__Object.id;
336 if(var_listnode5 == NULL) {
337 var8 = 0;
338 } else {
339 if(cltype9 >= var_listnode5->type->table_size) {
340 var8 = 0;
341 } else {
342 var8 = var_listnode5->type->type_table[cltype9] == idtype10;
343 }
344 }
345 if (!var8) {
346 fprintf(stderr, "Runtime error: %s", "Assert failed");
347 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1958);
348 show_backtrace(1);
349 }
350 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction6>*/;
351 var_listnode6 = var11;
352 var12 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
353 var13 = NULL;
354 ((void (*)(val*, val*, val*, val*, val*))(var12->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var12, var13, var_listnode4, var_listnode6, var_listnode7) /* init_amodule on <var12:AModule>*/;
355 var_pmodulenode1 = var12;
356 var_node_list = var_pmodulenode1;
357 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction6> */
358 var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
359 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
360 RET_LABEL:;
361 }
362 /* method parser#ReduceAction6#action for (self: Object, Parser) */
363 void VIRTUAL_parser__ReduceAction6__action(val* self, val* p0) {
364 parser__ReduceAction6__action(self, p0);
365 RET_LABEL:;
366 }
367 /* method parser#ReduceAction7#action for (self: ReduceAction7, Parser) */
368 void parser__ReduceAction7__action(val* self, val* p0) {
369 val* var_p /* var p: Parser */;
370 val* var /* : null */;
371 val* var_node_list /* var node_list: nullable Object */;
372 val* var1 /* : nullable Object */;
373 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
374 val* var2 /* : nullable Object */;
375 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
376 val* var3 /* : nullable Object */;
377 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
378 val* var4 /* : Array[Object] */;
379 val* var_listnode4 /* var listnode4: Array[Object] */;
380 val* var5 /* : Array[Object] */;
381 val* var_listnode6 /* var listnode6: Array[Object] */;
382 val* var6 /* : Array[Object] */;
383 val* var_listnode7 /* var listnode7: Array[Object] */;
384 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
385 short int var7 /* : Bool */;
386 int cltype;
387 int idtype;
388 val* var_listnode3 /* var listnode3: nullable Object */;
389 short int var8 /* : Bool */;
390 int cltype9;
391 int idtype10;
392 val* var11 /* : Array[Object] */;
393 val* var_listnode5 /* var listnode5: nullable Object */;
394 short int var12 /* : Bool */;
395 int cltype13;
396 int idtype14;
397 val* var15 /* : Array[Object] */;
398 val* var16 /* : AModule */;
399 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
400 long var17 /* : Int */;
401 long var18 /* : Int */;
402 var_p = p0;
403 var = NULL;
404 var_node_list = var;
405 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
406 var_nodearraylist3 = var1;
407 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
408 var_nodearraylist2 = var2;
409 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
410 var_nodearraylist1 = var3;
411 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
412 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
413 var_listnode4 = var4;
414 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
415 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
416 var_listnode6 = var5;
417 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
418 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
419 var_listnode7 = var6;
420 var_pmoduledeclnode2 = var_nodearraylist1;
421 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
422 cltype = type_nullable_parser_nodes__AModuledecl.color;
423 idtype = type_nullable_parser_nodes__AModuledecl.id;
424 if(var_pmoduledeclnode2 == NULL) {
425 var7 = 1;
426 } else {
427 if(cltype >= var_pmoduledeclnode2->type->table_size) {
428 var7 = 0;
429 } else {
430 var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
431 }
432 }
433 if (!var7) {
434 fprintf(stderr, "Runtime error: %s", "Assert failed");
435 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1982);
436 show_backtrace(1);
437 }
438 var_listnode3 = var_nodearraylist2;
439 /* <var_listnode3:nullable Object> isa Array[Object] */
440 cltype9 = type_array__Arraykernel__Object.color;
441 idtype10 = type_array__Arraykernel__Object.id;
442 if(var_listnode3 == NULL) {
443 var8 = 0;
444 } else {
445 if(cltype9 >= var_listnode3->type->table_size) {
446 var8 = 0;
447 } else {
448 var8 = var_listnode3->type->type_table[cltype9] == idtype10;
449 }
450 }
451 if (!var8) {
452 fprintf(stderr, "Runtime error: %s", "Assert failed");
453 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1984);
454 show_backtrace(1);
455 }
456 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction7>*/;
457 var_listnode4 = var11;
458 var_listnode5 = var_nodearraylist3;
459 /* <var_listnode5:nullable Object> isa Array[Object] */
460 cltype13 = type_array__Arraykernel__Object.color;
461 idtype14 = type_array__Arraykernel__Object.id;
462 if(var_listnode5 == NULL) {
463 var12 = 0;
464 } else {
465 if(cltype13 >= var_listnode5->type->table_size) {
466 var12 = 0;
467 } else {
468 var12 = var_listnode5->type->type_table[cltype13] == idtype14;
469 }
470 }
471 if (!var12) {
472 fprintf(stderr, "Runtime error: %s", "Assert failed");
473 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1987);
474 show_backtrace(1);
475 }
476 var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction7>*/;
477 var_listnode6 = var15;
478 var16 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
479 ((void (*)(val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var16, var_pmoduledeclnode2, var_listnode4, var_listnode6, var_listnode7) /* init_amodule on <var16:AModule>*/;
480 var_pmodulenode1 = var16;
481 var_node_list = var_pmodulenode1;
482 var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction7> */
483 var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
484 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
485 RET_LABEL:;
486 }
487 /* method parser#ReduceAction7#action for (self: Object, Parser) */
488 void VIRTUAL_parser__ReduceAction7__action(val* self, val* p0) {
489 parser__ReduceAction7__action(self, p0);
490 RET_LABEL:;
491 }
492 /* method parser#ReduceAction8#action for (self: ReduceAction8, Parser) */
493 void parser__ReduceAction8__action(val* self, val* p0) {
494 val* var_p /* var p: Parser */;
495 val* var /* : null */;
496 val* var_node_list /* var node_list: nullable Object */;
497 val* var1 /* : nullable Object */;
498 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
499 val* var2 /* : Array[Object] */;
500 val* var_listnode3 /* var listnode3: Array[Object] */;
501 val* var3 /* : Array[Object] */;
502 val* var_listnode4 /* var listnode4: Array[Object] */;
503 val* var4 /* : Array[Object] */;
504 val* var_listnode6 /* var listnode6: Array[Object] */;
505 val* var_listnode5 /* var listnode5: nullable Object */;
506 short int var5 /* : Bool */;
507 int cltype;
508 int idtype;
509 val* var6 /* : Array[Object] */;
510 val* var7 /* : AModule */;
511 val* var8 /* : null */;
512 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
513 long var9 /* : Int */;
514 long var10 /* : Int */;
515 var_p = p0;
516 var = NULL;
517 var_node_list = var;
518 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
519 var_nodearraylist1 = var1;
520 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
521 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
522 var_listnode3 = var2;
523 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
524 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
525 var_listnode4 = var3;
526 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
527 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
528 var_listnode6 = var4;
529 var_listnode5 = var_nodearraylist1;
530 /* <var_listnode5:nullable Object> isa Array[Object] */
531 cltype = type_array__Arraykernel__Object.color;
532 idtype = type_array__Arraykernel__Object.id;
533 if(var_listnode5 == NULL) {
534 var5 = 0;
535 } else {
536 if(cltype >= var_listnode5->type->table_size) {
537 var5 = 0;
538 } else {
539 var5 = var_listnode5->type->type_table[cltype] == idtype;
540 }
541 }
542 if (!var5) {
543 fprintf(stderr, "Runtime error: %s", "Assert failed");
544 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2009);
545 show_backtrace(1);
546 }
547 var6 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction8>*/;
548 var_listnode6 = var6;
549 var7 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
550 var8 = NULL;
551 ((void (*)(val*, val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var7, var8, var_listnode3, var_listnode4, var_listnode6) /* init_amodule on <var7:AModule>*/;
552 var_pmodulenode1 = var7;
553 var_node_list = var_pmodulenode1;
554 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction8> */
555 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
556 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
557 RET_LABEL:;
558 }
559 /* method parser#ReduceAction8#action for (self: Object, Parser) */
560 void VIRTUAL_parser__ReduceAction8__action(val* self, val* p0) {
561 parser__ReduceAction8__action(self, p0);
562 RET_LABEL:;
563 }
564 /* method parser#ReduceAction9#action for (self: ReduceAction9, Parser) */
565 void parser__ReduceAction9__action(val* self, val* p0) {
566 val* var_p /* var p: Parser */;
567 val* var /* : null */;
568 val* var_node_list /* var node_list: nullable Object */;
569 val* var1 /* : nullable Object */;
570 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
571 val* var2 /* : nullable Object */;
572 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
573 val* var3 /* : Array[Object] */;
574 val* var_listnode3 /* var listnode3: Array[Object] */;
575 val* var4 /* : Array[Object] */;
576 val* var_listnode4 /* var listnode4: Array[Object] */;
577 val* var5 /* : Array[Object] */;
578 val* var_listnode6 /* var listnode6: Array[Object] */;
579 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
580 short int var6 /* : Bool */;
581 int cltype;
582 int idtype;
583 val* var_listnode5 /* var listnode5: nullable Object */;
584 short int var7 /* : Bool */;
585 int cltype8;
586 int idtype9;
587 val* var10 /* : Array[Object] */;
588 val* var11 /* : AModule */;
589 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
590 long var12 /* : Int */;
591 long var13 /* : Int */;
592 var_p = p0;
593 var = NULL;
594 var_node_list = var;
595 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
596 var_nodearraylist2 = var1;
597 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
598 var_nodearraylist1 = var2;
599 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
600 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
601 var_listnode3 = var3;
602 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
603 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
604 var_listnode4 = var4;
605 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
606 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
607 var_listnode6 = var5;
608 var_pmoduledeclnode2 = var_nodearraylist1;
609 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
610 cltype = type_nullable_parser_nodes__AModuledecl.color;
611 idtype = type_nullable_parser_nodes__AModuledecl.id;
612 if(var_pmoduledeclnode2 == NULL) {
613 var6 = 1;
614 } else {
615 if(cltype >= var_pmoduledeclnode2->type->table_size) {
616 var6 = 0;
617 } else {
618 var6 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
619 }
620 }
621 if (!var6) {
622 fprintf(stderr, "Runtime error: %s", "Assert failed");
623 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2032);
624 show_backtrace(1);
625 }
626 var_listnode5 = var_nodearraylist2;
627 /* <var_listnode5:nullable Object> isa Array[Object] */
628 cltype8 = type_array__Arraykernel__Object.color;
629 idtype9 = type_array__Arraykernel__Object.id;
630 if(var_listnode5 == NULL) {
631 var7 = 0;
632 } else {
633 if(cltype8 >= var_listnode5->type->table_size) {
634 var7 = 0;
635 } else {
636 var7 = var_listnode5->type->type_table[cltype8] == idtype9;
637 }
638 }
639 if (!var7) {
640 fprintf(stderr, "Runtime error: %s", "Assert failed");
641 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2034);
642 show_backtrace(1);
643 }
644 var10 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction9>*/;
645 var_listnode6 = var10;
646 var11 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
647 ((void (*)(val*, val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var11, var_pmoduledeclnode2, var_listnode3, var_listnode4, var_listnode6) /* init_amodule on <var11:AModule>*/;
648 var_pmodulenode1 = var11;
649 var_node_list = var_pmodulenode1;
650 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction9> */
651 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
652 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
653 RET_LABEL:;
654 }
655 /* method parser#ReduceAction9#action for (self: Object, Parser) */
656 void VIRTUAL_parser__ReduceAction9__action(val* self, val* p0) {
657 parser__ReduceAction9__action(self, p0);
658 RET_LABEL:;
659 }
660 /* method parser#ReduceAction10#action for (self: ReduceAction10, Parser) */
661 void parser__ReduceAction10__action(val* self, val* p0) {
662 val* var_p /* var p: Parser */;
663 val* var /* : null */;
664 val* var_node_list /* var node_list: nullable Object */;
665 val* var1 /* : nullable Object */;
666 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
667 val* var2 /* : nullable Object */;
668 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
669 val* var3 /* : Array[Object] */;
670 val* var_listnode4 /* var listnode4: Array[Object] */;
671 val* var4 /* : Array[Object] */;
672 val* var_listnode5 /* var listnode5: Array[Object] */;
673 val* var5 /* : Array[Object] */;
674 val* var_listnode7 /* var listnode7: Array[Object] */;
675 val* var_listnode3 /* var listnode3: nullable Object */;
676 short int var6 /* : Bool */;
677 int cltype;
678 int idtype;
679 val* var7 /* : Array[Object] */;
680 val* var_listnode6 /* var listnode6: nullable Object */;
681 short int var8 /* : Bool */;
682 int cltype9;
683 int idtype10;
684 val* var11 /* : Array[Object] */;
685 val* var12 /* : AModule */;
686 val* var13 /* : null */;
687 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
688 long var14 /* : Int */;
689 long var15 /* : Int */;
690 var_p = p0;
691 var = NULL;
692 var_node_list = var;
693 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
694 var_nodearraylist2 = var1;
695 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
696 var_nodearraylist1 = var2;
697 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
698 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
699 var_listnode4 = var3;
700 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
701 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
702 var_listnode5 = var4;
703 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
704 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
705 var_listnode7 = var5;
706 var_listnode3 = var_nodearraylist1;
707 /* <var_listnode3:nullable Object> isa Array[Object] */
708 cltype = type_array__Arraykernel__Object.color;
709 idtype = type_array__Arraykernel__Object.id;
710 if(var_listnode3 == NULL) {
711 var6 = 0;
712 } else {
713 if(cltype >= var_listnode3->type->table_size) {
714 var6 = 0;
715 } else {
716 var6 = var_listnode3->type->type_table[cltype] == idtype;
717 }
718 }
719 if (!var6) {
720 fprintf(stderr, "Runtime error: %s", "Assert failed");
721 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2057);
722 show_backtrace(1);
723 }
724 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction10>*/;
725 var_listnode4 = var7;
726 var_listnode6 = var_nodearraylist2;
727 /* <var_listnode6:nullable Object> isa Array[Object] */
728 cltype9 = type_array__Arraykernel__Object.color;
729 idtype10 = type_array__Arraykernel__Object.id;
730 if(var_listnode6 == NULL) {
731 var8 = 0;
732 } else {
733 if(cltype9 >= var_listnode6->type->table_size) {
734 var8 = 0;
735 } else {
736 var8 = var_listnode6->type->type_table[cltype9] == idtype10;
737 }
738 }
739 if (!var8) {
740 fprintf(stderr, "Runtime error: %s", "Assert failed");
741 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2060);
742 show_backtrace(1);
743 }
744 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on <self:ReduceAction10>*/;
745 var_listnode7 = var11;
746 var12 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
747 var13 = NULL;
748 ((void (*)(val*, val*, val*, val*, val*))(var12->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var12, var13, var_listnode4, var_listnode5, var_listnode7) /* init_amodule on <var12:AModule>*/;
749 var_pmodulenode1 = var12;
750 var_node_list = var_pmodulenode1;
751 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction10> */
752 var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
753 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
754 RET_LABEL:;
755 }
756 /* method parser#ReduceAction10#action for (self: Object, Parser) */
757 void VIRTUAL_parser__ReduceAction10__action(val* self, val* p0) {
758 parser__ReduceAction10__action(self, p0);
759 RET_LABEL:;
760 }
761 /* method parser#ReduceAction11#action for (self: ReduceAction11, Parser) */
762 void parser__ReduceAction11__action(val* self, val* p0) {
763 val* var_p /* var p: Parser */;
764 val* var /* : null */;
765 val* var_node_list /* var node_list: nullable Object */;
766 val* var1 /* : nullable Object */;
767 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
768 val* var2 /* : nullable Object */;
769 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
770 val* var3 /* : nullable Object */;
771 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
772 val* var4 /* : Array[Object] */;
773 val* var_listnode4 /* var listnode4: Array[Object] */;
774 val* var5 /* : Array[Object] */;
775 val* var_listnode5 /* var listnode5: Array[Object] */;
776 val* var6 /* : Array[Object] */;
777 val* var_listnode7 /* var listnode7: Array[Object] */;
778 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
779 short int var7 /* : Bool */;
780 int cltype;
781 int idtype;
782 val* var_listnode3 /* var listnode3: nullable Object */;
783 short int var8 /* : Bool */;
784 int cltype9;
785 int idtype10;
786 val* var11 /* : Array[Object] */;
787 val* var_listnode6 /* var listnode6: nullable Object */;
788 short int var12 /* : Bool */;
789 int cltype13;
790 int idtype14;
791 val* var15 /* : Array[Object] */;
792 val* var16 /* : AModule */;
793 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
794 long var17 /* : Int */;
795 long var18 /* : Int */;
796 var_p = p0;
797 var = NULL;
798 var_node_list = var;
799 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
800 var_nodearraylist3 = var1;
801 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
802 var_nodearraylist2 = var2;
803 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
804 var_nodearraylist1 = var3;
805 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
806 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
807 var_listnode4 = var4;
808 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
809 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
810 var_listnode5 = var5;
811 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
812 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
813 var_listnode7 = var6;
814 var_pmoduledeclnode2 = var_nodearraylist1;
815 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
816 cltype = type_nullable_parser_nodes__AModuledecl.color;
817 idtype = type_nullable_parser_nodes__AModuledecl.id;
818 if(var_pmoduledeclnode2 == NULL) {
819 var7 = 1;
820 } else {
821 if(cltype >= var_pmoduledeclnode2->type->table_size) {
822 var7 = 0;
823 } else {
824 var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
825 }
826 }
827 if (!var7) {
828 fprintf(stderr, "Runtime error: %s", "Assert failed");
829 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2084);
830 show_backtrace(1);
831 }
832 var_listnode3 = var_nodearraylist2;
833 /* <var_listnode3:nullable Object> isa Array[Object] */
834 cltype9 = type_array__Arraykernel__Object.color;
835 idtype10 = type_array__Arraykernel__Object.id;
836 if(var_listnode3 == NULL) {
837 var8 = 0;
838 } else {
839 if(cltype9 >= var_listnode3->type->table_size) {
840 var8 = 0;
841 } else {
842 var8 = var_listnode3->type->type_table[cltype9] == idtype10;
843 }
844 }
845 if (!var8) {
846 fprintf(stderr, "Runtime error: %s", "Assert failed");
847 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2086);
848 show_backtrace(1);
849 }
850 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction11>*/;
851 var_listnode4 = var11;
852 var_listnode6 = var_nodearraylist3;
853 /* <var_listnode6:nullable Object> isa Array[Object] */
854 cltype13 = type_array__Arraykernel__Object.color;
855 idtype14 = type_array__Arraykernel__Object.id;
856 if(var_listnode6 == NULL) {
857 var12 = 0;
858 } else {
859 if(cltype13 >= var_listnode6->type->table_size) {
860 var12 = 0;
861 } else {
862 var12 = var_listnode6->type->type_table[cltype13] == idtype14;
863 }
864 }
865 if (!var12) {
866 fprintf(stderr, "Runtime error: %s", "Assert failed");
867 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2089);
868 show_backtrace(1);
869 }
870 var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on <self:ReduceAction11>*/;
871 var_listnode7 = var15;
872 var16 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
873 ((void (*)(val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var16, var_pmoduledeclnode2, var_listnode4, var_listnode5, var_listnode7) /* init_amodule on <var16:AModule>*/;
874 var_pmodulenode1 = var16;
875 var_node_list = var_pmodulenode1;
876 var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction11> */
877 var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
878 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
879 RET_LABEL:;
880 }
881 /* method parser#ReduceAction11#action for (self: Object, Parser) */
882 void VIRTUAL_parser__ReduceAction11__action(val* self, val* p0) {
883 parser__ReduceAction11__action(self, p0);
884 RET_LABEL:;
885 }
886 /* method parser#ReduceAction12#action for (self: ReduceAction12, Parser) */
887 void parser__ReduceAction12__action(val* self, val* p0) {
888 val* var_p /* var p: Parser */;
889 val* var /* : null */;
890 val* var_node_list /* var node_list: nullable Object */;
891 val* var1 /* : nullable Object */;
892 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
893 val* var2 /* : nullable Object */;
894 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
895 val* var3 /* : Array[Object] */;
896 val* var_listnode3 /* var listnode3: Array[Object] */;
897 val* var4 /* : Array[Object] */;
898 val* var_listnode5 /* var listnode5: Array[Object] */;
899 val* var5 /* : Array[Object] */;
900 val* var_listnode7 /* var listnode7: Array[Object] */;
901 val* var_listnode4 /* var listnode4: nullable Object */;
902 short int var6 /* : Bool */;
903 int cltype;
904 int idtype;
905 val* var7 /* : Array[Object] */;
906 val* var_listnode6 /* var listnode6: nullable Object */;
907 short int var8 /* : Bool */;
908 int cltype9;
909 int idtype10;
910 val* var11 /* : Array[Object] */;
911 val* var12 /* : AModule */;
912 val* var13 /* : null */;
913 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
914 long var14 /* : Int */;
915 long var15 /* : Int */;
916 var_p = p0;
917 var = NULL;
918 var_node_list = var;
919 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
920 var_nodearraylist2 = var1;
921 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
922 var_nodearraylist1 = var2;
923 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
924 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
925 var_listnode3 = var3;
926 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
927 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
928 var_listnode5 = var4;
929 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
930 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
931 var_listnode7 = var5;
932 var_listnode4 = var_nodearraylist1;
933 /* <var_listnode4:nullable Object> isa Array[Object] */
934 cltype = type_array__Arraykernel__Object.color;
935 idtype = type_array__Arraykernel__Object.id;
936 if(var_listnode4 == NULL) {
937 var6 = 0;
938 } else {
939 if(cltype >= var_listnode4->type->table_size) {
940 var6 = 0;
941 } else {
942 var6 = var_listnode4->type->type_table[cltype] == idtype;
943 }
944 }
945 if (!var6) {
946 fprintf(stderr, "Runtime error: %s", "Assert failed");
947 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2112);
948 show_backtrace(1);
949 }
950 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction12>*/;
951 var_listnode5 = var7;
952 var_listnode6 = var_nodearraylist2;
953 /* <var_listnode6:nullable Object> isa Array[Object] */
954 cltype9 = type_array__Arraykernel__Object.color;
955 idtype10 = type_array__Arraykernel__Object.id;
956 if(var_listnode6 == NULL) {
957 var8 = 0;
958 } else {
959 if(cltype9 >= var_listnode6->type->table_size) {
960 var8 = 0;
961 } else {
962 var8 = var_listnode6->type->type_table[cltype9] == idtype10;
963 }
964 }
965 if (!var8) {
966 fprintf(stderr, "Runtime error: %s", "Assert failed");
967 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2115);
968 show_backtrace(1);
969 }
970 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on <self:ReduceAction12>*/;
971 var_listnode7 = var11;
972 var12 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
973 var13 = NULL;
974 ((void (*)(val*, val*, val*, val*, val*))(var12->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var12, var13, var_listnode3, var_listnode5, var_listnode7) /* init_amodule on <var12:AModule>*/;
975 var_pmodulenode1 = var12;
976 var_node_list = var_pmodulenode1;
977 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction12> */
978 var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
979 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
980 RET_LABEL:;
981 }
982 /* method parser#ReduceAction12#action for (self: Object, Parser) */
983 void VIRTUAL_parser__ReduceAction12__action(val* self, val* p0) {
984 parser__ReduceAction12__action(self, p0);
985 RET_LABEL:;
986 }
987 /* method parser#ReduceAction13#action for (self: ReduceAction13, Parser) */
988 void parser__ReduceAction13__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_nodearraylist3 /* var nodearraylist3: nullable Object */;
994 val* var2 /* : nullable Object */;
995 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
996 val* var3 /* : nullable Object */;
997 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
998 val* var4 /* : Array[Object] */;
999 val* var_listnode3 /* var listnode3: Array[Object] */;
1000 val* var5 /* : Array[Object] */;
1001 val* var_listnode5 /* var listnode5: Array[Object] */;
1002 val* var6 /* : Array[Object] */;
1003 val* var_listnode7 /* var listnode7: Array[Object] */;
1004 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
1005 short int var7 /* : Bool */;
1006 int cltype;
1007 int idtype;
1008 val* var_listnode4 /* var listnode4: nullable Object */;
1009 short int var8 /* : Bool */;
1010 int cltype9;
1011 int idtype10;
1012 val* var11 /* : Array[Object] */;
1013 val* var_listnode6 /* var listnode6: nullable Object */;
1014 short int var12 /* : Bool */;
1015 int cltype13;
1016 int idtype14;
1017 val* var15 /* : Array[Object] */;
1018 val* var16 /* : AModule */;
1019 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
1020 long var17 /* : Int */;
1021 long var18 /* : Int */;
1022 var_p = p0;
1023 var = NULL;
1024 var_node_list = var;
1025 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1026 var_nodearraylist3 = var1;
1027 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1028 var_nodearraylist2 = var2;
1029 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1030 var_nodearraylist1 = var3;
1031 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
1032 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
1033 var_listnode3 = var4;
1034 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
1035 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
1036 var_listnode5 = var5;
1037 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
1038 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
1039 var_listnode7 = var6;
1040 var_pmoduledeclnode2 = var_nodearraylist1;
1041 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
1042 cltype = type_nullable_parser_nodes__AModuledecl.color;
1043 idtype = type_nullable_parser_nodes__AModuledecl.id;
1044 if(var_pmoduledeclnode2 == NULL) {
1045 var7 = 1;
1046 } else {
1047 if(cltype >= var_pmoduledeclnode2->type->table_size) {
1048 var7 = 0;
1049 } else {
1050 var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
1051 }
1052 }
1053 if (!var7) {
1054 fprintf(stderr, "Runtime error: %s", "Assert failed");
1055 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2139);
1056 show_backtrace(1);
1057 }
1058 var_listnode4 = var_nodearraylist2;
1059 /* <var_listnode4:nullable Object> isa Array[Object] */
1060 cltype9 = type_array__Arraykernel__Object.color;
1061 idtype10 = type_array__Arraykernel__Object.id;
1062 if(var_listnode4 == NULL) {
1063 var8 = 0;
1064 } else {
1065 if(cltype9 >= var_listnode4->type->table_size) {
1066 var8 = 0;
1067 } else {
1068 var8 = var_listnode4->type->type_table[cltype9] == idtype10;
1069 }
1070 }
1071 if (!var8) {
1072 fprintf(stderr, "Runtime error: %s", "Assert failed");
1073 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2141);
1074 show_backtrace(1);
1075 }
1076 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction13>*/;
1077 var_listnode5 = var11;
1078 var_listnode6 = var_nodearraylist3;
1079 /* <var_listnode6:nullable Object> isa Array[Object] */
1080 cltype13 = type_array__Arraykernel__Object.color;
1081 idtype14 = type_array__Arraykernel__Object.id;
1082 if(var_listnode6 == NULL) {
1083 var12 = 0;
1084 } else {
1085 if(cltype13 >= var_listnode6->type->table_size) {
1086 var12 = 0;
1087 } else {
1088 var12 = var_listnode6->type->type_table[cltype13] == idtype14;
1089 }
1090 }
1091 if (!var12) {
1092 fprintf(stderr, "Runtime error: %s", "Assert failed");
1093 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2144);
1094 show_backtrace(1);
1095 }
1096 var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on <self:ReduceAction13>*/;
1097 var_listnode7 = var15;
1098 var16 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
1099 ((void (*)(val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var16, var_pmoduledeclnode2, var_listnode3, var_listnode5, var_listnode7) /* init_amodule on <var16:AModule>*/;
1100 var_pmodulenode1 = var16;
1101 var_node_list = var_pmodulenode1;
1102 var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction13> */
1103 var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
1104 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
1105 RET_LABEL:;
1106 }
1107 /* method parser#ReduceAction13#action for (self: Object, Parser) */
1108 void VIRTUAL_parser__ReduceAction13__action(val* self, val* p0) {
1109 parser__ReduceAction13__action(self, p0);
1110 RET_LABEL:;
1111 }
1112 /* method parser#ReduceAction14#action for (self: ReduceAction14, Parser) */
1113 void parser__ReduceAction14__action(val* self, val* p0) {
1114 val* var_p /* var p: Parser */;
1115 val* var /* : null */;
1116 val* var_node_list /* var node_list: nullable Object */;
1117 val* var1 /* : nullable Object */;
1118 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1119 val* var2 /* : nullable Object */;
1120 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1121 val* var3 /* : nullable Object */;
1122 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1123 val* var4 /* : Array[Object] */;
1124 val* var_listnode4 /* var listnode4: Array[Object] */;
1125 val* var5 /* : Array[Object] */;
1126 val* var_listnode6 /* var listnode6: Array[Object] */;
1127 val* var6 /* : Array[Object] */;
1128 val* var_listnode8 /* var listnode8: Array[Object] */;
1129 val* var_listnode3 /* var listnode3: nullable Object */;
1130 short int var7 /* : Bool */;
1131 int cltype;
1132 int idtype;
1133 val* var8 /* : Array[Object] */;
1134 val* var_listnode5 /* var listnode5: nullable Object */;
1135 short int var9 /* : Bool */;
1136 int cltype10;
1137 int idtype11;
1138 val* var12 /* : Array[Object] */;
1139 val* var_listnode7 /* var listnode7: nullable Object */;
1140 short int var13 /* : Bool */;
1141 int cltype14;
1142 int idtype15;
1143 val* var16 /* : Array[Object] */;
1144 val* var17 /* : AModule */;
1145 val* var18 /* : null */;
1146 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
1147 long var19 /* : Int */;
1148 long var20 /* : Int */;
1149 var_p = p0;
1150 var = NULL;
1151 var_node_list = var;
1152 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1153 var_nodearraylist3 = var1;
1154 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1155 var_nodearraylist2 = var2;
1156 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1157 var_nodearraylist1 = var3;
1158 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
1159 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
1160 var_listnode4 = var4;
1161 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
1162 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
1163 var_listnode6 = var5;
1164 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
1165 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
1166 var_listnode8 = var6;
1167 var_listnode3 = var_nodearraylist1;
1168 /* <var_listnode3:nullable Object> isa Array[Object] */
1169 cltype = type_array__Arraykernel__Object.color;
1170 idtype = type_array__Arraykernel__Object.id;
1171 if(var_listnode3 == NULL) {
1172 var7 = 0;
1173 } else {
1174 if(cltype >= var_listnode3->type->table_size) {
1175 var7 = 0;
1176 } else {
1177 var7 = var_listnode3->type->type_table[cltype] == idtype;
1178 }
1179 }
1180 if (!var7) {
1181 fprintf(stderr, "Runtime error: %s", "Assert failed");
1182 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2168);
1183 show_backtrace(1);
1184 }
1185 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction14>*/;
1186 var_listnode4 = var8;
1187 var_listnode5 = var_nodearraylist2;
1188 /* <var_listnode5:nullable Object> isa Array[Object] */
1189 cltype10 = type_array__Arraykernel__Object.color;
1190 idtype11 = type_array__Arraykernel__Object.id;
1191 if(var_listnode5 == NULL) {
1192 var9 = 0;
1193 } else {
1194 if(cltype10 >= var_listnode5->type->table_size) {
1195 var9 = 0;
1196 } else {
1197 var9 = var_listnode5->type->type_table[cltype10] == idtype11;
1198 }
1199 }
1200 if (!var9) {
1201 fprintf(stderr, "Runtime error: %s", "Assert failed");
1202 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2171);
1203 show_backtrace(1);
1204 }
1205 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction14>*/;
1206 var_listnode6 = var12;
1207 var_listnode7 = var_nodearraylist3;
1208 /* <var_listnode7:nullable Object> isa Array[Object] */
1209 cltype14 = type_array__Arraykernel__Object.color;
1210 idtype15 = type_array__Arraykernel__Object.id;
1211 if(var_listnode7 == NULL) {
1212 var13 = 0;
1213 } else {
1214 if(cltype14 >= var_listnode7->type->table_size) {
1215 var13 = 0;
1216 } else {
1217 var13 = var_listnode7->type->type_table[cltype14] == idtype15;
1218 }
1219 }
1220 if (!var13) {
1221 fprintf(stderr, "Runtime error: %s", "Assert failed");
1222 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2174);
1223 show_backtrace(1);
1224 }
1225 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction14>*/;
1226 var_listnode8 = var16;
1227 var17 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
1228 var18 = NULL;
1229 ((void (*)(val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var17, var18, var_listnode4, var_listnode6, var_listnode8) /* init_amodule on <var17:AModule>*/;
1230 var_pmodulenode1 = var17;
1231 var_node_list = var_pmodulenode1;
1232 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction14> */
1233 var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
1234 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
1235 RET_LABEL:;
1236 }
1237 /* method parser#ReduceAction14#action for (self: Object, Parser) */
1238 void VIRTUAL_parser__ReduceAction14__action(val* self, val* p0) {
1239 parser__ReduceAction14__action(self, p0);
1240 RET_LABEL:;
1241 }
1242 /* method parser#ReduceAction15#action for (self: ReduceAction15, Parser) */
1243 void parser__ReduceAction15__action(val* self, val* p0) {
1244 val* var_p /* var p: Parser */;
1245 val* var /* : null */;
1246 val* var_node_list /* var node_list: nullable Object */;
1247 val* var1 /* : nullable Object */;
1248 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1249 val* var2 /* : nullable Object */;
1250 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1251 val* var3 /* : nullable Object */;
1252 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1253 val* var4 /* : nullable Object */;
1254 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1255 val* var5 /* : Array[Object] */;
1256 val* var_listnode4 /* var listnode4: Array[Object] */;
1257 val* var6 /* : Array[Object] */;
1258 val* var_listnode6 /* var listnode6: Array[Object] */;
1259 val* var7 /* : Array[Object] */;
1260 val* var_listnode8 /* var listnode8: Array[Object] */;
1261 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
1262 short int var8 /* : Bool */;
1263 int cltype;
1264 int idtype;
1265 val* var_listnode3 /* var listnode3: nullable Object */;
1266 short int var9 /* : Bool */;
1267 int cltype10;
1268 int idtype11;
1269 val* var12 /* : Array[Object] */;
1270 val* var_listnode5 /* var listnode5: nullable Object */;
1271 short int var13 /* : Bool */;
1272 int cltype14;
1273 int idtype15;
1274 val* var16 /* : Array[Object] */;
1275 val* var_listnode7 /* var listnode7: nullable Object */;
1276 short int var17 /* : Bool */;
1277 int cltype18;
1278 int idtype19;
1279 val* var20 /* : Array[Object] */;
1280 val* var21 /* : AModule */;
1281 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
1282 long var22 /* : Int */;
1283 long var23 /* : Int */;
1284 var_p = p0;
1285 var = NULL;
1286 var_node_list = var;
1287 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1288 var_nodearraylist4 = var1;
1289 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1290 var_nodearraylist3 = var2;
1291 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1292 var_nodearraylist2 = var3;
1293 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1294 var_nodearraylist1 = var4;
1295 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
1296 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
1297 var_listnode4 = var5;
1298 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
1299 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
1300 var_listnode6 = var6;
1301 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
1302 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
1303 var_listnode8 = var7;
1304 var_pmoduledeclnode2 = var_nodearraylist1;
1305 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
1306 cltype = type_nullable_parser_nodes__AModuledecl.color;
1307 idtype = type_nullable_parser_nodes__AModuledecl.id;
1308 if(var_pmoduledeclnode2 == NULL) {
1309 var8 = 1;
1310 } else {
1311 if(cltype >= var_pmoduledeclnode2->type->table_size) {
1312 var8 = 0;
1313 } else {
1314 var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
1315 }
1316 }
1317 if (!var8) {
1318 fprintf(stderr, "Runtime error: %s", "Assert failed");
1319 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2199);
1320 show_backtrace(1);
1321 }
1322 var_listnode3 = var_nodearraylist2;
1323 /* <var_listnode3:nullable Object> isa Array[Object] */
1324 cltype10 = type_array__Arraykernel__Object.color;
1325 idtype11 = type_array__Arraykernel__Object.id;
1326 if(var_listnode3 == NULL) {
1327 var9 = 0;
1328 } else {
1329 if(cltype10 >= var_listnode3->type->table_size) {
1330 var9 = 0;
1331 } else {
1332 var9 = var_listnode3->type->type_table[cltype10] == idtype11;
1333 }
1334 }
1335 if (!var9) {
1336 fprintf(stderr, "Runtime error: %s", "Assert failed");
1337 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2201);
1338 show_backtrace(1);
1339 }
1340 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction15>*/;
1341 var_listnode4 = var12;
1342 var_listnode5 = var_nodearraylist3;
1343 /* <var_listnode5:nullable Object> isa Array[Object] */
1344 cltype14 = type_array__Arraykernel__Object.color;
1345 idtype15 = type_array__Arraykernel__Object.id;
1346 if(var_listnode5 == NULL) {
1347 var13 = 0;
1348 } else {
1349 if(cltype14 >= var_listnode5->type->table_size) {
1350 var13 = 0;
1351 } else {
1352 var13 = var_listnode5->type->type_table[cltype14] == idtype15;
1353 }
1354 }
1355 if (!var13) {
1356 fprintf(stderr, "Runtime error: %s", "Assert failed");
1357 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2204);
1358 show_backtrace(1);
1359 }
1360 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction15>*/;
1361 var_listnode6 = var16;
1362 var_listnode7 = var_nodearraylist4;
1363 /* <var_listnode7:nullable Object> isa Array[Object] */
1364 cltype18 = type_array__Arraykernel__Object.color;
1365 idtype19 = type_array__Arraykernel__Object.id;
1366 if(var_listnode7 == NULL) {
1367 var17 = 0;
1368 } else {
1369 if(cltype18 >= var_listnode7->type->table_size) {
1370 var17 = 0;
1371 } else {
1372 var17 = var_listnode7->type->type_table[cltype18] == idtype19;
1373 }
1374 }
1375 if (!var17) {
1376 fprintf(stderr, "Runtime error: %s", "Assert failed");
1377 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2207);
1378 show_backtrace(1);
1379 }
1380 var20 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction15>*/;
1381 var_listnode8 = var20;
1382 var21 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
1383 ((void (*)(val*, val*, val*, val*, val*))(var21->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var21, var_pmoduledeclnode2, var_listnode4, var_listnode6, var_listnode8) /* init_amodule on <var21:AModule>*/;
1384 var_pmodulenode1 = var21;
1385 var_node_list = var_pmodulenode1;
1386 var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction15> */
1387 var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
1388 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
1389 RET_LABEL:;
1390 }
1391 /* method parser#ReduceAction15#action for (self: Object, Parser) */
1392 void VIRTUAL_parser__ReduceAction15__action(val* self, val* p0) {
1393 parser__ReduceAction15__action(self, p0);
1394 RET_LABEL:;
1395 }
1396 /* method parser#ReduceAction16#action for (self: ReduceAction16, Parser) */
1397 void parser__ReduceAction16__action(val* self, val* p0) {
1398 val* var_p /* var p: Parser */;
1399 val* var /* : null */;
1400 val* var_node_list /* var node_list: nullable Object */;
1401 val* var1 /* : nullable Object */;
1402 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1403 val* var2 /* : Array[Object] */;
1404 val* var_listnode3 /* var listnode3: Array[Object] */;
1405 val* var3 /* : Array[Object] */;
1406 val* var_listnode4 /* var listnode4: Array[Object] */;
1407 val* var4 /* : Array[Object] */;
1408 val* var_listnode8 /* var listnode8: Array[Object] */;
1409 val* var5 /* : Array[Object] */;
1410 val* var_listnode7 /* var listnode7: Array[Object] */;
1411 val* var_listnode6 /* var listnode6: nullable Object */;
1412 short int var6 /* : Bool */;
1413 int cltype;
1414 int idtype;
1415 val* var7 /* : Array[Object] */;
1416 val* var8 /* : ATopClassdef */;
1417 val* var_pclassdefnode5 /* var pclassdefnode5: nullable ATopClassdef */;
1418 val* var9 /* : null */;
1419 short int var10 /* : Bool */;
1420 val* var11 /* : AModule */;
1421 val* var12 /* : null */;
1422 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
1423 long var13 /* : Int */;
1424 long var14 /* : Int */;
1425 var_p = p0;
1426 var = NULL;
1427 var_node_list = var;
1428 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1429 var_nodearraylist1 = var1;
1430 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
1431 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
1432 var_listnode3 = var2;
1433 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
1434 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
1435 var_listnode4 = var3;
1436 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
1437 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
1438 var_listnode8 = var4;
1439 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
1440 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
1441 var_listnode7 = var5;
1442 var_listnode6 = var_nodearraylist1;
1443 /* <var_listnode6:nullable Object> isa Array[Object] */
1444 cltype = type_array__Arraykernel__Object.color;
1445 idtype = type_array__Arraykernel__Object.id;
1446 if(var_listnode6 == NULL) {
1447 var6 = 0;
1448 } else {
1449 if(cltype >= var_listnode6->type->table_size) {
1450 var6 = 0;
1451 } else {
1452 var6 = var_listnode6->type->type_table[cltype] == idtype;
1453 }
1454 }
1455 if (!var6) {
1456 fprintf(stderr, "Runtime error: %s", "Assert failed");
1457 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2230);
1458 show_backtrace(1);
1459 }
1460 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on <self:ReduceAction16>*/;
1461 var_listnode7 = var7;
1462 var8 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
1463 ((void (*)(val*, val*))(var8->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var8, var_listnode7) /* init_atopclassdef on <var8:ATopClassdef>*/;
1464 var_pclassdefnode5 = var8;
1465 var9 = NULL;
1466 if (var_pclassdefnode5 == NULL) {
1467 var10 = 0; /* is null */
1468 } else {
1469 var10 = 1; /* arg is null and recv is not */
1470 }
1471 if (var10){
1472 ((void (*)(val*, val*))(var_listnode8->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode8, var_pclassdefnode5) /* add on <var_listnode8:Array[Object]>*/;
1473 } else {
1474 }
1475 var11 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
1476 var12 = NULL;
1477 ((void (*)(val*, val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var11, var12, var_listnode3, var_listnode4, var_listnode8) /* init_amodule on <var11:AModule>*/;
1478 var_pmodulenode1 = var11;
1479 var_node_list = var_pmodulenode1;
1480 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction16> */
1481 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
1482 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
1483 RET_LABEL:;
1484 }
1485 /* method parser#ReduceAction16#action for (self: Object, Parser) */
1486 void VIRTUAL_parser__ReduceAction16__action(val* self, val* p0) {
1487 parser__ReduceAction16__action(self, p0);
1488 RET_LABEL:;
1489 }
1490 /* method parser#ReduceAction17#action for (self: ReduceAction17, Parser) */
1491 void parser__ReduceAction17__action(val* self, val* p0) {
1492 val* var_p /* var p: Parser */;
1493 val* var /* : null */;
1494 val* var_node_list /* var node_list: nullable Object */;
1495 val* var1 /* : nullable Object */;
1496 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1497 val* var2 /* : nullable Object */;
1498 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1499 val* var3 /* : Array[Object] */;
1500 val* var_listnode3 /* var listnode3: Array[Object] */;
1501 val* var4 /* : Array[Object] */;
1502 val* var_listnode4 /* var listnode4: Array[Object] */;
1503 val* var5 /* : Array[Object] */;
1504 val* var_listnode8 /* var listnode8: Array[Object] */;
1505 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
1506 short int var6 /* : Bool */;
1507 int cltype;
1508 int idtype;
1509 val* var7 /* : Array[Object] */;
1510 val* var_listnode7 /* var listnode7: Array[Object] */;
1511 val* var_listnode6 /* var listnode6: nullable Object */;
1512 short int var8 /* : Bool */;
1513 int cltype9;
1514 int idtype10;
1515 val* var11 /* : Array[Object] */;
1516 val* var12 /* : ATopClassdef */;
1517 val* var_pclassdefnode5 /* var pclassdefnode5: nullable ATopClassdef */;
1518 val* var13 /* : null */;
1519 short int var14 /* : Bool */;
1520 val* var15 /* : AModule */;
1521 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
1522 long var16 /* : Int */;
1523 long var17 /* : Int */;
1524 var_p = p0;
1525 var = NULL;
1526 var_node_list = var;
1527 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1528 var_nodearraylist2 = var1;
1529 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1530 var_nodearraylist1 = var2;
1531 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
1532 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
1533 var_listnode3 = var3;
1534 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
1535 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
1536 var_listnode4 = var4;
1537 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
1538 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
1539 var_listnode8 = var5;
1540 var_pmoduledeclnode2 = var_nodearraylist1;
1541 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
1542 cltype = type_nullable_parser_nodes__AModuledecl.color;
1543 idtype = type_nullable_parser_nodes__AModuledecl.id;
1544 if(var_pmoduledeclnode2 == NULL) {
1545 var6 = 1;
1546 } else {
1547 if(cltype >= var_pmoduledeclnode2->type->table_size) {
1548 var6 = 0;
1549 } else {
1550 var6 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
1551 }
1552 }
1553 if (!var6) {
1554 fprintf(stderr, "Runtime error: %s", "Assert failed");
1555 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2259);
1556 show_backtrace(1);
1557 }
1558 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
1559 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
1560 var_listnode7 = var7;
1561 var_listnode6 = var_nodearraylist2;
1562 /* <var_listnode6:nullable Object> isa Array[Object] */
1563 cltype9 = type_array__Arraykernel__Object.color;
1564 idtype10 = type_array__Arraykernel__Object.id;
1565 if(var_listnode6 == NULL) {
1566 var8 = 0;
1567 } else {
1568 if(cltype9 >= var_listnode6->type->table_size) {
1569 var8 = 0;
1570 } else {
1571 var8 = var_listnode6->type->type_table[cltype9] == idtype10;
1572 }
1573 }
1574 if (!var8) {
1575 fprintf(stderr, "Runtime error: %s", "Assert failed");
1576 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2262);
1577 show_backtrace(1);
1578 }
1579 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on <self:ReduceAction17>*/;
1580 var_listnode7 = var11;
1581 var12 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
1582 ((void (*)(val*, val*))(var12->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var12, var_listnode7) /* init_atopclassdef on <var12:ATopClassdef>*/;
1583 var_pclassdefnode5 = var12;
1584 var13 = NULL;
1585 if (var_pclassdefnode5 == NULL) {
1586 var14 = 0; /* is null */
1587 } else {
1588 var14 = 1; /* arg is null and recv is not */
1589 }
1590 if (var14){
1591 ((void (*)(val*, val*))(var_listnode8->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode8, var_pclassdefnode5) /* add on <var_listnode8:Array[Object]>*/;
1592 } else {
1593 }
1594 var15 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
1595 ((void (*)(val*, val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var15, var_pmoduledeclnode2, var_listnode3, var_listnode4, var_listnode8) /* init_amodule on <var15:AModule>*/;
1596 var_pmodulenode1 = var15;
1597 var_node_list = var_pmodulenode1;
1598 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction17> */
1599 var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
1600 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
1601 RET_LABEL:;
1602 }
1603 /* method parser#ReduceAction17#action for (self: Object, Parser) */
1604 void VIRTUAL_parser__ReduceAction17__action(val* self, val* p0) {
1605 parser__ReduceAction17__action(self, p0);
1606 RET_LABEL:;
1607 }
1608 /* method parser#ReduceAction18#action for (self: ReduceAction18, Parser) */
1609 void parser__ReduceAction18__action(val* self, val* p0) {
1610 val* var_p /* var p: Parser */;
1611 val* var /* : null */;
1612 val* var_node_list /* var node_list: nullable Object */;
1613 val* var1 /* : nullable Object */;
1614 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1615 val* var2 /* : nullable Object */;
1616 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1617 val* var3 /* : Array[Object] */;
1618 val* var_listnode4 /* var listnode4: Array[Object] */;
1619 val* var4 /* : Array[Object] */;
1620 val* var_listnode5 /* var listnode5: Array[Object] */;
1621 val* var5 /* : Array[Object] */;
1622 val* var_listnode9 /* var listnode9: Array[Object] */;
1623 val* var_listnode3 /* var listnode3: nullable Object */;
1624 short int var6 /* : Bool */;
1625 int cltype;
1626 int idtype;
1627 val* var7 /* : Array[Object] */;
1628 val* var8 /* : Array[Object] */;
1629 val* var_listnode8 /* var listnode8: Array[Object] */;
1630 val* var_listnode7 /* var listnode7: nullable Object */;
1631 short int var9 /* : Bool */;
1632 int cltype10;
1633 int idtype11;
1634 val* var12 /* : Array[Object] */;
1635 val* var13 /* : ATopClassdef */;
1636 val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */;
1637 val* var14 /* : null */;
1638 short int var15 /* : Bool */;
1639 val* var16 /* : AModule */;
1640 val* var17 /* : null */;
1641 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
1642 long var18 /* : Int */;
1643 long var19 /* : Int */;
1644 var_p = p0;
1645 var = NULL;
1646 var_node_list = var;
1647 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1648 var_nodearraylist2 = var1;
1649 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1650 var_nodearraylist1 = var2;
1651 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
1652 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
1653 var_listnode4 = var3;
1654 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
1655 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
1656 var_listnode5 = var4;
1657 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
1658 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
1659 var_listnode9 = var5;
1660 var_listnode3 = var_nodearraylist1;
1661 /* <var_listnode3:nullable Object> isa Array[Object] */
1662 cltype = type_array__Arraykernel__Object.color;
1663 idtype = type_array__Arraykernel__Object.id;
1664 if(var_listnode3 == NULL) {
1665 var6 = 0;
1666 } else {
1667 if(cltype >= var_listnode3->type->table_size) {
1668 var6 = 0;
1669 } else {
1670 var6 = var_listnode3->type->type_table[cltype] == idtype;
1671 }
1672 }
1673 if (!var6) {
1674 fprintf(stderr, "Runtime error: %s", "Assert failed");
1675 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2291);
1676 show_backtrace(1);
1677 }
1678 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction18>*/;
1679 var_listnode4 = var7;
1680 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
1681 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
1682 var_listnode8 = var8;
1683 var_listnode7 = var_nodearraylist2;
1684 /* <var_listnode7:nullable Object> isa Array[Object] */
1685 cltype10 = type_array__Arraykernel__Object.color;
1686 idtype11 = type_array__Arraykernel__Object.id;
1687 if(var_listnode7 == NULL) {
1688 var9 = 0;
1689 } else {
1690 if(cltype10 >= var_listnode7->type->table_size) {
1691 var9 = 0;
1692 } else {
1693 var9 = var_listnode7->type->type_table[cltype10] == idtype11;
1694 }
1695 }
1696 if (!var9) {
1697 fprintf(stderr, "Runtime error: %s", "Assert failed");
1698 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2295);
1699 show_backtrace(1);
1700 }
1701 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction18>*/;
1702 var_listnode8 = var12;
1703 var13 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
1704 ((void (*)(val*, val*))(var13->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var13, var_listnode8) /* init_atopclassdef on <var13:ATopClassdef>*/;
1705 var_pclassdefnode6 = var13;
1706 var14 = NULL;
1707 if (var_pclassdefnode6 == NULL) {
1708 var15 = 0; /* is null */
1709 } else {
1710 var15 = 1; /* arg is null and recv is not */
1711 }
1712 if (var15){
1713 ((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode6) /* add on <var_listnode9:Array[Object]>*/;
1714 } else {
1715 }
1716 var16 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
1717 var17 = NULL;
1718 ((void (*)(val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var16, var17, var_listnode4, var_listnode5, var_listnode9) /* init_amodule on <var16:AModule>*/;
1719 var_pmodulenode1 = var16;
1720 var_node_list = var_pmodulenode1;
1721 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction18> */
1722 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
1723 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
1724 RET_LABEL:;
1725 }
1726 /* method parser#ReduceAction18#action for (self: Object, Parser) */
1727 void VIRTUAL_parser__ReduceAction18__action(val* self, val* p0) {
1728 parser__ReduceAction18__action(self, p0);
1729 RET_LABEL:;
1730 }
1731 /* method parser#ReduceAction19#action for (self: ReduceAction19, Parser) */
1732 void parser__ReduceAction19__action(val* self, val* p0) {
1733 val* var_p /* var p: Parser */;
1734 val* var /* : null */;
1735 val* var_node_list /* var node_list: nullable Object */;
1736 val* var1 /* : nullable Object */;
1737 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1738 val* var2 /* : nullable Object */;
1739 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1740 val* var3 /* : nullable Object */;
1741 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1742 val* var4 /* : Array[Object] */;
1743 val* var_listnode4 /* var listnode4: Array[Object] */;
1744 val* var5 /* : Array[Object] */;
1745 val* var_listnode5 /* var listnode5: Array[Object] */;
1746 val* var6 /* : Array[Object] */;
1747 val* var_listnode9 /* var listnode9: Array[Object] */;
1748 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
1749 short int var7 /* : Bool */;
1750 int cltype;
1751 int idtype;
1752 val* var_listnode3 /* var listnode3: nullable Object */;
1753 short int var8 /* : Bool */;
1754 int cltype9;
1755 int idtype10;
1756 val* var11 /* : Array[Object] */;
1757 val* var12 /* : Array[Object] */;
1758 val* var_listnode8 /* var listnode8: Array[Object] */;
1759 val* var_listnode7 /* var listnode7: nullable Object */;
1760 short int var13 /* : Bool */;
1761 int cltype14;
1762 int idtype15;
1763 val* var16 /* : Array[Object] */;
1764 val* var17 /* : ATopClassdef */;
1765 val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */;
1766 val* var18 /* : null */;
1767 short int var19 /* : Bool */;
1768 val* var20 /* : AModule */;
1769 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
1770 long var21 /* : Int */;
1771 long var22 /* : Int */;
1772 var_p = p0;
1773 var = NULL;
1774 var_node_list = var;
1775 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1776 var_nodearraylist3 = var1;
1777 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1778 var_nodearraylist2 = var2;
1779 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1780 var_nodearraylist1 = var3;
1781 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
1782 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
1783 var_listnode4 = var4;
1784 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
1785 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
1786 var_listnode5 = var5;
1787 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
1788 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
1789 var_listnode9 = var6;
1790 var_pmoduledeclnode2 = var_nodearraylist1;
1791 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
1792 cltype = type_nullable_parser_nodes__AModuledecl.color;
1793 idtype = type_nullable_parser_nodes__AModuledecl.id;
1794 if(var_pmoduledeclnode2 == NULL) {
1795 var7 = 1;
1796 } else {
1797 if(cltype >= var_pmoduledeclnode2->type->table_size) {
1798 var7 = 0;
1799 } else {
1800 var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
1801 }
1802 }
1803 if (!var7) {
1804 fprintf(stderr, "Runtime error: %s", "Assert failed");
1805 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2325);
1806 show_backtrace(1);
1807 }
1808 var_listnode3 = var_nodearraylist2;
1809 /* <var_listnode3:nullable Object> isa Array[Object] */
1810 cltype9 = type_array__Arraykernel__Object.color;
1811 idtype10 = type_array__Arraykernel__Object.id;
1812 if(var_listnode3 == NULL) {
1813 var8 = 0;
1814 } else {
1815 if(cltype9 >= var_listnode3->type->table_size) {
1816 var8 = 0;
1817 } else {
1818 var8 = var_listnode3->type->type_table[cltype9] == idtype10;
1819 }
1820 }
1821 if (!var8) {
1822 fprintf(stderr, "Runtime error: %s", "Assert failed");
1823 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2327);
1824 show_backtrace(1);
1825 }
1826 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction19>*/;
1827 var_listnode4 = var11;
1828 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
1829 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
1830 var_listnode8 = var12;
1831 var_listnode7 = var_nodearraylist3;
1832 /* <var_listnode7:nullable Object> isa Array[Object] */
1833 cltype14 = type_array__Arraykernel__Object.color;
1834 idtype15 = type_array__Arraykernel__Object.id;
1835 if(var_listnode7 == NULL) {
1836 var13 = 0;
1837 } else {
1838 if(cltype14 >= var_listnode7->type->table_size) {
1839 var13 = 0;
1840 } else {
1841 var13 = var_listnode7->type->type_table[cltype14] == idtype15;
1842 }
1843 }
1844 if (!var13) {
1845 fprintf(stderr, "Runtime error: %s", "Assert failed");
1846 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2331);
1847 show_backtrace(1);
1848 }
1849 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction19>*/;
1850 var_listnode8 = var16;
1851 var17 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
1852 ((void (*)(val*, val*))(var17->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var17, var_listnode8) /* init_atopclassdef on <var17:ATopClassdef>*/;
1853 var_pclassdefnode6 = var17;
1854 var18 = NULL;
1855 if (var_pclassdefnode6 == NULL) {
1856 var19 = 0; /* is null */
1857 } else {
1858 var19 = 1; /* arg is null and recv is not */
1859 }
1860 if (var19){
1861 ((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode6) /* add on <var_listnode9:Array[Object]>*/;
1862 } else {
1863 }
1864 var20 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
1865 ((void (*)(val*, val*, val*, val*, val*))(var20->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var20, var_pmoduledeclnode2, var_listnode4, var_listnode5, var_listnode9) /* init_amodule on <var20:AModule>*/;
1866 var_pmodulenode1 = var20;
1867 var_node_list = var_pmodulenode1;
1868 var21 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction19> */
1869 var22 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var21) /* go_to on <var_p:Parser>*/;
1870 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var22, var_node_list) /* push on <var_p:Parser>*/;
1871 RET_LABEL:;
1872 }
1873 /* method parser#ReduceAction19#action for (self: Object, Parser) */
1874 void VIRTUAL_parser__ReduceAction19__action(val* self, val* p0) {
1875 parser__ReduceAction19__action(self, p0);
1876 RET_LABEL:;
1877 }
1878 /* method parser#ReduceAction20#action for (self: ReduceAction20, Parser) */
1879 void parser__ReduceAction20__action(val* self, val* p0) {
1880 val* var_p /* var p: Parser */;
1881 val* var /* : null */;
1882 val* var_node_list /* var node_list: nullable Object */;
1883 val* var1 /* : nullable Object */;
1884 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1885 val* var2 /* : nullable Object */;
1886 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1887 val* var3 /* : Array[Object] */;
1888 val* var_listnode3 /* var listnode3: Array[Object] */;
1889 val* var4 /* : Array[Object] */;
1890 val* var_listnode5 /* var listnode5: Array[Object] */;
1891 val* var5 /* : Array[Object] */;
1892 val* var_listnode9 /* var listnode9: Array[Object] */;
1893 val* var_listnode4 /* var listnode4: nullable Object */;
1894 short int var6 /* : Bool */;
1895 int cltype;
1896 int idtype;
1897 val* var7 /* : Array[Object] */;
1898 val* var8 /* : Array[Object] */;
1899 val* var_listnode8 /* var listnode8: Array[Object] */;
1900 val* var_listnode7 /* var listnode7: nullable Object */;
1901 short int var9 /* : Bool */;
1902 int cltype10;
1903 int idtype11;
1904 val* var12 /* : Array[Object] */;
1905 val* var13 /* : ATopClassdef */;
1906 val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */;
1907 val* var14 /* : null */;
1908 short int var15 /* : Bool */;
1909 val* var16 /* : AModule */;
1910 val* var17 /* : null */;
1911 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
1912 long var18 /* : Int */;
1913 long var19 /* : Int */;
1914 var_p = p0;
1915 var = NULL;
1916 var_node_list = var;
1917 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1918 var_nodearraylist2 = var1;
1919 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1920 var_nodearraylist1 = var2;
1921 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
1922 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
1923 var_listnode3 = var3;
1924 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
1925 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
1926 var_listnode5 = var4;
1927 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
1928 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
1929 var_listnode9 = var5;
1930 var_listnode4 = var_nodearraylist1;
1931 /* <var_listnode4:nullable Object> isa Array[Object] */
1932 cltype = type_array__Arraykernel__Object.color;
1933 idtype = type_array__Arraykernel__Object.id;
1934 if(var_listnode4 == NULL) {
1935 var6 = 0;
1936 } else {
1937 if(cltype >= var_listnode4->type->table_size) {
1938 var6 = 0;
1939 } else {
1940 var6 = var_listnode4->type->type_table[cltype] == idtype;
1941 }
1942 }
1943 if (!var6) {
1944 fprintf(stderr, "Runtime error: %s", "Assert failed");
1945 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2360);
1946 show_backtrace(1);
1947 }
1948 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction20>*/;
1949 var_listnode5 = var7;
1950 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
1951 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
1952 var_listnode8 = var8;
1953 var_listnode7 = var_nodearraylist2;
1954 /* <var_listnode7:nullable Object> isa Array[Object] */
1955 cltype10 = type_array__Arraykernel__Object.color;
1956 idtype11 = type_array__Arraykernel__Object.id;
1957 if(var_listnode7 == NULL) {
1958 var9 = 0;
1959 } else {
1960 if(cltype10 >= var_listnode7->type->table_size) {
1961 var9 = 0;
1962 } else {
1963 var9 = var_listnode7->type->type_table[cltype10] == idtype11;
1964 }
1965 }
1966 if (!var9) {
1967 fprintf(stderr, "Runtime error: %s", "Assert failed");
1968 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2364);
1969 show_backtrace(1);
1970 }
1971 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction20>*/;
1972 var_listnode8 = var12;
1973 var13 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
1974 ((void (*)(val*, val*))(var13->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var13, var_listnode8) /* init_atopclassdef on <var13:ATopClassdef>*/;
1975 var_pclassdefnode6 = var13;
1976 var14 = NULL;
1977 if (var_pclassdefnode6 == NULL) {
1978 var15 = 0; /* is null */
1979 } else {
1980 var15 = 1; /* arg is null and recv is not */
1981 }
1982 if (var15){
1983 ((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode6) /* add on <var_listnode9:Array[Object]>*/;
1984 } else {
1985 }
1986 var16 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
1987 var17 = NULL;
1988 ((void (*)(val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var16, var17, var_listnode3, var_listnode5, var_listnode9) /* init_amodule on <var16:AModule>*/;
1989 var_pmodulenode1 = var16;
1990 var_node_list = var_pmodulenode1;
1991 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction20> */
1992 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
1993 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
1994 RET_LABEL:;
1995 }
1996 /* method parser#ReduceAction20#action for (self: Object, Parser) */
1997 void VIRTUAL_parser__ReduceAction20__action(val* self, val* p0) {
1998 parser__ReduceAction20__action(self, p0);
1999 RET_LABEL:;
2000 }
2001 /* method parser#ReduceAction21#action for (self: ReduceAction21, Parser) */
2002 void parser__ReduceAction21__action(val* self, val* p0) {
2003 val* var_p /* var p: Parser */;
2004 val* var /* : null */;
2005 val* var_node_list /* var node_list: nullable Object */;
2006 val* var1 /* : nullable Object */;
2007 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2008 val* var2 /* : nullable Object */;
2009 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2010 val* var3 /* : nullable Object */;
2011 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2012 val* var4 /* : Array[Object] */;
2013 val* var_listnode3 /* var listnode3: Array[Object] */;
2014 val* var5 /* : Array[Object] */;
2015 val* var_listnode5 /* var listnode5: Array[Object] */;
2016 val* var6 /* : Array[Object] */;
2017 val* var_listnode9 /* var listnode9: Array[Object] */;
2018 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
2019 short int var7 /* : Bool */;
2020 int cltype;
2021 int idtype;
2022 val* var_listnode4 /* var listnode4: nullable Object */;
2023 short int var8 /* : Bool */;
2024 int cltype9;
2025 int idtype10;
2026 val* var11 /* : Array[Object] */;
2027 val* var12 /* : Array[Object] */;
2028 val* var_listnode8 /* var listnode8: Array[Object] */;
2029 val* var_listnode7 /* var listnode7: nullable Object */;
2030 short int var13 /* : Bool */;
2031 int cltype14;
2032 int idtype15;
2033 val* var16 /* : Array[Object] */;
2034 val* var17 /* : ATopClassdef */;
2035 val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */;
2036 val* var18 /* : null */;
2037 short int var19 /* : Bool */;
2038 val* var20 /* : AModule */;
2039 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
2040 long var21 /* : Int */;
2041 long var22 /* : Int */;
2042 var_p = p0;
2043 var = NULL;
2044 var_node_list = var;
2045 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2046 var_nodearraylist3 = var1;
2047 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2048 var_nodearraylist2 = var2;
2049 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2050 var_nodearraylist1 = var3;
2051 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
2052 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
2053 var_listnode3 = var4;
2054 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
2055 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
2056 var_listnode5 = var5;
2057 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
2058 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
2059 var_listnode9 = var6;
2060 var_pmoduledeclnode2 = var_nodearraylist1;
2061 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
2062 cltype = type_nullable_parser_nodes__AModuledecl.color;
2063 idtype = type_nullable_parser_nodes__AModuledecl.id;
2064 if(var_pmoduledeclnode2 == NULL) {
2065 var7 = 1;
2066 } else {
2067 if(cltype >= var_pmoduledeclnode2->type->table_size) {
2068 var7 = 0;
2069 } else {
2070 var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
2071 }
2072 }
2073 if (!var7) {
2074 fprintf(stderr, "Runtime error: %s", "Assert failed");
2075 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2394);
2076 show_backtrace(1);
2077 }
2078 var_listnode4 = var_nodearraylist2;
2079 /* <var_listnode4:nullable Object> isa Array[Object] */
2080 cltype9 = type_array__Arraykernel__Object.color;
2081 idtype10 = type_array__Arraykernel__Object.id;
2082 if(var_listnode4 == NULL) {
2083 var8 = 0;
2084 } else {
2085 if(cltype9 >= var_listnode4->type->table_size) {
2086 var8 = 0;
2087 } else {
2088 var8 = var_listnode4->type->type_table[cltype9] == idtype10;
2089 }
2090 }
2091 if (!var8) {
2092 fprintf(stderr, "Runtime error: %s", "Assert failed");
2093 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2396);
2094 show_backtrace(1);
2095 }
2096 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction21>*/;
2097 var_listnode5 = var11;
2098 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
2099 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
2100 var_listnode8 = var12;
2101 var_listnode7 = var_nodearraylist3;
2102 /* <var_listnode7:nullable Object> isa Array[Object] */
2103 cltype14 = type_array__Arraykernel__Object.color;
2104 idtype15 = type_array__Arraykernel__Object.id;
2105 if(var_listnode7 == NULL) {
2106 var13 = 0;
2107 } else {
2108 if(cltype14 >= var_listnode7->type->table_size) {
2109 var13 = 0;
2110 } else {
2111 var13 = var_listnode7->type->type_table[cltype14] == idtype15;
2112 }
2113 }
2114 if (!var13) {
2115 fprintf(stderr, "Runtime error: %s", "Assert failed");
2116 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2400);
2117 show_backtrace(1);
2118 }
2119 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction21>*/;
2120 var_listnode8 = var16;
2121 var17 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
2122 ((void (*)(val*, val*))(var17->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var17, var_listnode8) /* init_atopclassdef on <var17:ATopClassdef>*/;
2123 var_pclassdefnode6 = var17;
2124 var18 = NULL;
2125 if (var_pclassdefnode6 == NULL) {
2126 var19 = 0; /* is null */
2127 } else {
2128 var19 = 1; /* arg is null and recv is not */
2129 }
2130 if (var19){
2131 ((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode6) /* add on <var_listnode9:Array[Object]>*/;
2132 } else {
2133 }
2134 var20 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
2135 ((void (*)(val*, val*, val*, val*, val*))(var20->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var20, var_pmoduledeclnode2, var_listnode3, var_listnode5, var_listnode9) /* init_amodule on <var20:AModule>*/;
2136 var_pmodulenode1 = var20;
2137 var_node_list = var_pmodulenode1;
2138 var21 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction21> */
2139 var22 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var21) /* go_to on <var_p:Parser>*/;
2140 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var22, var_node_list) /* push on <var_p:Parser>*/;
2141 RET_LABEL:;
2142 }
2143 /* method parser#ReduceAction21#action for (self: Object, Parser) */
2144 void VIRTUAL_parser__ReduceAction21__action(val* self, val* p0) {
2145 parser__ReduceAction21__action(self, p0);
2146 RET_LABEL:;
2147 }
2148 /* method parser#ReduceAction22#action for (self: ReduceAction22, Parser) */
2149 void parser__ReduceAction22__action(val* self, val* p0) {
2150 val* var_p /* var p: Parser */;
2151 val* var /* : null */;
2152 val* var_node_list /* var node_list: nullable Object */;
2153 val* var1 /* : nullable Object */;
2154 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2155 val* var2 /* : nullable Object */;
2156 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2157 val* var3 /* : nullable Object */;
2158 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2159 val* var4 /* : Array[Object] */;
2160 val* var_listnode4 /* var listnode4: Array[Object] */;
2161 val* var5 /* : Array[Object] */;
2162 val* var_listnode6 /* var listnode6: Array[Object] */;
2163 val* var6 /* : Array[Object] */;
2164 val* var_listnode10 /* var listnode10: Array[Object] */;
2165 val* var_listnode3 /* var listnode3: nullable Object */;
2166 short int var7 /* : Bool */;
2167 int cltype;
2168 int idtype;
2169 val* var8 /* : Array[Object] */;
2170 val* var_listnode5 /* var listnode5: nullable Object */;
2171 short int var9 /* : Bool */;
2172 int cltype10;
2173 int idtype11;
2174 val* var12 /* : Array[Object] */;
2175 val* var13 /* : Array[Object] */;
2176 val* var_listnode9 /* var listnode9: Array[Object] */;
2177 val* var_listnode8 /* var listnode8: nullable Object */;
2178 short int var14 /* : Bool */;
2179 int cltype15;
2180 int idtype16;
2181 val* var17 /* : Array[Object] */;
2182 val* var18 /* : ATopClassdef */;
2183 val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */;
2184 val* var19 /* : null */;
2185 short int var20 /* : Bool */;
2186 val* var21 /* : AModule */;
2187 val* var22 /* : null */;
2188 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
2189 long var23 /* : Int */;
2190 long var24 /* : Int */;
2191 var_p = p0;
2192 var = NULL;
2193 var_node_list = var;
2194 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2195 var_nodearraylist3 = var1;
2196 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2197 var_nodearraylist2 = var2;
2198 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2199 var_nodearraylist1 = var3;
2200 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
2201 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
2202 var_listnode4 = var4;
2203 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
2204 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
2205 var_listnode6 = var5;
2206 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
2207 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
2208 var_listnode10 = var6;
2209 var_listnode3 = var_nodearraylist1;
2210 /* <var_listnode3:nullable Object> isa Array[Object] */
2211 cltype = type_array__Arraykernel__Object.color;
2212 idtype = type_array__Arraykernel__Object.id;
2213 if(var_listnode3 == NULL) {
2214 var7 = 0;
2215 } else {
2216 if(cltype >= var_listnode3->type->table_size) {
2217 var7 = 0;
2218 } else {
2219 var7 = var_listnode3->type->type_table[cltype] == idtype;
2220 }
2221 }
2222 if (!var7) {
2223 fprintf(stderr, "Runtime error: %s", "Assert failed");
2224 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2430);
2225 show_backtrace(1);
2226 }
2227 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction22>*/;
2228 var_listnode4 = var8;
2229 var_listnode5 = var_nodearraylist2;
2230 /* <var_listnode5:nullable Object> isa Array[Object] */
2231 cltype10 = type_array__Arraykernel__Object.color;
2232 idtype11 = type_array__Arraykernel__Object.id;
2233 if(var_listnode5 == NULL) {
2234 var9 = 0;
2235 } else {
2236 if(cltype10 >= var_listnode5->type->table_size) {
2237 var9 = 0;
2238 } else {
2239 var9 = var_listnode5->type->type_table[cltype10] == idtype11;
2240 }
2241 }
2242 if (!var9) {
2243 fprintf(stderr, "Runtime error: %s", "Assert failed");
2244 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2433);
2245 show_backtrace(1);
2246 }
2247 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction22>*/;
2248 var_listnode6 = var12;
2249 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
2250 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
2251 var_listnode9 = var13;
2252 var_listnode8 = var_nodearraylist3;
2253 /* <var_listnode8:nullable Object> isa Array[Object] */
2254 cltype15 = type_array__Arraykernel__Object.color;
2255 idtype16 = type_array__Arraykernel__Object.id;
2256 if(var_listnode8 == NULL) {
2257 var14 = 0;
2258 } else {
2259 if(cltype15 >= var_listnode8->type->table_size) {
2260 var14 = 0;
2261 } else {
2262 var14 = var_listnode8->type->type_table[cltype15] == idtype16;
2263 }
2264 }
2265 if (!var14) {
2266 fprintf(stderr, "Runtime error: %s", "Assert failed");
2267 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2437);
2268 show_backtrace(1);
2269 }
2270 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction22>*/;
2271 var_listnode9 = var17;
2272 var18 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
2273 ((void (*)(val*, val*))(var18->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var18, var_listnode9) /* init_atopclassdef on <var18:ATopClassdef>*/;
2274 var_pclassdefnode7 = var18;
2275 var19 = NULL;
2276 if (var_pclassdefnode7 == NULL) {
2277 var20 = 0; /* is null */
2278 } else {
2279 var20 = 1; /* arg is null and recv is not */
2280 }
2281 if (var20){
2282 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode7) /* add on <var_listnode10:Array[Object]>*/;
2283 } else {
2284 }
2285 var21 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
2286 var22 = NULL;
2287 ((void (*)(val*, val*, val*, val*, val*))(var21->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var21, var22, var_listnode4, var_listnode6, var_listnode10) /* init_amodule on <var21:AModule>*/;
2288 var_pmodulenode1 = var21;
2289 var_node_list = var_pmodulenode1;
2290 var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction22> */
2291 var24 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var23) /* go_to on <var_p:Parser>*/;
2292 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var24, var_node_list) /* push on <var_p:Parser>*/;
2293 RET_LABEL:;
2294 }
2295 /* method parser#ReduceAction22#action for (self: Object, Parser) */
2296 void VIRTUAL_parser__ReduceAction22__action(val* self, val* p0) {
2297 parser__ReduceAction22__action(self, p0);
2298 RET_LABEL:;
2299 }
2300 /* method parser#ReduceAction23#action for (self: ReduceAction23, Parser) */
2301 void parser__ReduceAction23__action(val* self, val* p0) {
2302 val* var_p /* var p: Parser */;
2303 val* var /* : null */;
2304 val* var_node_list /* var node_list: nullable Object */;
2305 val* var1 /* : nullable Object */;
2306 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2307 val* var2 /* : nullable Object */;
2308 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2309 val* var3 /* : nullable Object */;
2310 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2311 val* var4 /* : nullable Object */;
2312 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2313 val* var5 /* : Array[Object] */;
2314 val* var_listnode4 /* var listnode4: Array[Object] */;
2315 val* var6 /* : Array[Object] */;
2316 val* var_listnode6 /* var listnode6: Array[Object] */;
2317 val* var7 /* : Array[Object] */;
2318 val* var_listnode10 /* var listnode10: Array[Object] */;
2319 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
2320 short int var8 /* : Bool */;
2321 int cltype;
2322 int idtype;
2323 val* var_listnode3 /* var listnode3: nullable Object */;
2324 short int var9 /* : Bool */;
2325 int cltype10;
2326 int idtype11;
2327 val* var12 /* : Array[Object] */;
2328 val* var_listnode5 /* var listnode5: nullable Object */;
2329 short int var13 /* : Bool */;
2330 int cltype14;
2331 int idtype15;
2332 val* var16 /* : Array[Object] */;
2333 val* var17 /* : Array[Object] */;
2334 val* var_listnode9 /* var listnode9: Array[Object] */;
2335 val* var_listnode8 /* var listnode8: nullable Object */;
2336 short int var18 /* : Bool */;
2337 int cltype19;
2338 int idtype20;
2339 val* var21 /* : Array[Object] */;
2340 val* var22 /* : ATopClassdef */;
2341 val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */;
2342 val* var23 /* : null */;
2343 short int var24 /* : Bool */;
2344 val* var25 /* : AModule */;
2345 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
2346 long var26 /* : Int */;
2347 long var27 /* : Int */;
2348 var_p = p0;
2349 var = NULL;
2350 var_node_list = var;
2351 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2352 var_nodearraylist4 = var1;
2353 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2354 var_nodearraylist3 = var2;
2355 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2356 var_nodearraylist2 = var3;
2357 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2358 var_nodearraylist1 = var4;
2359 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
2360 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
2361 var_listnode4 = var5;
2362 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
2363 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
2364 var_listnode6 = var6;
2365 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
2366 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
2367 var_listnode10 = var7;
2368 var_pmoduledeclnode2 = var_nodearraylist1;
2369 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
2370 cltype = type_nullable_parser_nodes__AModuledecl.color;
2371 idtype = type_nullable_parser_nodes__AModuledecl.id;
2372 if(var_pmoduledeclnode2 == NULL) {
2373 var8 = 1;
2374 } else {
2375 if(cltype >= var_pmoduledeclnode2->type->table_size) {
2376 var8 = 0;
2377 } else {
2378 var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
2379 }
2380 }
2381 if (!var8) {
2382 fprintf(stderr, "Runtime error: %s", "Assert failed");
2383 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2468);
2384 show_backtrace(1);
2385 }
2386 var_listnode3 = var_nodearraylist2;
2387 /* <var_listnode3:nullable Object> isa Array[Object] */
2388 cltype10 = type_array__Arraykernel__Object.color;
2389 idtype11 = type_array__Arraykernel__Object.id;
2390 if(var_listnode3 == NULL) {
2391 var9 = 0;
2392 } else {
2393 if(cltype10 >= var_listnode3->type->table_size) {
2394 var9 = 0;
2395 } else {
2396 var9 = var_listnode3->type->type_table[cltype10] == idtype11;
2397 }
2398 }
2399 if (!var9) {
2400 fprintf(stderr, "Runtime error: %s", "Assert failed");
2401 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2470);
2402 show_backtrace(1);
2403 }
2404 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction23>*/;
2405 var_listnode4 = var12;
2406 var_listnode5 = var_nodearraylist3;
2407 /* <var_listnode5:nullable Object> isa Array[Object] */
2408 cltype14 = type_array__Arraykernel__Object.color;
2409 idtype15 = type_array__Arraykernel__Object.id;
2410 if(var_listnode5 == NULL) {
2411 var13 = 0;
2412 } else {
2413 if(cltype14 >= var_listnode5->type->table_size) {
2414 var13 = 0;
2415 } else {
2416 var13 = var_listnode5->type->type_table[cltype14] == idtype15;
2417 }
2418 }
2419 if (!var13) {
2420 fprintf(stderr, "Runtime error: %s", "Assert failed");
2421 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2473);
2422 show_backtrace(1);
2423 }
2424 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction23>*/;
2425 var_listnode6 = var16;
2426 var17 = NEW_array__Array(&type_array__Arraykernel__Object);
2427 ((void (*)(val*))(var17->class->vft[COLOR_array__Array__init]))(var17) /* init on <var17:Array[Object]>*/;
2428 var_listnode9 = var17;
2429 var_listnode8 = var_nodearraylist4;
2430 /* <var_listnode8:nullable Object> isa Array[Object] */
2431 cltype19 = type_array__Arraykernel__Object.color;
2432 idtype20 = type_array__Arraykernel__Object.id;
2433 if(var_listnode8 == NULL) {
2434 var18 = 0;
2435 } else {
2436 if(cltype19 >= var_listnode8->type->table_size) {
2437 var18 = 0;
2438 } else {
2439 var18 = var_listnode8->type->type_table[cltype19] == idtype20;
2440 }
2441 }
2442 if (!var18) {
2443 fprintf(stderr, "Runtime error: %s", "Assert failed");
2444 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2477);
2445 show_backtrace(1);
2446 }
2447 var21 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction23>*/;
2448 var_listnode9 = var21;
2449 var22 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
2450 ((void (*)(val*, val*))(var22->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var22, var_listnode9) /* init_atopclassdef on <var22:ATopClassdef>*/;
2451 var_pclassdefnode7 = var22;
2452 var23 = NULL;
2453 if (var_pclassdefnode7 == NULL) {
2454 var24 = 0; /* is null */
2455 } else {
2456 var24 = 1; /* arg is null and recv is not */
2457 }
2458 if (var24){
2459 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode7) /* add on <var_listnode10:Array[Object]>*/;
2460 } else {
2461 }
2462 var25 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
2463 ((void (*)(val*, val*, val*, val*, val*))(var25->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var25, var_pmoduledeclnode2, var_listnode4, var_listnode6, var_listnode10) /* init_amodule on <var25:AModule>*/;
2464 var_pmodulenode1 = var25;
2465 var_node_list = var_pmodulenode1;
2466 var26 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction23> */
2467 var27 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var26) /* go_to on <var_p:Parser>*/;
2468 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var27, var_node_list) /* push on <var_p:Parser>*/;
2469 RET_LABEL:;
2470 }
2471 /* method parser#ReduceAction23#action for (self: Object, Parser) */
2472 void VIRTUAL_parser__ReduceAction23__action(val* self, val* p0) {
2473 parser__ReduceAction23__action(self, p0);
2474 RET_LABEL:;
2475 }
2476 /* method parser#ReduceAction24#action for (self: ReduceAction24, Parser) */
2477 void parser__ReduceAction24__action(val* self, val* p0) {
2478 val* var_p /* var p: Parser */;
2479 val* var /* : null */;
2480 val* var_node_list /* var node_list: nullable Object */;
2481 val* var1 /* : nullable Object */;
2482 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2483 val* var2 /* : nullable Object */;
2484 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2485 val* var3 /* : Array[Object] */;
2486 val* var_listnode3 /* var listnode3: Array[Object] */;
2487 val* var4 /* : Array[Object] */;
2488 val* var_listnode4 /* var listnode4: Array[Object] */;
2489 val* var5 /* : Array[Object] */;
2490 val* var_listnode9 /* var listnode9: Array[Object] */;
2491 val* var_listnode5 /* var listnode5: nullable Object */;
2492 short int var6 /* : Bool */;
2493 int cltype;
2494 int idtype;
2495 val* var7 /* : Array[Object] */;
2496 val* var_listnode8 /* var listnode8: Array[Object] */;
2497 val* var_listnode7 /* var listnode7: nullable Object */;
2498 short int var8 /* : Bool */;
2499 int cltype9;
2500 int idtype10;
2501 val* var11 /* : Array[Object] */;
2502 val* var12 /* : ATopClassdef */;
2503 val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */;
2504 val* var13 /* : Array[Object] */;
2505 val* var14 /* : null */;
2506 short int var15 /* : Bool */;
2507 val* var16 /* : AModule */;
2508 val* var17 /* : null */;
2509 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
2510 long var18 /* : Int */;
2511 long var19 /* : Int */;
2512 var_p = p0;
2513 var = NULL;
2514 var_node_list = var;
2515 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2516 var_nodearraylist2 = var1;
2517 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2518 var_nodearraylist1 = var2;
2519 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
2520 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
2521 var_listnode3 = var3;
2522 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
2523 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
2524 var_listnode4 = var4;
2525 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
2526 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
2527 var_listnode9 = var5;
2528 var_listnode5 = var_nodearraylist1;
2529 /* <var_listnode5:nullable Object> isa Array[Object] */
2530 cltype = type_array__Arraykernel__Object.color;
2531 idtype = type_array__Arraykernel__Object.id;
2532 if(var_listnode5 == NULL) {
2533 var6 = 0;
2534 } else {
2535 if(cltype >= var_listnode5->type->table_size) {
2536 var6 = 0;
2537 } else {
2538 var6 = var_listnode5->type->type_table[cltype] == idtype;
2539 }
2540 }
2541 if (!var6) {
2542 fprintf(stderr, "Runtime error: %s", "Assert failed");
2543 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2506);
2544 show_backtrace(1);
2545 }
2546 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
2547 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
2548 var_listnode8 = var7;
2549 var_listnode7 = var_nodearraylist2;
2550 /* <var_listnode7:nullable Object> isa Array[Object] */
2551 cltype9 = type_array__Arraykernel__Object.color;
2552 idtype10 = type_array__Arraykernel__Object.id;
2553 if(var_listnode7 == NULL) {
2554 var8 = 0;
2555 } else {
2556 if(cltype9 >= var_listnode7->type->table_size) {
2557 var8 = 0;
2558 } else {
2559 var8 = var_listnode7->type->type_table[cltype9] == idtype10;
2560 }
2561 }
2562 if (!var8) {
2563 fprintf(stderr, "Runtime error: %s", "Assert failed");
2564 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2509);
2565 show_backtrace(1);
2566 }
2567 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction24>*/;
2568 var_listnode8 = var11;
2569 var12 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
2570 ((void (*)(val*, val*))(var12->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var12, var_listnode8) /* init_atopclassdef on <var12:ATopClassdef>*/;
2571 var_pclassdefnode6 = var12;
2572 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode5) /* concat on <self:ReduceAction24>*/;
2573 var_listnode9 = var13;
2574 var14 = NULL;
2575 if (var_pclassdefnode6 == NULL) {
2576 var15 = 0; /* is null */
2577 } else {
2578 var15 = 1; /* arg is null and recv is not */
2579 }
2580 if (var15){
2581 ((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode6) /* add on <var_listnode9:Array[Object]>*/;
2582 } else {
2583 }
2584 var16 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
2585 var17 = NULL;
2586 ((void (*)(val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var16, var17, var_listnode3, var_listnode4, var_listnode9) /* init_amodule on <var16:AModule>*/;
2587 var_pmodulenode1 = var16;
2588 var_node_list = var_pmodulenode1;
2589 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction24> */
2590 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
2591 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
2592 RET_LABEL:;
2593 }
2594 /* method parser#ReduceAction24#action for (self: Object, Parser) */
2595 void VIRTUAL_parser__ReduceAction24__action(val* self, val* p0) {
2596 parser__ReduceAction24__action(self, p0);
2597 RET_LABEL:;
2598 }
2599 /* method parser#ReduceAction25#action for (self: ReduceAction25, Parser) */
2600 void parser__ReduceAction25__action(val* self, val* p0) {
2601 val* var_p /* var p: Parser */;
2602 val* var /* : null */;
2603 val* var_node_list /* var node_list: nullable Object */;
2604 val* var1 /* : nullable Object */;
2605 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2606 val* var2 /* : nullable Object */;
2607 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2608 val* var3 /* : nullable Object */;
2609 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2610 val* var4 /* : Array[Object] */;
2611 val* var_listnode3 /* var listnode3: Array[Object] */;
2612 val* var5 /* : Array[Object] */;
2613 val* var_listnode4 /* var listnode4: Array[Object] */;
2614 val* var6 /* : Array[Object] */;
2615 val* var_listnode9 /* var listnode9: Array[Object] */;
2616 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
2617 short int var7 /* : Bool */;
2618 int cltype;
2619 int idtype;
2620 val* var_listnode5 /* var listnode5: nullable Object */;
2621 short int var8 /* : Bool */;
2622 int cltype9;
2623 int idtype10;
2624 val* var11 /* : Array[Object] */;
2625 val* var_listnode8 /* var listnode8: Array[Object] */;
2626 val* var_listnode7 /* var listnode7: nullable Object */;
2627 short int var12 /* : Bool */;
2628 int cltype13;
2629 int idtype14;
2630 val* var15 /* : Array[Object] */;
2631 val* var16 /* : ATopClassdef */;
2632 val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */;
2633 val* var17 /* : Array[Object] */;
2634 val* var18 /* : null */;
2635 short int var19 /* : Bool */;
2636 val* var20 /* : AModule */;
2637 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
2638 long var21 /* : Int */;
2639 long var22 /* : Int */;
2640 var_p = p0;
2641 var = NULL;
2642 var_node_list = var;
2643 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2644 var_nodearraylist3 = var1;
2645 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2646 var_nodearraylist2 = var2;
2647 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2648 var_nodearraylist1 = var3;
2649 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
2650 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
2651 var_listnode3 = var4;
2652 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
2653 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
2654 var_listnode4 = var5;
2655 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
2656 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
2657 var_listnode9 = var6;
2658 var_pmoduledeclnode2 = var_nodearraylist1;
2659 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
2660 cltype = type_nullable_parser_nodes__AModuledecl.color;
2661 idtype = type_nullable_parser_nodes__AModuledecl.id;
2662 if(var_pmoduledeclnode2 == NULL) {
2663 var7 = 1;
2664 } else {
2665 if(cltype >= var_pmoduledeclnode2->type->table_size) {
2666 var7 = 0;
2667 } else {
2668 var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
2669 }
2670 }
2671 if (!var7) {
2672 fprintf(stderr, "Runtime error: %s", "Assert failed");
2673 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2540);
2674 show_backtrace(1);
2675 }
2676 var_listnode5 = var_nodearraylist2;
2677 /* <var_listnode5:nullable Object> isa Array[Object] */
2678 cltype9 = type_array__Arraykernel__Object.color;
2679 idtype10 = type_array__Arraykernel__Object.id;
2680 if(var_listnode5 == NULL) {
2681 var8 = 0;
2682 } else {
2683 if(cltype9 >= var_listnode5->type->table_size) {
2684 var8 = 0;
2685 } else {
2686 var8 = var_listnode5->type->type_table[cltype9] == idtype10;
2687 }
2688 }
2689 if (!var8) {
2690 fprintf(stderr, "Runtime error: %s", "Assert failed");
2691 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2542);
2692 show_backtrace(1);
2693 }
2694 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
2695 ((void (*)(val*))(var11->class->vft[COLOR_array__Array__init]))(var11) /* init on <var11:Array[Object]>*/;
2696 var_listnode8 = var11;
2697 var_listnode7 = var_nodearraylist3;
2698 /* <var_listnode7:nullable Object> isa Array[Object] */
2699 cltype13 = type_array__Arraykernel__Object.color;
2700 idtype14 = type_array__Arraykernel__Object.id;
2701 if(var_listnode7 == NULL) {
2702 var12 = 0;
2703 } else {
2704 if(cltype13 >= var_listnode7->type->table_size) {
2705 var12 = 0;
2706 } else {
2707 var12 = var_listnode7->type->type_table[cltype13] == idtype14;
2708 }
2709 }
2710 if (!var12) {
2711 fprintf(stderr, "Runtime error: %s", "Assert failed");
2712 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2545);
2713 show_backtrace(1);
2714 }
2715 var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction25>*/;
2716 var_listnode8 = var15;
2717 var16 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
2718 ((void (*)(val*, val*))(var16->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var16, var_listnode8) /* init_atopclassdef on <var16:ATopClassdef>*/;
2719 var_pclassdefnode6 = var16;
2720 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode5) /* concat on <self:ReduceAction25>*/;
2721 var_listnode9 = var17;
2722 var18 = NULL;
2723 if (var_pclassdefnode6 == NULL) {
2724 var19 = 0; /* is null */
2725 } else {
2726 var19 = 1; /* arg is null and recv is not */
2727 }
2728 if (var19){
2729 ((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode6) /* add on <var_listnode9:Array[Object]>*/;
2730 } else {
2731 }
2732 var20 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
2733 ((void (*)(val*, val*, val*, val*, val*))(var20->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var20, var_pmoduledeclnode2, var_listnode3, var_listnode4, var_listnode9) /* init_amodule on <var20:AModule>*/;
2734 var_pmodulenode1 = var20;
2735 var_node_list = var_pmodulenode1;
2736 var21 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction25> */
2737 var22 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var21) /* go_to on <var_p:Parser>*/;
2738 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var22, var_node_list) /* push on <var_p:Parser>*/;
2739 RET_LABEL:;
2740 }
2741 /* method parser#ReduceAction25#action for (self: Object, Parser) */
2742 void VIRTUAL_parser__ReduceAction25__action(val* self, val* p0) {
2743 parser__ReduceAction25__action(self, p0);
2744 RET_LABEL:;
2745 }
2746 /* method parser#ReduceAction26#action for (self: ReduceAction26, Parser) */
2747 void parser__ReduceAction26__action(val* self, val* p0) {
2748 val* var_p /* var p: Parser */;
2749 val* var /* : null */;
2750 val* var_node_list /* var node_list: nullable Object */;
2751 val* var1 /* : nullable Object */;
2752 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2753 val* var2 /* : nullable Object */;
2754 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2755 val* var3 /* : nullable Object */;
2756 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2757 val* var4 /* : Array[Object] */;
2758 val* var_listnode4 /* var listnode4: Array[Object] */;
2759 val* var5 /* : Array[Object] */;
2760 val* var_listnode5 /* var listnode5: Array[Object] */;
2761 val* var6 /* : Array[Object] */;
2762 val* var_listnode10 /* var listnode10: Array[Object] */;
2763 val* var_listnode3 /* var listnode3: nullable Object */;
2764 short int var7 /* : Bool */;
2765 int cltype;
2766 int idtype;
2767 val* var8 /* : Array[Object] */;
2768 val* var_listnode6 /* var listnode6: nullable Object */;
2769 short int var9 /* : Bool */;
2770 int cltype10;
2771 int idtype11;
2772 val* var12 /* : Array[Object] */;
2773 val* var_listnode9 /* var listnode9: Array[Object] */;
2774 val* var_listnode8 /* var listnode8: nullable Object */;
2775 short int var13 /* : Bool */;
2776 int cltype14;
2777 int idtype15;
2778 val* var16 /* : Array[Object] */;
2779 val* var17 /* : ATopClassdef */;
2780 val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */;
2781 val* var18 /* : Array[Object] */;
2782 val* var19 /* : null */;
2783 short int var20 /* : Bool */;
2784 val* var21 /* : AModule */;
2785 val* var22 /* : null */;
2786 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
2787 long var23 /* : Int */;
2788 long var24 /* : Int */;
2789 var_p = p0;
2790 var = NULL;
2791 var_node_list = var;
2792 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2793 var_nodearraylist3 = var1;
2794 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2795 var_nodearraylist2 = var2;
2796 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2797 var_nodearraylist1 = var3;
2798 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
2799 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
2800 var_listnode4 = var4;
2801 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
2802 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
2803 var_listnode5 = var5;
2804 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
2805 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
2806 var_listnode10 = var6;
2807 var_listnode3 = var_nodearraylist1;
2808 /* <var_listnode3:nullable Object> isa Array[Object] */
2809 cltype = type_array__Arraykernel__Object.color;
2810 idtype = type_array__Arraykernel__Object.id;
2811 if(var_listnode3 == NULL) {
2812 var7 = 0;
2813 } else {
2814 if(cltype >= var_listnode3->type->table_size) {
2815 var7 = 0;
2816 } else {
2817 var7 = var_listnode3->type->type_table[cltype] == idtype;
2818 }
2819 }
2820 if (!var7) {
2821 fprintf(stderr, "Runtime error: %s", "Assert failed");
2822 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2576);
2823 show_backtrace(1);
2824 }
2825 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction26>*/;
2826 var_listnode4 = var8;
2827 var_listnode6 = var_nodearraylist2;
2828 /* <var_listnode6:nullable Object> isa Array[Object] */
2829 cltype10 = type_array__Arraykernel__Object.color;
2830 idtype11 = type_array__Arraykernel__Object.id;
2831 if(var_listnode6 == NULL) {
2832 var9 = 0;
2833 } else {
2834 if(cltype10 >= var_listnode6->type->table_size) {
2835 var9 = 0;
2836 } else {
2837 var9 = var_listnode6->type->type_table[cltype10] == idtype11;
2838 }
2839 }
2840 if (!var9) {
2841 fprintf(stderr, "Runtime error: %s", "Assert failed");
2842 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2579);
2843 show_backtrace(1);
2844 }
2845 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
2846 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
2847 var_listnode9 = var12;
2848 var_listnode8 = var_nodearraylist3;
2849 /* <var_listnode8:nullable Object> isa Array[Object] */
2850 cltype14 = type_array__Arraykernel__Object.color;
2851 idtype15 = type_array__Arraykernel__Object.id;
2852 if(var_listnode8 == NULL) {
2853 var13 = 0;
2854 } else {
2855 if(cltype14 >= var_listnode8->type->table_size) {
2856 var13 = 0;
2857 } else {
2858 var13 = var_listnode8->type->type_table[cltype14] == idtype15;
2859 }
2860 }
2861 if (!var13) {
2862 fprintf(stderr, "Runtime error: %s", "Assert failed");
2863 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2582);
2864 show_backtrace(1);
2865 }
2866 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction26>*/;
2867 var_listnode9 = var16;
2868 var17 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
2869 ((void (*)(val*, val*))(var17->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var17, var_listnode9) /* init_atopclassdef on <var17:ATopClassdef>*/;
2870 var_pclassdefnode7 = var17;
2871 var18 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode6) /* concat on <self:ReduceAction26>*/;
2872 var_listnode10 = var18;
2873 var19 = NULL;
2874 if (var_pclassdefnode7 == NULL) {
2875 var20 = 0; /* is null */
2876 } else {
2877 var20 = 1; /* arg is null and recv is not */
2878 }
2879 if (var20){
2880 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode7) /* add on <var_listnode10:Array[Object]>*/;
2881 } else {
2882 }
2883 var21 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
2884 var22 = NULL;
2885 ((void (*)(val*, val*, val*, val*, val*))(var21->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var21, var22, var_listnode4, var_listnode5, var_listnode10) /* init_amodule on <var21:AModule>*/;
2886 var_pmodulenode1 = var21;
2887 var_node_list = var_pmodulenode1;
2888 var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction26> */
2889 var24 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var23) /* go_to on <var_p:Parser>*/;
2890 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var24, var_node_list) /* push on <var_p:Parser>*/;
2891 RET_LABEL:;
2892 }
2893 /* method parser#ReduceAction26#action for (self: Object, Parser) */
2894 void VIRTUAL_parser__ReduceAction26__action(val* self, val* p0) {
2895 parser__ReduceAction26__action(self, p0);
2896 RET_LABEL:;
2897 }
2898 /* method parser#ReduceAction27#action for (self: ReduceAction27, Parser) */
2899 void parser__ReduceAction27__action(val* self, val* p0) {
2900 val* var_p /* var p: Parser */;
2901 val* var /* : null */;
2902 val* var_node_list /* var node_list: nullable Object */;
2903 val* var1 /* : nullable Object */;
2904 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2905 val* var2 /* : nullable Object */;
2906 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2907 val* var3 /* : nullable Object */;
2908 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2909 val* var4 /* : nullable Object */;
2910 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2911 val* var5 /* : Array[Object] */;
2912 val* var_listnode4 /* var listnode4: Array[Object] */;
2913 val* var6 /* : Array[Object] */;
2914 val* var_listnode5 /* var listnode5: Array[Object] */;
2915 val* var7 /* : Array[Object] */;
2916 val* var_listnode10 /* var listnode10: Array[Object] */;
2917 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
2918 short int var8 /* : Bool */;
2919 int cltype;
2920 int idtype;
2921 val* var_listnode3 /* var listnode3: nullable Object */;
2922 short int var9 /* : Bool */;
2923 int cltype10;
2924 int idtype11;
2925 val* var12 /* : Array[Object] */;
2926 val* var_listnode6 /* var listnode6: nullable Object */;
2927 short int var13 /* : Bool */;
2928 int cltype14;
2929 int idtype15;
2930 val* var16 /* : Array[Object] */;
2931 val* var_listnode9 /* var listnode9: Array[Object] */;
2932 val* var_listnode8 /* var listnode8: nullable Object */;
2933 short int var17 /* : Bool */;
2934 int cltype18;
2935 int idtype19;
2936 val* var20 /* : Array[Object] */;
2937 val* var21 /* : ATopClassdef */;
2938 val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */;
2939 val* var22 /* : Array[Object] */;
2940 val* var23 /* : null */;
2941 short int var24 /* : Bool */;
2942 val* var25 /* : AModule */;
2943 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
2944 long var26 /* : Int */;
2945 long var27 /* : Int */;
2946 var_p = p0;
2947 var = NULL;
2948 var_node_list = var;
2949 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2950 var_nodearraylist4 = var1;
2951 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2952 var_nodearraylist3 = var2;
2953 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2954 var_nodearraylist2 = var3;
2955 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2956 var_nodearraylist1 = var4;
2957 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
2958 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
2959 var_listnode4 = var5;
2960 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
2961 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
2962 var_listnode5 = var6;
2963 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
2964 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
2965 var_listnode10 = var7;
2966 var_pmoduledeclnode2 = var_nodearraylist1;
2967 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
2968 cltype = type_nullable_parser_nodes__AModuledecl.color;
2969 idtype = type_nullable_parser_nodes__AModuledecl.id;
2970 if(var_pmoduledeclnode2 == NULL) {
2971 var8 = 1;
2972 } else {
2973 if(cltype >= var_pmoduledeclnode2->type->table_size) {
2974 var8 = 0;
2975 } else {
2976 var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
2977 }
2978 }
2979 if (!var8) {
2980 fprintf(stderr, "Runtime error: %s", "Assert failed");
2981 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2614);
2982 show_backtrace(1);
2983 }
2984 var_listnode3 = var_nodearraylist2;
2985 /* <var_listnode3:nullable Object> isa Array[Object] */
2986 cltype10 = type_array__Arraykernel__Object.color;
2987 idtype11 = type_array__Arraykernel__Object.id;
2988 if(var_listnode3 == NULL) {
2989 var9 = 0;
2990 } else {
2991 if(cltype10 >= var_listnode3->type->table_size) {
2992 var9 = 0;
2993 } else {
2994 var9 = var_listnode3->type->type_table[cltype10] == idtype11;
2995 }
2996 }
2997 if (!var9) {
2998 fprintf(stderr, "Runtime error: %s", "Assert failed");
2999 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2616);
3000 show_backtrace(1);
3001 }
3002 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction27>*/;
3003 var_listnode4 = var12;
3004 var_listnode6 = var_nodearraylist3;
3005 /* <var_listnode6:nullable Object> isa Array[Object] */
3006 cltype14 = type_array__Arraykernel__Object.color;
3007 idtype15 = type_array__Arraykernel__Object.id;
3008 if(var_listnode6 == NULL) {
3009 var13 = 0;
3010 } else {
3011 if(cltype14 >= var_listnode6->type->table_size) {
3012 var13 = 0;
3013 } else {
3014 var13 = var_listnode6->type->type_table[cltype14] == idtype15;
3015 }
3016 }
3017 if (!var13) {
3018 fprintf(stderr, "Runtime error: %s", "Assert failed");
3019 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2619);
3020 show_backtrace(1);
3021 }
3022 var16 = NEW_array__Array(&type_array__Arraykernel__Object);
3023 ((void (*)(val*))(var16->class->vft[COLOR_array__Array__init]))(var16) /* init on <var16:Array[Object]>*/;
3024 var_listnode9 = var16;
3025 var_listnode8 = var_nodearraylist4;
3026 /* <var_listnode8:nullable Object> isa Array[Object] */
3027 cltype18 = type_array__Arraykernel__Object.color;
3028 idtype19 = type_array__Arraykernel__Object.id;
3029 if(var_listnode8 == NULL) {
3030 var17 = 0;
3031 } else {
3032 if(cltype18 >= var_listnode8->type->table_size) {
3033 var17 = 0;
3034 } else {
3035 var17 = var_listnode8->type->type_table[cltype18] == idtype19;
3036 }
3037 }
3038 if (!var17) {
3039 fprintf(stderr, "Runtime error: %s", "Assert failed");
3040 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2622);
3041 show_backtrace(1);
3042 }
3043 var20 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction27>*/;
3044 var_listnode9 = var20;
3045 var21 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
3046 ((void (*)(val*, val*))(var21->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var21, var_listnode9) /* init_atopclassdef on <var21:ATopClassdef>*/;
3047 var_pclassdefnode7 = var21;
3048 var22 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode6) /* concat on <self:ReduceAction27>*/;
3049 var_listnode10 = var22;
3050 var23 = NULL;
3051 if (var_pclassdefnode7 == NULL) {
3052 var24 = 0; /* is null */
3053 } else {
3054 var24 = 1; /* arg is null and recv is not */
3055 }
3056 if (var24){
3057 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode7) /* add on <var_listnode10:Array[Object]>*/;
3058 } else {
3059 }
3060 var25 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
3061 ((void (*)(val*, val*, val*, val*, val*))(var25->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var25, var_pmoduledeclnode2, var_listnode4, var_listnode5, var_listnode10) /* init_amodule on <var25:AModule>*/;
3062 var_pmodulenode1 = var25;
3063 var_node_list = var_pmodulenode1;
3064 var26 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction27> */
3065 var27 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var26) /* go_to on <var_p:Parser>*/;
3066 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var27, var_node_list) /* push on <var_p:Parser>*/;
3067 RET_LABEL:;
3068 }
3069 /* method parser#ReduceAction27#action for (self: Object, Parser) */
3070 void VIRTUAL_parser__ReduceAction27__action(val* self, val* p0) {
3071 parser__ReduceAction27__action(self, p0);
3072 RET_LABEL:;
3073 }
3074 /* method parser#ReduceAction28#action for (self: ReduceAction28, Parser) */
3075 void parser__ReduceAction28__action(val* self, val* p0) {
3076 val* var_p /* var p: Parser */;
3077 val* var /* : null */;
3078 val* var_node_list /* var node_list: nullable Object */;
3079 val* var1 /* : nullable Object */;
3080 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3081 val* var2 /* : nullable Object */;
3082 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3083 val* var3 /* : nullable Object */;
3084 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3085 val* var4 /* : Array[Object] */;
3086 val* var_listnode3 /* var listnode3: Array[Object] */;
3087 val* var5 /* : Array[Object] */;
3088 val* var_listnode5 /* var listnode5: Array[Object] */;
3089 val* var6 /* : Array[Object] */;
3090 val* var_listnode10 /* var listnode10: Array[Object] */;
3091 val* var_listnode4 /* var listnode4: nullable Object */;
3092 short int var7 /* : Bool */;
3093 int cltype;
3094 int idtype;
3095 val* var8 /* : Array[Object] */;
3096 val* var_listnode6 /* var listnode6: nullable Object */;
3097 short int var9 /* : Bool */;
3098 int cltype10;
3099 int idtype11;
3100 val* var12 /* : Array[Object] */;
3101 val* var_listnode9 /* var listnode9: Array[Object] */;
3102 val* var_listnode8 /* var listnode8: nullable Object */;
3103 short int var13 /* : Bool */;
3104 int cltype14;
3105 int idtype15;
3106 val* var16 /* : Array[Object] */;
3107 val* var17 /* : ATopClassdef */;
3108 val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */;
3109 val* var18 /* : Array[Object] */;
3110 val* var19 /* : null */;
3111 short int var20 /* : Bool */;
3112 val* var21 /* : AModule */;
3113 val* var22 /* : null */;
3114 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
3115 long var23 /* : Int */;
3116 long var24 /* : Int */;
3117 var_p = p0;
3118 var = NULL;
3119 var_node_list = var;
3120 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3121 var_nodearraylist3 = var1;
3122 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3123 var_nodearraylist2 = var2;
3124 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3125 var_nodearraylist1 = var3;
3126 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
3127 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
3128 var_listnode3 = var4;
3129 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
3130 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
3131 var_listnode5 = var5;
3132 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
3133 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
3134 var_listnode10 = var6;
3135 var_listnode4 = var_nodearraylist1;
3136 /* <var_listnode4:nullable Object> isa Array[Object] */
3137 cltype = type_array__Arraykernel__Object.color;
3138 idtype = type_array__Arraykernel__Object.id;
3139 if(var_listnode4 == NULL) {
3140 var7 = 0;
3141 } else {
3142 if(cltype >= var_listnode4->type->table_size) {
3143 var7 = 0;
3144 } else {
3145 var7 = var_listnode4->type->type_table[cltype] == idtype;
3146 }
3147 }
3148 if (!var7) {
3149 fprintf(stderr, "Runtime error: %s", "Assert failed");
3150 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2653);
3151 show_backtrace(1);
3152 }
3153 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction28>*/;
3154 var_listnode5 = var8;
3155 var_listnode6 = var_nodearraylist2;
3156 /* <var_listnode6:nullable Object> isa Array[Object] */
3157 cltype10 = type_array__Arraykernel__Object.color;
3158 idtype11 = type_array__Arraykernel__Object.id;
3159 if(var_listnode6 == NULL) {
3160 var9 = 0;
3161 } else {
3162 if(cltype10 >= var_listnode6->type->table_size) {
3163 var9 = 0;
3164 } else {
3165 var9 = var_listnode6->type->type_table[cltype10] == idtype11;
3166 }
3167 }
3168 if (!var9) {
3169 fprintf(stderr, "Runtime error: %s", "Assert failed");
3170 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2656);
3171 show_backtrace(1);
3172 }
3173 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
3174 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
3175 var_listnode9 = var12;
3176 var_listnode8 = var_nodearraylist3;
3177 /* <var_listnode8:nullable Object> isa Array[Object] */
3178 cltype14 = type_array__Arraykernel__Object.color;
3179 idtype15 = type_array__Arraykernel__Object.id;
3180 if(var_listnode8 == NULL) {
3181 var13 = 0;
3182 } else {
3183 if(cltype14 >= var_listnode8->type->table_size) {
3184 var13 = 0;
3185 } else {
3186 var13 = var_listnode8->type->type_table[cltype14] == idtype15;
3187 }
3188 }
3189 if (!var13) {
3190 fprintf(stderr, "Runtime error: %s", "Assert failed");
3191 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2659);
3192 show_backtrace(1);
3193 }
3194 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction28>*/;
3195 var_listnode9 = var16;
3196 var17 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
3197 ((void (*)(val*, val*))(var17->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var17, var_listnode9) /* init_atopclassdef on <var17:ATopClassdef>*/;
3198 var_pclassdefnode7 = var17;
3199 var18 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode6) /* concat on <self:ReduceAction28>*/;
3200 var_listnode10 = var18;
3201 var19 = NULL;
3202 if (var_pclassdefnode7 == NULL) {
3203 var20 = 0; /* is null */
3204 } else {
3205 var20 = 1; /* arg is null and recv is not */
3206 }
3207 if (var20){
3208 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode7) /* add on <var_listnode10:Array[Object]>*/;
3209 } else {
3210 }
3211 var21 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
3212 var22 = NULL;
3213 ((void (*)(val*, val*, val*, val*, val*))(var21->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var21, var22, var_listnode3, var_listnode5, var_listnode10) /* init_amodule on <var21:AModule>*/;
3214 var_pmodulenode1 = var21;
3215 var_node_list = var_pmodulenode1;
3216 var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction28> */
3217 var24 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var23) /* go_to on <var_p:Parser>*/;
3218 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var24, var_node_list) /* push on <var_p:Parser>*/;
3219 RET_LABEL:;
3220 }
3221 /* method parser#ReduceAction28#action for (self: Object, Parser) */
3222 void VIRTUAL_parser__ReduceAction28__action(val* self, val* p0) {
3223 parser__ReduceAction28__action(self, p0);
3224 RET_LABEL:;
3225 }
3226 /* method parser#ReduceAction29#action for (self: ReduceAction29, Parser) */
3227 void parser__ReduceAction29__action(val* self, val* p0) {
3228 val* var_p /* var p: Parser */;
3229 val* var /* : null */;
3230 val* var_node_list /* var node_list: nullable Object */;
3231 val* var1 /* : nullable Object */;
3232 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3233 val* var2 /* : nullable Object */;
3234 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3235 val* var3 /* : nullable Object */;
3236 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3237 val* var4 /* : nullable Object */;
3238 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3239 val* var5 /* : Array[Object] */;
3240 val* var_listnode3 /* var listnode3: Array[Object] */;
3241 val* var6 /* : Array[Object] */;
3242 val* var_listnode5 /* var listnode5: Array[Object] */;
3243 val* var7 /* : Array[Object] */;
3244 val* var_listnode10 /* var listnode10: Array[Object] */;
3245 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
3246 short int var8 /* : Bool */;
3247 int cltype;
3248 int idtype;
3249 val* var_listnode4 /* var listnode4: nullable Object */;
3250 short int var9 /* : Bool */;
3251 int cltype10;
3252 int idtype11;
3253 val* var12 /* : Array[Object] */;
3254 val* var_listnode6 /* var listnode6: nullable Object */;
3255 short int var13 /* : Bool */;
3256 int cltype14;
3257 int idtype15;
3258 val* var16 /* : Array[Object] */;
3259 val* var_listnode9 /* var listnode9: Array[Object] */;
3260 val* var_listnode8 /* var listnode8: nullable Object */;
3261 short int var17 /* : Bool */;
3262 int cltype18;
3263 int idtype19;
3264 val* var20 /* : Array[Object] */;
3265 val* var21 /* : ATopClassdef */;
3266 val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */;
3267 val* var22 /* : Array[Object] */;
3268 val* var23 /* : null */;
3269 short int var24 /* : Bool */;
3270 val* var25 /* : AModule */;
3271 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
3272 long var26 /* : Int */;
3273 long var27 /* : Int */;
3274 var_p = p0;
3275 var = NULL;
3276 var_node_list = var;
3277 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3278 var_nodearraylist4 = var1;
3279 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3280 var_nodearraylist3 = var2;
3281 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3282 var_nodearraylist2 = var3;
3283 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3284 var_nodearraylist1 = var4;
3285 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
3286 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
3287 var_listnode3 = var5;
3288 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
3289 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
3290 var_listnode5 = var6;
3291 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
3292 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
3293 var_listnode10 = var7;
3294 var_pmoduledeclnode2 = var_nodearraylist1;
3295 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
3296 cltype = type_nullable_parser_nodes__AModuledecl.color;
3297 idtype = type_nullable_parser_nodes__AModuledecl.id;
3298 if(var_pmoduledeclnode2 == NULL) {
3299 var8 = 1;
3300 } else {
3301 if(cltype >= var_pmoduledeclnode2->type->table_size) {
3302 var8 = 0;
3303 } else {
3304 var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
3305 }
3306 }
3307 if (!var8) {
3308 fprintf(stderr, "Runtime error: %s", "Assert failed");
3309 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2691);
3310 show_backtrace(1);
3311 }
3312 var_listnode4 = var_nodearraylist2;
3313 /* <var_listnode4:nullable Object> isa Array[Object] */
3314 cltype10 = type_array__Arraykernel__Object.color;
3315 idtype11 = type_array__Arraykernel__Object.id;
3316 if(var_listnode4 == NULL) {
3317 var9 = 0;
3318 } else {
3319 if(cltype10 >= var_listnode4->type->table_size) {
3320 var9 = 0;
3321 } else {
3322 var9 = var_listnode4->type->type_table[cltype10] == idtype11;
3323 }
3324 }
3325 if (!var9) {
3326 fprintf(stderr, "Runtime error: %s", "Assert failed");
3327 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2693);
3328 show_backtrace(1);
3329 }
3330 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction29>*/;
3331 var_listnode5 = var12;
3332 var_listnode6 = var_nodearraylist3;
3333 /* <var_listnode6:nullable Object> isa Array[Object] */
3334 cltype14 = type_array__Arraykernel__Object.color;
3335 idtype15 = type_array__Arraykernel__Object.id;
3336 if(var_listnode6 == NULL) {
3337 var13 = 0;
3338 } else {
3339 if(cltype14 >= var_listnode6->type->table_size) {
3340 var13 = 0;
3341 } else {
3342 var13 = var_listnode6->type->type_table[cltype14] == idtype15;
3343 }
3344 }
3345 if (!var13) {
3346 fprintf(stderr, "Runtime error: %s", "Assert failed");
3347 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2696);
3348 show_backtrace(1);
3349 }
3350 var16 = NEW_array__Array(&type_array__Arraykernel__Object);
3351 ((void (*)(val*))(var16->class->vft[COLOR_array__Array__init]))(var16) /* init on <var16:Array[Object]>*/;
3352 var_listnode9 = var16;
3353 var_listnode8 = var_nodearraylist4;
3354 /* <var_listnode8:nullable Object> isa Array[Object] */
3355 cltype18 = type_array__Arraykernel__Object.color;
3356 idtype19 = type_array__Arraykernel__Object.id;
3357 if(var_listnode8 == NULL) {
3358 var17 = 0;
3359 } else {
3360 if(cltype18 >= var_listnode8->type->table_size) {
3361 var17 = 0;
3362 } else {
3363 var17 = var_listnode8->type->type_table[cltype18] == idtype19;
3364 }
3365 }
3366 if (!var17) {
3367 fprintf(stderr, "Runtime error: %s", "Assert failed");
3368 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2699);
3369 show_backtrace(1);
3370 }
3371 var20 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction29>*/;
3372 var_listnode9 = var20;
3373 var21 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
3374 ((void (*)(val*, val*))(var21->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var21, var_listnode9) /* init_atopclassdef on <var21:ATopClassdef>*/;
3375 var_pclassdefnode7 = var21;
3376 var22 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode6) /* concat on <self:ReduceAction29>*/;
3377 var_listnode10 = var22;
3378 var23 = NULL;
3379 if (var_pclassdefnode7 == NULL) {
3380 var24 = 0; /* is null */
3381 } else {
3382 var24 = 1; /* arg is null and recv is not */
3383 }
3384 if (var24){
3385 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode7) /* add on <var_listnode10:Array[Object]>*/;
3386 } else {
3387 }
3388 var25 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
3389 ((void (*)(val*, val*, val*, val*, val*))(var25->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var25, var_pmoduledeclnode2, var_listnode3, var_listnode5, var_listnode10) /* init_amodule on <var25:AModule>*/;
3390 var_pmodulenode1 = var25;
3391 var_node_list = var_pmodulenode1;
3392 var26 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction29> */
3393 var27 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var26) /* go_to on <var_p:Parser>*/;
3394 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var27, var_node_list) /* push on <var_p:Parser>*/;
3395 RET_LABEL:;
3396 }
3397 /* method parser#ReduceAction29#action for (self: Object, Parser) */
3398 void VIRTUAL_parser__ReduceAction29__action(val* self, val* p0) {
3399 parser__ReduceAction29__action(self, p0);
3400 RET_LABEL:;
3401 }
3402 /* method parser#ReduceAction30#action for (self: ReduceAction30, Parser) */
3403 void parser__ReduceAction30__action(val* self, val* p0) {
3404 val* var_p /* var p: Parser */;
3405 val* var /* : null */;
3406 val* var_node_list /* var node_list: nullable Object */;
3407 val* var1 /* : nullable Object */;
3408 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3409 val* var2 /* : nullable Object */;
3410 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3411 val* var3 /* : nullable Object */;
3412 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3413 val* var4 /* : nullable Object */;
3414 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3415 val* var5 /* : Array[Object] */;
3416 val* var_listnode4 /* var listnode4: Array[Object] */;
3417 val* var6 /* : Array[Object] */;
3418 val* var_listnode6 /* var listnode6: Array[Object] */;
3419 val* var7 /* : Array[Object] */;
3420 val* var_listnode11 /* var listnode11: Array[Object] */;
3421 val* var_listnode3 /* var listnode3: nullable Object */;
3422 short int var8 /* : Bool */;
3423 int cltype;
3424 int idtype;
3425 val* var9 /* : Array[Object] */;
3426 val* var_listnode5 /* var listnode5: nullable Object */;
3427 short int var10 /* : Bool */;
3428 int cltype11;
3429 int idtype12;
3430 val* var13 /* : Array[Object] */;
3431 val* var_listnode7 /* var listnode7: nullable Object */;
3432 short int var14 /* : Bool */;
3433 int cltype15;
3434 int idtype16;
3435 val* var17 /* : Array[Object] */;
3436 val* var_listnode10 /* var listnode10: Array[Object] */;
3437 val* var_listnode9 /* var listnode9: nullable Object */;
3438 short int var18 /* : Bool */;
3439 int cltype19;
3440 int idtype20;
3441 val* var21 /* : Array[Object] */;
3442 val* var22 /* : ATopClassdef */;
3443 val* var_pclassdefnode8 /* var pclassdefnode8: nullable ATopClassdef */;
3444 val* var23 /* : Array[Object] */;
3445 val* var24 /* : null */;
3446 short int var25 /* : Bool */;
3447 val* var26 /* : AModule */;
3448 val* var27 /* : null */;
3449 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
3450 long var28 /* : Int */;
3451 long var29 /* : Int */;
3452 var_p = p0;
3453 var = NULL;
3454 var_node_list = var;
3455 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3456 var_nodearraylist4 = var1;
3457 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3458 var_nodearraylist3 = var2;
3459 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3460 var_nodearraylist2 = var3;
3461 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3462 var_nodearraylist1 = var4;
3463 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
3464 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
3465 var_listnode4 = var5;
3466 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
3467 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
3468 var_listnode6 = var6;
3469 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
3470 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
3471 var_listnode11 = var7;
3472 var_listnode3 = var_nodearraylist1;
3473 /* <var_listnode3:nullable Object> isa Array[Object] */
3474 cltype = type_array__Arraykernel__Object.color;
3475 idtype = type_array__Arraykernel__Object.id;
3476 if(var_listnode3 == NULL) {
3477 var8 = 0;
3478 } else {
3479 if(cltype >= var_listnode3->type->table_size) {
3480 var8 = 0;
3481 } else {
3482 var8 = var_listnode3->type->type_table[cltype] == idtype;
3483 }
3484 }
3485 if (!var8) {
3486 fprintf(stderr, "Runtime error: %s", "Assert failed");
3487 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2731);
3488 show_backtrace(1);
3489 }
3490 var9 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction30>*/;
3491 var_listnode4 = var9;
3492 var_listnode5 = var_nodearraylist2;
3493 /* <var_listnode5:nullable Object> isa Array[Object] */
3494 cltype11 = type_array__Arraykernel__Object.color;
3495 idtype12 = type_array__Arraykernel__Object.id;
3496 if(var_listnode5 == NULL) {
3497 var10 = 0;
3498 } else {
3499 if(cltype11 >= var_listnode5->type->table_size) {
3500 var10 = 0;
3501 } else {
3502 var10 = var_listnode5->type->type_table[cltype11] == idtype12;
3503 }
3504 }
3505 if (!var10) {
3506 fprintf(stderr, "Runtime error: %s", "Assert failed");
3507 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2734);
3508 show_backtrace(1);
3509 }
3510 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction30>*/;
3511 var_listnode6 = var13;
3512 var_listnode7 = var_nodearraylist3;
3513 /* <var_listnode7:nullable Object> isa Array[Object] */
3514 cltype15 = type_array__Arraykernel__Object.color;
3515 idtype16 = type_array__Arraykernel__Object.id;
3516 if(var_listnode7 == NULL) {
3517 var14 = 0;
3518 } else {
3519 if(cltype15 >= var_listnode7->type->table_size) {
3520 var14 = 0;
3521 } else {
3522 var14 = var_listnode7->type->type_table[cltype15] == idtype16;
3523 }
3524 }
3525 if (!var14) {
3526 fprintf(stderr, "Runtime error: %s", "Assert failed");
3527 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2737);
3528 show_backtrace(1);
3529 }
3530 var17 = NEW_array__Array(&type_array__Arraykernel__Object);
3531 ((void (*)(val*))(var17->class->vft[COLOR_array__Array__init]))(var17) /* init on <var17:Array[Object]>*/;
3532 var_listnode10 = var17;
3533 var_listnode9 = var_nodearraylist4;
3534 /* <var_listnode9:nullable Object> isa Array[Object] */
3535 cltype19 = type_array__Arraykernel__Object.color;
3536 idtype20 = type_array__Arraykernel__Object.id;
3537 if(var_listnode9 == NULL) {
3538 var18 = 0;
3539 } else {
3540 if(cltype19 >= var_listnode9->type->table_size) {
3541 var18 = 0;
3542 } else {
3543 var18 = var_listnode9->type->type_table[cltype19] == idtype20;
3544 }
3545 }
3546 if (!var18) {
3547 fprintf(stderr, "Runtime error: %s", "Assert failed");
3548 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2740);
3549 show_backtrace(1);
3550 }
3551 var21 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode9) /* concat on <self:ReduceAction30>*/;
3552 var_listnode10 = var21;
3553 var22 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
3554 ((void (*)(val*, val*))(var22->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var22, var_listnode10) /* init_atopclassdef on <var22:ATopClassdef>*/;
3555 var_pclassdefnode8 = var22;
3556 var23 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode11, var_listnode7) /* concat on <self:ReduceAction30>*/;
3557 var_listnode11 = var23;
3558 var24 = NULL;
3559 if (var_pclassdefnode8 == NULL) {
3560 var25 = 0; /* is null */
3561 } else {
3562 var25 = 1; /* arg is null and recv is not */
3563 }
3564 if (var25){
3565 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode8) /* add on <var_listnode11:Array[Object]>*/;
3566 } else {
3567 }
3568 var26 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
3569 var27 = NULL;
3570 ((void (*)(val*, val*, val*, val*, val*))(var26->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var26, var27, var_listnode4, var_listnode6, var_listnode11) /* init_amodule on <var26:AModule>*/;
3571 var_pmodulenode1 = var26;
3572 var_node_list = var_pmodulenode1;
3573 var28 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction30> */
3574 var29 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var28) /* go_to on <var_p:Parser>*/;
3575 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var29, var_node_list) /* push on <var_p:Parser>*/;
3576 RET_LABEL:;
3577 }
3578 /* method parser#ReduceAction30#action for (self: Object, Parser) */
3579 void VIRTUAL_parser__ReduceAction30__action(val* self, val* p0) {
3580 parser__ReduceAction30__action(self, p0);
3581 RET_LABEL:;
3582 }
3583 /* method parser#ReduceAction31#action for (self: ReduceAction31, Parser) */
3584 void parser__ReduceAction31__action(val* self, val* p0) {
3585 val* var_p /* var p: Parser */;
3586 val* var /* : null */;
3587 val* var_node_list /* var node_list: nullable Object */;
3588 val* var1 /* : nullable Object */;
3589 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
3590 val* var2 /* : nullable Object */;
3591 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3592 val* var3 /* : nullable Object */;
3593 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3594 val* var4 /* : nullable Object */;
3595 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3596 val* var5 /* : nullable Object */;
3597 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3598 val* var6 /* : Array[Object] */;
3599 val* var_listnode4 /* var listnode4: Array[Object] */;
3600 val* var7 /* : Array[Object] */;
3601 val* var_listnode6 /* var listnode6: Array[Object] */;
3602 val* var8 /* : Array[Object] */;
3603 val* var_listnode11 /* var listnode11: Array[Object] */;
3604 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
3605 short int var9 /* : Bool */;
3606 int cltype;
3607 int idtype;
3608 val* var_listnode3 /* var listnode3: nullable Object */;
3609 short int var10 /* : Bool */;
3610 int cltype11;
3611 int idtype12;
3612 val* var13 /* : Array[Object] */;
3613 val* var_listnode5 /* var listnode5: nullable Object */;
3614 short int var14 /* : Bool */;
3615 int cltype15;
3616 int idtype16;
3617 val* var17 /* : Array[Object] */;
3618 val* var_listnode7 /* var listnode7: nullable Object */;
3619 short int var18 /* : Bool */;
3620 int cltype19;
3621 int idtype20;
3622 val* var21 /* : Array[Object] */;
3623 val* var_listnode10 /* var listnode10: Array[Object] */;
3624 val* var_listnode9 /* var listnode9: nullable Object */;
3625 short int var22 /* : Bool */;
3626 int cltype23;
3627 int idtype24;
3628 val* var25 /* : Array[Object] */;
3629 val* var26 /* : ATopClassdef */;
3630 val* var_pclassdefnode8 /* var pclassdefnode8: nullable ATopClassdef */;
3631 val* var27 /* : Array[Object] */;
3632 val* var28 /* : null */;
3633 short int var29 /* : Bool */;
3634 val* var30 /* : AModule */;
3635 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
3636 long var31 /* : Int */;
3637 long var32 /* : Int */;
3638 var_p = p0;
3639 var = NULL;
3640 var_node_list = var;
3641 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3642 var_nodearraylist5 = var1;
3643 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3644 var_nodearraylist4 = var2;
3645 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3646 var_nodearraylist3 = var3;
3647 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3648 var_nodearraylist2 = var4;
3649 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3650 var_nodearraylist1 = var5;
3651 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
3652 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
3653 var_listnode4 = var6;
3654 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
3655 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
3656 var_listnode6 = var7;
3657 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
3658 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
3659 var_listnode11 = var8;
3660 var_pmoduledeclnode2 = var_nodearraylist1;
3661 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
3662 cltype = type_nullable_parser_nodes__AModuledecl.color;
3663 idtype = type_nullable_parser_nodes__AModuledecl.id;
3664 if(var_pmoduledeclnode2 == NULL) {
3665 var9 = 1;
3666 } else {
3667 if(cltype >= var_pmoduledeclnode2->type->table_size) {
3668 var9 = 0;
3669 } else {
3670 var9 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
3671 }
3672 }
3673 if (!var9) {
3674 fprintf(stderr, "Runtime error: %s", "Assert failed");
3675 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2773);
3676 show_backtrace(1);
3677 }
3678 var_listnode3 = var_nodearraylist2;
3679 /* <var_listnode3:nullable Object> isa Array[Object] */
3680 cltype11 = type_array__Arraykernel__Object.color;
3681 idtype12 = type_array__Arraykernel__Object.id;
3682 if(var_listnode3 == NULL) {
3683 var10 = 0;
3684 } else {
3685 if(cltype11 >= var_listnode3->type->table_size) {
3686 var10 = 0;
3687 } else {
3688 var10 = var_listnode3->type->type_table[cltype11] == idtype12;
3689 }
3690 }
3691 if (!var10) {
3692 fprintf(stderr, "Runtime error: %s", "Assert failed");
3693 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2775);
3694 show_backtrace(1);
3695 }
3696 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction31>*/;
3697 var_listnode4 = var13;
3698 var_listnode5 = var_nodearraylist3;
3699 /* <var_listnode5:nullable Object> isa Array[Object] */
3700 cltype15 = type_array__Arraykernel__Object.color;
3701 idtype16 = type_array__Arraykernel__Object.id;
3702 if(var_listnode5 == NULL) {
3703 var14 = 0;
3704 } else {
3705 if(cltype15 >= var_listnode5->type->table_size) {
3706 var14 = 0;
3707 } else {
3708 var14 = var_listnode5->type->type_table[cltype15] == idtype16;
3709 }
3710 }
3711 if (!var14) {
3712 fprintf(stderr, "Runtime error: %s", "Assert failed");
3713 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2778);
3714 show_backtrace(1);
3715 }
3716 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction31>*/;
3717 var_listnode6 = var17;
3718 var_listnode7 = var_nodearraylist4;
3719 /* <var_listnode7:nullable Object> isa Array[Object] */
3720 cltype19 = type_array__Arraykernel__Object.color;
3721 idtype20 = type_array__Arraykernel__Object.id;
3722 if(var_listnode7 == NULL) {
3723 var18 = 0;
3724 } else {
3725 if(cltype19 >= var_listnode7->type->table_size) {
3726 var18 = 0;
3727 } else {
3728 var18 = var_listnode7->type->type_table[cltype19] == idtype20;
3729 }
3730 }
3731 if (!var18) {
3732 fprintf(stderr, "Runtime error: %s", "Assert failed");
3733 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2781);
3734 show_backtrace(1);
3735 }
3736 var21 = NEW_array__Array(&type_array__Arraykernel__Object);
3737 ((void (*)(val*))(var21->class->vft[COLOR_array__Array__init]))(var21) /* init on <var21:Array[Object]>*/;
3738 var_listnode10 = var21;
3739 var_listnode9 = var_nodearraylist5;
3740 /* <var_listnode9:nullable Object> isa Array[Object] */
3741 cltype23 = type_array__Arraykernel__Object.color;
3742 idtype24 = type_array__Arraykernel__Object.id;
3743 if(var_listnode9 == NULL) {
3744 var22 = 0;
3745 } else {
3746 if(cltype23 >= var_listnode9->type->table_size) {
3747 var22 = 0;
3748 } else {
3749 var22 = var_listnode9->type->type_table[cltype23] == idtype24;
3750 }
3751 }
3752 if (!var22) {
3753 fprintf(stderr, "Runtime error: %s", "Assert failed");
3754 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2784);
3755 show_backtrace(1);
3756 }
3757 var25 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode9) /* concat on <self:ReduceAction31>*/;
3758 var_listnode10 = var25;
3759 var26 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
3760 ((void (*)(val*, val*))(var26->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var26, var_listnode10) /* init_atopclassdef on <var26:ATopClassdef>*/;
3761 var_pclassdefnode8 = var26;
3762 var27 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode11, var_listnode7) /* concat on <self:ReduceAction31>*/;
3763 var_listnode11 = var27;
3764 var28 = NULL;
3765 if (var_pclassdefnode8 == NULL) {
3766 var29 = 0; /* is null */
3767 } else {
3768 var29 = 1; /* arg is null and recv is not */
3769 }
3770 if (var29){
3771 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode8) /* add on <var_listnode11:Array[Object]>*/;
3772 } else {
3773 }
3774 var30 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
3775 ((void (*)(val*, val*, val*, val*, val*))(var30->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var30, var_pmoduledeclnode2, var_listnode4, var_listnode6, var_listnode11) /* init_amodule on <var30:AModule>*/;
3776 var_pmodulenode1 = var30;
3777 var_node_list = var_pmodulenode1;
3778 var31 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction31> */
3779 var32 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var31) /* go_to on <var_p:Parser>*/;
3780 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var32, var_node_list) /* push on <var_p:Parser>*/;
3781 RET_LABEL:;
3782 }
3783 /* method parser#ReduceAction31#action for (self: Object, Parser) */
3784 void VIRTUAL_parser__ReduceAction31__action(val* self, val* p0) {
3785 parser__ReduceAction31__action(self, p0);
3786 RET_LABEL:;
3787 }
3788 /* method parser#ReduceAction32#action for (self: ReduceAction32, Parser) */
3789 void parser__ReduceAction32__action(val* self, val* p0) {
3790 val* var_p /* var p: Parser */;
3791 val* var /* : null */;
3792 val* var_node_list /* var node_list: nullable Object */;
3793 val* var1 /* : nullable Object */;
3794 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3795 val* var2 /* : Array[Object] */;
3796 val* var_listnode3 /* var listnode3: Array[Object] */;
3797 val* var3 /* : Array[Object] */;
3798 val* var_listnode4 /* var listnode4: Array[Object] */;
3799 val* var4 /* : Array[Object] */;
3800 val* var_listnode6 /* var listnode6: Array[Object] */;
3801 val* var_pclassdefnode5 /* var pclassdefnode5: nullable Object */;
3802 short int var5 /* : Bool */;
3803 int cltype;
3804 int idtype;
3805 val* var6 /* : null */;
3806 short int var7 /* : Bool */;
3807 val* var8 /* : AModule */;
3808 val* var9 /* : null */;
3809 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
3810 long var10 /* : Int */;
3811 long var11 /* : Int */;
3812 var_p = p0;
3813 var = NULL;
3814 var_node_list = var;
3815 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3816 var_nodearraylist1 = var1;
3817 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
3818 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
3819 var_listnode3 = var2;
3820 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
3821 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
3822 var_listnode4 = var3;
3823 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
3824 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
3825 var_listnode6 = var4;
3826 var_pclassdefnode5 = var_nodearraylist1;
3827 /* <var_pclassdefnode5:nullable Object> isa nullable AClassdef */
3828 cltype = type_nullable_parser_nodes__AClassdef.color;
3829 idtype = type_nullable_parser_nodes__AClassdef.id;
3830 if(var_pclassdefnode5 == NULL) {
3831 var5 = 1;
3832 } else {
3833 if(cltype >= var_pclassdefnode5->type->table_size) {
3834 var5 = 0;
3835 } else {
3836 var5 = var_pclassdefnode5->type->type_table[cltype] == idtype;
3837 }
3838 }
3839 if (!var5) {
3840 fprintf(stderr, "Runtime error: %s", "Assert failed");
3841 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2813);
3842 show_backtrace(1);
3843 }
3844 var6 = NULL;
3845 if (var_pclassdefnode5 == NULL) {
3846 var7 = 0; /* is null */
3847 } else {
3848 var7 = 1; /* arg is null and recv is not */
3849 }
3850 if (var7){
3851 ((void (*)(val*, val*))(var_listnode6->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode6, var_pclassdefnode5) /* add on <var_listnode6:Array[Object]>*/;
3852 } else {
3853 }
3854 var8 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
3855 var9 = NULL;
3856 ((void (*)(val*, val*, val*, val*, val*))(var8->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var8, var9, var_listnode3, var_listnode4, var_listnode6) /* init_amodule on <var8:AModule>*/;
3857 var_pmodulenode1 = var8;
3858 var_node_list = var_pmodulenode1;
3859 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction32> */
3860 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
3861 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
3862 RET_LABEL:;
3863 }
3864 /* method parser#ReduceAction32#action for (self: Object, Parser) */
3865 void VIRTUAL_parser__ReduceAction32__action(val* self, val* p0) {
3866 parser__ReduceAction32__action(self, p0);
3867 RET_LABEL:;
3868 }
3869 /* method parser#ReduceAction33#action for (self: ReduceAction33, Parser) */
3870 void parser__ReduceAction33__action(val* self, val* p0) {
3871 val* var_p /* var p: Parser */;
3872 val* var /* : null */;
3873 val* var_node_list /* var node_list: nullable Object */;
3874 val* var1 /* : nullable Object */;
3875 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3876 val* var2 /* : nullable Object */;
3877 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3878 val* var3 /* : Array[Object] */;
3879 val* var_listnode3 /* var listnode3: Array[Object] */;
3880 val* var4 /* : Array[Object] */;
3881 val* var_listnode4 /* var listnode4: Array[Object] */;
3882 val* var5 /* : Array[Object] */;
3883 val* var_listnode6 /* var listnode6: Array[Object] */;
3884 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
3885 short int var6 /* : Bool */;
3886 int cltype;
3887 int idtype;
3888 val* var_pclassdefnode5 /* var pclassdefnode5: nullable Object */;
3889 short int var7 /* : Bool */;
3890 int cltype8;
3891 int idtype9;
3892 val* var10 /* : null */;
3893 short int var11 /* : Bool */;
3894 val* var12 /* : AModule */;
3895 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
3896 long var13 /* : Int */;
3897 long var14 /* : Int */;
3898 var_p = p0;
3899 var = NULL;
3900 var_node_list = var;
3901 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3902 var_nodearraylist2 = var1;
3903 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3904 var_nodearraylist1 = var2;
3905 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
3906 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
3907 var_listnode3 = var3;
3908 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
3909 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
3910 var_listnode4 = var4;
3911 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
3912 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
3913 var_listnode6 = var5;
3914 var_pmoduledeclnode2 = var_nodearraylist1;
3915 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
3916 cltype = type_nullable_parser_nodes__AModuledecl.color;
3917 idtype = type_nullable_parser_nodes__AModuledecl.id;
3918 if(var_pmoduledeclnode2 == NULL) {
3919 var6 = 1;
3920 } else {
3921 if(cltype >= var_pmoduledeclnode2->type->table_size) {
3922 var6 = 0;
3923 } else {
3924 var6 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
3925 }
3926 }
3927 if (!var6) {
3928 fprintf(stderr, "Runtime error: %s", "Assert failed");
3929 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2838);
3930 show_backtrace(1);
3931 }
3932 var_pclassdefnode5 = var_nodearraylist2;
3933 /* <var_pclassdefnode5:nullable Object> isa nullable AClassdef */
3934 cltype8 = type_nullable_parser_nodes__AClassdef.color;
3935 idtype9 = type_nullable_parser_nodes__AClassdef.id;
3936 if(var_pclassdefnode5 == NULL) {
3937 var7 = 1;
3938 } else {
3939 if(cltype8 >= var_pclassdefnode5->type->table_size) {
3940 var7 = 0;
3941 } else {
3942 var7 = var_pclassdefnode5->type->type_table[cltype8] == idtype9;
3943 }
3944 }
3945 if (!var7) {
3946 fprintf(stderr, "Runtime error: %s", "Assert failed");
3947 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2840);
3948 show_backtrace(1);
3949 }
3950 var10 = NULL;
3951 if (var_pclassdefnode5 == NULL) {
3952 var11 = 0; /* is null */
3953 } else {
3954 var11 = 1; /* arg is null and recv is not */
3955 }
3956 if (var11){
3957 ((void (*)(val*, val*))(var_listnode6->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode6, var_pclassdefnode5) /* add on <var_listnode6:Array[Object]>*/;
3958 } else {
3959 }
3960 var12 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
3961 ((void (*)(val*, val*, val*, val*, val*))(var12->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var12, var_pmoduledeclnode2, var_listnode3, var_listnode4, var_listnode6) /* init_amodule on <var12:AModule>*/;
3962 var_pmodulenode1 = var12;
3963 var_node_list = var_pmodulenode1;
3964 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction33> */
3965 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
3966 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
3967 RET_LABEL:;
3968 }
3969 /* method parser#ReduceAction33#action for (self: Object, Parser) */
3970 void VIRTUAL_parser__ReduceAction33__action(val* self, val* p0) {
3971 parser__ReduceAction33__action(self, p0);
3972 RET_LABEL:;
3973 }
3974 /* method parser#ReduceAction34#action for (self: ReduceAction34, Parser) */
3975 void parser__ReduceAction34__action(val* self, val* p0) {
3976 val* var_p /* var p: Parser */;
3977 val* var /* : null */;
3978 val* var_node_list /* var node_list: nullable Object */;
3979 val* var1 /* : nullable Object */;
3980 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3981 val* var2 /* : nullable Object */;
3982 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3983 val* var3 /* : Array[Object] */;
3984 val* var_listnode4 /* var listnode4: Array[Object] */;
3985 val* var4 /* : Array[Object] */;
3986 val* var_listnode5 /* var listnode5: Array[Object] */;
3987 val* var5 /* : Array[Object] */;
3988 val* var_listnode7 /* var listnode7: Array[Object] */;
3989 val* var_listnode3 /* var listnode3: nullable Object */;
3990 short int var6 /* : Bool */;
3991 int cltype;
3992 int idtype;
3993 val* var7 /* : Array[Object] */;
3994 val* var_pclassdefnode6 /* var pclassdefnode6: nullable Object */;
3995 short int var8 /* : Bool */;
3996 int cltype9;
3997 int idtype10;
3998 val* var11 /* : null */;
3999 short int var12 /* : Bool */;
4000 val* var13 /* : AModule */;
4001 val* var14 /* : null */;
4002 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
4003 long var15 /* : Int */;
4004 long var16 /* : Int */;
4005 var_p = p0;
4006 var = NULL;
4007 var_node_list = var;
4008 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4009 var_nodearraylist2 = var1;
4010 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4011 var_nodearraylist1 = var2;
4012 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
4013 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
4014 var_listnode4 = var3;
4015 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
4016 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
4017 var_listnode5 = var4;
4018 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
4019 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
4020 var_listnode7 = var5;
4021 var_listnode3 = var_nodearraylist1;
4022 /* <var_listnode3:nullable Object> isa Array[Object] */
4023 cltype = type_array__Arraykernel__Object.color;
4024 idtype = type_array__Arraykernel__Object.id;
4025 if(var_listnode3 == NULL) {
4026 var6 = 0;
4027 } else {
4028 if(cltype >= var_listnode3->type->table_size) {
4029 var6 = 0;
4030 } else {
4031 var6 = var_listnode3->type->type_table[cltype] == idtype;
4032 }
4033 }
4034 if (!var6) {
4035 fprintf(stderr, "Runtime error: %s", "Assert failed");
4036 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2865);
4037 show_backtrace(1);
4038 }
4039 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction34>*/;
4040 var_listnode4 = var7;
4041 var_pclassdefnode6 = var_nodearraylist2;
4042 /* <var_pclassdefnode6:nullable Object> isa nullable AClassdef */
4043 cltype9 = type_nullable_parser_nodes__AClassdef.color;
4044 idtype10 = type_nullable_parser_nodes__AClassdef.id;
4045 if(var_pclassdefnode6 == NULL) {
4046 var8 = 1;
4047 } else {
4048 if(cltype9 >= var_pclassdefnode6->type->table_size) {
4049 var8 = 0;
4050 } else {
4051 var8 = var_pclassdefnode6->type->type_table[cltype9] == idtype10;
4052 }
4053 }
4054 if (!var8) {
4055 fprintf(stderr, "Runtime error: %s", "Assert failed");
4056 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2868);
4057 show_backtrace(1);
4058 }
4059 var11 = NULL;
4060 if (var_pclassdefnode6 == NULL) {
4061 var12 = 0; /* is null */
4062 } else {
4063 var12 = 1; /* arg is null and recv is not */
4064 }
4065 if (var12){
4066 ((void (*)(val*, val*))(var_listnode7->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode7, var_pclassdefnode6) /* add on <var_listnode7:Array[Object]>*/;
4067 } else {
4068 }
4069 var13 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
4070 var14 = NULL;
4071 ((void (*)(val*, val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var13, var14, var_listnode4, var_listnode5, var_listnode7) /* init_amodule on <var13:AModule>*/;
4072 var_pmodulenode1 = var13;
4073 var_node_list = var_pmodulenode1;
4074 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction34> */
4075 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
4076 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
4077 RET_LABEL:;
4078 }
4079 /* method parser#ReduceAction34#action for (self: Object, Parser) */
4080 void VIRTUAL_parser__ReduceAction34__action(val* self, val* p0) {
4081 parser__ReduceAction34__action(self, p0);
4082 RET_LABEL:;
4083 }
4084 /* method parser#ReduceAction35#action for (self: ReduceAction35, Parser) */
4085 void parser__ReduceAction35__action(val* self, val* p0) {
4086 val* var_p /* var p: Parser */;
4087 val* var /* : null */;
4088 val* var_node_list /* var node_list: nullable Object */;
4089 val* var1 /* : nullable Object */;
4090 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4091 val* var2 /* : nullable Object */;
4092 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4093 val* var3 /* : nullable Object */;
4094 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4095 val* var4 /* : Array[Object] */;
4096 val* var_listnode4 /* var listnode4: Array[Object] */;
4097 val* var5 /* : Array[Object] */;
4098 val* var_listnode5 /* var listnode5: Array[Object] */;
4099 val* var6 /* : Array[Object] */;
4100 val* var_listnode7 /* var listnode7: Array[Object] */;
4101 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
4102 short int var7 /* : Bool */;
4103 int cltype;
4104 int idtype;
4105 val* var_listnode3 /* var listnode3: nullable Object */;
4106 short int var8 /* : Bool */;
4107 int cltype9;
4108 int idtype10;
4109 val* var11 /* : Array[Object] */;
4110 val* var_pclassdefnode6 /* var pclassdefnode6: nullable Object */;
4111 short int var12 /* : Bool */;
4112 int cltype13;
4113 int idtype14;
4114 val* var15 /* : null */;
4115 short int var16 /* : Bool */;
4116 val* var17 /* : AModule */;
4117 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
4118 long var18 /* : Int */;
4119 long var19 /* : Int */;
4120 var_p = p0;
4121 var = NULL;
4122 var_node_list = var;
4123 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4124 var_nodearraylist3 = var1;
4125 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4126 var_nodearraylist2 = var2;
4127 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4128 var_nodearraylist1 = var3;
4129 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
4130 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
4131 var_listnode4 = var4;
4132 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
4133 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
4134 var_listnode5 = var5;
4135 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
4136 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
4137 var_listnode7 = var6;
4138 var_pmoduledeclnode2 = var_nodearraylist1;
4139 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
4140 cltype = type_nullable_parser_nodes__AModuledecl.color;
4141 idtype = type_nullable_parser_nodes__AModuledecl.id;
4142 if(var_pmoduledeclnode2 == NULL) {
4143 var7 = 1;
4144 } else {
4145 if(cltype >= var_pmoduledeclnode2->type->table_size) {
4146 var7 = 0;
4147 } else {
4148 var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
4149 }
4150 }
4151 if (!var7) {
4152 fprintf(stderr, "Runtime error: %s", "Assert failed");
4153 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2894);
4154 show_backtrace(1);
4155 }
4156 var_listnode3 = var_nodearraylist2;
4157 /* <var_listnode3:nullable Object> isa Array[Object] */
4158 cltype9 = type_array__Arraykernel__Object.color;
4159 idtype10 = type_array__Arraykernel__Object.id;
4160 if(var_listnode3 == NULL) {
4161 var8 = 0;
4162 } else {
4163 if(cltype9 >= var_listnode3->type->table_size) {
4164 var8 = 0;
4165 } else {
4166 var8 = var_listnode3->type->type_table[cltype9] == idtype10;
4167 }
4168 }
4169 if (!var8) {
4170 fprintf(stderr, "Runtime error: %s", "Assert failed");
4171 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2896);
4172 show_backtrace(1);
4173 }
4174 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction35>*/;
4175 var_listnode4 = var11;
4176 var_pclassdefnode6 = var_nodearraylist3;
4177 /* <var_pclassdefnode6:nullable Object> isa nullable AClassdef */
4178 cltype13 = type_nullable_parser_nodes__AClassdef.color;
4179 idtype14 = type_nullable_parser_nodes__AClassdef.id;
4180 if(var_pclassdefnode6 == NULL) {
4181 var12 = 1;
4182 } else {
4183 if(cltype13 >= var_pclassdefnode6->type->table_size) {
4184 var12 = 0;
4185 } else {
4186 var12 = var_pclassdefnode6->type->type_table[cltype13] == idtype14;
4187 }
4188 }
4189 if (!var12) {
4190 fprintf(stderr, "Runtime error: %s", "Assert failed");
4191 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2899);
4192 show_backtrace(1);
4193 }
4194 var15 = NULL;
4195 if (var_pclassdefnode6 == NULL) {
4196 var16 = 0; /* is null */
4197 } else {
4198 var16 = 1; /* arg is null and recv is not */
4199 }
4200 if (var16){
4201 ((void (*)(val*, val*))(var_listnode7->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode7, var_pclassdefnode6) /* add on <var_listnode7:Array[Object]>*/;
4202 } else {
4203 }
4204 var17 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
4205 ((void (*)(val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var17, var_pmoduledeclnode2, var_listnode4, var_listnode5, var_listnode7) /* init_amodule on <var17:AModule>*/;
4206 var_pmodulenode1 = var17;
4207 var_node_list = var_pmodulenode1;
4208 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction35> */
4209 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
4210 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
4211 RET_LABEL:;
4212 }
4213 /* method parser#ReduceAction35#action for (self: Object, Parser) */
4214 void VIRTUAL_parser__ReduceAction35__action(val* self, val* p0) {
4215 parser__ReduceAction35__action(self, p0);
4216 RET_LABEL:;
4217 }
4218 /* method parser#ReduceAction36#action for (self: ReduceAction36, Parser) */
4219 void parser__ReduceAction36__action(val* self, val* p0) {
4220 val* var_p /* var p: Parser */;
4221 val* var /* : null */;
4222 val* var_node_list /* var node_list: nullable Object */;
4223 val* var1 /* : nullable Object */;
4224 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4225 val* var2 /* : nullable Object */;
4226 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4227 val* var3 /* : Array[Object] */;
4228 val* var_listnode3 /* var listnode3: Array[Object] */;
4229 val* var4 /* : Array[Object] */;
4230 val* var_listnode5 /* var listnode5: Array[Object] */;
4231 val* var5 /* : Array[Object] */;
4232 val* var_listnode7 /* var listnode7: Array[Object] */;
4233 val* var_listnode4 /* var listnode4: nullable Object */;
4234 short int var6 /* : Bool */;
4235 int cltype;
4236 int idtype;
4237 val* var7 /* : Array[Object] */;
4238 val* var_pclassdefnode6 /* var pclassdefnode6: nullable Object */;
4239 short int var8 /* : Bool */;
4240 int cltype9;
4241 int idtype10;
4242 val* var11 /* : null */;
4243 short int var12 /* : Bool */;
4244 val* var13 /* : AModule */;
4245 val* var14 /* : null */;
4246 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
4247 long var15 /* : Int */;
4248 long var16 /* : Int */;
4249 var_p = p0;
4250 var = NULL;
4251 var_node_list = var;
4252 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4253 var_nodearraylist2 = var1;
4254 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4255 var_nodearraylist1 = var2;
4256 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
4257 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
4258 var_listnode3 = var3;
4259 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
4260 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
4261 var_listnode5 = var4;
4262 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
4263 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
4264 var_listnode7 = var5;
4265 var_listnode4 = var_nodearraylist1;
4266 /* <var_listnode4:nullable Object> isa Array[Object] */
4267 cltype = type_array__Arraykernel__Object.color;
4268 idtype = type_array__Arraykernel__Object.id;
4269 if(var_listnode4 == NULL) {
4270 var6 = 0;
4271 } else {
4272 if(cltype >= var_listnode4->type->table_size) {
4273 var6 = 0;
4274 } else {
4275 var6 = var_listnode4->type->type_table[cltype] == idtype;
4276 }
4277 }
4278 if (!var6) {
4279 fprintf(stderr, "Runtime error: %s", "Assert failed");
4280 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2924);
4281 show_backtrace(1);
4282 }
4283 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction36>*/;
4284 var_listnode5 = var7;
4285 var_pclassdefnode6 = var_nodearraylist2;
4286 /* <var_pclassdefnode6:nullable Object> isa nullable AClassdef */
4287 cltype9 = type_nullable_parser_nodes__AClassdef.color;
4288 idtype10 = type_nullable_parser_nodes__AClassdef.id;
4289 if(var_pclassdefnode6 == NULL) {
4290 var8 = 1;
4291 } else {
4292 if(cltype9 >= var_pclassdefnode6->type->table_size) {
4293 var8 = 0;
4294 } else {
4295 var8 = var_pclassdefnode6->type->type_table[cltype9] == idtype10;
4296 }
4297 }
4298 if (!var8) {
4299 fprintf(stderr, "Runtime error: %s", "Assert failed");
4300 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2927);
4301 show_backtrace(1);
4302 }
4303 var11 = NULL;
4304 if (var_pclassdefnode6 == NULL) {
4305 var12 = 0; /* is null */
4306 } else {
4307 var12 = 1; /* arg is null and recv is not */
4308 }
4309 if (var12){
4310 ((void (*)(val*, val*))(var_listnode7->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode7, var_pclassdefnode6) /* add on <var_listnode7:Array[Object]>*/;
4311 } else {
4312 }
4313 var13 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
4314 var14 = NULL;
4315 ((void (*)(val*, val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var13, var14, var_listnode3, var_listnode5, var_listnode7) /* init_amodule on <var13:AModule>*/;
4316 var_pmodulenode1 = var13;
4317 var_node_list = var_pmodulenode1;
4318 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction36> */
4319 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
4320 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
4321 RET_LABEL:;
4322 }
4323 /* method parser#ReduceAction36#action for (self: Object, Parser) */
4324 void VIRTUAL_parser__ReduceAction36__action(val* self, val* p0) {
4325 parser__ReduceAction36__action(self, p0);
4326 RET_LABEL:;
4327 }
4328 /* method parser#ReduceAction37#action for (self: ReduceAction37, Parser) */
4329 void parser__ReduceAction37__action(val* self, val* p0) {
4330 val* var_p /* var p: Parser */;
4331 val* var /* : null */;
4332 val* var_node_list /* var node_list: nullable Object */;
4333 val* var1 /* : nullable Object */;
4334 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4335 val* var2 /* : nullable Object */;
4336 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4337 val* var3 /* : nullable Object */;
4338 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4339 val* var4 /* : Array[Object] */;
4340 val* var_listnode3 /* var listnode3: Array[Object] */;
4341 val* var5 /* : Array[Object] */;
4342 val* var_listnode5 /* var listnode5: Array[Object] */;
4343 val* var6 /* : Array[Object] */;
4344 val* var_listnode7 /* var listnode7: Array[Object] */;
4345 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
4346 short int var7 /* : Bool */;
4347 int cltype;
4348 int idtype;
4349 val* var_listnode4 /* var listnode4: nullable Object */;
4350 short int var8 /* : Bool */;
4351 int cltype9;
4352 int idtype10;
4353 val* var11 /* : Array[Object] */;
4354 val* var_pclassdefnode6 /* var pclassdefnode6: nullable Object */;
4355 short int var12 /* : Bool */;
4356 int cltype13;
4357 int idtype14;
4358 val* var15 /* : null */;
4359 short int var16 /* : Bool */;
4360 val* var17 /* : AModule */;
4361 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
4362 long var18 /* : Int */;
4363 long var19 /* : Int */;
4364 var_p = p0;
4365 var = NULL;
4366 var_node_list = var;
4367 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4368 var_nodearraylist3 = var1;
4369 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4370 var_nodearraylist2 = var2;
4371 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4372 var_nodearraylist1 = var3;
4373 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
4374 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
4375 var_listnode3 = var4;
4376 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
4377 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
4378 var_listnode5 = var5;
4379 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
4380 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
4381 var_listnode7 = var6;
4382 var_pmoduledeclnode2 = var_nodearraylist1;
4383 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
4384 cltype = type_nullable_parser_nodes__AModuledecl.color;
4385 idtype = type_nullable_parser_nodes__AModuledecl.id;
4386 if(var_pmoduledeclnode2 == NULL) {
4387 var7 = 1;
4388 } else {
4389 if(cltype >= var_pmoduledeclnode2->type->table_size) {
4390 var7 = 0;
4391 } else {
4392 var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
4393 }
4394 }
4395 if (!var7) {
4396 fprintf(stderr, "Runtime error: %s", "Assert failed");
4397 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2953);
4398 show_backtrace(1);
4399 }
4400 var_listnode4 = var_nodearraylist2;
4401 /* <var_listnode4:nullable Object> isa Array[Object] */
4402 cltype9 = type_array__Arraykernel__Object.color;
4403 idtype10 = type_array__Arraykernel__Object.id;
4404 if(var_listnode4 == NULL) {
4405 var8 = 0;
4406 } else {
4407 if(cltype9 >= var_listnode4->type->table_size) {
4408 var8 = 0;
4409 } else {
4410 var8 = var_listnode4->type->type_table[cltype9] == idtype10;
4411 }
4412 }
4413 if (!var8) {
4414 fprintf(stderr, "Runtime error: %s", "Assert failed");
4415 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2955);
4416 show_backtrace(1);
4417 }
4418 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction37>*/;
4419 var_listnode5 = var11;
4420 var_pclassdefnode6 = var_nodearraylist3;
4421 /* <var_pclassdefnode6:nullable Object> isa nullable AClassdef */
4422 cltype13 = type_nullable_parser_nodes__AClassdef.color;
4423 idtype14 = type_nullable_parser_nodes__AClassdef.id;
4424 if(var_pclassdefnode6 == NULL) {
4425 var12 = 1;
4426 } else {
4427 if(cltype13 >= var_pclassdefnode6->type->table_size) {
4428 var12 = 0;
4429 } else {
4430 var12 = var_pclassdefnode6->type->type_table[cltype13] == idtype14;
4431 }
4432 }
4433 if (!var12) {
4434 fprintf(stderr, "Runtime error: %s", "Assert failed");
4435 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2958);
4436 show_backtrace(1);
4437 }
4438 var15 = NULL;
4439 if (var_pclassdefnode6 == NULL) {
4440 var16 = 0; /* is null */
4441 } else {
4442 var16 = 1; /* arg is null and recv is not */
4443 }
4444 if (var16){
4445 ((void (*)(val*, val*))(var_listnode7->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode7, var_pclassdefnode6) /* add on <var_listnode7:Array[Object]>*/;
4446 } else {
4447 }
4448 var17 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
4449 ((void (*)(val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var17, var_pmoduledeclnode2, var_listnode3, var_listnode5, var_listnode7) /* init_amodule on <var17:AModule>*/;
4450 var_pmodulenode1 = var17;
4451 var_node_list = var_pmodulenode1;
4452 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction37> */
4453 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
4454 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
4455 RET_LABEL:;
4456 }
4457 /* method parser#ReduceAction37#action for (self: Object, Parser) */
4458 void VIRTUAL_parser__ReduceAction37__action(val* self, val* p0) {
4459 parser__ReduceAction37__action(self, p0);
4460 RET_LABEL:;
4461 }
4462 /* method parser#ReduceAction38#action for (self: ReduceAction38, Parser) */
4463 void parser__ReduceAction38__action(val* self, val* p0) {
4464 val* var_p /* var p: Parser */;
4465 val* var /* : null */;
4466 val* var_node_list /* var node_list: nullable Object */;
4467 val* var1 /* : nullable Object */;
4468 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4469 val* var2 /* : nullable Object */;
4470 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4471 val* var3 /* : nullable Object */;
4472 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4473 val* var4 /* : Array[Object] */;
4474 val* var_listnode4 /* var listnode4: Array[Object] */;
4475 val* var5 /* : Array[Object] */;
4476 val* var_listnode6 /* var listnode6: Array[Object] */;
4477 val* var6 /* : Array[Object] */;
4478 val* var_listnode8 /* var listnode8: Array[Object] */;
4479 val* var_listnode3 /* var listnode3: nullable Object */;
4480 short int var7 /* : Bool */;
4481 int cltype;
4482 int idtype;
4483 val* var8 /* : Array[Object] */;
4484 val* var_listnode5 /* var listnode5: nullable Object */;
4485 short int var9 /* : Bool */;
4486 int cltype10;
4487 int idtype11;
4488 val* var12 /* : Array[Object] */;
4489 val* var_pclassdefnode7 /* var pclassdefnode7: nullable Object */;
4490 short int var13 /* : Bool */;
4491 int cltype14;
4492 int idtype15;
4493 val* var16 /* : null */;
4494 short int var17 /* : Bool */;
4495 val* var18 /* : AModule */;
4496 val* var19 /* : null */;
4497 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
4498 long var20 /* : Int */;
4499 long var21 /* : Int */;
4500 var_p = p0;
4501 var = NULL;
4502 var_node_list = var;
4503 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4504 var_nodearraylist3 = var1;
4505 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4506 var_nodearraylist2 = var2;
4507 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4508 var_nodearraylist1 = var3;
4509 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
4510 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
4511 var_listnode4 = var4;
4512 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
4513 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
4514 var_listnode6 = var5;
4515 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
4516 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
4517 var_listnode8 = var6;
4518 var_listnode3 = var_nodearraylist1;
4519 /* <var_listnode3:nullable Object> isa Array[Object] */
4520 cltype = type_array__Arraykernel__Object.color;
4521 idtype = type_array__Arraykernel__Object.id;
4522 if(var_listnode3 == NULL) {
4523 var7 = 0;
4524 } else {
4525 if(cltype >= var_listnode3->type->table_size) {
4526 var7 = 0;
4527 } else {
4528 var7 = var_listnode3->type->type_table[cltype] == idtype;
4529 }
4530 }
4531 if (!var7) {
4532 fprintf(stderr, "Runtime error: %s", "Assert failed");
4533 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2984);
4534 show_backtrace(1);
4535 }
4536 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction38>*/;
4537 var_listnode4 = var8;
4538 var_listnode5 = var_nodearraylist2;
4539 /* <var_listnode5:nullable Object> isa Array[Object] */
4540 cltype10 = type_array__Arraykernel__Object.color;
4541 idtype11 = type_array__Arraykernel__Object.id;
4542 if(var_listnode5 == NULL) {
4543 var9 = 0;
4544 } else {
4545 if(cltype10 >= var_listnode5->type->table_size) {
4546 var9 = 0;
4547 } else {
4548 var9 = var_listnode5->type->type_table[cltype10] == idtype11;
4549 }
4550 }
4551 if (!var9) {
4552 fprintf(stderr, "Runtime error: %s", "Assert failed");
4553 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2987);
4554 show_backtrace(1);
4555 }
4556 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction38>*/;
4557 var_listnode6 = var12;
4558 var_pclassdefnode7 = var_nodearraylist3;
4559 /* <var_pclassdefnode7:nullable Object> isa nullable AClassdef */
4560 cltype14 = type_nullable_parser_nodes__AClassdef.color;
4561 idtype15 = type_nullable_parser_nodes__AClassdef.id;
4562 if(var_pclassdefnode7 == NULL) {
4563 var13 = 1;
4564 } else {
4565 if(cltype14 >= var_pclassdefnode7->type->table_size) {
4566 var13 = 0;
4567 } else {
4568 var13 = var_pclassdefnode7->type->type_table[cltype14] == idtype15;
4569 }
4570 }
4571 if (!var13) {
4572 fprintf(stderr, "Runtime error: %s", "Assert failed");
4573 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2990);
4574 show_backtrace(1);
4575 }
4576 var16 = NULL;
4577 if (var_pclassdefnode7 == NULL) {
4578 var17 = 0; /* is null */
4579 } else {
4580 var17 = 1; /* arg is null and recv is not */
4581 }
4582 if (var17){
4583 ((void (*)(val*, val*))(var_listnode8->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode8, var_pclassdefnode7) /* add on <var_listnode8:Array[Object]>*/;
4584 } else {
4585 }
4586 var18 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
4587 var19 = NULL;
4588 ((void (*)(val*, val*, val*, val*, val*))(var18->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var18, var19, var_listnode4, var_listnode6, var_listnode8) /* init_amodule on <var18:AModule>*/;
4589 var_pmodulenode1 = var18;
4590 var_node_list = var_pmodulenode1;
4591 var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction38> */
4592 var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on <var_p:Parser>*/;
4593 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on <var_p:Parser>*/;
4594 RET_LABEL:;
4595 }
4596 /* method parser#ReduceAction38#action for (self: Object, Parser) */
4597 void VIRTUAL_parser__ReduceAction38__action(val* self, val* p0) {
4598 parser__ReduceAction38__action(self, p0);
4599 RET_LABEL:;
4600 }
4601 /* method parser#ReduceAction39#action for (self: ReduceAction39, Parser) */
4602 void parser__ReduceAction39__action(val* self, val* p0) {
4603 val* var_p /* var p: Parser */;
4604 val* var /* : null */;
4605 val* var_node_list /* var node_list: nullable Object */;
4606 val* var1 /* : nullable Object */;
4607 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4608 val* var2 /* : nullable Object */;
4609 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4610 val* var3 /* : nullable Object */;
4611 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4612 val* var4 /* : nullable Object */;
4613 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4614 val* var5 /* : Array[Object] */;
4615 val* var_listnode4 /* var listnode4: Array[Object] */;
4616 val* var6 /* : Array[Object] */;
4617 val* var_listnode6 /* var listnode6: Array[Object] */;
4618 val* var7 /* : Array[Object] */;
4619 val* var_listnode8 /* var listnode8: Array[Object] */;
4620 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
4621 short int var8 /* : Bool */;
4622 int cltype;
4623 int idtype;
4624 val* var_listnode3 /* var listnode3: nullable Object */;
4625 short int var9 /* : Bool */;
4626 int cltype10;
4627 int idtype11;
4628 val* var12 /* : Array[Object] */;
4629 val* var_listnode5 /* var listnode5: nullable Object */;
4630 short int var13 /* : Bool */;
4631 int cltype14;
4632 int idtype15;
4633 val* var16 /* : Array[Object] */;
4634 val* var_pclassdefnode7 /* var pclassdefnode7: nullable Object */;
4635 short int var17 /* : Bool */;
4636 int cltype18;
4637 int idtype19;
4638 val* var20 /* : null */;
4639 short int var21 /* : Bool */;
4640 val* var22 /* : AModule */;
4641 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
4642 long var23 /* : Int */;
4643 long var24 /* : Int */;
4644 var_p = p0;
4645 var = NULL;
4646 var_node_list = var;
4647 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4648 var_nodearraylist4 = var1;
4649 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4650 var_nodearraylist3 = var2;
4651 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4652 var_nodearraylist2 = var3;
4653 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4654 var_nodearraylist1 = var4;
4655 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
4656 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
4657 var_listnode4 = var5;
4658 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
4659 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
4660 var_listnode6 = var6;
4661 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
4662 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
4663 var_listnode8 = var7;
4664 var_pmoduledeclnode2 = var_nodearraylist1;
4665 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
4666 cltype = type_nullable_parser_nodes__AModuledecl.color;
4667 idtype = type_nullable_parser_nodes__AModuledecl.id;
4668 if(var_pmoduledeclnode2 == NULL) {
4669 var8 = 1;
4670 } else {
4671 if(cltype >= var_pmoduledeclnode2->type->table_size) {
4672 var8 = 0;
4673 } else {
4674 var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
4675 }
4676 }
4677 if (!var8) {
4678 fprintf(stderr, "Runtime error: %s", "Assert failed");
4679 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3017);
4680 show_backtrace(1);
4681 }
4682 var_listnode3 = var_nodearraylist2;
4683 /* <var_listnode3:nullable Object> isa Array[Object] */
4684 cltype10 = type_array__Arraykernel__Object.color;
4685 idtype11 = type_array__Arraykernel__Object.id;
4686 if(var_listnode3 == NULL) {
4687 var9 = 0;
4688 } else {
4689 if(cltype10 >= var_listnode3->type->table_size) {
4690 var9 = 0;
4691 } else {
4692 var9 = var_listnode3->type->type_table[cltype10] == idtype11;
4693 }
4694 }
4695 if (!var9) {
4696 fprintf(stderr, "Runtime error: %s", "Assert failed");
4697 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3019);
4698 show_backtrace(1);
4699 }
4700 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction39>*/;
4701 var_listnode4 = var12;
4702 var_listnode5 = var_nodearraylist3;
4703 /* <var_listnode5:nullable Object> isa Array[Object] */
4704 cltype14 = type_array__Arraykernel__Object.color;
4705 idtype15 = type_array__Arraykernel__Object.id;
4706 if(var_listnode5 == NULL) {
4707 var13 = 0;
4708 } else {
4709 if(cltype14 >= var_listnode5->type->table_size) {
4710 var13 = 0;
4711 } else {
4712 var13 = var_listnode5->type->type_table[cltype14] == idtype15;
4713 }
4714 }
4715 if (!var13) {
4716 fprintf(stderr, "Runtime error: %s", "Assert failed");
4717 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3022);
4718 show_backtrace(1);
4719 }
4720 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction39>*/;
4721 var_listnode6 = var16;
4722 var_pclassdefnode7 = var_nodearraylist4;
4723 /* <var_pclassdefnode7:nullable Object> isa nullable AClassdef */
4724 cltype18 = type_nullable_parser_nodes__AClassdef.color;
4725 idtype19 = type_nullable_parser_nodes__AClassdef.id;
4726 if(var_pclassdefnode7 == NULL) {
4727 var17 = 1;
4728 } else {
4729 if(cltype18 >= var_pclassdefnode7->type->table_size) {
4730 var17 = 0;
4731 } else {
4732 var17 = var_pclassdefnode7->type->type_table[cltype18] == idtype19;
4733 }
4734 }
4735 if (!var17) {
4736 fprintf(stderr, "Runtime error: %s", "Assert failed");
4737 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3025);
4738 show_backtrace(1);
4739 }
4740 var20 = NULL;
4741 if (var_pclassdefnode7 == NULL) {
4742 var21 = 0; /* is null */
4743 } else {
4744 var21 = 1; /* arg is null and recv is not */
4745 }
4746 if (var21){
4747 ((void (*)(val*, val*))(var_listnode8->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode8, var_pclassdefnode7) /* add on <var_listnode8:Array[Object]>*/;
4748 } else {
4749 }
4750 var22 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
4751 ((void (*)(val*, val*, val*, val*, val*))(var22->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var22, var_pmoduledeclnode2, var_listnode4, var_listnode6, var_listnode8) /* init_amodule on <var22:AModule>*/;
4752 var_pmodulenode1 = var22;
4753 var_node_list = var_pmodulenode1;
4754 var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction39> */
4755 var24 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var23) /* go_to on <var_p:Parser>*/;
4756 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var24, var_node_list) /* push on <var_p:Parser>*/;
4757 RET_LABEL:;
4758 }
4759 /* method parser#ReduceAction39#action for (self: Object, Parser) */
4760 void VIRTUAL_parser__ReduceAction39__action(val* self, val* p0) {
4761 parser__ReduceAction39__action(self, p0);
4762 RET_LABEL:;
4763 }
4764 /* method parser#ReduceAction40#action for (self: ReduceAction40, Parser) */
4765 void parser__ReduceAction40__action(val* self, val* p0) {
4766 val* var_p /* var p: Parser */;
4767 val* var /* : null */;
4768 val* var_node_list /* var node_list: nullable Object */;
4769 val* var1 /* : nullable Object */;
4770 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4771 val* var2 /* : nullable Object */;
4772 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4773 val* var3 /* : Array[Object] */;
4774 val* var_listnode3 /* var listnode3: Array[Object] */;
4775 val* var4 /* : Array[Object] */;
4776 val* var_listnode4 /* var listnode4: Array[Object] */;
4777 val* var5 /* : Array[Object] */;
4778 val* var_listnode7 /* var listnode7: Array[Object] */;
4779 val* var_listnode5 /* var listnode5: nullable Object */;
4780 short int var6 /* : Bool */;
4781 int cltype;
4782 int idtype;
4783 val* var_pclassdefnode6 /* var pclassdefnode6: nullable Object */;
4784 short int var7 /* : Bool */;
4785 int cltype8;
4786 int idtype9;
4787 val* var10 /* : Array[Object] */;
4788 val* var11 /* : null */;
4789 short int var12 /* : Bool */;
4790 val* var13 /* : AModule */;
4791 val* var14 /* : null */;
4792 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
4793 long var15 /* : Int */;
4794 long var16 /* : Int */;
4795 var_p = p0;
4796 var = NULL;
4797 var_node_list = var;
4798 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4799 var_nodearraylist2 = var1;
4800 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4801 var_nodearraylist1 = var2;
4802 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
4803 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
4804 var_listnode3 = var3;
4805 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
4806 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
4807 var_listnode4 = var4;
4808 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
4809 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
4810 var_listnode7 = var5;
4811 var_listnode5 = var_nodearraylist1;
4812 /* <var_listnode5:nullable Object> isa Array[Object] */
4813 cltype = type_array__Arraykernel__Object.color;
4814 idtype = type_array__Arraykernel__Object.id;
4815 if(var_listnode5 == NULL) {
4816 var6 = 0;
4817 } else {
4818 if(cltype >= var_listnode5->type->table_size) {
4819 var6 = 0;
4820 } else {
4821 var6 = var_listnode5->type->type_table[cltype] == idtype;
4822 }
4823 }
4824 if (!var6) {
4825 fprintf(stderr, "Runtime error: %s", "Assert failed");
4826 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3050);
4827 show_backtrace(1);
4828 }
4829 var_pclassdefnode6 = var_nodearraylist2;
4830 /* <var_pclassdefnode6:nullable Object> isa nullable AClassdef */
4831 cltype8 = type_nullable_parser_nodes__AClassdef.color;
4832 idtype9 = type_nullable_parser_nodes__AClassdef.id;
4833 if(var_pclassdefnode6 == NULL) {
4834 var7 = 1;
4835 } else {
4836 if(cltype8 >= var_pclassdefnode6->type->table_size) {
4837 var7 = 0;
4838 } else {
4839 var7 = var_pclassdefnode6->type->type_table[cltype8] == idtype9;
4840 }
4841 }
4842 if (!var7) {
4843 fprintf(stderr, "Runtime error: %s", "Assert failed");
4844 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3052);
4845 show_backtrace(1);
4846 }
4847 var10 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode5) /* concat on <self:ReduceAction40>*/;
4848 var_listnode7 = var10;
4849 var11 = NULL;
4850 if (var_pclassdefnode6 == NULL) {
4851 var12 = 0; /* is null */
4852 } else {
4853 var12 = 1; /* arg is null and recv is not */
4854 }
4855 if (var12){
4856 ((void (*)(val*, val*))(var_listnode7->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode7, var_pclassdefnode6) /* add on <var_listnode7:Array[Object]>*/;
4857 } else {
4858 }
4859 var13 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
4860 var14 = NULL;
4861 ((void (*)(val*, val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var13, var14, var_listnode3, var_listnode4, var_listnode7) /* init_amodule on <var13:AModule>*/;
4862 var_pmodulenode1 = var13;
4863 var_node_list = var_pmodulenode1;
4864 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction40> */
4865 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
4866 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
4867 RET_LABEL:;
4868 }
4869 /* method parser#ReduceAction40#action for (self: Object, Parser) */
4870 void VIRTUAL_parser__ReduceAction40__action(val* self, val* p0) {
4871 parser__ReduceAction40__action(self, p0);
4872 RET_LABEL:;
4873 }
4874 /* method parser#ReduceAction41#action for (self: ReduceAction41, Parser) */
4875 void parser__ReduceAction41__action(val* self, val* p0) {
4876 val* var_p /* var p: Parser */;
4877 val* var /* : null */;
4878 val* var_node_list /* var node_list: nullable Object */;
4879 val* var1 /* : nullable Object */;
4880 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4881 val* var2 /* : nullable Object */;
4882 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4883 val* var3 /* : nullable Object */;
4884 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4885 val* var4 /* : Array[Object] */;
4886 val* var_listnode3 /* var listnode3: Array[Object] */;
4887 val* var5 /* : Array[Object] */;
4888 val* var_listnode4 /* var listnode4: Array[Object] */;
4889 val* var6 /* : Array[Object] */;
4890 val* var_listnode7 /* var listnode7: Array[Object] */;
4891 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
4892 short int var7 /* : Bool */;
4893 int cltype;
4894 int idtype;
4895 val* var_listnode5 /* var listnode5: nullable Object */;
4896 short int var8 /* : Bool */;
4897 int cltype9;
4898 int idtype10;
4899 val* var_pclassdefnode6 /* var pclassdefnode6: nullable Object */;
4900 short int var11 /* : Bool */;
4901 int cltype12;
4902 int idtype13;
4903 val* var14 /* : Array[Object] */;
4904 val* var15 /* : null */;
4905 short int var16 /* : Bool */;
4906 val* var17 /* : AModule */;
4907 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
4908 long var18 /* : Int */;
4909 long var19 /* : Int */;
4910 var_p = p0;
4911 var = NULL;
4912 var_node_list = var;
4913 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4914 var_nodearraylist3 = var1;
4915 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4916 var_nodearraylist2 = var2;
4917 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4918 var_nodearraylist1 = var3;
4919 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
4920 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
4921 var_listnode3 = var4;
4922 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
4923 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
4924 var_listnode4 = var5;
4925 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
4926 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
4927 var_listnode7 = var6;
4928 var_pmoduledeclnode2 = var_nodearraylist1;
4929 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
4930 cltype = type_nullable_parser_nodes__AModuledecl.color;
4931 idtype = type_nullable_parser_nodes__AModuledecl.id;
4932 if(var_pmoduledeclnode2 == NULL) {
4933 var7 = 1;
4934 } else {
4935 if(cltype >= var_pmoduledeclnode2->type->table_size) {
4936 var7 = 0;
4937 } else {
4938 var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
4939 }
4940 }
4941 if (!var7) {
4942 fprintf(stderr, "Runtime error: %s", "Assert failed");
4943 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3079);
4944 show_backtrace(1);
4945 }
4946 var_listnode5 = var_nodearraylist2;
4947 /* <var_listnode5:nullable Object> isa Array[Object] */
4948 cltype9 = type_array__Arraykernel__Object.color;
4949 idtype10 = type_array__Arraykernel__Object.id;
4950 if(var_listnode5 == NULL) {
4951 var8 = 0;
4952 } else {
4953 if(cltype9 >= var_listnode5->type->table_size) {
4954 var8 = 0;
4955 } else {
4956 var8 = var_listnode5->type->type_table[cltype9] == idtype10;
4957 }
4958 }
4959 if (!var8) {
4960 fprintf(stderr, "Runtime error: %s", "Assert failed");
4961 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3081);
4962 show_backtrace(1);
4963 }
4964 var_pclassdefnode6 = var_nodearraylist3;
4965 /* <var_pclassdefnode6:nullable Object> isa nullable AClassdef */
4966 cltype12 = type_nullable_parser_nodes__AClassdef.color;
4967 idtype13 = type_nullable_parser_nodes__AClassdef.id;
4968 if(var_pclassdefnode6 == NULL) {
4969 var11 = 1;
4970 } else {
4971 if(cltype12 >= var_pclassdefnode6->type->table_size) {
4972 var11 = 0;
4973 } else {
4974 var11 = var_pclassdefnode6->type->type_table[cltype12] == idtype13;
4975 }
4976 }
4977 if (!var11) {
4978 fprintf(stderr, "Runtime error: %s", "Assert failed");
4979 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3083);
4980 show_backtrace(1);
4981 }
4982 var14 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode5) /* concat on <self:ReduceAction41>*/;
4983 var_listnode7 = var14;
4984 var15 = NULL;
4985 if (var_pclassdefnode6 == NULL) {
4986 var16 = 0; /* is null */
4987 } else {
4988 var16 = 1; /* arg is null and recv is not */
4989 }
4990 if (var16){
4991 ((void (*)(val*, val*))(var_listnode7->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode7, var_pclassdefnode6) /* add on <var_listnode7:Array[Object]>*/;
4992 } else {
4993 }
4994 var17 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
4995 ((void (*)(val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var17, var_pmoduledeclnode2, var_listnode3, var_listnode4, var_listnode7) /* init_amodule on <var17:AModule>*/;
4996 var_pmodulenode1 = var17;
4997 var_node_list = var_pmodulenode1;
4998 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction41> */
4999 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
5000 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
5001 RET_LABEL:;
5002 }
5003 /* method parser#ReduceAction41#action for (self: Object, Parser) */
5004 void VIRTUAL_parser__ReduceAction41__action(val* self, val* p0) {
5005 parser__ReduceAction41__action(self, p0);
5006 RET_LABEL:;
5007 }
5008 /* method parser#ReduceAction42#action for (self: ReduceAction42, Parser) */
5009 void parser__ReduceAction42__action(val* self, val* p0) {
5010 val* var_p /* var p: Parser */;
5011 val* var /* : null */;
5012 val* var_node_list /* var node_list: nullable Object */;
5013 val* var1 /* : nullable Object */;
5014 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5015 val* var2 /* : nullable Object */;
5016 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5017 val* var3 /* : nullable Object */;
5018 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5019 val* var4 /* : Array[Object] */;
5020 val* var_listnode4 /* var listnode4: Array[Object] */;
5021 val* var5 /* : Array[Object] */;
5022 val* var_listnode5 /* var listnode5: Array[Object] */;
5023 val* var6 /* : Array[Object] */;
5024 val* var_listnode8 /* var listnode8: Array[Object] */;
5025 val* var_listnode3 /* var listnode3: nullable Object */;
5026 short int var7 /* : Bool */;
5027 int cltype;
5028 int idtype;
5029 val* var8 /* : Array[Object] */;
5030 val* var_listnode6 /* var listnode6: nullable Object */;
5031 short int var9 /* : Bool */;
5032 int cltype10;
5033 int idtype11;
5034 val* var_pclassdefnode7 /* var pclassdefnode7: nullable Object */;
5035 short int var12 /* : Bool */;
5036 int cltype13;
5037 int idtype14;
5038 val* var15 /* : Array[Object] */;
5039 val* var16 /* : null */;
5040 short int var17 /* : Bool */;
5041 val* var18 /* : AModule */;
5042 val* var19 /* : null */;
5043 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
5044 long var20 /* : Int */;
5045 long var21 /* : Int */;
5046 var_p = p0;
5047 var = NULL;
5048 var_node_list = var;
5049 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5050 var_nodearraylist3 = var1;
5051 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5052 var_nodearraylist2 = var2;
5053 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5054 var_nodearraylist1 = var3;
5055 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
5056 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
5057 var_listnode4 = var4;
5058 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
5059 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
5060 var_listnode5 = var5;
5061 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
5062 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
5063 var_listnode8 = var6;
5064 var_listnode3 = var_nodearraylist1;
5065 /* <var_listnode3:nullable Object> isa Array[Object] */
5066 cltype = type_array__Arraykernel__Object.color;
5067 idtype = type_array__Arraykernel__Object.id;
5068 if(var_listnode3 == NULL) {
5069 var7 = 0;
5070 } else {
5071 if(cltype >= var_listnode3->type->table_size) {
5072 var7 = 0;
5073 } else {
5074 var7 = var_listnode3->type->type_table[cltype] == idtype;
5075 }
5076 }
5077 if (!var7) {
5078 fprintf(stderr, "Runtime error: %s", "Assert failed");
5079 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3110);
5080 show_backtrace(1);
5081 }
5082 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction42>*/;
5083 var_listnode4 = var8;
5084 var_listnode6 = var_nodearraylist2;
5085 /* <var_listnode6:nullable Object> isa Array[Object] */
5086 cltype10 = type_array__Arraykernel__Object.color;
5087 idtype11 = type_array__Arraykernel__Object.id;
5088 if(var_listnode6 == NULL) {
5089 var9 = 0;
5090 } else {
5091 if(cltype10 >= var_listnode6->type->table_size) {
5092 var9 = 0;
5093 } else {
5094 var9 = var_listnode6->type->type_table[cltype10] == idtype11;
5095 }
5096 }
5097 if (!var9) {
5098 fprintf(stderr, "Runtime error: %s", "Assert failed");
5099 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3113);
5100 show_backtrace(1);
5101 }
5102 var_pclassdefnode7 = var_nodearraylist3;
5103 /* <var_pclassdefnode7:nullable Object> isa nullable AClassdef */
5104 cltype13 = type_nullable_parser_nodes__AClassdef.color;
5105 idtype14 = type_nullable_parser_nodes__AClassdef.id;
5106 if(var_pclassdefnode7 == NULL) {
5107 var12 = 1;
5108 } else {
5109 if(cltype13 >= var_pclassdefnode7->type->table_size) {
5110 var12 = 0;
5111 } else {
5112 var12 = var_pclassdefnode7->type->type_table[cltype13] == idtype14;
5113 }
5114 }
5115 if (!var12) {
5116 fprintf(stderr, "Runtime error: %s", "Assert failed");
5117 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3115);
5118 show_backtrace(1);
5119 }
5120 var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode6) /* concat on <self:ReduceAction42>*/;
5121 var_listnode8 = var15;
5122 var16 = NULL;
5123 if (var_pclassdefnode7 == NULL) {
5124 var17 = 0; /* is null */
5125 } else {
5126 var17 = 1; /* arg is null and recv is not */
5127 }
5128 if (var17){
5129 ((void (*)(val*, val*))(var_listnode8->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode8, var_pclassdefnode7) /* add on <var_listnode8:Array[Object]>*/;
5130 } else {
5131 }
5132 var18 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
5133 var19 = NULL;
5134 ((void (*)(val*, val*, val*, val*, val*))(var18->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var18, var19, var_listnode4, var_listnode5, var_listnode8) /* init_amodule on <var18:AModule>*/;
5135 var_pmodulenode1 = var18;
5136 var_node_list = var_pmodulenode1;
5137 var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction42> */
5138 var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on <var_p:Parser>*/;
5139 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on <var_p:Parser>*/;
5140 RET_LABEL:;
5141 }
5142 /* method parser#ReduceAction42#action for (self: Object, Parser) */
5143 void VIRTUAL_parser__ReduceAction42__action(val* self, val* p0) {
5144 parser__ReduceAction42__action(self, p0);
5145 RET_LABEL:;
5146 }
5147 /* method parser#ReduceAction43#action for (self: ReduceAction43, Parser) */
5148 void parser__ReduceAction43__action(val* self, val* p0) {
5149 val* var_p /* var p: Parser */;
5150 val* var /* : null */;
5151 val* var_node_list /* var node_list: nullable Object */;
5152 val* var1 /* : nullable Object */;
5153 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5154 val* var2 /* : nullable Object */;
5155 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5156 val* var3 /* : nullable Object */;
5157 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5158 val* var4 /* : nullable Object */;
5159 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5160 val* var5 /* : Array[Object] */;
5161 val* var_listnode4 /* var listnode4: Array[Object] */;
5162 val* var6 /* : Array[Object] */;
5163 val* var_listnode5 /* var listnode5: Array[Object] */;
5164 val* var7 /* : Array[Object] */;
5165 val* var_listnode8 /* var listnode8: Array[Object] */;
5166 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
5167 short int var8 /* : Bool */;
5168 int cltype;
5169 int idtype;
5170 val* var_listnode3 /* var listnode3: nullable Object */;
5171 short int var9 /* : Bool */;
5172 int cltype10;
5173 int idtype11;
5174 val* var12 /* : Array[Object] */;
5175 val* var_listnode6 /* var listnode6: nullable Object */;
5176 short int var13 /* : Bool */;
5177 int cltype14;
5178 int idtype15;
5179 val* var_pclassdefnode7 /* var pclassdefnode7: nullable Object */;
5180 short int var16 /* : Bool */;
5181 int cltype17;
5182 int idtype18;
5183 val* var19 /* : Array[Object] */;
5184 val* var20 /* : null */;
5185 short int var21 /* : Bool */;
5186 val* var22 /* : AModule */;
5187 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
5188 long var23 /* : Int */;
5189 long var24 /* : Int */;
5190 var_p = p0;
5191 var = NULL;
5192 var_node_list = var;
5193 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5194 var_nodearraylist4 = var1;
5195 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5196 var_nodearraylist3 = var2;
5197 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5198 var_nodearraylist2 = var3;
5199 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5200 var_nodearraylist1 = var4;
5201 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
5202 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
5203 var_listnode4 = var5;
5204 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
5205 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
5206 var_listnode5 = var6;
5207 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
5208 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
5209 var_listnode8 = var7;
5210 var_pmoduledeclnode2 = var_nodearraylist1;
5211 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
5212 cltype = type_nullable_parser_nodes__AModuledecl.color;
5213 idtype = type_nullable_parser_nodes__AModuledecl.id;
5214 if(var_pmoduledeclnode2 == NULL) {
5215 var8 = 1;
5216 } else {
5217 if(cltype >= var_pmoduledeclnode2->type->table_size) {
5218 var8 = 0;
5219 } else {
5220 var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
5221 }
5222 }
5223 if (!var8) {
5224 fprintf(stderr, "Runtime error: %s", "Assert failed");
5225 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3143);
5226 show_backtrace(1);
5227 }
5228 var_listnode3 = var_nodearraylist2;
5229 /* <var_listnode3:nullable Object> isa Array[Object] */
5230 cltype10 = type_array__Arraykernel__Object.color;
5231 idtype11 = type_array__Arraykernel__Object.id;
5232 if(var_listnode3 == NULL) {
5233 var9 = 0;
5234 } else {
5235 if(cltype10 >= var_listnode3->type->table_size) {
5236 var9 = 0;
5237 } else {
5238 var9 = var_listnode3->type->type_table[cltype10] == idtype11;
5239 }
5240 }
5241 if (!var9) {
5242 fprintf(stderr, "Runtime error: %s", "Assert failed");
5243 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3145);
5244 show_backtrace(1);
5245 }
5246 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction43>*/;
5247 var_listnode4 = var12;
5248 var_listnode6 = var_nodearraylist3;
5249 /* <var_listnode6:nullable Object> isa Array[Object] */
5250 cltype14 = type_array__Arraykernel__Object.color;
5251 idtype15 = type_array__Arraykernel__Object.id;
5252 if(var_listnode6 == NULL) {
5253 var13 = 0;
5254 } else {
5255 if(cltype14 >= var_listnode6->type->table_size) {
5256 var13 = 0;
5257 } else {
5258 var13 = var_listnode6->type->type_table[cltype14] == idtype15;
5259 }
5260 }
5261 if (!var13) {
5262 fprintf(stderr, "Runtime error: %s", "Assert failed");
5263 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3148);
5264 show_backtrace(1);
5265 }
5266 var_pclassdefnode7 = var_nodearraylist4;
5267 /* <var_pclassdefnode7:nullable Object> isa nullable AClassdef */
5268 cltype17 = type_nullable_parser_nodes__AClassdef.color;
5269 idtype18 = type_nullable_parser_nodes__AClassdef.id;
5270 if(var_pclassdefnode7 == NULL) {
5271 var16 = 1;
5272 } else {
5273 if(cltype17 >= var_pclassdefnode7->type->table_size) {
5274 var16 = 0;
5275 } else {
5276 var16 = var_pclassdefnode7->type->type_table[cltype17] == idtype18;
5277 }
5278 }
5279 if (!var16) {
5280 fprintf(stderr, "Runtime error: %s", "Assert failed");
5281 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3150);
5282 show_backtrace(1);
5283 }
5284 var19 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode6) /* concat on <self:ReduceAction43>*/;
5285 var_listnode8 = var19;
5286 var20 = NULL;
5287 if (var_pclassdefnode7 == NULL) {
5288 var21 = 0; /* is null */
5289 } else {
5290 var21 = 1; /* arg is null and recv is not */
5291 }
5292 if (var21){
5293 ((void (*)(val*, val*))(var_listnode8->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode8, var_pclassdefnode7) /* add on <var_listnode8:Array[Object]>*/;
5294 } else {
5295 }
5296 var22 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
5297 ((void (*)(val*, val*, val*, val*, val*))(var22->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var22, var_pmoduledeclnode2, var_listnode4, var_listnode5, var_listnode8) /* init_amodule on <var22:AModule>*/;
5298 var_pmodulenode1 = var22;
5299 var_node_list = var_pmodulenode1;
5300 var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction43> */
5301 var24 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var23) /* go_to on <var_p:Parser>*/;
5302 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var24, var_node_list) /* push on <var_p:Parser>*/;
5303 RET_LABEL:;
5304 }
5305 /* method parser#ReduceAction43#action for (self: Object, Parser) */
5306 void VIRTUAL_parser__ReduceAction43__action(val* self, val* p0) {
5307 parser__ReduceAction43__action(self, p0);
5308 RET_LABEL:;
5309 }
5310 /* method parser#ReduceAction44#action for (self: ReduceAction44, Parser) */
5311 void parser__ReduceAction44__action(val* self, val* p0) {
5312 val* var_p /* var p: Parser */;
5313 val* var /* : null */;
5314 val* var_node_list /* var node_list: nullable Object */;
5315 val* var1 /* : nullable Object */;
5316 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5317 val* var2 /* : nullable Object */;
5318 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5319 val* var3 /* : nullable Object */;
5320 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5321 val* var4 /* : Array[Object] */;
5322 val* var_listnode3 /* var listnode3: Array[Object] */;
5323 val* var5 /* : Array[Object] */;
5324 val* var_listnode5 /* var listnode5: Array[Object] */;
5325 val* var6 /* : Array[Object] */;
5326 val* var_listnode8 /* var listnode8: Array[Object] */;
5327 val* var_listnode4 /* var listnode4: nullable Object */;
5328 short int var7 /* : Bool */;
5329 int cltype;
5330 int idtype;
5331 val* var8 /* : Array[Object] */;
5332 val* var_listnode6 /* var listnode6: nullable Object */;
5333 short int var9 /* : Bool */;
5334 int cltype10;
5335 int idtype11;
5336 val* var_pclassdefnode7 /* var pclassdefnode7: nullable Object */;
5337 short int var12 /* : Bool */;
5338 int cltype13;
5339 int idtype14;
5340 val* var15 /* : Array[Object] */;
5341 val* var16 /* : null */;
5342 short int var17 /* : Bool */;
5343 val* var18 /* : AModule */;
5344 val* var19 /* : null */;
5345 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
5346 long var20 /* : Int */;
5347 long var21 /* : Int */;
5348 var_p = p0;
5349 var = NULL;
5350 var_node_list = var;
5351 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5352 var_nodearraylist3 = var1;
5353 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5354 var_nodearraylist2 = var2;
5355 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5356 var_nodearraylist1 = var3;
5357 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
5358 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
5359 var_listnode3 = var4;
5360 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
5361 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
5362 var_listnode5 = var5;
5363 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
5364 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
5365 var_listnode8 = var6;
5366 var_listnode4 = var_nodearraylist1;
5367 /* <var_listnode4:nullable Object> isa Array[Object] */
5368 cltype = type_array__Arraykernel__Object.color;
5369 idtype = type_array__Arraykernel__Object.id;
5370 if(var_listnode4 == NULL) {
5371 var7 = 0;
5372 } else {
5373 if(cltype >= var_listnode4->type->table_size) {
5374 var7 = 0;
5375 } else {
5376 var7 = var_listnode4->type->type_table[cltype] == idtype;
5377 }
5378 }
5379 if (!var7) {
5380 fprintf(stderr, "Runtime error: %s", "Assert failed");
5381 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3177);
5382 show_backtrace(1);
5383 }
5384 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction44>*/;
5385 var_listnode5 = var8;
5386 var_listnode6 = var_nodearraylist2;
5387 /* <var_listnode6:nullable Object> isa Array[Object] */
5388 cltype10 = type_array__Arraykernel__Object.color;
5389 idtype11 = type_array__Arraykernel__Object.id;
5390 if(var_listnode6 == NULL) {
5391 var9 = 0;
5392 } else {
5393 if(cltype10 >= var_listnode6->type->table_size) {
5394 var9 = 0;
5395 } else {
5396 var9 = var_listnode6->type->type_table[cltype10] == idtype11;
5397 }
5398 }
5399 if (!var9) {
5400 fprintf(stderr, "Runtime error: %s", "Assert failed");
5401 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3180);
5402 show_backtrace(1);
5403 }
5404 var_pclassdefnode7 = var_nodearraylist3;
5405 /* <var_pclassdefnode7:nullable Object> isa nullable AClassdef */
5406 cltype13 = type_nullable_parser_nodes__AClassdef.color;
5407 idtype14 = type_nullable_parser_nodes__AClassdef.id;
5408 if(var_pclassdefnode7 == NULL) {
5409 var12 = 1;
5410 } else {
5411 if(cltype13 >= var_pclassdefnode7->type->table_size) {
5412 var12 = 0;
5413 } else {
5414 var12 = var_pclassdefnode7->type->type_table[cltype13] == idtype14;
5415 }
5416 }
5417 if (!var12) {
5418 fprintf(stderr, "Runtime error: %s", "Assert failed");
5419 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3182);
5420 show_backtrace(1);
5421 }
5422 var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode6) /* concat on <self:ReduceAction44>*/;
5423 var_listnode8 = var15;
5424 var16 = NULL;
5425 if (var_pclassdefnode7 == NULL) {
5426 var17 = 0; /* is null */
5427 } else {
5428 var17 = 1; /* arg is null and recv is not */
5429 }
5430 if (var17){
5431 ((void (*)(val*, val*))(var_listnode8->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode8, var_pclassdefnode7) /* add on <var_listnode8:Array[Object]>*/;
5432 } else {
5433 }
5434 var18 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
5435 var19 = NULL;
5436 ((void (*)(val*, val*, val*, val*, val*))(var18->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var18, var19, var_listnode3, var_listnode5, var_listnode8) /* init_amodule on <var18:AModule>*/;
5437 var_pmodulenode1 = var18;
5438 var_node_list = var_pmodulenode1;
5439 var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction44> */
5440 var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on <var_p:Parser>*/;
5441 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on <var_p:Parser>*/;
5442 RET_LABEL:;
5443 }
5444 /* method parser#ReduceAction44#action for (self: Object, Parser) */
5445 void VIRTUAL_parser__ReduceAction44__action(val* self, val* p0) {
5446 parser__ReduceAction44__action(self, p0);
5447 RET_LABEL:;
5448 }
5449 /* method parser#ReduceAction45#action for (self: ReduceAction45, Parser) */
5450 void parser__ReduceAction45__action(val* self, val* p0) {
5451 val* var_p /* var p: Parser */;
5452 val* var /* : null */;
5453 val* var_node_list /* var node_list: nullable Object */;
5454 val* var1 /* : nullable Object */;
5455 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5456 val* var2 /* : nullable Object */;
5457 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5458 val* var3 /* : nullable Object */;
5459 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5460 val* var4 /* : nullable Object */;
5461 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5462 val* var5 /* : Array[Object] */;
5463 val* var_listnode3 /* var listnode3: Array[Object] */;
5464 val* var6 /* : Array[Object] */;
5465 val* var_listnode5 /* var listnode5: Array[Object] */;
5466 val* var7 /* : Array[Object] */;
5467 val* var_listnode8 /* var listnode8: Array[Object] */;
5468 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
5469 short int var8 /* : Bool */;
5470 int cltype;
5471 int idtype;
5472 val* var_listnode4 /* var listnode4: nullable Object */;
5473 short int var9 /* : Bool */;
5474 int cltype10;
5475 int idtype11;
5476 val* var12 /* : Array[Object] */;
5477 val* var_listnode6 /* var listnode6: nullable Object */;
5478 short int var13 /* : Bool */;
5479 int cltype14;
5480 int idtype15;
5481 val* var_pclassdefnode7 /* var pclassdefnode7: nullable Object */;
5482 short int var16 /* : Bool */;
5483 int cltype17;
5484 int idtype18;
5485 val* var19 /* : Array[Object] */;
5486 val* var20 /* : null */;
5487 short int var21 /* : Bool */;
5488 val* var22 /* : AModule */;
5489 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
5490 long var23 /* : Int */;
5491 long var24 /* : Int */;
5492 var_p = p0;
5493 var = NULL;
5494 var_node_list = var;
5495 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5496 var_nodearraylist4 = var1;
5497 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5498 var_nodearraylist3 = var2;
5499 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5500 var_nodearraylist2 = var3;
5501 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5502 var_nodearraylist1 = var4;
5503 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
5504 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
5505 var_listnode3 = var5;
5506 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
5507 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
5508 var_listnode5 = var6;
5509 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
5510 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
5511 var_listnode8 = var7;
5512 var_pmoduledeclnode2 = var_nodearraylist1;
5513 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
5514 cltype = type_nullable_parser_nodes__AModuledecl.color;
5515 idtype = type_nullable_parser_nodes__AModuledecl.id;
5516 if(var_pmoduledeclnode2 == NULL) {
5517 var8 = 1;
5518 } else {
5519 if(cltype >= var_pmoduledeclnode2->type->table_size) {
5520 var8 = 0;
5521 } else {
5522 var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
5523 }
5524 }
5525 if (!var8) {
5526 fprintf(stderr, "Runtime error: %s", "Assert failed");
5527 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3210);
5528 show_backtrace(1);
5529 }
5530 var_listnode4 = var_nodearraylist2;
5531 /* <var_listnode4:nullable Object> isa Array[Object] */
5532 cltype10 = type_array__Arraykernel__Object.color;
5533 idtype11 = type_array__Arraykernel__Object.id;
5534 if(var_listnode4 == NULL) {
5535 var9 = 0;
5536 } else {
5537 if(cltype10 >= var_listnode4->type->table_size) {
5538 var9 = 0;
5539 } else {
5540 var9 = var_listnode4->type->type_table[cltype10] == idtype11;
5541 }
5542 }
5543 if (!var9) {
5544 fprintf(stderr, "Runtime error: %s", "Assert failed");
5545 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3212);
5546 show_backtrace(1);
5547 }
5548 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction45>*/;
5549 var_listnode5 = var12;
5550 var_listnode6 = var_nodearraylist3;
5551 /* <var_listnode6:nullable Object> isa Array[Object] */
5552 cltype14 = type_array__Arraykernel__Object.color;
5553 idtype15 = type_array__Arraykernel__Object.id;
5554 if(var_listnode6 == NULL) {
5555 var13 = 0;
5556 } else {
5557 if(cltype14 >= var_listnode6->type->table_size) {
5558 var13 = 0;
5559 } else {
5560 var13 = var_listnode6->type->type_table[cltype14] == idtype15;
5561 }
5562 }
5563 if (!var13) {
5564 fprintf(stderr, "Runtime error: %s", "Assert failed");
5565 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3215);
5566 show_backtrace(1);
5567 }
5568 var_pclassdefnode7 = var_nodearraylist4;
5569 /* <var_pclassdefnode7:nullable Object> isa nullable AClassdef */
5570 cltype17 = type_nullable_parser_nodes__AClassdef.color;
5571 idtype18 = type_nullable_parser_nodes__AClassdef.id;
5572 if(var_pclassdefnode7 == NULL) {
5573 var16 = 1;
5574 } else {
5575 if(cltype17 >= var_pclassdefnode7->type->table_size) {
5576 var16 = 0;
5577 } else {
5578 var16 = var_pclassdefnode7->type->type_table[cltype17] == idtype18;
5579 }
5580 }
5581 if (!var16) {
5582 fprintf(stderr, "Runtime error: %s", "Assert failed");
5583 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3217);
5584 show_backtrace(1);
5585 }
5586 var19 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode6) /* concat on <self:ReduceAction45>*/;
5587 var_listnode8 = var19;
5588 var20 = NULL;
5589 if (var_pclassdefnode7 == NULL) {
5590 var21 = 0; /* is null */
5591 } else {
5592 var21 = 1; /* arg is null and recv is not */
5593 }
5594 if (var21){
5595 ((void (*)(val*, val*))(var_listnode8->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode8, var_pclassdefnode7) /* add on <var_listnode8:Array[Object]>*/;
5596 } else {
5597 }
5598 var22 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
5599 ((void (*)(val*, val*, val*, val*, val*))(var22->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var22, var_pmoduledeclnode2, var_listnode3, var_listnode5, var_listnode8) /* init_amodule on <var22:AModule>*/;
5600 var_pmodulenode1 = var22;
5601 var_node_list = var_pmodulenode1;
5602 var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction45> */
5603 var24 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var23) /* go_to on <var_p:Parser>*/;
5604 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var24, var_node_list) /* push on <var_p:Parser>*/;
5605 RET_LABEL:;
5606 }
5607 /* method parser#ReduceAction45#action for (self: Object, Parser) */
5608 void VIRTUAL_parser__ReduceAction45__action(val* self, val* p0) {
5609 parser__ReduceAction45__action(self, p0);
5610 RET_LABEL:;
5611 }
5612 /* method parser#ReduceAction46#action for (self: ReduceAction46, Parser) */
5613 void parser__ReduceAction46__action(val* self, val* p0) {
5614 val* var_p /* var p: Parser */;
5615 val* var /* : null */;
5616 val* var_node_list /* var node_list: nullable Object */;
5617 val* var1 /* : nullable Object */;
5618 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5619 val* var2 /* : nullable Object */;
5620 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5621 val* var3 /* : nullable Object */;
5622 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5623 val* var4 /* : nullable Object */;
5624 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5625 val* var5 /* : Array[Object] */;
5626 val* var_listnode4 /* var listnode4: Array[Object] */;
5627 val* var6 /* : Array[Object] */;
5628 val* var_listnode6 /* var listnode6: Array[Object] */;
5629 val* var7 /* : Array[Object] */;
5630 val* var_listnode9 /* var listnode9: Array[Object] */;
5631 val* var_listnode3 /* var listnode3: nullable Object */;
5632 short int var8 /* : Bool */;
5633 int cltype;
5634 int idtype;
5635 val* var9 /* : Array[Object] */;
5636 val* var_listnode5 /* var listnode5: nullable Object */;
5637 short int var10 /* : Bool */;
5638 int cltype11;
5639 int idtype12;
5640 val* var13 /* : Array[Object] */;
5641 val* var_listnode7 /* var listnode7: nullable Object */;
5642 short int var14 /* : Bool */;
5643 int cltype15;
5644 int idtype16;
5645 val* var_pclassdefnode8 /* var pclassdefnode8: nullable Object */;
5646 short int var17 /* : Bool */;
5647 int cltype18;
5648 int idtype19;
5649 val* var20 /* : Array[Object] */;
5650 val* var21 /* : null */;
5651 short int var22 /* : Bool */;
5652 val* var23 /* : AModule */;
5653 val* var24 /* : null */;
5654 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
5655 long var25 /* : Int */;
5656 long var26 /* : Int */;
5657 var_p = p0;
5658 var = NULL;
5659 var_node_list = var;
5660 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5661 var_nodearraylist4 = var1;
5662 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5663 var_nodearraylist3 = var2;
5664 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5665 var_nodearraylist2 = var3;
5666 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5667 var_nodearraylist1 = var4;
5668 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
5669 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
5670 var_listnode4 = var5;
5671 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
5672 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
5673 var_listnode6 = var6;
5674 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
5675 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
5676 var_listnode9 = var7;
5677 var_listnode3 = var_nodearraylist1;
5678 /* <var_listnode3:nullable Object> isa Array[Object] */
5679 cltype = type_array__Arraykernel__Object.color;
5680 idtype = type_array__Arraykernel__Object.id;
5681 if(var_listnode3 == NULL) {
5682 var8 = 0;
5683 } else {
5684 if(cltype >= var_listnode3->type->table_size) {
5685 var8 = 0;
5686 } else {
5687 var8 = var_listnode3->type->type_table[cltype] == idtype;
5688 }
5689 }
5690 if (!var8) {
5691 fprintf(stderr, "Runtime error: %s", "Assert failed");
5692 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3245);
5693 show_backtrace(1);
5694 }
5695 var9 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction46>*/;
5696 var_listnode4 = var9;
5697 var_listnode5 = var_nodearraylist2;
5698 /* <var_listnode5:nullable Object> isa Array[Object] */
5699 cltype11 = type_array__Arraykernel__Object.color;
5700 idtype12 = type_array__Arraykernel__Object.id;
5701 if(var_listnode5 == NULL) {
5702 var10 = 0;
5703 } else {
5704 if(cltype11 >= var_listnode5->type->table_size) {
5705 var10 = 0;
5706 } else {
5707 var10 = var_listnode5->type->type_table[cltype11] == idtype12;
5708 }
5709 }
5710 if (!var10) {
5711 fprintf(stderr, "Runtime error: %s", "Assert failed");
5712 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3248);
5713 show_backtrace(1);
5714 }
5715 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction46>*/;
5716 var_listnode6 = var13;
5717 var_listnode7 = var_nodearraylist3;
5718 /* <var_listnode7:nullable Object> isa Array[Object] */
5719 cltype15 = type_array__Arraykernel__Object.color;
5720 idtype16 = type_array__Arraykernel__Object.id;
5721 if(var_listnode7 == NULL) {
5722 var14 = 0;
5723 } else {
5724 if(cltype15 >= var_listnode7->type->table_size) {
5725 var14 = 0;
5726 } else {
5727 var14 = var_listnode7->type->type_table[cltype15] == idtype16;
5728 }
5729 }
5730 if (!var14) {
5731 fprintf(stderr, "Runtime error: %s", "Assert failed");
5732 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3251);
5733 show_backtrace(1);
5734 }
5735 var_pclassdefnode8 = var_nodearraylist4;
5736 /* <var_pclassdefnode8:nullable Object> isa nullable AClassdef */
5737 cltype18 = type_nullable_parser_nodes__AClassdef.color;
5738 idtype19 = type_nullable_parser_nodes__AClassdef.id;
5739 if(var_pclassdefnode8 == NULL) {
5740 var17 = 1;
5741 } else {
5742 if(cltype18 >= var_pclassdefnode8->type->table_size) {
5743 var17 = 0;
5744 } else {
5745 var17 = var_pclassdefnode8->type->type_table[cltype18] == idtype19;
5746 }
5747 }
5748 if (!var17) {
5749 fprintf(stderr, "Runtime error: %s", "Assert failed");
5750 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3253);
5751 show_backtrace(1);
5752 }
5753 var20 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode7) /* concat on <self:ReduceAction46>*/;
5754 var_listnode9 = var20;
5755 var21 = NULL;
5756 if (var_pclassdefnode8 == NULL) {
5757 var22 = 0; /* is null */
5758 } else {
5759 var22 = 1; /* arg is null and recv is not */
5760 }
5761 if (var22){
5762 ((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode8) /* add on <var_listnode9:Array[Object]>*/;
5763 } else {
5764 }
5765 var23 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
5766 var24 = NULL;
5767 ((void (*)(val*, val*, val*, val*, val*))(var23->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var23, var24, var_listnode4, var_listnode6, var_listnode9) /* init_amodule on <var23:AModule>*/;
5768 var_pmodulenode1 = var23;
5769 var_node_list = var_pmodulenode1;
5770 var25 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction46> */
5771 var26 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var25) /* go_to on <var_p:Parser>*/;
5772 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var26, var_node_list) /* push on <var_p:Parser>*/;
5773 RET_LABEL:;
5774 }
5775 /* method parser#ReduceAction46#action for (self: Object, Parser) */
5776 void VIRTUAL_parser__ReduceAction46__action(val* self, val* p0) {
5777 parser__ReduceAction46__action(self, p0);
5778 RET_LABEL:;
5779 }
5780 /* method parser#ReduceAction47#action for (self: ReduceAction47, Parser) */
5781 void parser__ReduceAction47__action(val* self, val* p0) {
5782 val* var_p /* var p: Parser */;
5783 val* var /* : null */;
5784 val* var_node_list /* var node_list: nullable Object */;
5785 val* var1 /* : nullable Object */;
5786 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5787 val* var2 /* : nullable Object */;
5788 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5789 val* var3 /* : nullable Object */;
5790 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5791 val* var4 /* : nullable Object */;
5792 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5793 val* var5 /* : nullable Object */;
5794 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5795 val* var6 /* : Array[Object] */;
5796 val* var_listnode4 /* var listnode4: Array[Object] */;
5797 val* var7 /* : Array[Object] */;
5798 val* var_listnode6 /* var listnode6: Array[Object] */;
5799 val* var8 /* : Array[Object] */;
5800 val* var_listnode9 /* var listnode9: Array[Object] */;
5801 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
5802 short int var9 /* : Bool */;
5803 int cltype;
5804 int idtype;
5805 val* var_listnode3 /* var listnode3: nullable Object */;
5806 short int var10 /* : Bool */;
5807 int cltype11;
5808 int idtype12;
5809 val* var13 /* : Array[Object] */;
5810 val* var_listnode5 /* var listnode5: nullable Object */;
5811 short int var14 /* : Bool */;
5812 int cltype15;
5813 int idtype16;
5814 val* var17 /* : Array[Object] */;
5815 val* var_listnode7 /* var listnode7: nullable Object */;
5816 short int var18 /* : Bool */;
5817 int cltype19;
5818 int idtype20;
5819 val* var_pclassdefnode8 /* var pclassdefnode8: nullable Object */;
5820 short int var21 /* : Bool */;
5821 int cltype22;
5822 int idtype23;
5823 val* var24 /* : Array[Object] */;
5824 val* var25 /* : null */;
5825 short int var26 /* : Bool */;
5826 val* var27 /* : AModule */;
5827 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
5828 long var28 /* : Int */;
5829 long var29 /* : Int */;
5830 var_p = p0;
5831 var = NULL;
5832 var_node_list = var;
5833 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5834 var_nodearraylist5 = var1;
5835 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5836 var_nodearraylist4 = var2;
5837 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5838 var_nodearraylist3 = var3;
5839 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5840 var_nodearraylist2 = var4;
5841 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5842 var_nodearraylist1 = var5;
5843 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
5844 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
5845 var_listnode4 = var6;
5846 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
5847 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
5848 var_listnode6 = var7;
5849 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
5850 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
5851 var_listnode9 = var8;
5852 var_pmoduledeclnode2 = var_nodearraylist1;
5853 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
5854 cltype = type_nullable_parser_nodes__AModuledecl.color;
5855 idtype = type_nullable_parser_nodes__AModuledecl.id;
5856 if(var_pmoduledeclnode2 == NULL) {
5857 var9 = 1;
5858 } else {
5859 if(cltype >= var_pmoduledeclnode2->type->table_size) {
5860 var9 = 0;
5861 } else {
5862 var9 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
5863 }
5864 }
5865 if (!var9) {
5866 fprintf(stderr, "Runtime error: %s", "Assert failed");
5867 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3282);
5868 show_backtrace(1);
5869 }
5870 var_listnode3 = var_nodearraylist2;
5871 /* <var_listnode3:nullable Object> isa Array[Object] */
5872 cltype11 = type_array__Arraykernel__Object.color;
5873 idtype12 = type_array__Arraykernel__Object.id;
5874 if(var_listnode3 == NULL) {
5875 var10 = 0;
5876 } else {
5877 if(cltype11 >= var_listnode3->type->table_size) {
5878 var10 = 0;
5879 } else {
5880 var10 = var_listnode3->type->type_table[cltype11] == idtype12;
5881 }
5882 }
5883 if (!var10) {
5884 fprintf(stderr, "Runtime error: %s", "Assert failed");
5885 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3284);
5886 show_backtrace(1);
5887 }
5888 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction47>*/;
5889 var_listnode4 = var13;
5890 var_listnode5 = var_nodearraylist3;
5891 /* <var_listnode5:nullable Object> isa Array[Object] */
5892 cltype15 = type_array__Arraykernel__Object.color;
5893 idtype16 = type_array__Arraykernel__Object.id;
5894 if(var_listnode5 == NULL) {
5895 var14 = 0;
5896 } else {
5897 if(cltype15 >= var_listnode5->type->table_size) {
5898 var14 = 0;
5899 } else {
5900 var14 = var_listnode5->type->type_table[cltype15] == idtype16;
5901 }
5902 }
5903 if (!var14) {
5904 fprintf(stderr, "Runtime error: %s", "Assert failed");
5905 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3287);
5906 show_backtrace(1);
5907 }
5908 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction47>*/;
5909 var_listnode6 = var17;
5910 var_listnode7 = var_nodearraylist4;
5911 /* <var_listnode7:nullable Object> isa Array[Object] */
5912 cltype19 = type_array__Arraykernel__Object.color;
5913 idtype20 = type_array__Arraykernel__Object.id;
5914 if(var_listnode7 == NULL) {
5915 var18 = 0;
5916 } else {
5917 if(cltype19 >= var_listnode7->type->table_size) {
5918 var18 = 0;
5919 } else {
5920 var18 = var_listnode7->type->type_table[cltype19] == idtype20;
5921 }
5922 }
5923 if (!var18) {
5924 fprintf(stderr, "Runtime error: %s", "Assert failed");
5925 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3290);
5926 show_backtrace(1);
5927 }
5928 var_pclassdefnode8 = var_nodearraylist5;
5929 /* <var_pclassdefnode8:nullable Object> isa nullable AClassdef */
5930 cltype22 = type_nullable_parser_nodes__AClassdef.color;
5931 idtype23 = type_nullable_parser_nodes__AClassdef.id;
5932 if(var_pclassdefnode8 == NULL) {
5933 var21 = 1;
5934 } else {
5935 if(cltype22 >= var_pclassdefnode8->type->table_size) {
5936 var21 = 0;
5937 } else {
5938 var21 = var_pclassdefnode8->type->type_table[cltype22] == idtype23;
5939 }
5940 }
5941 if (!var21) {
5942 fprintf(stderr, "Runtime error: %s", "Assert failed");
5943 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3292);
5944 show_backtrace(1);
5945 }
5946 var24 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode7) /* concat on <self:ReduceAction47>*/;
5947 var_listnode9 = var24;
5948 var25 = NULL;
5949 if (var_pclassdefnode8 == NULL) {
5950 var26 = 0; /* is null */
5951 } else {
5952 var26 = 1; /* arg is null and recv is not */
5953 }
5954 if (var26){
5955 ((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode8) /* add on <var_listnode9:Array[Object]>*/;
5956 } else {
5957 }
5958 var27 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
5959 ((void (*)(val*, val*, val*, val*, val*))(var27->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var27, var_pmoduledeclnode2, var_listnode4, var_listnode6, var_listnode9) /* init_amodule on <var27:AModule>*/;
5960 var_pmodulenode1 = var27;
5961 var_node_list = var_pmodulenode1;
5962 var28 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction47> */
5963 var29 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var28) /* go_to on <var_p:Parser>*/;
5964 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var29, var_node_list) /* push on <var_p:Parser>*/;
5965 RET_LABEL:;
5966 }
5967 /* method parser#ReduceAction47#action for (self: Object, Parser) */
5968 void VIRTUAL_parser__ReduceAction47__action(val* self, val* p0) {
5969 parser__ReduceAction47__action(self, p0);
5970 RET_LABEL:;
5971 }
5972 /* method parser#ReduceAction48#action for (self: ReduceAction48, Parser) */
5973 void parser__ReduceAction48__action(val* self, val* p0) {
5974 val* var_p /* var p: Parser */;
5975 val* var /* : null */;
5976 val* var_node_list /* var node_list: nullable Object */;
5977 val* var1 /* : nullable Object */;
5978 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5979 val* var2 /* : nullable Object */;
5980 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5981 val* var3 /* : Array[Object] */;
5982 val* var_listnode3 /* var listnode3: Array[Object] */;
5983 val* var4 /* : Array[Object] */;
5984 val* var_listnode4 /* var listnode4: Array[Object] */;
5985 val* var5 /* : Array[Object] */;
5986 val* var_listnode9 /* var listnode9: Array[Object] */;
5987 val* var6 /* : Array[Object] */;
5988 val* var_listnode7 /* var listnode7: Array[Object] */;
5989 val* var_listnode6 /* var listnode6: nullable Object */;
5990 short int var7 /* : Bool */;
5991 int cltype;
5992 int idtype;
5993 val* var8 /* : Array[Object] */;
5994 val* var9 /* : ATopClassdef */;
5995 val* var_pclassdefnode5 /* var pclassdefnode5: nullable ATopClassdef */;
5996 val* var_pclassdefnode8 /* var pclassdefnode8: nullable Object */;
5997 short int var10 /* : Bool */;
5998 int cltype11;
5999 int idtype12;
6000 val* var13 /* : null */;
6001 short int var14 /* : Bool */;
6002 val* var15 /* : null */;
6003 short int var16 /* : Bool */;
6004 val* var17 /* : AModule */;
6005 val* var18 /* : null */;
6006 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
6007 long var19 /* : Int */;
6008 long var20 /* : Int */;
6009 var_p = p0;
6010 var = NULL;
6011 var_node_list = var;
6012 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6013 var_nodearraylist2 = var1;
6014 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6015 var_nodearraylist1 = var2;
6016 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
6017 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
6018 var_listnode3 = var3;
6019 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
6020 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
6021 var_listnode4 = var4;
6022 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
6023 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
6024 var_listnode9 = var5;
6025 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
6026 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
6027 var_listnode7 = var6;
6028 var_listnode6 = var_nodearraylist1;
6029 /* <var_listnode6:nullable Object> isa Array[Object] */
6030 cltype = type_array__Arraykernel__Object.color;
6031 idtype = type_array__Arraykernel__Object.id;
6032 if(var_listnode6 == NULL) {
6033 var7 = 0;
6034 } else {
6035 if(cltype >= var_listnode6->type->table_size) {
6036 var7 = 0;
6037 } else {
6038 var7 = var_listnode6->type->type_table[cltype] == idtype;
6039 }
6040 }
6041 if (!var7) {
6042 fprintf(stderr, "Runtime error: %s", "Assert failed");
6043 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3319);
6044 show_backtrace(1);
6045 }
6046 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on <self:ReduceAction48>*/;
6047 var_listnode7 = var8;
6048 var9 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
6049 ((void (*)(val*, val*))(var9->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var9, var_listnode7) /* init_atopclassdef on <var9:ATopClassdef>*/;
6050 var_pclassdefnode5 = var9;
6051 var_pclassdefnode8 = var_nodearraylist2;
6052 /* <var_pclassdefnode8:nullable Object> isa nullable AClassdef */
6053 cltype11 = type_nullable_parser_nodes__AClassdef.color;
6054 idtype12 = type_nullable_parser_nodes__AClassdef.id;
6055 if(var_pclassdefnode8 == NULL) {
6056 var10 = 1;
6057 } else {
6058 if(cltype11 >= var_pclassdefnode8->type->table_size) {
6059 var10 = 0;
6060 } else {
6061 var10 = var_pclassdefnode8->type->type_table[cltype11] == idtype12;
6062 }
6063 }
6064 if (!var10) {
6065 fprintf(stderr, "Runtime error: %s", "Assert failed");
6066 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3325);
6067 show_backtrace(1);
6068 }
6069 var13 = NULL;
6070 if (var_pclassdefnode5 == NULL) {
6071 var14 = 0; /* is null */
6072 } else {
6073 var14 = 1; /* arg is null and recv is not */
6074 }
6075 if (var14){
6076 ((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode5) /* add on <var_listnode9:Array[Object]>*/;
6077 } else {
6078 }
6079 var15 = NULL;
6080 if (var_pclassdefnode8 == NULL) {
6081 var16 = 0; /* is null */
6082 } else {
6083 var16 = 1; /* arg is null and recv is not */
6084 }
6085 if (var16){
6086 ((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode8) /* add on <var_listnode9:Array[Object]>*/;
6087 } else {
6088 }
6089 var17 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
6090 var18 = NULL;
6091 ((void (*)(val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var17, var18, var_listnode3, var_listnode4, var_listnode9) /* init_amodule on <var17:AModule>*/;
6092 var_pmodulenode1 = var17;
6093 var_node_list = var_pmodulenode1;
6094 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction48> */
6095 var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
6096 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
6097 RET_LABEL:;
6098 }
6099 /* method parser#ReduceAction48#action for (self: Object, Parser) */
6100 void VIRTUAL_parser__ReduceAction48__action(val* self, val* p0) {
6101 parser__ReduceAction48__action(self, p0);
6102 RET_LABEL:;
6103 }
6104 /* method parser#ReduceAction49#action for (self: ReduceAction49, Parser) */
6105 void parser__ReduceAction49__action(val* self, val* p0) {
6106 val* var_p /* var p: Parser */;
6107 val* var /* : null */;
6108 val* var_node_list /* var node_list: nullable Object */;
6109 val* var1 /* : nullable Object */;
6110 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6111 val* var2 /* : nullable Object */;
6112 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6113 val* var3 /* : nullable Object */;
6114 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6115 val* var4 /* : Array[Object] */;
6116 val* var_listnode3 /* var listnode3: Array[Object] */;
6117 val* var5 /* : Array[Object] */;
6118 val* var_listnode4 /* var listnode4: Array[Object] */;
6119 val* var6 /* : Array[Object] */;
6120 val* var_listnode9 /* var listnode9: Array[Object] */;
6121 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
6122 short int var7 /* : Bool */;
6123 int cltype;
6124 int idtype;
6125 val* var8 /* : Array[Object] */;
6126 val* var_listnode7 /* var listnode7: Array[Object] */;
6127 val* var_listnode6 /* var listnode6: nullable Object */;
6128 short int var9 /* : Bool */;
6129 int cltype10;
6130 int idtype11;
6131 val* var12 /* : Array[Object] */;
6132 val* var13 /* : ATopClassdef */;
6133 val* var_pclassdefnode5 /* var pclassdefnode5: nullable ATopClassdef */;
6134 val* var_pclassdefnode8 /* var pclassdefnode8: nullable Object */;
6135 short int var14 /* : Bool */;
6136 int cltype15;
6137 int idtype16;
6138 val* var17 /* : null */;
6139 short int var18 /* : Bool */;
6140 val* var19 /* : null */;
6141 short int var20 /* : Bool */;
6142 val* var21 /* : AModule */;
6143 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
6144 long var22 /* : Int */;
6145 long var23 /* : Int */;
6146 var_p = p0;
6147 var = NULL;
6148 var_node_list = var;
6149 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6150 var_nodearraylist3 = var1;
6151 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6152 var_nodearraylist2 = var2;
6153 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6154 var_nodearraylist1 = var3;
6155 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
6156 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
6157 var_listnode3 = var4;
6158 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
6159 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
6160 var_listnode4 = var5;
6161 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
6162 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
6163 var_listnode9 = var6;
6164 var_pmoduledeclnode2 = var_nodearraylist1;
6165 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
6166 cltype = type_nullable_parser_nodes__AModuledecl.color;
6167 idtype = type_nullable_parser_nodes__AModuledecl.id;
6168 if(var_pmoduledeclnode2 == NULL) {
6169 var7 = 1;
6170 } else {
6171 if(cltype >= var_pmoduledeclnode2->type->table_size) {
6172 var7 = 0;
6173 } else {
6174 var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
6175 }
6176 }
6177 if (!var7) {
6178 fprintf(stderr, "Runtime error: %s", "Assert failed");
6179 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3354);
6180 show_backtrace(1);
6181 }
6182 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
6183 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
6184 var_listnode7 = var8;
6185 var_listnode6 = var_nodearraylist2;
6186 /* <var_listnode6:nullable Object> isa Array[Object] */
6187 cltype10 = type_array__Arraykernel__Object.color;
6188 idtype11 = type_array__Arraykernel__Object.id;
6189 if(var_listnode6 == NULL) {
6190 var9 = 0;
6191 } else {
6192 if(cltype10 >= var_listnode6->type->table_size) {
6193 var9 = 0;
6194 } else {
6195 var9 = var_listnode6->type->type_table[cltype10] == idtype11;
6196 }
6197 }
6198 if (!var9) {
6199 fprintf(stderr, "Runtime error: %s", "Assert failed");
6200 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3357);
6201 show_backtrace(1);
6202 }
6203 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on <self:ReduceAction49>*/;
6204 var_listnode7 = var12;
6205 var13 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
6206 ((void (*)(val*, val*))(var13->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var13, var_listnode7) /* init_atopclassdef on <var13:ATopClassdef>*/;
6207 var_pclassdefnode5 = var13;
6208 var_pclassdefnode8 = var_nodearraylist3;
6209 /* <var_pclassdefnode8:nullable Object> isa nullable AClassdef */
6210 cltype15 = type_nullable_parser_nodes__AClassdef.color;
6211 idtype16 = type_nullable_parser_nodes__AClassdef.id;
6212 if(var_pclassdefnode8 == NULL) {
6213 var14 = 1;
6214 } else {
6215 if(cltype15 >= var_pclassdefnode8->type->table_size) {
6216 var14 = 0;
6217 } else {
6218 var14 = var_pclassdefnode8->type->type_table[cltype15] == idtype16;
6219 }
6220 }
6221 if (!var14) {
6222 fprintf(stderr, "Runtime error: %s", "Assert failed");
6223 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3363);
6224 show_backtrace(1);
6225 }
6226 var17 = NULL;
6227 if (var_pclassdefnode5 == NULL) {
6228 var18 = 0; /* is null */
6229 } else {
6230 var18 = 1; /* arg is null and recv is not */
6231 }
6232 if (var18){
6233 ((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode5) /* add on <var_listnode9:Array[Object]>*/;
6234 } else {
6235 }
6236 var19 = NULL;
6237 if (var_pclassdefnode8 == NULL) {
6238 var20 = 0; /* is null */
6239 } else {
6240 var20 = 1; /* arg is null and recv is not */
6241 }
6242 if (var20){
6243 ((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode8) /* add on <var_listnode9:Array[Object]>*/;
6244 } else {
6245 }
6246 var21 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
6247 ((void (*)(val*, val*, val*, val*, val*))(var21->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var21, var_pmoduledeclnode2, var_listnode3, var_listnode4, var_listnode9) /* init_amodule on <var21:AModule>*/;
6248 var_pmodulenode1 = var21;
6249 var_node_list = var_pmodulenode1;
6250 var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction49> */
6251 var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
6252 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
6253 RET_LABEL:;
6254 }
6255 /* method parser#ReduceAction49#action for (self: Object, Parser) */
6256 void VIRTUAL_parser__ReduceAction49__action(val* self, val* p0) {
6257 parser__ReduceAction49__action(self, p0);
6258 RET_LABEL:;
6259 }
6260 /* method parser#ReduceAction50#action for (self: ReduceAction50, Parser) */
6261 void parser__ReduceAction50__action(val* self, val* p0) {
6262 val* var_p /* var p: Parser */;
6263 val* var /* : null */;
6264 val* var_node_list /* var node_list: nullable Object */;
6265 val* var1 /* : nullable Object */;
6266 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6267 val* var2 /* : nullable Object */;
6268 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6269 val* var3 /* : nullable Object */;
6270 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6271 val* var4 /* : Array[Object] */;
6272 val* var_listnode4 /* var listnode4: Array[Object] */;
6273 val* var5 /* : Array[Object] */;
6274 val* var_listnode5 /* var listnode5: Array[Object] */;
6275 val* var6 /* : Array[Object] */;
6276 val* var_listnode10 /* var listnode10: Array[Object] */;
6277 val* var_listnode3 /* var listnode3: nullable Object */;
6278 short int var7 /* : Bool */;
6279 int cltype;
6280 int idtype;
6281 val* var8 /* : Array[Object] */;
6282 val* var9 /* : Array[Object] */;
6283 val* var_listnode8 /* var listnode8: Array[Object] */;
6284 val* var_listnode7 /* var listnode7: nullable Object */;
6285 short int var10 /* : Bool */;
6286 int cltype11;
6287 int idtype12;
6288 val* var13 /* : Array[Object] */;
6289 val* var14 /* : ATopClassdef */;
6290 val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */;
6291 val* var_pclassdefnode9 /* var pclassdefnode9: nullable Object */;
6292 short int var15 /* : Bool */;
6293 int cltype16;
6294 int idtype17;
6295 val* var18 /* : null */;
6296 short int var19 /* : Bool */;
6297 val* var20 /* : null */;
6298 short int var21 /* : Bool */;
6299 val* var22 /* : AModule */;
6300 val* var23 /* : null */;
6301 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
6302 long var24 /* : Int */;
6303 long var25 /* : Int */;
6304 var_p = p0;
6305 var = NULL;
6306 var_node_list = var;
6307 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6308 var_nodearraylist3 = var1;
6309 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6310 var_nodearraylist2 = var2;
6311 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6312 var_nodearraylist1 = var3;
6313 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
6314 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
6315 var_listnode4 = var4;
6316 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
6317 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
6318 var_listnode5 = var5;
6319 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
6320 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
6321 var_listnode10 = var6;
6322 var_listnode3 = var_nodearraylist1;
6323 /* <var_listnode3:nullable Object> isa Array[Object] */
6324 cltype = type_array__Arraykernel__Object.color;
6325 idtype = type_array__Arraykernel__Object.id;
6326 if(var_listnode3 == NULL) {
6327 var7 = 0;
6328 } else {
6329 if(cltype >= var_listnode3->type->table_size) {
6330 var7 = 0;
6331 } else {
6332 var7 = var_listnode3->type->type_table[cltype] == idtype;
6333 }
6334 }
6335 if (!var7) {
6336 fprintf(stderr, "Runtime error: %s", "Assert failed");
6337 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3392);
6338 show_backtrace(1);
6339 }
6340 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction50>*/;
6341 var_listnode4 = var8;
6342 var9 = NEW_array__Array(&type_array__Arraykernel__Object);
6343 ((void (*)(val*))(var9->class->vft[COLOR_array__Array__init]))(var9) /* init on <var9:Array[Object]>*/;
6344 var_listnode8 = var9;
6345 var_listnode7 = var_nodearraylist2;
6346 /* <var_listnode7:nullable Object> isa Array[Object] */
6347 cltype11 = type_array__Arraykernel__Object.color;
6348 idtype12 = type_array__Arraykernel__Object.id;
6349 if(var_listnode7 == NULL) {
6350 var10 = 0;
6351 } else {
6352 if(cltype11 >= var_listnode7->type->table_size) {
6353 var10 = 0;
6354 } else {
6355 var10 = var_listnode7->type->type_table[cltype11] == idtype12;
6356 }
6357 }
6358 if (!var10) {
6359 fprintf(stderr, "Runtime error: %s", "Assert failed");
6360 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3396);
6361 show_backtrace(1);
6362 }
6363 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction50>*/;
6364 var_listnode8 = var13;
6365 var14 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
6366 ((void (*)(val*, val*))(var14->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var14, var_listnode8) /* init_atopclassdef on <var14:ATopClassdef>*/;
6367 var_pclassdefnode6 = var14;
6368 var_pclassdefnode9 = var_nodearraylist3;
6369 /* <var_pclassdefnode9:nullable Object> isa nullable AClassdef */
6370 cltype16 = type_nullable_parser_nodes__AClassdef.color;
6371 idtype17 = type_nullable_parser_nodes__AClassdef.id;
6372 if(var_pclassdefnode9 == NULL) {
6373 var15 = 1;
6374 } else {
6375 if(cltype16 >= var_pclassdefnode9->type->table_size) {
6376 var15 = 0;
6377 } else {
6378 var15 = var_pclassdefnode9->type->type_table[cltype16] == idtype17;
6379 }
6380 }
6381 if (!var15) {
6382 fprintf(stderr, "Runtime error: %s", "Assert failed");
6383 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3402);
6384 show_backtrace(1);
6385 }
6386 var18 = NULL;
6387 if (var_pclassdefnode6 == NULL) {
6388 var19 = 0; /* is null */
6389 } else {
6390 var19 = 1; /* arg is null and recv is not */
6391 }
6392 if (var19){
6393 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode6) /* add on <var_listnode10:Array[Object]>*/;
6394 } else {
6395 }
6396 var20 = NULL;
6397 if (var_pclassdefnode9 == NULL) {
6398 var21 = 0; /* is null */
6399 } else {
6400 var21 = 1; /* arg is null and recv is not */
6401 }
6402 if (var21){
6403 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode9) /* add on <var_listnode10:Array[Object]>*/;
6404 } else {
6405 }
6406 var22 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
6407 var23 = NULL;
6408 ((void (*)(val*, val*, val*, val*, val*))(var22->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var22, var23, var_listnode4, var_listnode5, var_listnode10) /* init_amodule on <var22:AModule>*/;
6409 var_pmodulenode1 = var22;
6410 var_node_list = var_pmodulenode1;
6411 var24 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction50> */
6412 var25 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var24) /* go_to on <var_p:Parser>*/;
6413 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var25, var_node_list) /* push on <var_p:Parser>*/;
6414 RET_LABEL:;
6415 }
6416 /* method parser#ReduceAction50#action for (self: Object, Parser) */
6417 void VIRTUAL_parser__ReduceAction50__action(val* self, val* p0) {
6418 parser__ReduceAction50__action(self, p0);
6419 RET_LABEL:;
6420 }
6421 /* method parser#ReduceAction51#action for (self: ReduceAction51, Parser) */
6422 void parser__ReduceAction51__action(val* self, val* p0) {
6423 val* var_p /* var p: Parser */;
6424 val* var /* : null */;
6425 val* var_node_list /* var node_list: nullable Object */;
6426 val* var1 /* : nullable Object */;
6427 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6428 val* var2 /* : nullable Object */;
6429 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6430 val* var3 /* : nullable Object */;
6431 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6432 val* var4 /* : nullable Object */;
6433 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6434 val* var5 /* : Array[Object] */;
6435 val* var_listnode4 /* var listnode4: Array[Object] */;
6436 val* var6 /* : Array[Object] */;
6437 val* var_listnode5 /* var listnode5: Array[Object] */;
6438 val* var7 /* : Array[Object] */;
6439 val* var_listnode10 /* var listnode10: Array[Object] */;
6440 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
6441 short int var8 /* : Bool */;
6442 int cltype;
6443 int idtype;
6444 val* var_listnode3 /* var listnode3: nullable Object */;
6445 short int var9 /* : Bool */;
6446 int cltype10;
6447 int idtype11;
6448 val* var12 /* : Array[Object] */;
6449 val* var13 /* : Array[Object] */;
6450 val* var_listnode8 /* var listnode8: Array[Object] */;
6451 val* var_listnode7 /* var listnode7: nullable Object */;
6452 short int var14 /* : Bool */;
6453 int cltype15;
6454 int idtype16;
6455 val* var17 /* : Array[Object] */;
6456 val* var18 /* : ATopClassdef */;
6457 val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */;
6458 val* var_pclassdefnode9 /* var pclassdefnode9: nullable Object */;
6459 short int var19 /* : Bool */;
6460 int cltype20;
6461 int idtype21;
6462 val* var22 /* : null */;
6463 short int var23 /* : Bool */;
6464 val* var24 /* : null */;
6465 short int var25 /* : Bool */;
6466 val* var26 /* : AModule */;
6467 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
6468 long var27 /* : Int */;
6469 long var28 /* : Int */;
6470 var_p = p0;
6471 var = NULL;
6472 var_node_list = var;
6473 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6474 var_nodearraylist4 = var1;
6475 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6476 var_nodearraylist3 = var2;
6477 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6478 var_nodearraylist2 = var3;
6479 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6480 var_nodearraylist1 = var4;
6481 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
6482 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
6483 var_listnode4 = var5;
6484 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
6485 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
6486 var_listnode5 = var6;
6487 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
6488 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
6489 var_listnode10 = var7;
6490 var_pmoduledeclnode2 = var_nodearraylist1;
6491 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
6492 cltype = type_nullable_parser_nodes__AModuledecl.color;
6493 idtype = type_nullable_parser_nodes__AModuledecl.id;
6494 if(var_pmoduledeclnode2 == NULL) {
6495 var8 = 1;
6496 } else {
6497 if(cltype >= var_pmoduledeclnode2->type->table_size) {
6498 var8 = 0;
6499 } else {
6500 var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
6501 }
6502 }
6503 if (!var8) {
6504 fprintf(stderr, "Runtime error: %s", "Assert failed");
6505 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3432);
6506 show_backtrace(1);
6507 }
6508 var_listnode3 = var_nodearraylist2;
6509 /* <var_listnode3:nullable Object> isa Array[Object] */
6510 cltype10 = type_array__Arraykernel__Object.color;
6511 idtype11 = type_array__Arraykernel__Object.id;
6512 if(var_listnode3 == NULL) {
6513 var9 = 0;
6514 } else {
6515 if(cltype10 >= var_listnode3->type->table_size) {
6516 var9 = 0;
6517 } else {
6518 var9 = var_listnode3->type->type_table[cltype10] == idtype11;
6519 }
6520 }
6521 if (!var9) {
6522 fprintf(stderr, "Runtime error: %s", "Assert failed");
6523 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3434);
6524 show_backtrace(1);
6525 }
6526 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction51>*/;
6527 var_listnode4 = var12;
6528 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
6529 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
6530 var_listnode8 = var13;
6531 var_listnode7 = var_nodearraylist3;
6532 /* <var_listnode7:nullable Object> isa Array[Object] */
6533 cltype15 = type_array__Arraykernel__Object.color;
6534 idtype16 = type_array__Arraykernel__Object.id;
6535 if(var_listnode7 == NULL) {
6536 var14 = 0;
6537 } else {
6538 if(cltype15 >= var_listnode7->type->table_size) {
6539 var14 = 0;
6540 } else {
6541 var14 = var_listnode7->type->type_table[cltype15] == idtype16;
6542 }
6543 }
6544 if (!var14) {
6545 fprintf(stderr, "Runtime error: %s", "Assert failed");
6546 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3438);
6547 show_backtrace(1);
6548 }
6549 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction51>*/;
6550 var_listnode8 = var17;
6551 var18 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
6552 ((void (*)(val*, val*))(var18->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var18, var_listnode8) /* init_atopclassdef on <var18:ATopClassdef>*/;
6553 var_pclassdefnode6 = var18;
6554 var_pclassdefnode9 = var_nodearraylist4;
6555 /* <var_pclassdefnode9:nullable Object> isa nullable AClassdef */
6556 cltype20 = type_nullable_parser_nodes__AClassdef.color;
6557 idtype21 = type_nullable_parser_nodes__AClassdef.id;
6558 if(var_pclassdefnode9 == NULL) {
6559 var19 = 1;
6560 } else {
6561 if(cltype20 >= var_pclassdefnode9->type->table_size) {
6562 var19 = 0;
6563 } else {
6564 var19 = var_pclassdefnode9->type->type_table[cltype20] == idtype21;
6565 }
6566 }
6567 if (!var19) {
6568 fprintf(stderr, "Runtime error: %s", "Assert failed");
6569 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3444);
6570 show_backtrace(1);
6571 }
6572 var22 = NULL;
6573 if (var_pclassdefnode6 == NULL) {
6574 var23 = 0; /* is null */
6575 } else {
6576 var23 = 1; /* arg is null and recv is not */
6577 }
6578 if (var23){
6579 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode6) /* add on <var_listnode10:Array[Object]>*/;
6580 } else {
6581 }
6582 var24 = NULL;
6583 if (var_pclassdefnode9 == NULL) {
6584 var25 = 0; /* is null */
6585 } else {
6586 var25 = 1; /* arg is null and recv is not */
6587 }
6588 if (var25){
6589 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode9) /* add on <var_listnode10:Array[Object]>*/;
6590 } else {
6591 }
6592 var26 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
6593 ((void (*)(val*, val*, val*, val*, val*))(var26->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var26, var_pmoduledeclnode2, var_listnode4, var_listnode5, var_listnode10) /* init_amodule on <var26:AModule>*/;
6594 var_pmodulenode1 = var26;
6595 var_node_list = var_pmodulenode1;
6596 var27 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction51> */
6597 var28 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var27) /* go_to on <var_p:Parser>*/;
6598 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var28, var_node_list) /* push on <var_p:Parser>*/;
6599 RET_LABEL:;
6600 }
6601 /* method parser#ReduceAction51#action for (self: Object, Parser) */
6602 void VIRTUAL_parser__ReduceAction51__action(val* self, val* p0) {
6603 parser__ReduceAction51__action(self, p0);
6604 RET_LABEL:;
6605 }
6606 /* method parser#ReduceAction52#action for (self: ReduceAction52, Parser) */
6607 void parser__ReduceAction52__action(val* self, val* p0) {
6608 val* var_p /* var p: Parser */;
6609 val* var /* : null */;
6610 val* var_node_list /* var node_list: nullable Object */;
6611 val* var1 /* : nullable Object */;
6612 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6613 val* var2 /* : nullable Object */;
6614 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6615 val* var3 /* : nullable Object */;
6616 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6617 val* var4 /* : Array[Object] */;
6618 val* var_listnode3 /* var listnode3: Array[Object] */;
6619 val* var5 /* : Array[Object] */;
6620 val* var_listnode5 /* var listnode5: Array[Object] */;
6621 val* var6 /* : Array[Object] */;
6622 val* var_listnode10 /* var listnode10: Array[Object] */;
6623 val* var_listnode4 /* var listnode4: nullable Object */;
6624 short int var7 /* : Bool */;
6625 int cltype;
6626 int idtype;
6627 val* var8 /* : Array[Object] */;
6628 val* var9 /* : Array[Object] */;
6629 val* var_listnode8 /* var listnode8: Array[Object] */;
6630 val* var_listnode7 /* var listnode7: nullable Object */;
6631 short int var10 /* : Bool */;
6632 int cltype11;
6633 int idtype12;
6634 val* var13 /* : Array[Object] */;
6635 val* var14 /* : ATopClassdef */;
6636 val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */;
6637 val* var_pclassdefnode9 /* var pclassdefnode9: nullable Object */;
6638 short int var15 /* : Bool */;
6639 int cltype16;
6640 int idtype17;
6641 val* var18 /* : null */;
6642 short int var19 /* : Bool */;
6643 val* var20 /* : null */;
6644 short int var21 /* : Bool */;
6645 val* var22 /* : AModule */;
6646 val* var23 /* : null */;
6647 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
6648 long var24 /* : Int */;
6649 long var25 /* : Int */;
6650 var_p = p0;
6651 var = NULL;
6652 var_node_list = var;
6653 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6654 var_nodearraylist3 = var1;
6655 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6656 var_nodearraylist2 = var2;
6657 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6658 var_nodearraylist1 = var3;
6659 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
6660 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
6661 var_listnode3 = var4;
6662 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
6663 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
6664 var_listnode5 = var5;
6665 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
6666 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
6667 var_listnode10 = var6;
6668 var_listnode4 = var_nodearraylist1;
6669 /* <var_listnode4:nullable Object> isa Array[Object] */
6670 cltype = type_array__Arraykernel__Object.color;
6671 idtype = type_array__Arraykernel__Object.id;
6672 if(var_listnode4 == NULL) {
6673 var7 = 0;
6674 } else {
6675 if(cltype >= var_listnode4->type->table_size) {
6676 var7 = 0;
6677 } else {
6678 var7 = var_listnode4->type->type_table[cltype] == idtype;
6679 }
6680 }
6681 if (!var7) {
6682 fprintf(stderr, "Runtime error: %s", "Assert failed");
6683 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3473);
6684 show_backtrace(1);
6685 }
6686 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction52>*/;
6687 var_listnode5 = var8;
6688 var9 = NEW_array__Array(&type_array__Arraykernel__Object);
6689 ((void (*)(val*))(var9->class->vft[COLOR_array__Array__init]))(var9) /* init on <var9:Array[Object]>*/;
6690 var_listnode8 = var9;
6691 var_listnode7 = var_nodearraylist2;
6692 /* <var_listnode7:nullable Object> isa Array[Object] */
6693 cltype11 = type_array__Arraykernel__Object.color;
6694 idtype12 = type_array__Arraykernel__Object.id;
6695 if(var_listnode7 == NULL) {
6696 var10 = 0;
6697 } else {
6698 if(cltype11 >= var_listnode7->type->table_size) {
6699 var10 = 0;
6700 } else {
6701 var10 = var_listnode7->type->type_table[cltype11] == idtype12;
6702 }
6703 }
6704 if (!var10) {
6705 fprintf(stderr, "Runtime error: %s", "Assert failed");
6706 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3477);
6707 show_backtrace(1);
6708 }
6709 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction52>*/;
6710 var_listnode8 = var13;
6711 var14 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
6712 ((void (*)(val*, val*))(var14->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var14, var_listnode8) /* init_atopclassdef on <var14:ATopClassdef>*/;
6713 var_pclassdefnode6 = var14;
6714 var_pclassdefnode9 = var_nodearraylist3;
6715 /* <var_pclassdefnode9:nullable Object> isa nullable AClassdef */
6716 cltype16 = type_nullable_parser_nodes__AClassdef.color;
6717 idtype17 = type_nullable_parser_nodes__AClassdef.id;
6718 if(var_pclassdefnode9 == NULL) {
6719 var15 = 1;
6720 } else {
6721 if(cltype16 >= var_pclassdefnode9->type->table_size) {
6722 var15 = 0;
6723 } else {
6724 var15 = var_pclassdefnode9->type->type_table[cltype16] == idtype17;
6725 }
6726 }
6727 if (!var15) {
6728 fprintf(stderr, "Runtime error: %s", "Assert failed");
6729 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3483);
6730 show_backtrace(1);
6731 }
6732 var18 = NULL;
6733 if (var_pclassdefnode6 == NULL) {
6734 var19 = 0; /* is null */
6735 } else {
6736 var19 = 1; /* arg is null and recv is not */
6737 }
6738 if (var19){
6739 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode6) /* add on <var_listnode10:Array[Object]>*/;
6740 } else {
6741 }
6742 var20 = NULL;
6743 if (var_pclassdefnode9 == NULL) {
6744 var21 = 0; /* is null */
6745 } else {
6746 var21 = 1; /* arg is null and recv is not */
6747 }
6748 if (var21){
6749 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode9) /* add on <var_listnode10:Array[Object]>*/;
6750 } else {
6751 }
6752 var22 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
6753 var23 = NULL;
6754 ((void (*)(val*, val*, val*, val*, val*))(var22->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var22, var23, var_listnode3, var_listnode5, var_listnode10) /* init_amodule on <var22:AModule>*/;
6755 var_pmodulenode1 = var22;
6756 var_node_list = var_pmodulenode1;
6757 var24 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction52> */
6758 var25 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var24) /* go_to on <var_p:Parser>*/;
6759 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var25, var_node_list) /* push on <var_p:Parser>*/;
6760 RET_LABEL:;
6761 }
6762 /* method parser#ReduceAction52#action for (self: Object, Parser) */
6763 void VIRTUAL_parser__ReduceAction52__action(val* self, val* p0) {
6764 parser__ReduceAction52__action(self, p0);
6765 RET_LABEL:;
6766 }
6767 /* method parser#ReduceAction53#action for (self: ReduceAction53, Parser) */
6768 void parser__ReduceAction53__action(val* self, val* p0) {
6769 val* var_p /* var p: Parser */;
6770 val* var /* : null */;
6771 val* var_node_list /* var node_list: nullable Object */;
6772 val* var1 /* : nullable Object */;
6773 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6774 val* var2 /* : nullable Object */;
6775 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6776 val* var3 /* : nullable Object */;
6777 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6778 val* var4 /* : nullable Object */;
6779 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6780 val* var5 /* : Array[Object] */;
6781 val* var_listnode3 /* var listnode3: Array[Object] */;
6782 val* var6 /* : Array[Object] */;
6783 val* var_listnode5 /* var listnode5: Array[Object] */;
6784 val* var7 /* : Array[Object] */;
6785 val* var_listnode10 /* var listnode10: Array[Object] */;
6786 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
6787 short int var8 /* : Bool */;
6788 int cltype;
6789 int idtype;
6790 val* var_listnode4 /* var listnode4: nullable Object */;
6791 short int var9 /* : Bool */;
6792 int cltype10;
6793 int idtype11;
6794 val* var12 /* : Array[Object] */;
6795 val* var13 /* : Array[Object] */;
6796 val* var_listnode8 /* var listnode8: Array[Object] */;
6797 val* var_listnode7 /* var listnode7: nullable Object */;
6798 short int var14 /* : Bool */;
6799 int cltype15;
6800 int idtype16;
6801 val* var17 /* : Array[Object] */;
6802 val* var18 /* : ATopClassdef */;
6803 val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */;
6804 val* var_pclassdefnode9 /* var pclassdefnode9: nullable Object */;
6805 short int var19 /* : Bool */;
6806 int cltype20;
6807 int idtype21;
6808 val* var22 /* : null */;
6809 short int var23 /* : Bool */;
6810 val* var24 /* : null */;
6811 short int var25 /* : Bool */;
6812 val* var26 /* : AModule */;
6813 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
6814 long var27 /* : Int */;
6815 long var28 /* : Int */;
6816 var_p = p0;
6817 var = NULL;
6818 var_node_list = var;
6819 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6820 var_nodearraylist4 = var1;
6821 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6822 var_nodearraylist3 = var2;
6823 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6824 var_nodearraylist2 = var3;
6825 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6826 var_nodearraylist1 = var4;
6827 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
6828 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
6829 var_listnode3 = var5;
6830 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
6831 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
6832 var_listnode5 = var6;
6833 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
6834 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
6835 var_listnode10 = var7;
6836 var_pmoduledeclnode2 = var_nodearraylist1;
6837 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
6838 cltype = type_nullable_parser_nodes__AModuledecl.color;
6839 idtype = type_nullable_parser_nodes__AModuledecl.id;
6840 if(var_pmoduledeclnode2 == NULL) {
6841 var8 = 1;
6842 } else {
6843 if(cltype >= var_pmoduledeclnode2->type->table_size) {
6844 var8 = 0;
6845 } else {
6846 var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
6847 }
6848 }
6849 if (!var8) {
6850 fprintf(stderr, "Runtime error: %s", "Assert failed");
6851 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3513);
6852 show_backtrace(1);
6853 }
6854 var_listnode4 = var_nodearraylist2;
6855 /* <var_listnode4:nullable Object> isa Array[Object] */
6856 cltype10 = type_array__Arraykernel__Object.color;
6857 idtype11 = type_array__Arraykernel__Object.id;
6858 if(var_listnode4 == NULL) {
6859 var9 = 0;
6860 } else {
6861 if(cltype10 >= var_listnode4->type->table_size) {
6862 var9 = 0;
6863 } else {
6864 var9 = var_listnode4->type->type_table[cltype10] == idtype11;
6865 }
6866 }
6867 if (!var9) {
6868 fprintf(stderr, "Runtime error: %s", "Assert failed");
6869 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3515);
6870 show_backtrace(1);
6871 }
6872 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction53>*/;
6873 var_listnode5 = var12;
6874 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
6875 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
6876 var_listnode8 = var13;
6877 var_listnode7 = var_nodearraylist3;
6878 /* <var_listnode7:nullable Object> isa Array[Object] */
6879 cltype15 = type_array__Arraykernel__Object.color;
6880 idtype16 = type_array__Arraykernel__Object.id;
6881 if(var_listnode7 == NULL) {
6882 var14 = 0;
6883 } else {
6884 if(cltype15 >= var_listnode7->type->table_size) {
6885 var14 = 0;
6886 } else {
6887 var14 = var_listnode7->type->type_table[cltype15] == idtype16;
6888 }
6889 }
6890 if (!var14) {
6891 fprintf(stderr, "Runtime error: %s", "Assert failed");
6892 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3519);
6893 show_backtrace(1);
6894 }
6895 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction53>*/;
6896 var_listnode8 = var17;
6897 var18 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
6898 ((void (*)(val*, val*))(var18->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var18, var_listnode8) /* init_atopclassdef on <var18:ATopClassdef>*/;
6899 var_pclassdefnode6 = var18;
6900 var_pclassdefnode9 = var_nodearraylist4;
6901 /* <var_pclassdefnode9:nullable Object> isa nullable AClassdef */
6902 cltype20 = type_nullable_parser_nodes__AClassdef.color;
6903 idtype21 = type_nullable_parser_nodes__AClassdef.id;
6904 if(var_pclassdefnode9 == NULL) {
6905 var19 = 1;
6906 } else {
6907 if(cltype20 >= var_pclassdefnode9->type->table_size) {
6908 var19 = 0;
6909 } else {
6910 var19 = var_pclassdefnode9->type->type_table[cltype20] == idtype21;
6911 }
6912 }
6913 if (!var19) {
6914 fprintf(stderr, "Runtime error: %s", "Assert failed");
6915 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3525);
6916 show_backtrace(1);
6917 }
6918 var22 = NULL;
6919 if (var_pclassdefnode6 == NULL) {
6920 var23 = 0; /* is null */
6921 } else {
6922 var23 = 1; /* arg is null and recv is not */
6923 }
6924 if (var23){
6925 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode6) /* add on <var_listnode10:Array[Object]>*/;
6926 } else {
6927 }
6928 var24 = NULL;
6929 if (var_pclassdefnode9 == NULL) {
6930 var25 = 0; /* is null */
6931 } else {
6932 var25 = 1; /* arg is null and recv is not */
6933 }
6934 if (var25){
6935 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode9) /* add on <var_listnode10:Array[Object]>*/;
6936 } else {
6937 }
6938 var26 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
6939 ((void (*)(val*, val*, val*, val*, val*))(var26->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var26, var_pmoduledeclnode2, var_listnode3, var_listnode5, var_listnode10) /* init_amodule on <var26:AModule>*/;
6940 var_pmodulenode1 = var26;
6941 var_node_list = var_pmodulenode1;
6942 var27 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction53> */
6943 var28 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var27) /* go_to on <var_p:Parser>*/;
6944 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var28, var_node_list) /* push on <var_p:Parser>*/;
6945 RET_LABEL:;
6946 }
6947 /* method parser#ReduceAction53#action for (self: Object, Parser) */
6948 void VIRTUAL_parser__ReduceAction53__action(val* self, val* p0) {
6949 parser__ReduceAction53__action(self, p0);
6950 RET_LABEL:;
6951 }
6952 /* method parser#ReduceAction54#action for (self: ReduceAction54, Parser) */
6953 void parser__ReduceAction54__action(val* self, val* p0) {
6954 val* var_p /* var p: Parser */;
6955 val* var /* : null */;
6956 val* var_node_list /* var node_list: nullable Object */;
6957 val* var1 /* : nullable Object */;
6958 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6959 val* var2 /* : nullable Object */;
6960 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6961 val* var3 /* : nullable Object */;
6962 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6963 val* var4 /* : nullable Object */;
6964 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6965 val* var5 /* : Array[Object] */;
6966 val* var_listnode4 /* var listnode4: Array[Object] */;
6967 val* var6 /* : Array[Object] */;
6968 val* var_listnode6 /* var listnode6: Array[Object] */;
6969 val* var7 /* : Array[Object] */;
6970 val* var_listnode11 /* var listnode11: Array[Object] */;
6971 val* var_listnode3 /* var listnode3: nullable Object */;
6972 short int var8 /* : Bool */;
6973 int cltype;
6974 int idtype;
6975 val* var9 /* : Array[Object] */;
6976 val* var_listnode5 /* var listnode5: nullable Object */;
6977 short int var10 /* : Bool */;
6978 int cltype11;
6979 int idtype12;
6980 val* var13 /* : Array[Object] */;
6981 val* var14 /* : Array[Object] */;
6982 val* var_listnode9 /* var listnode9: Array[Object] */;
6983 val* var_listnode8 /* var listnode8: nullable Object */;
6984 short int var15 /* : Bool */;
6985 int cltype16;
6986 int idtype17;
6987 val* var18 /* : Array[Object] */;
6988 val* var19 /* : ATopClassdef */;
6989 val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */;
6990 val* var_pclassdefnode10 /* var pclassdefnode10: nullable Object */;
6991 short int var20 /* : Bool */;
6992 int cltype21;
6993 int idtype22;
6994 val* var23 /* : null */;
6995 short int var24 /* : Bool */;
6996 val* var25 /* : null */;
6997 short int var26 /* : Bool */;
6998 val* var27 /* : AModule */;
6999 val* var28 /* : null */;
7000 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
7001 long var29 /* : Int */;
7002 long var30 /* : Int */;
7003 var_p = p0;
7004 var = NULL;
7005 var_node_list = var;
7006 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7007 var_nodearraylist4 = var1;
7008 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7009 var_nodearraylist3 = var2;
7010 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7011 var_nodearraylist2 = var3;
7012 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7013 var_nodearraylist1 = var4;
7014 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
7015 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
7016 var_listnode4 = var5;
7017 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
7018 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
7019 var_listnode6 = var6;
7020 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
7021 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
7022 var_listnode11 = var7;
7023 var_listnode3 = var_nodearraylist1;
7024 /* <var_listnode3:nullable Object> isa Array[Object] */
7025 cltype = type_array__Arraykernel__Object.color;
7026 idtype = type_array__Arraykernel__Object.id;
7027 if(var_listnode3 == NULL) {
7028 var8 = 0;
7029 } else {
7030 if(cltype >= var_listnode3->type->table_size) {
7031 var8 = 0;
7032 } else {
7033 var8 = var_listnode3->type->type_table[cltype] == idtype;
7034 }
7035 }
7036 if (!var8) {
7037 fprintf(stderr, "Runtime error: %s", "Assert failed");
7038 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3555);
7039 show_backtrace(1);
7040 }
7041 var9 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction54>*/;
7042 var_listnode4 = var9;
7043 var_listnode5 = var_nodearraylist2;
7044 /* <var_listnode5:nullable Object> isa Array[Object] */
7045 cltype11 = type_array__Arraykernel__Object.color;
7046 idtype12 = type_array__Arraykernel__Object.id;
7047 if(var_listnode5 == NULL) {
7048 var10 = 0;
7049 } else {
7050 if(cltype11 >= var_listnode5->type->table_size) {
7051 var10 = 0;
7052 } else {
7053 var10 = var_listnode5->type->type_table[cltype11] == idtype12;
7054 }
7055 }
7056 if (!var10) {
7057 fprintf(stderr, "Runtime error: %s", "Assert failed");
7058 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3558);
7059 show_backtrace(1);
7060 }
7061 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction54>*/;
7062 var_listnode6 = var13;
7063 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
7064 ((void (*)(val*))(var14->class->vft[COLOR_array__Array__init]))(var14) /* init on <var14:Array[Object]>*/;
7065 var_listnode9 = var14;
7066 var_listnode8 = var_nodearraylist3;
7067 /* <var_listnode8:nullable Object> isa Array[Object] */
7068 cltype16 = type_array__Arraykernel__Object.color;
7069 idtype17 = type_array__Arraykernel__Object.id;
7070 if(var_listnode8 == NULL) {
7071 var15 = 0;
7072 } else {
7073 if(cltype16 >= var_listnode8->type->table_size) {
7074 var15 = 0;
7075 } else {
7076 var15 = var_listnode8->type->type_table[cltype16] == idtype17;
7077 }
7078 }
7079 if (!var15) {
7080 fprintf(stderr, "Runtime error: %s", "Assert failed");
7081 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3562);
7082 show_backtrace(1);
7083 }
7084 var18 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction54>*/;
7085 var_listnode9 = var18;
7086 var19 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
7087 ((void (*)(val*, val*))(var19->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var19, var_listnode9) /* init_atopclassdef on <var19:ATopClassdef>*/;
7088 var_pclassdefnode7 = var19;
7089 var_pclassdefnode10 = var_nodearraylist4;
7090 /* <var_pclassdefnode10:nullable Object> isa nullable AClassdef */
7091 cltype21 = type_nullable_parser_nodes__AClassdef.color;
7092 idtype22 = type_nullable_parser_nodes__AClassdef.id;
7093 if(var_pclassdefnode10 == NULL) {
7094 var20 = 1;
7095 } else {
7096 if(cltype21 >= var_pclassdefnode10->type->table_size) {
7097 var20 = 0;
7098 } else {
7099 var20 = var_pclassdefnode10->type->type_table[cltype21] == idtype22;
7100 }
7101 }
7102 if (!var20) {
7103 fprintf(stderr, "Runtime error: %s", "Assert failed");
7104 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3568);
7105 show_backtrace(1);
7106 }
7107 var23 = NULL;
7108 if (var_pclassdefnode7 == NULL) {
7109 var24 = 0; /* is null */
7110 } else {
7111 var24 = 1; /* arg is null and recv is not */
7112 }
7113 if (var24){
7114 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode7) /* add on <var_listnode11:Array[Object]>*/;
7115 } else {
7116 }
7117 var25 = NULL;
7118 if (var_pclassdefnode10 == NULL) {
7119 var26 = 0; /* is null */
7120 } else {
7121 var26 = 1; /* arg is null and recv is not */
7122 }
7123 if (var26){
7124 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode10) /* add on <var_listnode11:Array[Object]>*/;
7125 } else {
7126 }
7127 var27 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
7128 var28 = NULL;
7129 ((void (*)(val*, val*, val*, val*, val*))(var27->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var27, var28, var_listnode4, var_listnode6, var_listnode11) /* init_amodule on <var27:AModule>*/;
7130 var_pmodulenode1 = var27;
7131 var_node_list = var_pmodulenode1;
7132 var29 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction54> */
7133 var30 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var29) /* go_to on <var_p:Parser>*/;
7134 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var30, var_node_list) /* push on <var_p:Parser>*/;
7135 RET_LABEL:;
7136 }
7137 /* method parser#ReduceAction54#action for (self: Object, Parser) */
7138 void VIRTUAL_parser__ReduceAction54__action(val* self, val* p0) {
7139 parser__ReduceAction54__action(self, p0);
7140 RET_LABEL:;
7141 }
7142 /* method parser#ReduceAction55#action for (self: ReduceAction55, Parser) */
7143 void parser__ReduceAction55__action(val* self, val* p0) {
7144 val* var_p /* var p: Parser */;
7145 val* var /* : null */;
7146 val* var_node_list /* var node_list: nullable Object */;
7147 val* var1 /* : nullable Object */;
7148 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7149 val* var2 /* : nullable Object */;
7150 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7151 val* var3 /* : nullable Object */;
7152 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7153 val* var4 /* : nullable Object */;
7154 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7155 val* var5 /* : nullable Object */;
7156 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7157 val* var6 /* : Array[Object] */;
7158 val* var_listnode4 /* var listnode4: Array[Object] */;
7159 val* var7 /* : Array[Object] */;
7160 val* var_listnode6 /* var listnode6: Array[Object] */;
7161 val* var8 /* : Array[Object] */;
7162 val* var_listnode11 /* var listnode11: Array[Object] */;
7163 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
7164 short int var9 /* : Bool */;
7165 int cltype;
7166 int idtype;
7167 val* var_listnode3 /* var listnode3: nullable Object */;
7168 short int var10 /* : Bool */;
7169 int cltype11;
7170 int idtype12;
7171 val* var13 /* : Array[Object] */;
7172 val* var_listnode5 /* var listnode5: nullable Object */;
7173 short int var14 /* : Bool */;
7174 int cltype15;
7175 int idtype16;
7176 val* var17 /* : Array[Object] */;
7177 val* var18 /* : Array[Object] */;
7178 val* var_listnode9 /* var listnode9: Array[Object] */;
7179 val* var_listnode8 /* var listnode8: nullable Object */;
7180 short int var19 /* : Bool */;
7181 int cltype20;
7182 int idtype21;
7183 val* var22 /* : Array[Object] */;
7184 val* var23 /* : ATopClassdef */;
7185 val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */;
7186 val* var_pclassdefnode10 /* var pclassdefnode10: nullable Object */;
7187 short int var24 /* : Bool */;
7188 int cltype25;
7189 int idtype26;
7190 val* var27 /* : null */;
7191 short int var28 /* : Bool */;
7192 val* var29 /* : null */;
7193 short int var30 /* : Bool */;
7194 val* var31 /* : AModule */;
7195 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
7196 long var32 /* : Int */;
7197 long var33 /* : Int */;
7198 var_p = p0;
7199 var = NULL;
7200 var_node_list = var;
7201 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7202 var_nodearraylist5 = var1;
7203 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7204 var_nodearraylist4 = var2;
7205 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7206 var_nodearraylist3 = var3;
7207 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7208 var_nodearraylist2 = var4;
7209 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7210 var_nodearraylist1 = var5;
7211 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
7212 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
7213 var_listnode4 = var6;
7214 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
7215 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
7216 var_listnode6 = var7;
7217 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
7218 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
7219 var_listnode11 = var8;
7220 var_pmoduledeclnode2 = var_nodearraylist1;
7221 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
7222 cltype = type_nullable_parser_nodes__AModuledecl.color;
7223 idtype = type_nullable_parser_nodes__AModuledecl.id;
7224 if(var_pmoduledeclnode2 == NULL) {
7225 var9 = 1;
7226 } else {
7227 if(cltype >= var_pmoduledeclnode2->type->table_size) {
7228 var9 = 0;
7229 } else {
7230 var9 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
7231 }
7232 }
7233 if (!var9) {
7234 fprintf(stderr, "Runtime error: %s", "Assert failed");
7235 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3599);
7236 show_backtrace(1);
7237 }
7238 var_listnode3 = var_nodearraylist2;
7239 /* <var_listnode3:nullable Object> isa Array[Object] */
7240 cltype11 = type_array__Arraykernel__Object.color;
7241 idtype12 = type_array__Arraykernel__Object.id;
7242 if(var_listnode3 == NULL) {
7243 var10 = 0;
7244 } else {
7245 if(cltype11 >= var_listnode3->type->table_size) {
7246 var10 = 0;
7247 } else {
7248 var10 = var_listnode3->type->type_table[cltype11] == idtype12;
7249 }
7250 }
7251 if (!var10) {
7252 fprintf(stderr, "Runtime error: %s", "Assert failed");
7253 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3601);
7254 show_backtrace(1);
7255 }
7256 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction55>*/;
7257 var_listnode4 = var13;
7258 var_listnode5 = var_nodearraylist3;
7259 /* <var_listnode5:nullable Object> isa Array[Object] */
7260 cltype15 = type_array__Arraykernel__Object.color;
7261 idtype16 = type_array__Arraykernel__Object.id;
7262 if(var_listnode5 == NULL) {
7263 var14 = 0;
7264 } else {
7265 if(cltype15 >= var_listnode5->type->table_size) {
7266 var14 = 0;
7267 } else {
7268 var14 = var_listnode5->type->type_table[cltype15] == idtype16;
7269 }
7270 }
7271 if (!var14) {
7272 fprintf(stderr, "Runtime error: %s", "Assert failed");
7273 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3604);
7274 show_backtrace(1);
7275 }
7276 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction55>*/;
7277 var_listnode6 = var17;
7278 var18 = NEW_array__Array(&type_array__Arraykernel__Object);
7279 ((void (*)(val*))(var18->class->vft[COLOR_array__Array__init]))(var18) /* init on <var18:Array[Object]>*/;
7280 var_listnode9 = var18;
7281 var_listnode8 = var_nodearraylist4;
7282 /* <var_listnode8:nullable Object> isa Array[Object] */
7283 cltype20 = type_array__Arraykernel__Object.color;
7284 idtype21 = type_array__Arraykernel__Object.id;
7285 if(var_listnode8 == NULL) {
7286 var19 = 0;
7287 } else {
7288 if(cltype20 >= var_listnode8->type->table_size) {
7289 var19 = 0;
7290 } else {
7291 var19 = var_listnode8->type->type_table[cltype20] == idtype21;
7292 }
7293 }
7294 if (!var19) {
7295 fprintf(stderr, "Runtime error: %s", "Assert failed");
7296 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3608);
7297 show_backtrace(1);
7298 }
7299 var22 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction55>*/;
7300 var_listnode9 = var22;
7301 var23 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
7302 ((void (*)(val*, val*))(var23->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var23, var_listnode9) /* init_atopclassdef on <var23:ATopClassdef>*/;
7303 var_pclassdefnode7 = var23;
7304 var_pclassdefnode10 = var_nodearraylist5;
7305 /* <var_pclassdefnode10:nullable Object> isa nullable AClassdef */
7306 cltype25 = type_nullable_parser_nodes__AClassdef.color;
7307 idtype26 = type_nullable_parser_nodes__AClassdef.id;
7308 if(var_pclassdefnode10 == NULL) {
7309 var24 = 1;
7310 } else {
7311 if(cltype25 >= var_pclassdefnode10->type->table_size) {
7312 var24 = 0;
7313 } else {
7314 var24 = var_pclassdefnode10->type->type_table[cltype25] == idtype26;
7315 }
7316 }
7317 if (!var24) {
7318 fprintf(stderr, "Runtime error: %s", "Assert failed");
7319 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3614);
7320 show_backtrace(1);
7321 }
7322 var27 = NULL;
7323 if (var_pclassdefnode7 == NULL) {
7324 var28 = 0; /* is null */
7325 } else {
7326 var28 = 1; /* arg is null and recv is not */
7327 }
7328 if (var28){
7329 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode7) /* add on <var_listnode11:Array[Object]>*/;
7330 } else {
7331 }
7332 var29 = NULL;
7333 if (var_pclassdefnode10 == NULL) {
7334 var30 = 0; /* is null */
7335 } else {
7336 var30 = 1; /* arg is null and recv is not */
7337 }
7338 if (var30){
7339 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode10) /* add on <var_listnode11:Array[Object]>*/;
7340 } else {
7341 }
7342 var31 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
7343 ((void (*)(val*, val*, val*, val*, val*))(var31->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var31, var_pmoduledeclnode2, var_listnode4, var_listnode6, var_listnode11) /* init_amodule on <var31:AModule>*/;
7344 var_pmodulenode1 = var31;
7345 var_node_list = var_pmodulenode1;
7346 var32 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction55> */
7347 var33 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var32) /* go_to on <var_p:Parser>*/;
7348 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var33, var_node_list) /* push on <var_p:Parser>*/;
7349 RET_LABEL:;
7350 }
7351 /* method parser#ReduceAction55#action for (self: Object, Parser) */
7352 void VIRTUAL_parser__ReduceAction55__action(val* self, val* p0) {
7353 parser__ReduceAction55__action(self, p0);
7354 RET_LABEL:;
7355 }
7356 /* method parser#ReduceAction56#action for (self: ReduceAction56, Parser) */
7357 void parser__ReduceAction56__action(val* self, val* p0) {
7358 val* var_p /* var p: Parser */;
7359 val* var /* : null */;
7360 val* var_node_list /* var node_list: nullable Object */;
7361 val* var1 /* : nullable Object */;
7362 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7363 val* var2 /* : nullable Object */;
7364 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7365 val* var3 /* : nullable Object */;
7366 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7367 val* var4 /* : Array[Object] */;
7368 val* var_listnode3 /* var listnode3: Array[Object] */;
7369 val* var5 /* : Array[Object] */;
7370 val* var_listnode4 /* var listnode4: Array[Object] */;
7371 val* var6 /* : Array[Object] */;
7372 val* var_listnode10 /* var listnode10: Array[Object] */;
7373 val* var_listnode5 /* var listnode5: nullable Object */;
7374 short int var7 /* : Bool */;
7375 int cltype;
7376 int idtype;
7377 val* var8 /* : Array[Object] */;
7378 val* var_listnode8 /* var listnode8: Array[Object] */;
7379 val* var_listnode7 /* var listnode7: nullable Object */;
7380 short int var9 /* : Bool */;
7381 int cltype10;
7382 int idtype11;
7383 val* var12 /* : Array[Object] */;
7384 val* var13 /* : ATopClassdef */;
7385 val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */;
7386 val* var_pclassdefnode9 /* var pclassdefnode9: nullable Object */;
7387 short int var14 /* : Bool */;
7388 int cltype15;
7389 int idtype16;
7390 val* var17 /* : Array[Object] */;
7391 val* var18 /* : null */;
7392 short int var19 /* : Bool */;
7393 val* var20 /* : null */;
7394 short int var21 /* : Bool */;
7395 val* var22 /* : AModule */;
7396 val* var23 /* : null */;
7397 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
7398 long var24 /* : Int */;
7399 long var25 /* : Int */;
7400 var_p = p0;
7401 var = NULL;
7402 var_node_list = var;
7403 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7404 var_nodearraylist3 = var1;
7405 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7406 var_nodearraylist2 = var2;
7407 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7408 var_nodearraylist1 = var3;
7409 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
7410 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
7411 var_listnode3 = var4;
7412 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
7413 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
7414 var_listnode4 = var5;
7415 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
7416 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
7417 var_listnode10 = var6;
7418 var_listnode5 = var_nodearraylist1;
7419 /* <var_listnode5:nullable Object> isa Array[Object] */
7420 cltype = type_array__Arraykernel__Object.color;
7421 idtype = type_array__Arraykernel__Object.id;
7422 if(var_listnode5 == NULL) {
7423 var7 = 0;
7424 } else {
7425 if(cltype >= var_listnode5->type->table_size) {
7426 var7 = 0;
7427 } else {
7428 var7 = var_listnode5->type->type_table[cltype] == idtype;
7429 }
7430 }
7431 if (!var7) {
7432 fprintf(stderr, "Runtime error: %s", "Assert failed");
7433 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3643);
7434 show_backtrace(1);
7435 }
7436 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
7437 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
7438 var_listnode8 = var8;
7439 var_listnode7 = var_nodearraylist2;
7440 /* <var_listnode7:nullable Object> isa Array[Object] */
7441 cltype10 = type_array__Arraykernel__Object.color;
7442 idtype11 = type_array__Arraykernel__Object.id;
7443 if(var_listnode7 == NULL) {
7444 var9 = 0;
7445 } else {
7446 if(cltype10 >= var_listnode7->type->table_size) {
7447 var9 = 0;
7448 } else {
7449 var9 = var_listnode7->type->type_table[cltype10] == idtype11;
7450 }
7451 }
7452 if (!var9) {
7453 fprintf(stderr, "Runtime error: %s", "Assert failed");
7454 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3646);
7455 show_backtrace(1);
7456 }
7457 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction56>*/;
7458 var_listnode8 = var12;
7459 var13 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
7460 ((void (*)(val*, val*))(var13->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var13, var_listnode8) /* init_atopclassdef on <var13:ATopClassdef>*/;
7461 var_pclassdefnode6 = var13;
7462 var_pclassdefnode9 = var_nodearraylist3;
7463 /* <var_pclassdefnode9:nullable Object> isa nullable AClassdef */
7464 cltype15 = type_nullable_parser_nodes__AClassdef.color;
7465 idtype16 = type_nullable_parser_nodes__AClassdef.id;
7466 if(var_pclassdefnode9 == NULL) {
7467 var14 = 1;
7468 } else {
7469 if(cltype15 >= var_pclassdefnode9->type->table_size) {
7470 var14 = 0;
7471 } else {
7472 var14 = var_pclassdefnode9->type->type_table[cltype15] == idtype16;
7473 }
7474 }
7475 if (!var14) {
7476 fprintf(stderr, "Runtime error: %s", "Assert failed");
7477 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3652);
7478 show_backtrace(1);
7479 }
7480 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode5) /* concat on <self:ReduceAction56>*/;
7481 var_listnode10 = var17;
7482 var18 = NULL;
7483 if (var_pclassdefnode6 == NULL) {
7484 var19 = 0; /* is null */
7485 } else {
7486 var19 = 1; /* arg is null and recv is not */
7487 }
7488 if (var19){
7489 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode6) /* add on <var_listnode10:Array[Object]>*/;
7490 } else {
7491 }
7492 var20 = NULL;
7493 if (var_pclassdefnode9 == NULL) {
7494 var21 = 0; /* is null */
7495 } else {
7496 var21 = 1; /* arg is null and recv is not */
7497 }
7498 if (var21){
7499 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode9) /* add on <var_listnode10:Array[Object]>*/;
7500 } else {
7501 }
7502 var22 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
7503 var23 = NULL;
7504 ((void (*)(val*, val*, val*, val*, val*))(var22->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var22, var23, var_listnode3, var_listnode4, var_listnode10) /* init_amodule on <var22:AModule>*/;
7505 var_pmodulenode1 = var22;
7506 var_node_list = var_pmodulenode1;
7507 var24 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction56> */
7508 var25 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var24) /* go_to on <var_p:Parser>*/;
7509 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var25, var_node_list) /* push on <var_p:Parser>*/;
7510 RET_LABEL:;
7511 }
7512 /* method parser#ReduceAction56#action for (self: Object, Parser) */
7513 void VIRTUAL_parser__ReduceAction56__action(val* self, val* p0) {
7514 parser__ReduceAction56__action(self, p0);
7515 RET_LABEL:;
7516 }
7517 /* method parser#ReduceAction57#action for (self: ReduceAction57, Parser) */
7518 void parser__ReduceAction57__action(val* self, val* p0) {
7519 val* var_p /* var p: Parser */;
7520 val* var /* : null */;
7521 val* var_node_list /* var node_list: nullable Object */;
7522 val* var1 /* : nullable Object */;
7523 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7524 val* var2 /* : nullable Object */;
7525 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7526 val* var3 /* : nullable Object */;
7527 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7528 val* var4 /* : nullable Object */;
7529 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7530 val* var5 /* : Array[Object] */;
7531 val* var_listnode3 /* var listnode3: Array[Object] */;
7532 val* var6 /* : Array[Object] */;
7533 val* var_listnode4 /* var listnode4: Array[Object] */;
7534 val* var7 /* : Array[Object] */;
7535 val* var_listnode10 /* var listnode10: Array[Object] */;
7536 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
7537 short int var8 /* : Bool */;
7538 int cltype;
7539 int idtype;
7540 val* var_listnode5 /* var listnode5: nullable Object */;
7541 short int var9 /* : Bool */;
7542 int cltype10;
7543 int idtype11;
7544 val* var12 /* : Array[Object] */;
7545 val* var_listnode8 /* var listnode8: Array[Object] */;
7546 val* var_listnode7 /* var listnode7: nullable Object */;
7547 short int var13 /* : Bool */;
7548 int cltype14;
7549 int idtype15;
7550 val* var16 /* : Array[Object] */;
7551 val* var17 /* : ATopClassdef */;
7552 val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */;
7553 val* var_pclassdefnode9 /* var pclassdefnode9: nullable Object */;
7554 short int var18 /* : Bool */;
7555 int cltype19;
7556 int idtype20;
7557 val* var21 /* : Array[Object] */;
7558 val* var22 /* : null */;
7559 short int var23 /* : Bool */;
7560 val* var24 /* : null */;
7561 short int var25 /* : Bool */;
7562 val* var26 /* : AModule */;
7563 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
7564 long var27 /* : Int */;
7565 long var28 /* : Int */;
7566 var_p = p0;
7567 var = NULL;
7568 var_node_list = var;
7569 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7570 var_nodearraylist4 = var1;
7571 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7572 var_nodearraylist3 = var2;
7573 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7574 var_nodearraylist2 = var3;
7575 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7576 var_nodearraylist1 = var4;
7577 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
7578 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
7579 var_listnode3 = var5;
7580 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
7581 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
7582 var_listnode4 = var6;
7583 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
7584 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
7585 var_listnode10 = var7;
7586 var_pmoduledeclnode2 = var_nodearraylist1;
7587 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
7588 cltype = type_nullable_parser_nodes__AModuledecl.color;
7589 idtype = type_nullable_parser_nodes__AModuledecl.id;
7590 if(var_pmoduledeclnode2 == NULL) {
7591 var8 = 1;
7592 } else {
7593 if(cltype >= var_pmoduledeclnode2->type->table_size) {
7594 var8 = 0;
7595 } else {
7596 var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
7597 }
7598 }
7599 if (!var8) {
7600 fprintf(stderr, "Runtime error: %s", "Assert failed");
7601 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3683);
7602 show_backtrace(1);
7603 }
7604 var_listnode5 = var_nodearraylist2;
7605 /* <var_listnode5:nullable Object> isa Array[Object] */
7606 cltype10 = type_array__Arraykernel__Object.color;
7607 idtype11 = type_array__Arraykernel__Object.id;
7608 if(var_listnode5 == NULL) {
7609 var9 = 0;
7610 } else {
7611 if(cltype10 >= var_listnode5->type->table_size) {
7612 var9 = 0;
7613 } else {
7614 var9 = var_listnode5->type->type_table[cltype10] == idtype11;
7615 }
7616 }
7617 if (!var9) {
7618 fprintf(stderr, "Runtime error: %s", "Assert failed");
7619 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3685);
7620 show_backtrace(1);
7621 }
7622 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
7623 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
7624 var_listnode8 = var12;
7625 var_listnode7 = var_nodearraylist3;
7626 /* <var_listnode7:nullable Object> isa Array[Object] */
7627 cltype14 = type_array__Arraykernel__Object.color;
7628 idtype15 = type_array__Arraykernel__Object.id;
7629 if(var_listnode7 == NULL) {
7630 var13 = 0;
7631 } else {
7632 if(cltype14 >= var_listnode7->type->table_size) {
7633 var13 = 0;
7634 } else {
7635 var13 = var_listnode7->type->type_table[cltype14] == idtype15;
7636 }
7637 }
7638 if (!var13) {
7639 fprintf(stderr, "Runtime error: %s", "Assert failed");
7640 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3688);
7641 show_backtrace(1);
7642 }
7643 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction57>*/;
7644 var_listnode8 = var16;
7645 var17 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
7646 ((void (*)(val*, val*))(var17->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var17, var_listnode8) /* init_atopclassdef on <var17:ATopClassdef>*/;
7647 var_pclassdefnode6 = var17;
7648 var_pclassdefnode9 = var_nodearraylist4;
7649 /* <var_pclassdefnode9:nullable Object> isa nullable AClassdef */
7650 cltype19 = type_nullable_parser_nodes__AClassdef.color;
7651 idtype20 = type_nullable_parser_nodes__AClassdef.id;
7652 if(var_pclassdefnode9 == NULL) {
7653 var18 = 1;
7654 } else {
7655 if(cltype19 >= var_pclassdefnode9->type->table_size) {
7656 var18 = 0;
7657 } else {
7658 var18 = var_pclassdefnode9->type->type_table[cltype19] == idtype20;
7659 }
7660 }
7661 if (!var18) {
7662 fprintf(stderr, "Runtime error: %s", "Assert failed");
7663 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3694);
7664 show_backtrace(1);
7665 }
7666 var21 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode5) /* concat on <self:ReduceAction57>*/;
7667 var_listnode10 = var21;
7668 var22 = NULL;
7669 if (var_pclassdefnode6 == NULL) {
7670 var23 = 0; /* is null */
7671 } else {
7672 var23 = 1; /* arg is null and recv is not */
7673 }
7674 if (var23){
7675 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode6) /* add on <var_listnode10:Array[Object]>*/;
7676 } else {
7677 }
7678 var24 = NULL;
7679 if (var_pclassdefnode9 == NULL) {
7680 var25 = 0; /* is null */
7681 } else {
7682 var25 = 1; /* arg is null and recv is not */
7683 }
7684 if (var25){
7685 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode9) /* add on <var_listnode10:Array[Object]>*/;
7686 } else {
7687 }
7688 var26 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
7689 ((void (*)(val*, val*, val*, val*, val*))(var26->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var26, var_pmoduledeclnode2, var_listnode3, var_listnode4, var_listnode10) /* init_amodule on <var26:AModule>*/;
7690 var_pmodulenode1 = var26;
7691 var_node_list = var_pmodulenode1;
7692 var27 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction57> */
7693 var28 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var27) /* go_to on <var_p:Parser>*/;
7694 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var28, var_node_list) /* push on <var_p:Parser>*/;
7695 RET_LABEL:;
7696 }
7697 /* method parser#ReduceAction57#action for (self: Object, Parser) */
7698 void VIRTUAL_parser__ReduceAction57__action(val* self, val* p0) {
7699 parser__ReduceAction57__action(self, p0);
7700 RET_LABEL:;
7701 }
7702 /* method parser#ReduceAction58#action for (self: ReduceAction58, Parser) */
7703 void parser__ReduceAction58__action(val* self, val* p0) {
7704 val* var_p /* var p: Parser */;
7705 val* var /* : null */;
7706 val* var_node_list /* var node_list: nullable Object */;
7707 val* var1 /* : nullable Object */;
7708 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7709 val* var2 /* : nullable Object */;
7710 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7711 val* var3 /* : nullable Object */;
7712 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7713 val* var4 /* : nullable Object */;
7714 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7715 val* var5 /* : Array[Object] */;
7716 val* var_listnode4 /* var listnode4: Array[Object] */;
7717 val* var6 /* : Array[Object] */;
7718 val* var_listnode5 /* var listnode5: Array[Object] */;
7719 val* var7 /* : Array[Object] */;
7720 val* var_listnode11 /* var listnode11: Array[Object] */;
7721 val* var_listnode3 /* var listnode3: nullable Object */;
7722 short int var8 /* : Bool */;
7723 int cltype;
7724 int idtype;
7725 val* var9 /* : Array[Object] */;
7726 val* var_listnode6 /* var listnode6: nullable Object */;
7727 short int var10 /* : Bool */;
7728 int cltype11;
7729 int idtype12;
7730 val* var13 /* : Array[Object] */;
7731 val* var_listnode9 /* var listnode9: Array[Object] */;
7732 val* var_listnode8 /* var listnode8: nullable Object */;
7733 short int var14 /* : Bool */;
7734 int cltype15;
7735 int idtype16;
7736 val* var17 /* : Array[Object] */;
7737 val* var18 /* : ATopClassdef */;
7738 val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */;
7739 val* var_pclassdefnode10 /* var pclassdefnode10: nullable Object */;
7740 short int var19 /* : Bool */;
7741 int cltype20;
7742 int idtype21;
7743 val* var22 /* : Array[Object] */;
7744 val* var23 /* : null */;
7745 short int var24 /* : Bool */;
7746 val* var25 /* : null */;
7747 short int var26 /* : Bool */;
7748 val* var27 /* : AModule */;
7749 val* var28 /* : null */;
7750 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
7751 long var29 /* : Int */;
7752 long var30 /* : Int */;
7753 var_p = p0;
7754 var = NULL;
7755 var_node_list = var;
7756 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7757 var_nodearraylist4 = var1;
7758 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7759 var_nodearraylist3 = var2;
7760 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7761 var_nodearraylist2 = var3;
7762 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7763 var_nodearraylist1 = var4;
7764 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
7765 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
7766 var_listnode4 = var5;
7767 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
7768 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
7769 var_listnode5 = var6;
7770 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
7771 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
7772 var_listnode11 = var7;
7773 var_listnode3 = var_nodearraylist1;
7774 /* <var_listnode3:nullable Object> isa Array[Object] */
7775 cltype = type_array__Arraykernel__Object.color;
7776 idtype = type_array__Arraykernel__Object.id;
7777 if(var_listnode3 == NULL) {
7778 var8 = 0;
7779 } else {
7780 if(cltype >= var_listnode3->type->table_size) {
7781 var8 = 0;
7782 } else {
7783 var8 = var_listnode3->type->type_table[cltype] == idtype;
7784 }
7785 }
7786 if (!var8) {
7787 fprintf(stderr, "Runtime error: %s", "Assert failed");
7788 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3725);
7789 show_backtrace(1);
7790 }
7791 var9 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction58>*/;
7792 var_listnode4 = var9;
7793 var_listnode6 = var_nodearraylist2;
7794 /* <var_listnode6:nullable Object> isa Array[Object] */
7795 cltype11 = type_array__Arraykernel__Object.color;
7796 idtype12 = type_array__Arraykernel__Object.id;
7797 if(var_listnode6 == NULL) {
7798 var10 = 0;
7799 } else {
7800 if(cltype11 >= var_listnode6->type->table_size) {
7801 var10 = 0;
7802 } else {
7803 var10 = var_listnode6->type->type_table[cltype11] == idtype12;
7804 }
7805 }
7806 if (!var10) {
7807 fprintf(stderr, "Runtime error: %s", "Assert failed");
7808 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3728);
7809 show_backtrace(1);
7810 }
7811 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
7812 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
7813 var_listnode9 = var13;
7814 var_listnode8 = var_nodearraylist3;
7815 /* <var_listnode8:nullable Object> isa Array[Object] */
7816 cltype15 = type_array__Arraykernel__Object.color;
7817 idtype16 = type_array__Arraykernel__Object.id;
7818 if(var_listnode8 == NULL) {
7819 var14 = 0;
7820 } else {
7821 if(cltype15 >= var_listnode8->type->table_size) {
7822 var14 = 0;
7823 } else {
7824 var14 = var_listnode8->type->type_table[cltype15] == idtype16;
7825 }
7826 }
7827 if (!var14) {
7828 fprintf(stderr, "Runtime error: %s", "Assert failed");
7829 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3731);
7830 show_backtrace(1);
7831 }
7832 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction58>*/;
7833 var_listnode9 = var17;
7834 var18 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
7835 ((void (*)(val*, val*))(var18->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var18, var_listnode9) /* init_atopclassdef on <var18:ATopClassdef>*/;
7836 var_pclassdefnode7 = var18;
7837 var_pclassdefnode10 = var_nodearraylist4;
7838 /* <var_pclassdefnode10:nullable Object> isa nullable AClassdef */
7839 cltype20 = type_nullable_parser_nodes__AClassdef.color;
7840 idtype21 = type_nullable_parser_nodes__AClassdef.id;
7841 if(var_pclassdefnode10 == NULL) {
7842 var19 = 1;
7843 } else {
7844 if(cltype20 >= var_pclassdefnode10->type->table_size) {
7845 var19 = 0;
7846 } else {
7847 var19 = var_pclassdefnode10->type->type_table[cltype20] == idtype21;
7848 }
7849 }
7850 if (!var19) {
7851 fprintf(stderr, "Runtime error: %s", "Assert failed");
7852 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3737);
7853 show_backtrace(1);
7854 }
7855 var22 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode11, var_listnode6) /* concat on <self:ReduceAction58>*/;
7856 var_listnode11 = var22;
7857 var23 = NULL;
7858 if (var_pclassdefnode7 == NULL) {
7859 var24 = 0; /* is null */
7860 } else {
7861 var24 = 1; /* arg is null and recv is not */
7862 }
7863 if (var24){
7864 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode7) /* add on <var_listnode11:Array[Object]>*/;
7865 } else {
7866 }
7867 var25 = NULL;
7868 if (var_pclassdefnode10 == NULL) {
7869 var26 = 0; /* is null */
7870 } else {
7871 var26 = 1; /* arg is null and recv is not */
7872 }
7873 if (var26){
7874 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode10) /* add on <var_listnode11:Array[Object]>*/;
7875 } else {
7876 }
7877 var27 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
7878 var28 = NULL;
7879 ((void (*)(val*, val*, val*, val*, val*))(var27->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var27, var28, var_listnode4, var_listnode5, var_listnode11) /* init_amodule on <var27:AModule>*/;
7880 var_pmodulenode1 = var27;
7881 var_node_list = var_pmodulenode1;
7882 var29 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction58> */
7883 var30 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var29) /* go_to on <var_p:Parser>*/;
7884 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var30, var_node_list) /* push on <var_p:Parser>*/;
7885 RET_LABEL:;
7886 }
7887 /* method parser#ReduceAction58#action for (self: Object, Parser) */
7888 void VIRTUAL_parser__ReduceAction58__action(val* self, val* p0) {
7889 parser__ReduceAction58__action(self, p0);
7890 RET_LABEL:;
7891 }
7892 /* method parser#ReduceAction59#action for (self: ReduceAction59, Parser) */
7893 void parser__ReduceAction59__action(val* self, val* p0) {
7894 val* var_p /* var p: Parser */;
7895 val* var /* : null */;
7896 val* var_node_list /* var node_list: nullable Object */;
7897 val* var1 /* : nullable Object */;
7898 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7899 val* var2 /* : nullable Object */;
7900 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7901 val* var3 /* : nullable Object */;
7902 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7903 val* var4 /* : nullable Object */;
7904 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7905 val* var5 /* : nullable Object */;
7906 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7907 val* var6 /* : Array[Object] */;
7908 val* var_listnode4 /* var listnode4: Array[Object] */;
7909 val* var7 /* : Array[Object] */;
7910 val* var_listnode5 /* var listnode5: Array[Object] */;
7911 val* var8 /* : Array[Object] */;
7912 val* var_listnode11 /* var listnode11: Array[Object] */;
7913 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
7914 short int var9 /* : Bool */;
7915 int cltype;
7916 int idtype;
7917 val* var_listnode3 /* var listnode3: nullable Object */;
7918 short int var10 /* : Bool */;
7919 int cltype11;
7920 int idtype12;
7921 val* var13 /* : Array[Object] */;
7922 val* var_listnode6 /* var listnode6: nullable Object */;
7923 short int var14 /* : Bool */;
7924 int cltype15;
7925 int idtype16;
7926 val* var17 /* : Array[Object] */;
7927 val* var_listnode9 /* var listnode9: Array[Object] */;
7928 val* var_listnode8 /* var listnode8: nullable Object */;
7929 short int var18 /* : Bool */;
7930 int cltype19;
7931 int idtype20;
7932 val* var21 /* : Array[Object] */;
7933 val* var22 /* : ATopClassdef */;
7934 val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */;
7935 val* var_pclassdefnode10 /* var pclassdefnode10: nullable Object */;
7936 short int var23 /* : Bool */;
7937 int cltype24;
7938 int idtype25;
7939 val* var26 /* : Array[Object] */;
7940 val* var27 /* : null */;
7941 short int var28 /* : Bool */;
7942 val* var29 /* : null */;
7943 short int var30 /* : Bool */;
7944 val* var31 /* : AModule */;
7945 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
7946 long var32 /* : Int */;
7947 long var33 /* : Int */;
7948 var_p = p0;
7949 var = NULL;
7950 var_node_list = var;
7951 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7952 var_nodearraylist5 = var1;
7953 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7954 var_nodearraylist4 = var2;
7955 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7956 var_nodearraylist3 = var3;
7957 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7958 var_nodearraylist2 = var4;
7959 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7960 var_nodearraylist1 = var5;
7961 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
7962 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
7963 var_listnode4 = var6;
7964 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
7965 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
7966 var_listnode5 = var7;
7967 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
7968 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
7969 var_listnode11 = var8;
7970 var_pmoduledeclnode2 = var_nodearraylist1;
7971 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
7972 cltype = type_nullable_parser_nodes__AModuledecl.color;
7973 idtype = type_nullable_parser_nodes__AModuledecl.id;
7974 if(var_pmoduledeclnode2 == NULL) {
7975 var9 = 1;
7976 } else {
7977 if(cltype >= var_pmoduledeclnode2->type->table_size) {
7978 var9 = 0;
7979 } else {
7980 var9 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
7981 }
7982 }
7983 if (!var9) {
7984 fprintf(stderr, "Runtime error: %s", "Assert failed");
7985 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3769);
7986 show_backtrace(1);
7987 }
7988 var_listnode3 = var_nodearraylist2;
7989 /* <var_listnode3:nullable Object> isa Array[Object] */
7990 cltype11 = type_array__Arraykernel__Object.color;
7991 idtype12 = type_array__Arraykernel__Object.id;
7992 if(var_listnode3 == NULL) {
7993 var10 = 0;
7994 } else {
7995 if(cltype11 >= var_listnode3->type->table_size) {
7996 var10 = 0;
7997 } else {
7998 var10 = var_listnode3->type->type_table[cltype11] == idtype12;
7999 }
8000 }
8001 if (!var10) {
8002 fprintf(stderr, "Runtime error: %s", "Assert failed");
8003 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3771);
8004 show_backtrace(1);
8005 }
8006 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction59>*/;
8007 var_listnode4 = var13;
8008 var_listnode6 = var_nodearraylist3;
8009 /* <var_listnode6:nullable Object> isa Array[Object] */
8010 cltype15 = type_array__Arraykernel__Object.color;
8011 idtype16 = type_array__Arraykernel__Object.id;
8012 if(var_listnode6 == NULL) {
8013 var14 = 0;
8014 } else {
8015 if(cltype15 >= var_listnode6->type->table_size) {
8016 var14 = 0;
8017 } else {
8018 var14 = var_listnode6->type->type_table[cltype15] == idtype16;
8019 }
8020 }
8021 if (!var14) {
8022 fprintf(stderr, "Runtime error: %s", "Assert failed");
8023 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3774);
8024 show_backtrace(1);
8025 }
8026 var17 = NEW_array__Array(&type_array__Arraykernel__Object);
8027 ((void (*)(val*))(var17->class->vft[COLOR_array__Array__init]))(var17) /* init on <var17:Array[Object]>*/;
8028 var_listnode9 = var17;
8029 var_listnode8 = var_nodearraylist4;
8030 /* <var_listnode8:nullable Object> isa Array[Object] */
8031 cltype19 = type_array__Arraykernel__Object.color;
8032 idtype20 = type_array__Arraykernel__Object.id;
8033 if(var_listnode8 == NULL) {
8034 var18 = 0;
8035 } else {
8036 if(cltype19 >= var_listnode8->type->table_size) {
8037 var18 = 0;
8038 } else {
8039 var18 = var_listnode8->type->type_table[cltype19] == idtype20;
8040 }
8041 }
8042 if (!var18) {
8043 fprintf(stderr, "Runtime error: %s", "Assert failed");
8044 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3777);
8045 show_backtrace(1);
8046 }
8047 var21 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction59>*/;
8048 var_listnode9 = var21;
8049 var22 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
8050 ((void (*)(val*, val*))(var22->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var22, var_listnode9) /* init_atopclassdef on <var22:ATopClassdef>*/;
8051 var_pclassdefnode7 = var22;
8052 var_pclassdefnode10 = var_nodearraylist5;
8053 /* <var_pclassdefnode10:nullable Object> isa nullable AClassdef */
8054 cltype24 = type_nullable_parser_nodes__AClassdef.color;
8055 idtype25 = type_nullable_parser_nodes__AClassdef.id;
8056 if(var_pclassdefnode10 == NULL) {
8057 var23 = 1;
8058 } else {
8059 if(cltype24 >= var_pclassdefnode10->type->table_size) {
8060 var23 = 0;
8061 } else {
8062 var23 = var_pclassdefnode10->type->type_table[cltype24] == idtype25;
8063 }
8064 }
8065 if (!var23) {
8066 fprintf(stderr, "Runtime error: %s", "Assert failed");
8067 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3783);
8068 show_backtrace(1);
8069 }
8070 var26 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode11, var_listnode6) /* concat on <self:ReduceAction59>*/;
8071 var_listnode11 = var26;
8072 var27 = NULL;
8073 if (var_pclassdefnode7 == NULL) {
8074 var28 = 0; /* is null */
8075 } else {
8076 var28 = 1; /* arg is null and recv is not */
8077 }
8078 if (var28){
8079 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode7) /* add on <var_listnode11:Array[Object]>*/;
8080 } else {
8081 }
8082 var29 = NULL;
8083 if (var_pclassdefnode10 == NULL) {
8084 var30 = 0; /* is null */
8085 } else {
8086 var30 = 1; /* arg is null and recv is not */
8087 }
8088 if (var30){
8089 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode10) /* add on <var_listnode11:Array[Object]>*/;
8090 } else {
8091 }
8092 var31 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
8093 ((void (*)(val*, val*, val*, val*, val*))(var31->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var31, var_pmoduledeclnode2, var_listnode4, var_listnode5, var_listnode11) /* init_amodule on <var31:AModule>*/;
8094 var_pmodulenode1 = var31;
8095 var_node_list = var_pmodulenode1;
8096 var32 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction59> */
8097 var33 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var32) /* go_to on <var_p:Parser>*/;
8098 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var33, var_node_list) /* push on <var_p:Parser>*/;
8099 RET_LABEL:;
8100 }
8101 /* method parser#ReduceAction59#action for (self: Object, Parser) */
8102 void VIRTUAL_parser__ReduceAction59__action(val* self, val* p0) {
8103 parser__ReduceAction59__action(self, p0);
8104 RET_LABEL:;
8105 }
8106 /* method parser#ReduceAction60#action for (self: ReduceAction60, Parser) */
8107 void parser__ReduceAction60__action(val* self, val* p0) {
8108 val* var_p /* var p: Parser */;
8109 val* var /* : null */;
8110 val* var_node_list /* var node_list: nullable Object */;
8111 val* var1 /* : nullable Object */;
8112 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8113 val* var2 /* : nullable Object */;
8114 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8115 val* var3 /* : nullable Object */;
8116 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8117 val* var4 /* : nullable Object */;
8118 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8119 val* var5 /* : Array[Object] */;
8120 val* var_listnode3 /* var listnode3: Array[Object] */;
8121 val* var6 /* : Array[Object] */;
8122 val* var_listnode5 /* var listnode5: Array[Object] */;
8123 val* var7 /* : Array[Object] */;
8124 val* var_listnode11 /* var listnode11: Array[Object] */;
8125 val* var_listnode4 /* var listnode4: nullable Object */;
8126 short int var8 /* : Bool */;
8127 int cltype;
8128 int idtype;
8129 val* var9 /* : Array[Object] */;
8130 val* var_listnode6 /* var listnode6: nullable Object */;
8131 short int var10 /* : Bool */;
8132 int cltype11;
8133 int idtype12;
8134 val* var13 /* : Array[Object] */;
8135 val* var_listnode9 /* var listnode9: Array[Object] */;
8136 val* var_listnode8 /* var listnode8: nullable Object */;
8137 short int var14 /* : Bool */;
8138 int cltype15;
8139 int idtype16;
8140 val* var17 /* : Array[Object] */;
8141 val* var18 /* : ATopClassdef */;
8142 val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */;
8143 val* var_pclassdefnode10 /* var pclassdefnode10: nullable Object */;
8144 short int var19 /* : Bool */;
8145 int cltype20;
8146 int idtype21;
8147 val* var22 /* : Array[Object] */;
8148 val* var23 /* : null */;
8149 short int var24 /* : Bool */;
8150 val* var25 /* : null */;
8151 short int var26 /* : Bool */;
8152 val* var27 /* : AModule */;
8153 val* var28 /* : null */;
8154 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
8155 long var29 /* : Int */;
8156 long var30 /* : Int */;
8157 var_p = p0;
8158 var = NULL;
8159 var_node_list = var;
8160 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8161 var_nodearraylist4 = var1;
8162 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8163 var_nodearraylist3 = var2;
8164 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8165 var_nodearraylist2 = var3;
8166 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8167 var_nodearraylist1 = var4;
8168 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
8169 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
8170 var_listnode3 = var5;
8171 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
8172 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
8173 var_listnode5 = var6;
8174 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
8175 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
8176 var_listnode11 = var7;
8177 var_listnode4 = var_nodearraylist1;
8178 /* <var_listnode4:nullable Object> isa Array[Object] */
8179 cltype = type_array__Arraykernel__Object.color;
8180 idtype = type_array__Arraykernel__Object.id;
8181 if(var_listnode4 == NULL) {
8182 var8 = 0;
8183 } else {
8184 if(cltype >= var_listnode4->type->table_size) {
8185 var8 = 0;
8186 } else {
8187 var8 = var_listnode4->type->type_table[cltype] == idtype;
8188 }
8189 }
8190 if (!var8) {
8191 fprintf(stderr, "Runtime error: %s", "Assert failed");
8192 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3814);
8193 show_backtrace(1);
8194 }
8195 var9 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction60>*/;
8196 var_listnode5 = var9;
8197 var_listnode6 = var_nodearraylist2;
8198 /* <var_listnode6:nullable Object> isa Array[Object] */
8199 cltype11 = type_array__Arraykernel__Object.color;
8200 idtype12 = type_array__Arraykernel__Object.id;
8201 if(var_listnode6 == NULL) {
8202 var10 = 0;
8203 } else {
8204 if(cltype11 >= var_listnode6->type->table_size) {
8205 var10 = 0;
8206 } else {
8207 var10 = var_listnode6->type->type_table[cltype11] == idtype12;
8208 }
8209 }
8210 if (!var10) {
8211 fprintf(stderr, "Runtime error: %s", "Assert failed");
8212 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3817);
8213 show_backtrace(1);
8214 }
8215 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
8216 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
8217 var_listnode9 = var13;
8218 var_listnode8 = var_nodearraylist3;
8219 /* <var_listnode8:nullable Object> isa Array[Object] */
8220 cltype15 = type_array__Arraykernel__Object.color;
8221 idtype16 = type_array__Arraykernel__Object.id;
8222 if(var_listnode8 == NULL) {
8223 var14 = 0;
8224 } else {
8225 if(cltype15 >= var_listnode8->type->table_size) {
8226 var14 = 0;
8227 } else {
8228 var14 = var_listnode8->type->type_table[cltype15] == idtype16;
8229 }
8230 }
8231 if (!var14) {
8232 fprintf(stderr, "Runtime error: %s", "Assert failed");
8233 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3820);
8234 show_backtrace(1);
8235 }
8236 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction60>*/;
8237 var_listnode9 = var17;
8238 var18 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
8239 ((void (*)(val*, val*))(var18->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var18, var_listnode9) /* init_atopclassdef on <var18:ATopClassdef>*/;
8240 var_pclassdefnode7 = var18;
8241 var_pclassdefnode10 = var_nodearraylist4;
8242 /* <var_pclassdefnode10:nullable Object> isa nullable AClassdef */
8243 cltype20 = type_nullable_parser_nodes__AClassdef.color;
8244 idtype21 = type_nullable_parser_nodes__AClassdef.id;
8245 if(var_pclassdefnode10 == NULL) {
8246 var19 = 1;
8247 } else {
8248 if(cltype20 >= var_pclassdefnode10->type->table_size) {
8249 var19 = 0;
8250 } else {
8251 var19 = var_pclassdefnode10->type->type_table[cltype20] == idtype21;
8252 }
8253 }
8254 if (!var19) {
8255 fprintf(stderr, "Runtime error: %s", "Assert failed");
8256 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3826);
8257 show_backtrace(1);
8258 }
8259 var22 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode11, var_listnode6) /* concat on <self:ReduceAction60>*/;
8260 var_listnode11 = var22;
8261 var23 = NULL;
8262 if (var_pclassdefnode7 == NULL) {
8263 var24 = 0; /* is null */
8264 } else {
8265 var24 = 1; /* arg is null and recv is not */
8266 }
8267 if (var24){
8268 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode7) /* add on <var_listnode11:Array[Object]>*/;
8269 } else {
8270 }
8271 var25 = NULL;
8272 if (var_pclassdefnode10 == NULL) {
8273 var26 = 0; /* is null */
8274 } else {
8275 var26 = 1; /* arg is null and recv is not */
8276 }
8277 if (var26){
8278 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode10) /* add on <var_listnode11:Array[Object]>*/;
8279 } else {
8280 }
8281 var27 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
8282 var28 = NULL;
8283 ((void (*)(val*, val*, val*, val*, val*))(var27->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var27, var28, var_listnode3, var_listnode5, var_listnode11) /* init_amodule on <var27:AModule>*/;
8284 var_pmodulenode1 = var27;
8285 var_node_list = var_pmodulenode1;
8286 var29 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction60> */
8287 var30 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var29) /* go_to on <var_p:Parser>*/;
8288 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var30, var_node_list) /* push on <var_p:Parser>*/;
8289 RET_LABEL:;
8290 }
8291 /* method parser#ReduceAction60#action for (self: Object, Parser) */
8292 void VIRTUAL_parser__ReduceAction60__action(val* self, val* p0) {
8293 parser__ReduceAction60__action(self, p0);
8294 RET_LABEL:;
8295 }
8296 /* method parser#ReduceAction61#action for (self: ReduceAction61, Parser) */
8297 void parser__ReduceAction61__action(val* self, val* p0) {
8298 val* var_p /* var p: Parser */;
8299 val* var /* : null */;
8300 val* var_node_list /* var node_list: nullable Object */;
8301 val* var1 /* : nullable Object */;
8302 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
8303 val* var2 /* : nullable Object */;
8304 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8305 val* var3 /* : nullable Object */;
8306 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8307 val* var4 /* : nullable Object */;
8308 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8309 val* var5 /* : nullable Object */;
8310 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8311 val* var6 /* : Array[Object] */;
8312 val* var_listnode3 /* var listnode3: Array[Object] */;
8313 val* var7 /* : Array[Object] */;
8314 val* var_listnode5 /* var listnode5: Array[Object] */;
8315 val* var8 /* : Array[Object] */;
8316 val* var_listnode11 /* var listnode11: Array[Object] */;
8317 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
8318 short int var9 /* : Bool */;
8319 int cltype;
8320 int idtype;
8321 val* var_listnode4 /* var listnode4: nullable Object */;
8322 short int var10 /* : Bool */;
8323 int cltype11;
8324 int idtype12;
8325 val* var13 /* : Array[Object] */;
8326 val* var_listnode6 /* var listnode6: nullable Object */;
8327 short int var14 /* : Bool */;
8328 int cltype15;
8329 int idtype16;
8330 val* var17 /* : Array[Object] */;
8331 val* var_listnode9 /* var listnode9: Array[Object] */;
8332 val* var_listnode8 /* var listnode8: nullable Object */;
8333 short int var18 /* : Bool */;
8334 int cltype19;
8335 int idtype20;
8336 val* var21 /* : Array[Object] */;
8337 val* var22 /* : ATopClassdef */;
8338 val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */;
8339 val* var_pclassdefnode10 /* var pclassdefnode10: nullable Object */;
8340 short int var23 /* : Bool */;
8341 int cltype24;
8342 int idtype25;
8343 val* var26 /* : Array[Object] */;
8344 val* var27 /* : null */;
8345 short int var28 /* : Bool */;
8346 val* var29 /* : null */;
8347 short int var30 /* : Bool */;
8348 val* var31 /* : AModule */;
8349 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
8350 long var32 /* : Int */;
8351 long var33 /* : Int */;
8352 var_p = p0;
8353 var = NULL;
8354 var_node_list = var;
8355 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8356 var_nodearraylist5 = var1;
8357 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8358 var_nodearraylist4 = var2;
8359 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8360 var_nodearraylist3 = var3;
8361 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8362 var_nodearraylist2 = var4;
8363 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8364 var_nodearraylist1 = var5;
8365 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
8366 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
8367 var_listnode3 = var6;
8368 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
8369 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
8370 var_listnode5 = var7;
8371 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
8372 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
8373 var_listnode11 = var8;
8374 var_pmoduledeclnode2 = var_nodearraylist1;
8375 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
8376 cltype = type_nullable_parser_nodes__AModuledecl.color;
8377 idtype = type_nullable_parser_nodes__AModuledecl.id;
8378 if(var_pmoduledeclnode2 == NULL) {
8379 var9 = 1;
8380 } else {
8381 if(cltype >= var_pmoduledeclnode2->type->table_size) {
8382 var9 = 0;
8383 } else {
8384 var9 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
8385 }
8386 }
8387 if (!var9) {
8388 fprintf(stderr, "Runtime error: %s", "Assert failed");
8389 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3858);
8390 show_backtrace(1);
8391 }
8392 var_listnode4 = var_nodearraylist2;
8393 /* <var_listnode4:nullable Object> isa Array[Object] */
8394 cltype11 = type_array__Arraykernel__Object.color;
8395 idtype12 = type_array__Arraykernel__Object.id;
8396 if(var_listnode4 == NULL) {
8397 var10 = 0;
8398 } else {
8399 if(cltype11 >= var_listnode4->type->table_size) {
8400 var10 = 0;
8401 } else {
8402 var10 = var_listnode4->type->type_table[cltype11] == idtype12;
8403 }
8404 }
8405 if (!var10) {
8406 fprintf(stderr, "Runtime error: %s", "Assert failed");
8407 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3860);
8408 show_backtrace(1);
8409 }
8410 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction61>*/;
8411 var_listnode5 = var13;
8412 var_listnode6 = var_nodearraylist3;
8413 /* <var_listnode6:nullable Object> isa Array[Object] */
8414 cltype15 = type_array__Arraykernel__Object.color;
8415 idtype16 = type_array__Arraykernel__Object.id;
8416 if(var_listnode6 == NULL) {
8417 var14 = 0;
8418 } else {
8419 if(cltype15 >= var_listnode6->type->table_size) {
8420 var14 = 0;
8421 } else {
8422 var14 = var_listnode6->type->type_table[cltype15] == idtype16;
8423 }
8424 }
8425 if (!var14) {
8426 fprintf(stderr, "Runtime error: %s", "Assert failed");
8427 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3863);
8428 show_backtrace(1);
8429 }
8430 var17 = NEW_array__Array(&type_array__Arraykernel__Object);
8431 ((void (*)(val*))(var17->class->vft[COLOR_array__Array__init]))(var17) /* init on <var17:Array[Object]>*/;
8432 var_listnode9 = var17;
8433 var_listnode8 = var_nodearraylist4;
8434 /* <var_listnode8:nullable Object> isa Array[Object] */
8435 cltype19 = type_array__Arraykernel__Object.color;
8436 idtype20 = type_array__Arraykernel__Object.id;
8437 if(var_listnode8 == NULL) {
8438 var18 = 0;
8439 } else {
8440 if(cltype19 >= var_listnode8->type->table_size) {
8441 var18 = 0;
8442 } else {
8443 var18 = var_listnode8->type->type_table[cltype19] == idtype20;
8444 }
8445 }
8446 if (!var18) {
8447 fprintf(stderr, "Runtime error: %s", "Assert failed");
8448 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3866);
8449 show_backtrace(1);
8450 }
8451 var21 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction61>*/;
8452 var_listnode9 = var21;
8453 var22 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
8454 ((void (*)(val*, val*))(var22->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var22, var_listnode9) /* init_atopclassdef on <var22:ATopClassdef>*/;
8455 var_pclassdefnode7 = var22;
8456 var_pclassdefnode10 = var_nodearraylist5;
8457 /* <var_pclassdefnode10:nullable Object> isa nullable AClassdef */
8458 cltype24 = type_nullable_parser_nodes__AClassdef.color;
8459 idtype25 = type_nullable_parser_nodes__AClassdef.id;
8460 if(var_pclassdefnode10 == NULL) {
8461 var23 = 1;
8462 } else {
8463 if(cltype24 >= var_pclassdefnode10->type->table_size) {
8464 var23 = 0;
8465 } else {
8466 var23 = var_pclassdefnode10->type->type_table[cltype24] == idtype25;
8467 }
8468 }
8469 if (!var23) {
8470 fprintf(stderr, "Runtime error: %s", "Assert failed");
8471 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3872);
8472 show_backtrace(1);
8473 }
8474 var26 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode11, var_listnode6) /* concat on <self:ReduceAction61>*/;
8475 var_listnode11 = var26;
8476 var27 = NULL;
8477 if (var_pclassdefnode7 == NULL) {
8478 var28 = 0; /* is null */
8479 } else {
8480 var28 = 1; /* arg is null and recv is not */
8481 }
8482 if (var28){
8483 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode7) /* add on <var_listnode11:Array[Object]>*/;
8484 } else {
8485 }
8486 var29 = NULL;
8487 if (var_pclassdefnode10 == NULL) {
8488 var30 = 0; /* is null */
8489 } else {
8490 var30 = 1; /* arg is null and recv is not */
8491 }
8492 if (var30){
8493 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode10) /* add on <var_listnode11:Array[Object]>*/;
8494 } else {
8495 }
8496 var31 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
8497 ((void (*)(val*, val*, val*, val*, val*))(var31->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var31, var_pmoduledeclnode2, var_listnode3, var_listnode5, var_listnode11) /* init_amodule on <var31:AModule>*/;
8498 var_pmodulenode1 = var31;
8499 var_node_list = var_pmodulenode1;
8500 var32 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction61> */
8501 var33 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var32) /* go_to on <var_p:Parser>*/;
8502 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var33, var_node_list) /* push on <var_p:Parser>*/;
8503 RET_LABEL:;
8504 }
8505 /* method parser#ReduceAction61#action for (self: Object, Parser) */
8506 void VIRTUAL_parser__ReduceAction61__action(val* self, val* p0) {
8507 parser__ReduceAction61__action(self, p0);
8508 RET_LABEL:;
8509 }
8510 /* method parser#ReduceAction62#action for (self: ReduceAction62, Parser) */
8511 void parser__ReduceAction62__action(val* self, val* p0) {
8512 val* var_p /* var p: Parser */;
8513 val* var /* : null */;
8514 val* var_node_list /* var node_list: nullable Object */;
8515 val* var1 /* : nullable Object */;
8516 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
8517 val* var2 /* : nullable Object */;
8518 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8519 val* var3 /* : nullable Object */;
8520 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8521 val* var4 /* : nullable Object */;
8522 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8523 val* var5 /* : nullable Object */;
8524 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8525 val* var6 /* : Array[Object] */;
8526 val* var_listnode4 /* var listnode4: Array[Object] */;
8527 val* var7 /* : Array[Object] */;
8528 val* var_listnode6 /* var listnode6: Array[Object] */;
8529 val* var8 /* : Array[Object] */;
8530 val* var_listnode12 /* var listnode12: Array[Object] */;
8531 val* var_listnode3 /* var listnode3: nullable Object */;
8532 short int var9 /* : Bool */;
8533 int cltype;
8534 int idtype;
8535 val* var10 /* : Array[Object] */;
8536 val* var_listnode5 /* var listnode5: nullable Object */;
8537 short int var11 /* : Bool */;
8538 int cltype12;
8539 int idtype13;
8540 val* var14 /* : Array[Object] */;
8541 val* var_listnode7 /* var listnode7: nullable Object */;
8542 short int var15 /* : Bool */;
8543 int cltype16;
8544 int idtype17;
8545 val* var18 /* : Array[Object] */;
8546 val* var_listnode10 /* var listnode10: Array[Object] */;
8547 val* var_listnode9 /* var listnode9: nullable Object */;
8548 short int var19 /* : Bool */;
8549 int cltype20;
8550 int idtype21;
8551 val* var22 /* : Array[Object] */;
8552 val* var23 /* : ATopClassdef */;
8553 val* var_pclassdefnode8 /* var pclassdefnode8: nullable ATopClassdef */;
8554 val* var_pclassdefnode11 /* var pclassdefnode11: nullable Object */;
8555 short int var24 /* : Bool */;
8556 int cltype25;
8557 int idtype26;
8558 val* var27 /* : Array[Object] */;
8559 val* var28 /* : null */;
8560 short int var29 /* : Bool */;
8561 val* var30 /* : null */;
8562 short int var31 /* : Bool */;
8563 val* var32 /* : AModule */;
8564 val* var33 /* : null */;
8565 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
8566 long var34 /* : Int */;
8567 long var35 /* : Int */;
8568 var_p = p0;
8569 var = NULL;
8570 var_node_list = var;
8571 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8572 var_nodearraylist5 = var1;
8573 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8574 var_nodearraylist4 = var2;
8575 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8576 var_nodearraylist3 = var3;
8577 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8578 var_nodearraylist2 = var4;
8579 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8580 var_nodearraylist1 = var5;
8581 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
8582 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
8583 var_listnode4 = var6;
8584 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
8585 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
8586 var_listnode6 = var7;
8587 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
8588 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
8589 var_listnode12 = var8;
8590 var_listnode3 = var_nodearraylist1;
8591 /* <var_listnode3:nullable Object> isa Array[Object] */
8592 cltype = type_array__Arraykernel__Object.color;
8593 idtype = type_array__Arraykernel__Object.id;
8594 if(var_listnode3 == NULL) {
8595 var9 = 0;
8596 } else {
8597 if(cltype >= var_listnode3->type->table_size) {
8598 var9 = 0;
8599 } else {
8600 var9 = var_listnode3->type->type_table[cltype] == idtype;
8601 }
8602 }
8603 if (!var9) {
8604 fprintf(stderr, "Runtime error: %s", "Assert failed");
8605 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3904);
8606 show_backtrace(1);
8607 }
8608 var10 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction62>*/;
8609 var_listnode4 = var10;
8610 var_listnode5 = var_nodearraylist2;
8611 /* <var_listnode5:nullable Object> isa Array[Object] */
8612 cltype12 = type_array__Arraykernel__Object.color;
8613 idtype13 = type_array__Arraykernel__Object.id;
8614 if(var_listnode5 == NULL) {
8615 var11 = 0;
8616 } else {
8617 if(cltype12 >= var_listnode5->type->table_size) {
8618 var11 = 0;
8619 } else {
8620 var11 = var_listnode5->type->type_table[cltype12] == idtype13;
8621 }
8622 }
8623 if (!var11) {
8624 fprintf(stderr, "Runtime error: %s", "Assert failed");
8625 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3907);
8626 show_backtrace(1);
8627 }
8628 var14 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction62>*/;
8629 var_listnode6 = var14;
8630 var_listnode7 = var_nodearraylist3;
8631 /* <var_listnode7:nullable Object> isa Array[Object] */
8632 cltype16 = type_array__Arraykernel__Object.color;
8633 idtype17 = type_array__Arraykernel__Object.id;
8634 if(var_listnode7 == NULL) {
8635 var15 = 0;
8636 } else {
8637 if(cltype16 >= var_listnode7->type->table_size) {
8638 var15 = 0;
8639 } else {
8640 var15 = var_listnode7->type->type_table[cltype16] == idtype17;
8641 }
8642 }
8643 if (!var15) {
8644 fprintf(stderr, "Runtime error: %s", "Assert failed");
8645 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3910);
8646 show_backtrace(1);
8647 }
8648 var18 = NEW_array__Array(&type_array__Arraykernel__Object);
8649 ((void (*)(val*))(var18->class->vft[COLOR_array__Array__init]))(var18) /* init on <var18:Array[Object]>*/;
8650 var_listnode10 = var18;
8651 var_listnode9 = var_nodearraylist4;
8652 /* <var_listnode9:nullable Object> isa Array[Object] */
8653 cltype20 = type_array__Arraykernel__Object.color;
8654 idtype21 = type_array__Arraykernel__Object.id;
8655 if(var_listnode9 == NULL) {
8656 var19 = 0;
8657 } else {
8658 if(cltype20 >= var_listnode9->type->table_size) {
8659 var19 = 0;
8660 } else {
8661 var19 = var_listnode9->type->type_table[cltype20] == idtype21;
8662 }
8663 }
8664 if (!var19) {
8665 fprintf(stderr, "Runtime error: %s", "Assert failed");
8666 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3913);
8667 show_backtrace(1);
8668 }
8669 var22 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode9) /* concat on <self:ReduceAction62>*/;
8670 var_listnode10 = var22;
8671 var23 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
8672 ((void (*)(val*, val*))(var23->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var23, var_listnode10) /* init_atopclassdef on <var23:ATopClassdef>*/;
8673 var_pclassdefnode8 = var23;
8674 var_pclassdefnode11 = var_nodearraylist5;
8675 /* <var_pclassdefnode11:nullable Object> isa nullable AClassdef */
8676 cltype25 = type_nullable_parser_nodes__AClassdef.color;
8677 idtype26 = type_nullable_parser_nodes__AClassdef.id;
8678 if(var_pclassdefnode11 == NULL) {
8679 var24 = 1;
8680 } else {
8681 if(cltype25 >= var_pclassdefnode11->type->table_size) {
8682 var24 = 0;
8683 } else {
8684 var24 = var_pclassdefnode11->type->type_table[cltype25] == idtype26;
8685 }
8686 }
8687 if (!var24) {
8688 fprintf(stderr, "Runtime error: %s", "Assert failed");
8689 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3919);
8690 show_backtrace(1);
8691 }
8692 var27 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode7) /* concat on <self:ReduceAction62>*/;
8693 var_listnode12 = var27;
8694 var28 = NULL;
8695 if (var_pclassdefnode8 == NULL) {
8696 var29 = 0; /* is null */
8697 } else {
8698 var29 = 1; /* arg is null and recv is not */
8699 }
8700 if (var29){
8701 ((void (*)(val*, val*))(var_listnode12->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode12, var_pclassdefnode8) /* add on <var_listnode12:Array[Object]>*/;
8702 } else {
8703 }
8704 var30 = NULL;
8705 if (var_pclassdefnode11 == NULL) {
8706 var31 = 0; /* is null */
8707 } else {
8708 var31 = 1; /* arg is null and recv is not */
8709 }
8710 if (var31){
8711 ((void (*)(val*, val*))(var_listnode12->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode12, var_pclassdefnode11) /* add on <var_listnode12:Array[Object]>*/;
8712 } else {
8713 }
8714 var32 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
8715 var33 = NULL;
8716 ((void (*)(val*, val*, val*, val*, val*))(var32->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var32, var33, var_listnode4, var_listnode6, var_listnode12) /* init_amodule on <var32:AModule>*/;
8717 var_pmodulenode1 = var32;
8718 var_node_list = var_pmodulenode1;
8719 var34 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction62> */
8720 var35 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var34) /* go_to on <var_p:Parser>*/;
8721 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var35, var_node_list) /* push on <var_p:Parser>*/;
8722 RET_LABEL:;
8723 }
8724 /* method parser#ReduceAction62#action for (self: Object, Parser) */
8725 void VIRTUAL_parser__ReduceAction62__action(val* self, val* p0) {
8726 parser__ReduceAction62__action(self, p0);
8727 RET_LABEL:;
8728 }
8729 /* method parser#ReduceAction63#action for (self: ReduceAction63, Parser) */
8730 void parser__ReduceAction63__action(val* self, val* p0) {
8731 val* var_p /* var p: Parser */;
8732 val* var /* : null */;
8733 val* var_node_list /* var node_list: nullable Object */;
8734 val* var1 /* : nullable Object */;
8735 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
8736 val* var2 /* : nullable Object */;
8737 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
8738 val* var3 /* : nullable Object */;
8739 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8740 val* var4 /* : nullable Object */;
8741 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8742 val* var5 /* : nullable Object */;
8743 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8744 val* var6 /* : nullable Object */;
8745 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8746 val* var7 /* : Array[Object] */;
8747 val* var_listnode4 /* var listnode4: Array[Object] */;
8748 val* var8 /* : Array[Object] */;
8749 val* var_listnode6 /* var listnode6: Array[Object] */;
8750 val* var9 /* : Array[Object] */;
8751 val* var_listnode12 /* var listnode12: Array[Object] */;
8752 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
8753 short int var10 /* : Bool */;
8754 int cltype;
8755 int idtype;
8756 val* var_listnode3 /* var listnode3: nullable Object */;
8757 short int var11 /* : Bool */;
8758 int cltype12;
8759 int idtype13;
8760 val* var14 /* : Array[Object] */;
8761 val* var_listnode5 /* var listnode5: nullable Object */;
8762 short int var15 /* : Bool */;
8763 int cltype16;
8764 int idtype17;
8765 val* var18 /* : Array[Object] */;
8766 val* var_listnode7 /* var listnode7: nullable Object */;
8767 short int var19 /* : Bool */;
8768 int cltype20;
8769 int idtype21;
8770 val* var22 /* : Array[Object] */;
8771 val* var_listnode10 /* var listnode10: Array[Object] */;
8772 val* var_listnode9 /* var listnode9: nullable Object */;
8773 short int var23 /* : Bool */;
8774 int cltype24;
8775 int idtype25;
8776 val* var26 /* : Array[Object] */;
8777 val* var27 /* : ATopClassdef */;
8778 val* var_pclassdefnode8 /* var pclassdefnode8: nullable ATopClassdef */;
8779 val* var_pclassdefnode11 /* var pclassdefnode11: nullable Object */;
8780 short int var28 /* : Bool */;
8781 int cltype29;
8782 int idtype30;
8783 val* var31 /* : Array[Object] */;
8784 val* var32 /* : null */;
8785 short int var33 /* : Bool */;
8786 val* var34 /* : null */;
8787 short int var35 /* : Bool */;
8788 val* var36 /* : AModule */;
8789 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
8790 long var37 /* : Int */;
8791 long var38 /* : Int */;
8792 var_p = p0;
8793 var = NULL;
8794 var_node_list = var;
8795 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8796 var_nodearraylist6 = var1;
8797 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8798 var_nodearraylist5 = var2;
8799 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8800 var_nodearraylist4 = var3;
8801 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8802 var_nodearraylist3 = var4;
8803 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8804 var_nodearraylist2 = var5;
8805 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8806 var_nodearraylist1 = var6;
8807 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
8808 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
8809 var_listnode4 = var7;
8810 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
8811 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
8812 var_listnode6 = var8;
8813 var9 = NEW_array__Array(&type_array__Arraykernel__Object);
8814 ((void (*)(val*))(var9->class->vft[COLOR_array__Array__init]))(var9) /* init on <var9:Array[Object]>*/;
8815 var_listnode12 = var9;
8816 var_pmoduledeclnode2 = var_nodearraylist1;
8817 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
8818 cltype = type_nullable_parser_nodes__AModuledecl.color;
8819 idtype = type_nullable_parser_nodes__AModuledecl.id;
8820 if(var_pmoduledeclnode2 == NULL) {
8821 var10 = 1;
8822 } else {
8823 if(cltype >= var_pmoduledeclnode2->type->table_size) {
8824 var10 = 0;
8825 } else {
8826 var10 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
8827 }
8828 }
8829 if (!var10) {
8830 fprintf(stderr, "Runtime error: %s", "Assert failed");
8831 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3952);
8832 show_backtrace(1);
8833 }
8834 var_listnode3 = var_nodearraylist2;
8835 /* <var_listnode3:nullable Object> isa Array[Object] */
8836 cltype12 = type_array__Arraykernel__Object.color;
8837 idtype13 = type_array__Arraykernel__Object.id;
8838 if(var_listnode3 == NULL) {
8839 var11 = 0;
8840 } else {
8841 if(cltype12 >= var_listnode3->type->table_size) {
8842 var11 = 0;
8843 } else {
8844 var11 = var_listnode3->type->type_table[cltype12] == idtype13;
8845 }
8846 }
8847 if (!var11) {
8848 fprintf(stderr, "Runtime error: %s", "Assert failed");
8849 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3954);
8850 show_backtrace(1);
8851 }
8852 var14 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction63>*/;
8853 var_listnode4 = var14;
8854 var_listnode5 = var_nodearraylist3;
8855 /* <var_listnode5:nullable Object> isa Array[Object] */
8856 cltype16 = type_array__Arraykernel__Object.color;
8857 idtype17 = type_array__Arraykernel__Object.id;
8858 if(var_listnode5 == NULL) {
8859 var15 = 0;
8860 } else {
8861 if(cltype16 >= var_listnode5->type->table_size) {
8862 var15 = 0;
8863 } else {
8864 var15 = var_listnode5->type->type_table[cltype16] == idtype17;
8865 }
8866 }
8867 if (!var15) {
8868 fprintf(stderr, "Runtime error: %s", "Assert failed");
8869 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3957);
8870 show_backtrace(1);
8871 }
8872 var18 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction63>*/;
8873 var_listnode6 = var18;
8874 var_listnode7 = var_nodearraylist4;
8875 /* <var_listnode7:nullable Object> isa Array[Object] */
8876 cltype20 = type_array__Arraykernel__Object.color;
8877 idtype21 = type_array__Arraykernel__Object.id;
8878 if(var_listnode7 == NULL) {
8879 var19 = 0;
8880 } else {
8881 if(cltype20 >= var_listnode7->type->table_size) {
8882 var19 = 0;
8883 } else {
8884 var19 = var_listnode7->type->type_table[cltype20] == idtype21;
8885 }
8886 }
8887 if (!var19) {
8888 fprintf(stderr, "Runtime error: %s", "Assert failed");
8889 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3960);
8890 show_backtrace(1);
8891 }
8892 var22 = NEW_array__Array(&type_array__Arraykernel__Object);
8893 ((void (*)(val*))(var22->class->vft[COLOR_array__Array__init]))(var22) /* init on <var22:Array[Object]>*/;
8894 var_listnode10 = var22;
8895 var_listnode9 = var_nodearraylist5;
8896 /* <var_listnode9:nullable Object> isa Array[Object] */
8897 cltype24 = type_array__Arraykernel__Object.color;
8898 idtype25 = type_array__Arraykernel__Object.id;
8899 if(var_listnode9 == NULL) {
8900 var23 = 0;
8901 } else {
8902 if(cltype24 >= var_listnode9->type->table_size) {
8903 var23 = 0;
8904 } else {
8905 var23 = var_listnode9->type->type_table[cltype24] == idtype25;
8906 }
8907 }
8908 if (!var23) {
8909 fprintf(stderr, "Runtime error: %s", "Assert failed");
8910 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3963);
8911 show_backtrace(1);
8912 }
8913 var26 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode9) /* concat on <self:ReduceAction63>*/;
8914 var_listnode10 = var26;
8915 var27 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
8916 ((void (*)(val*, val*))(var27->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var27, var_listnode10) /* init_atopclassdef on <var27:ATopClassdef>*/;
8917 var_pclassdefnode8 = var27;
8918 var_pclassdefnode11 = var_nodearraylist6;
8919 /* <var_pclassdefnode11:nullable Object> isa nullable AClassdef */
8920 cltype29 = type_nullable_parser_nodes__AClassdef.color;
8921 idtype30 = type_nullable_parser_nodes__AClassdef.id;
8922 if(var_pclassdefnode11 == NULL) {
8923 var28 = 1;
8924 } else {
8925 if(cltype29 >= var_pclassdefnode11->type->table_size) {
8926 var28 = 0;
8927 } else {
8928 var28 = var_pclassdefnode11->type->type_table[cltype29] == idtype30;
8929 }
8930 }
8931 if (!var28) {
8932 fprintf(stderr, "Runtime error: %s", "Assert failed");
8933 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3969);
8934 show_backtrace(1);
8935 }
8936 var31 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode7) /* concat on <self:ReduceAction63>*/;
8937 var_listnode12 = var31;
8938 var32 = NULL;
8939 if (var_pclassdefnode8 == NULL) {
8940 var33 = 0; /* is null */
8941 } else {
8942 var33 = 1; /* arg is null and recv is not */
8943 }
8944 if (var33){
8945 ((void (*)(val*, val*))(var_listnode12->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode12, var_pclassdefnode8) /* add on <var_listnode12:Array[Object]>*/;
8946 } else {
8947 }
8948 var34 = NULL;
8949 if (var_pclassdefnode11 == NULL) {
8950 var35 = 0; /* is null */
8951 } else {
8952 var35 = 1; /* arg is null and recv is not */
8953 }
8954 if (var35){
8955 ((void (*)(val*, val*))(var_listnode12->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode12, var_pclassdefnode11) /* add on <var_listnode12:Array[Object]>*/;
8956 } else {
8957 }
8958 var36 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
8959 ((void (*)(val*, val*, val*, val*, val*))(var36->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var36, var_pmoduledeclnode2, var_listnode4, var_listnode6, var_listnode12) /* init_amodule on <var36:AModule>*/;
8960 var_pmodulenode1 = var36;
8961 var_node_list = var_pmodulenode1;
8962 var37 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction63> */
8963 var38 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var37) /* go_to on <var_p:Parser>*/;
8964 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var38, var_node_list) /* push on <var_p:Parser>*/;
8965 RET_LABEL:;
8966 }
8967 /* method parser#ReduceAction63#action for (self: Object, Parser) */
8968 void VIRTUAL_parser__ReduceAction63__action(val* self, val* p0) {
8969 parser__ReduceAction63__action(self, p0);
8970 RET_LABEL:;
8971 }
8972 /* method parser#ReduceAction64#action for (self: ReduceAction64, Parser) */
8973 void parser__ReduceAction64__action(val* self, val* p0) {
8974 val* var_p /* var p: Parser */;
8975 val* var /* : null */;
8976 val* var_node_list /* var node_list: nullable Object */;
8977 val* var1 /* : nullable Object */;
8978 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
8979 val* var2 /* : nullable Object */;
8980 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8981 val* var3 /* : nullable Object */;
8982 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8983 val* var4 /* : nullable Object */;
8984 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8985 val* var5 /* : nullable Object */;
8986 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8987 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
8988 short int var6 /* : Bool */;
8989 int cltype;
8990 int idtype;
8991 val* var_tkwmodulenode3 /* var tkwmodulenode3: nullable Object */;
8992 short int var7 /* : Bool */;
8993 int cltype8;
8994 int idtype9;
8995 val* var_pmodulenamenode4 /* var pmodulenamenode4: nullable Object */;
8996 short int var10 /* : Bool */;
8997 int cltype11;
8998 int idtype12;
8999 val* var13 /* : AModuledecl */;
9000 val* var14 /* : null */;
9001 val* var_pmoduledeclnode1 /* var pmoduledeclnode1: nullable AModuledecl */;
9002 long var15 /* : Int */;
9003 long var16 /* : Int */;
9004 var_p = p0;
9005 var = NULL;
9006 var_node_list = var;
9007 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9008 var_nodearraylist5 = var1;
9009 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9010 var_nodearraylist4 = var2;
9011 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9012 var_nodearraylist3 = var3;
9013 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9014 var_nodearraylist2 = var4;
9015 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9016 var_nodearraylist1 = var5;
9017 var_pdocnode2 = var_nodearraylist1;
9018 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
9019 cltype = type_nullable_parser_nodes__ADoc.color;
9020 idtype = type_nullable_parser_nodes__ADoc.id;
9021 if(var_pdocnode2 == NULL) {
9022 var6 = 1;
9023 } else {
9024 if(cltype >= var_pdocnode2->type->table_size) {
9025 var6 = 0;
9026 } else {
9027 var6 = var_pdocnode2->type->type_table[cltype] == idtype;
9028 }
9029 }
9030 if (!var6) {
9031 fprintf(stderr, "Runtime error: %s", "Assert failed");
9032 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3998);
9033 show_backtrace(1);
9034 }
9035 var_tkwmodulenode3 = var_nodearraylist2;
9036 /* <var_tkwmodulenode3:nullable Object> isa nullable TKwmodule */
9037 cltype8 = type_nullable_parser_nodes__TKwmodule.color;
9038 idtype9 = type_nullable_parser_nodes__TKwmodule.id;
9039 if(var_tkwmodulenode3 == NULL) {
9040 var7 = 1;
9041 } else {
9042 if(cltype8 >= var_tkwmodulenode3->type->table_size) {
9043 var7 = 0;
9044 } else {
9045 var7 = var_tkwmodulenode3->type->type_table[cltype8] == idtype9;
9046 }
9047 }
9048 if (!var7) {
9049 fprintf(stderr, "Runtime error: %s", "Assert failed");
9050 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4000);
9051 show_backtrace(1);
9052 }
9053 var_pmodulenamenode4 = var_nodearraylist4;
9054 /* <var_pmodulenamenode4:nullable Object> isa nullable AModuleName */
9055 cltype11 = type_nullable_parser_nodes__AModuleName.color;
9056 idtype12 = type_nullable_parser_nodes__AModuleName.id;
9057 if(var_pmodulenamenode4 == NULL) {
9058 var10 = 1;
9059 } else {
9060 if(cltype11 >= var_pmodulenamenode4->type->table_size) {
9061 var10 = 0;
9062 } else {
9063 var10 = var_pmodulenamenode4->type->type_table[cltype11] == idtype12;
9064 }
9065 }
9066 if (!var10) {
9067 fprintf(stderr, "Runtime error: %s", "Assert failed");
9068 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4002);
9069 show_backtrace(1);
9070 }
9071 var13 = NEW_parser_nodes__AModuledecl(&type_parser_nodes__AModuledecl);
9072 var14 = NULL;
9073 ((void (*)(val*, val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__AModuledecl__init_amoduledecl]))(var13, var_pdocnode2, var_tkwmodulenode3, var_pmodulenamenode4, var14) /* init_amoduledecl on <var13:AModuledecl>*/;
9074 var_pmoduledeclnode1 = var13;
9075 var_node_list = var_pmoduledeclnode1;
9076 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction64> */
9077 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
9078 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
9079 RET_LABEL:;
9080 }
9081 /* method parser#ReduceAction64#action for (self: Object, Parser) */
9082 void VIRTUAL_parser__ReduceAction64__action(val* self, val* p0) {
9083 parser__ReduceAction64__action(self, p0);
9084 RET_LABEL:;
9085 }
9086 /* method parser#ReduceAction65#action for (self: ReduceAction65, Parser) */
9087 void parser__ReduceAction65__action(val* self, val* p0) {
9088 val* var_p /* var p: Parser */;
9089 val* var /* : null */;
9090 val* var_node_list /* var node_list: nullable Object */;
9091 val* var1 /* : nullable Object */;
9092 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
9093 val* var2 /* : nullable Object */;
9094 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9095 val* var3 /* : nullable Object */;
9096 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9097 val* var4 /* : nullable Object */;
9098 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9099 val* var5 /* : nullable Object */;
9100 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9101 val* var6 /* : nullable Object */;
9102 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9103 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
9104 short int var7 /* : Bool */;
9105 int cltype;
9106 int idtype;
9107 val* var_tkwmodulenode3 /* var tkwmodulenode3: nullable Object */;
9108 short int var8 /* : Bool */;
9109 int cltype9;
9110 int idtype10;
9111 val* var_pmodulenamenode4 /* var pmodulenamenode4: nullable Object */;
9112 short int var11 /* : Bool */;
9113 int cltype12;
9114 int idtype13;
9115 val* var_pannotationsnode5 /* var pannotationsnode5: nullable Object */;
9116 short int var14 /* : Bool */;
9117 int cltype15;
9118 int idtype16;
9119 val* var17 /* : AModuledecl */;
9120 val* var_pmoduledeclnode1 /* var pmoduledeclnode1: nullable AModuledecl */;
9121 long var18 /* : Int */;
9122 long var19 /* : Int */;
9123 var_p = p0;
9124 var = NULL;
9125 var_node_list = var;
9126 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9127 var_nodearraylist6 = var1;
9128 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9129 var_nodearraylist5 = var2;
9130 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9131 var_nodearraylist4 = var3;
9132 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9133 var_nodearraylist3 = var4;
9134 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9135 var_nodearraylist2 = var5;
9136 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9137 var_nodearraylist1 = var6;
9138 var_pdocnode2 = var_nodearraylist1;
9139 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
9140 cltype = type_nullable_parser_nodes__ADoc.color;
9141 idtype = type_nullable_parser_nodes__ADoc.id;
9142 if(var_pdocnode2 == NULL) {
9143 var7 = 1;
9144 } else {
9145 if(cltype >= var_pdocnode2->type->table_size) {
9146 var7 = 0;
9147 } else {
9148 var7 = var_pdocnode2->type->type_table[cltype] == idtype;
9149 }
9150 }
9151 if (!var7) {
9152 fprintf(stderr, "Runtime error: %s", "Assert failed");
9153 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4025);
9154 show_backtrace(1);
9155 }
9156 var_tkwmodulenode3 = var_nodearraylist2;
9157 /* <var_tkwmodulenode3:nullable Object> isa nullable TKwmodule */
9158 cltype9 = type_nullable_parser_nodes__TKwmodule.color;
9159 idtype10 = type_nullable_parser_nodes__TKwmodule.id;
9160 if(var_tkwmodulenode3 == NULL) {
9161 var8 = 1;
9162 } else {
9163 if(cltype9 >= var_tkwmodulenode3->type->table_size) {
9164 var8 = 0;
9165 } else {
9166 var8 = var_tkwmodulenode3->type->type_table[cltype9] == idtype10;
9167 }
9168 }
9169 if (!var8) {
9170 fprintf(stderr, "Runtime error: %s", "Assert failed");
9171 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4027);
9172 show_backtrace(1);
9173 }
9174 var_pmodulenamenode4 = var_nodearraylist4;
9175 /* <var_pmodulenamenode4:nullable Object> isa nullable AModuleName */
9176 cltype12 = type_nullable_parser_nodes__AModuleName.color;
9177 idtype13 = type_nullable_parser_nodes__AModuleName.id;
9178 if(var_pmodulenamenode4 == NULL) {
9179 var11 = 1;
9180 } else {
9181 if(cltype12 >= var_pmodulenamenode4->type->table_size) {
9182 var11 = 0;
9183 } else {
9184 var11 = var_pmodulenamenode4->type->type_table[cltype12] == idtype13;
9185 }
9186 }
9187 if (!var11) {
9188 fprintf(stderr, "Runtime error: %s", "Assert failed");
9189 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4029);
9190 show_backtrace(1);
9191 }
9192 var_pannotationsnode5 = var_nodearraylist5;
9193 /* <var_pannotationsnode5:nullable Object> isa nullable AAnnotations */
9194 cltype15 = type_nullable_parser_nodes__AAnnotations.color;
9195 idtype16 = type_nullable_parser_nodes__AAnnotations.id;
9196 if(var_pannotationsnode5 == NULL) {
9197 var14 = 1;
9198 } else {
9199 if(cltype15 >= var_pannotationsnode5->type->table_size) {
9200 var14 = 0;
9201 } else {
9202 var14 = var_pannotationsnode5->type->type_table[cltype15] == idtype16;
9203 }
9204 }
9205 if (!var14) {
9206 fprintf(stderr, "Runtime error: %s", "Assert failed");
9207 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4031);
9208 show_backtrace(1);
9209 }
9210 var17 = NEW_parser_nodes__AModuledecl(&type_parser_nodes__AModuledecl);
9211 ((void (*)(val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AModuledecl__init_amoduledecl]))(var17, var_pdocnode2, var_tkwmodulenode3, var_pmodulenamenode4, var_pannotationsnode5) /* init_amoduledecl on <var17:AModuledecl>*/;
9212 var_pmoduledeclnode1 = var17;
9213 var_node_list = var_pmoduledeclnode1;
9214 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction65> */
9215 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
9216 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
9217 RET_LABEL:;
9218 }
9219 /* method parser#ReduceAction65#action for (self: Object, Parser) */
9220 void VIRTUAL_parser__ReduceAction65__action(val* self, val* p0) {
9221 parser__ReduceAction65__action(self, p0);
9222 RET_LABEL:;
9223 }
9224 /* method parser#ReduceAction66#action for (self: ReduceAction66, Parser) */
9225 void parser__ReduceAction66__action(val* self, val* p0) {
9226 val* var_p /* var p: Parser */;
9227 val* var /* : null */;
9228 val* var_node_list /* var node_list: nullable Object */;
9229 val* var1 /* : nullable Object */;
9230 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
9231 val* var2 /* : nullable Object */;
9232 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9233 val* var3 /* : nullable Object */;
9234 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9235 val* var4 /* : nullable Object */;
9236 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9237 val* var5 /* : nullable Object */;
9238 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9239 val* var6 /* : nullable Object */;
9240 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9241 val* var_pvisibilitynode2 /* var pvisibilitynode2: nullable Object */;
9242 short int var7 /* : Bool */;
9243 int cltype;
9244 int idtype;
9245 val* var_tkwimportnode3 /* var tkwimportnode3: nullable Object */;
9246 short int var8 /* : Bool */;
9247 int cltype9;
9248 int idtype10;
9249 val* var_pmodulenamenode4 /* var pmodulenamenode4: nullable Object */;
9250 short int var11 /* : Bool */;
9251 int cltype12;
9252 int idtype13;
9253 val* var14 /* : AStdImport */;
9254 val* var15 /* : null */;
9255 val* var_pimportnode1 /* var pimportnode1: nullable AStdImport */;
9256 long var16 /* : Int */;
9257 long var17 /* : Int */;
9258 var_p = p0;
9259 var = NULL;
9260 var_node_list = var;
9261 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9262 var_nodearraylist6 = var1;
9263 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9264 var_nodearraylist5 = var2;
9265 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9266 var_nodearraylist4 = var3;
9267 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9268 var_nodearraylist3 = var4;
9269 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9270 var_nodearraylist2 = var5;
9271 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9272 var_nodearraylist1 = var6;
9273 var_pvisibilitynode2 = var_nodearraylist2;
9274 /* <var_pvisibilitynode2:nullable Object> isa nullable AVisibility */
9275 cltype = type_nullable_parser_nodes__AVisibility.color;
9276 idtype = type_nullable_parser_nodes__AVisibility.id;
9277 if(var_pvisibilitynode2 == NULL) {
9278 var7 = 1;
9279 } else {
9280 if(cltype >= var_pvisibilitynode2->type->table_size) {
9281 var7 = 0;
9282 } else {
9283 var7 = var_pvisibilitynode2->type->type_table[cltype] == idtype;
9284 }
9285 }
9286 if (!var7) {
9287 fprintf(stderr, "Runtime error: %s", "Assert failed");
9288 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4054);
9289 show_backtrace(1);
9290 }
9291 var_tkwimportnode3 = var_nodearraylist3;
9292 /* <var_tkwimportnode3:nullable Object> isa nullable TKwimport */
9293 cltype9 = type_nullable_parser_nodes__TKwimport.color;
9294 idtype10 = type_nullable_parser_nodes__TKwimport.id;
9295 if(var_tkwimportnode3 == NULL) {
9296 var8 = 1;
9297 } else {
9298 if(cltype9 >= var_tkwimportnode3->type->table_size) {
9299 var8 = 0;
9300 } else {
9301 var8 = var_tkwimportnode3->type->type_table[cltype9] == idtype10;
9302 }
9303 }
9304 if (!var8) {
9305 fprintf(stderr, "Runtime error: %s", "Assert failed");
9306 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4056);
9307 show_backtrace(1);
9308 }
9309 var_pmodulenamenode4 = var_nodearraylist5;
9310 /* <var_pmodulenamenode4:nullable Object> isa nullable AModuleName */
9311 cltype12 = type_nullable_parser_nodes__AModuleName.color;
9312 idtype13 = type_nullable_parser_nodes__AModuleName.id;
9313 if(var_pmodulenamenode4 == NULL) {
9314 var11 = 1;
9315 } else {
9316 if(cltype12 >= var_pmodulenamenode4->type->table_size) {
9317 var11 = 0;
9318 } else {
9319 var11 = var_pmodulenamenode4->type->type_table[cltype12] == idtype13;
9320 }
9321 }
9322 if (!var11) {
9323 fprintf(stderr, "Runtime error: %s", "Assert failed");
9324 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4058);
9325 show_backtrace(1);
9326 }
9327 var14 = NEW_parser_nodes__AStdImport(&type_parser_nodes__AStdImport);
9328 var15 = NULL;
9329 ((void (*)(val*, val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__AStdImport__init_astdimport]))(var14, var_pvisibilitynode2, var_tkwimportnode3, var_pmodulenamenode4, var15) /* init_astdimport on <var14:AStdImport>*/;
9330 var_pimportnode1 = var14;
9331 var_node_list = var_pimportnode1;
9332 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction66> */
9333 var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
9334 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
9335 RET_LABEL:;
9336 }
9337 /* method parser#ReduceAction66#action for (self: Object, Parser) */
9338 void VIRTUAL_parser__ReduceAction66__action(val* self, val* p0) {
9339 parser__ReduceAction66__action(self, p0);
9340 RET_LABEL:;
9341 }
9342 /* method parser#ReduceAction67#action for (self: ReduceAction67, Parser) */
9343 void parser__ReduceAction67__action(val* self, val* p0) {
9344 val* var_p /* var p: Parser */;
9345 val* var /* : null */;
9346 val* var_node_list /* var node_list: nullable Object */;
9347 val* var1 /* : nullable Object */;
9348 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
9349 val* var2 /* : nullable Object */;
9350 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
9351 val* var3 /* : nullable Object */;
9352 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9353 val* var4 /* : nullable Object */;
9354 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9355 val* var5 /* : nullable Object */;
9356 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9357 val* var6 /* : nullable Object */;
9358 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9359 val* var7 /* : nullable Object */;
9360 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9361 val* var_pvisibilitynode2 /* var pvisibilitynode2: nullable Object */;
9362 short int var8 /* : Bool */;
9363 int cltype;
9364 int idtype;
9365 val* var_tkwimportnode3 /* var tkwimportnode3: nullable Object */;
9366 short int var9 /* : Bool */;
9367 int cltype10;
9368 int idtype11;
9369 val* var_pmodulenamenode4 /* var pmodulenamenode4: nullable Object */;
9370 short int var12 /* : Bool */;
9371 int cltype13;
9372 int idtype14;
9373 val* var_pannotationsnode5 /* var pannotationsnode5: nullable Object */;
9374 short int var15 /* : Bool */;
9375 int cltype16;
9376 int idtype17;
9377 val* var18 /* : AStdImport */;
9378 val* var_pimportnode1 /* var pimportnode1: nullable AStdImport */;
9379 long var19 /* : Int */;
9380 long var20 /* : Int */;
9381 var_p = p0;
9382 var = NULL;
9383 var_node_list = var;
9384 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9385 var_nodearraylist7 = var1;
9386 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9387 var_nodearraylist6 = var2;
9388 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9389 var_nodearraylist5 = var3;
9390 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9391 var_nodearraylist4 = var4;
9392 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9393 var_nodearraylist3 = var5;
9394 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9395 var_nodearraylist2 = var6;
9396 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9397 var_nodearraylist1 = var7;
9398 var_pvisibilitynode2 = var_nodearraylist2;
9399 /* <var_pvisibilitynode2:nullable Object> isa nullable AVisibility */
9400 cltype = type_nullable_parser_nodes__AVisibility.color;
9401 idtype = type_nullable_parser_nodes__AVisibility.id;
9402 if(var_pvisibilitynode2 == NULL) {
9403 var8 = 1;
9404 } else {
9405 if(cltype >= var_pvisibilitynode2->type->table_size) {
9406 var8 = 0;
9407 } else {
9408 var8 = var_pvisibilitynode2->type->type_table[cltype] == idtype;
9409 }
9410 }
9411 if (!var8) {
9412 fprintf(stderr, "Runtime error: %s", "Assert failed");
9413 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4082);
9414 show_backtrace(1);
9415 }
9416 var_tkwimportnode3 = var_nodearraylist3;
9417 /* <var_tkwimportnode3:nullable Object> isa nullable TKwimport */
9418 cltype10 = type_nullable_parser_nodes__TKwimport.color;
9419 idtype11 = type_nullable_parser_nodes__TKwimport.id;
9420 if(var_tkwimportnode3 == NULL) {
9421 var9 = 1;
9422 } else {
9423 if(cltype10 >= var_tkwimportnode3->type->table_size) {
9424 var9 = 0;
9425 } else {
9426 var9 = var_tkwimportnode3->type->type_table[cltype10] == idtype11;
9427 }
9428 }
9429 if (!var9) {
9430 fprintf(stderr, "Runtime error: %s", "Assert failed");
9431 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4084);
9432 show_backtrace(1);
9433 }
9434 var_pmodulenamenode4 = var_nodearraylist5;
9435 /* <var_pmodulenamenode4:nullable Object> isa nullable AModuleName */
9436 cltype13 = type_nullable_parser_nodes__AModuleName.color;
9437 idtype14 = type_nullable_parser_nodes__AModuleName.id;
9438 if(var_pmodulenamenode4 == NULL) {
9439 var12 = 1;
9440 } else {
9441 if(cltype13 >= var_pmodulenamenode4->type->table_size) {
9442 var12 = 0;
9443 } else {
9444 var12 = var_pmodulenamenode4->type->type_table[cltype13] == idtype14;
9445 }
9446 }
9447 if (!var12) {
9448 fprintf(stderr, "Runtime error: %s", "Assert failed");
9449 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4086);
9450 show_backtrace(1);
9451 }
9452 var_pannotationsnode5 = var_nodearraylist6;
9453 /* <var_pannotationsnode5:nullable Object> isa nullable AAnnotations */
9454 cltype16 = type_nullable_parser_nodes__AAnnotations.color;
9455 idtype17 = type_nullable_parser_nodes__AAnnotations.id;
9456 if(var_pannotationsnode5 == NULL) {
9457 var15 = 1;
9458 } else {
9459 if(cltype16 >= var_pannotationsnode5->type->table_size) {
9460 var15 = 0;
9461 } else {
9462 var15 = var_pannotationsnode5->type->type_table[cltype16] == idtype17;
9463 }
9464 }
9465 if (!var15) {
9466 fprintf(stderr, "Runtime error: %s", "Assert failed");
9467 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4088);
9468 show_backtrace(1);
9469 }
9470 var18 = NEW_parser_nodes__AStdImport(&type_parser_nodes__AStdImport);
9471 ((void (*)(val*, val*, val*, val*, val*))(var18->class->vft[COLOR_parser_prod__AStdImport__init_astdimport]))(var18, var_pvisibilitynode2, var_tkwimportnode3, var_pmodulenamenode4, var_pannotationsnode5) /* init_astdimport on <var18:AStdImport>*/;
9472 var_pimportnode1 = var18;
9473 var_node_list = var_pimportnode1;
9474 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction67> */
9475 var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
9476 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
9477 RET_LABEL:;
9478 }
9479 /* method parser#ReduceAction67#action for (self: Object, Parser) */
9480 void VIRTUAL_parser__ReduceAction67__action(val* self, val* p0) {
9481 parser__ReduceAction67__action(self, p0);
9482 RET_LABEL:;
9483 }
9484 /* method parser#ReduceAction68#action for (self: ReduceAction68, Parser) */
9485 void parser__ReduceAction68__action(val* self, val* p0) {
9486 val* var_p /* var p: Parser */;
9487 val* var /* : null */;
9488 val* var_node_list /* var node_list: nullable Object */;
9489 val* var1 /* : nullable Object */;
9490 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
9491 val* var2 /* : nullable Object */;
9492 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9493 val* var3 /* : nullable Object */;
9494 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9495 val* var4 /* : nullable Object */;
9496 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9497 val* var5 /* : nullable Object */;
9498 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9499 val* var6 /* : nullable Object */;
9500 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9501 val* var_pvisibilitynode2 /* var pvisibilitynode2: nullable Object */;
9502 short int var7 /* : Bool */;
9503 int cltype;
9504 int idtype;
9505 val* var_tkwimportnode3 /* var tkwimportnode3: nullable Object */;
9506 short int var8 /* : Bool */;
9507 int cltype9;
9508 int idtype10;
9509 val* var_tkwendnode4 /* var tkwendnode4: nullable Object */;
9510 short int var11 /* : Bool */;
9511 int cltype12;
9512 int idtype13;
9513 val* var14 /* : ANoImport */;
9514 val* var_pimportnode1 /* var pimportnode1: nullable ANoImport */;
9515 long var15 /* : Int */;
9516 long var16 /* : Int */;
9517 var_p = p0;
9518 var = NULL;
9519 var_node_list = var;
9520 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9521 var_nodearraylist6 = var1;
9522 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9523 var_nodearraylist5 = var2;
9524 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9525 var_nodearraylist4 = var3;
9526 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9527 var_nodearraylist3 = var4;
9528 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9529 var_nodearraylist2 = var5;
9530 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9531 var_nodearraylist1 = var6;
9532 var_pvisibilitynode2 = var_nodearraylist2;
9533 /* <var_pvisibilitynode2:nullable Object> isa nullable AVisibility */
9534 cltype = type_nullable_parser_nodes__AVisibility.color;
9535 idtype = type_nullable_parser_nodes__AVisibility.id;
9536 if(var_pvisibilitynode2 == NULL) {
9537 var7 = 1;
9538 } else {
9539 if(cltype >= var_pvisibilitynode2->type->table_size) {
9540 var7 = 0;
9541 } else {
9542 var7 = var_pvisibilitynode2->type->type_table[cltype] == idtype;
9543 }
9544 }
9545 if (!var7) {
9546 fprintf(stderr, "Runtime error: %s", "Assert failed");
9547 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4111);
9548 show_backtrace(1);
9549 }
9550 var_tkwimportnode3 = var_nodearraylist3;
9551 /* <var_tkwimportnode3:nullable Object> isa nullable TKwimport */
9552 cltype9 = type_nullable_parser_nodes__TKwimport.color;
9553 idtype10 = type_nullable_parser_nodes__TKwimport.id;
9554 if(var_tkwimportnode3 == NULL) {
9555 var8 = 1;
9556 } else {
9557 if(cltype9 >= var_tkwimportnode3->type->table_size) {
9558 var8 = 0;
9559 } else {
9560 var8 = var_tkwimportnode3->type->type_table[cltype9] == idtype10;
9561 }
9562 }
9563 if (!var8) {
9564 fprintf(stderr, "Runtime error: %s", "Assert failed");
9565 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4113);
9566 show_backtrace(1);
9567 }
9568 var_tkwendnode4 = var_nodearraylist5;
9569 /* <var_tkwendnode4:nullable Object> isa nullable TKwend */
9570 cltype12 = type_nullable_parser_nodes__TKwend.color;
9571 idtype13 = type_nullable_parser_nodes__TKwend.id;
9572 if(var_tkwendnode4 == NULL) {
9573 var11 = 1;
9574 } else {
9575 if(cltype12 >= var_tkwendnode4->type->table_size) {
9576 var11 = 0;
9577 } else {
9578 var11 = var_tkwendnode4->type->type_table[cltype12] == idtype13;
9579 }
9580 }
9581 if (!var11) {
9582 fprintf(stderr, "Runtime error: %s", "Assert failed");
9583 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4115);
9584 show_backtrace(1);
9585 }
9586 var14 = NEW_parser_nodes__ANoImport(&type_parser_nodes__ANoImport);
9587 ((void (*)(val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__ANoImport__init_anoimport]))(var14, var_pvisibilitynode2, var_tkwimportnode3, var_tkwendnode4) /* init_anoimport on <var14:ANoImport>*/;
9588 var_pimportnode1 = var14;
9589 var_node_list = var_pimportnode1;
9590 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction68> */
9591 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
9592 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
9593 RET_LABEL:;
9594 }
9595 /* method parser#ReduceAction68#action for (self: Object, Parser) */
9596 void VIRTUAL_parser__ReduceAction68__action(val* self, val* p0) {
9597 parser__ReduceAction68__action(self, p0);
9598 RET_LABEL:;
9599 }
9600 /* method parser#ReduceAction69#action for (self: ReduceAction69, Parser) */
9601 void parser__ReduceAction69__action(val* self, val* p0) {
9602 val* var_p /* var p: Parser */;
9603 val* var /* : null */;
9604 val* var_node_list /* var node_list: nullable Object */;
9605 val* var1 /* : nullable Object */;
9606 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9607 val* var2 /* : Array[Object] */;
9608 val* var_listnode3 /* var listnode3: Array[Object] */;
9609 val* var_ppropdefnode2 /* var ppropdefnode2: nullable Object */;
9610 short int var3 /* : Bool */;
9611 int cltype;
9612 int idtype;
9613 val* var4 /* : null */;
9614 short int var5 /* : Bool */;
9615 val* var6 /* : AMainClassdef */;
9616 val* var_pclassdefnode1 /* var pclassdefnode1: nullable AMainClassdef */;
9617 long var7 /* : Int */;
9618 long var8 /* : Int */;
9619 var_p = p0;
9620 var = NULL;
9621 var_node_list = var;
9622 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9623 var_nodearraylist1 = var1;
9624 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
9625 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
9626 var_listnode3 = var2;
9627 var_ppropdefnode2 = var_nodearraylist1;
9628 /* <var_ppropdefnode2:nullable Object> isa nullable APropdef */
9629 cltype = type_nullable_parser_nodes__APropdef.color;
9630 idtype = type_nullable_parser_nodes__APropdef.id;
9631 if(var_ppropdefnode2 == NULL) {
9632 var3 = 1;
9633 } else {
9634 if(cltype >= var_ppropdefnode2->type->table_size) {
9635 var3 = 0;
9636 } else {
9637 var3 = var_ppropdefnode2->type->type_table[cltype] == idtype;
9638 }
9639 }
9640 if (!var3) {
9641 fprintf(stderr, "Runtime error: %s", "Assert failed");
9642 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4133);
9643 show_backtrace(1);
9644 }
9645 var4 = NULL;
9646 if (var_ppropdefnode2 == NULL) {
9647 var5 = 0; /* is null */
9648 } else {
9649 var5 = 1; /* arg is null and recv is not */
9650 }
9651 if (var5){
9652 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_ppropdefnode2) /* add on <var_listnode3:Array[Object]>*/;
9653 } else {
9654 }
9655 var6 = NEW_parser_nodes__AMainClassdef(&type_parser_nodes__AMainClassdef);
9656 ((void (*)(val*, val*))(var6->class->vft[COLOR_parser_prod__AMainClassdef__init_amainclassdef]))(var6, var_listnode3) /* init_amainclassdef on <var6:AMainClassdef>*/;
9657 var_pclassdefnode1 = var6;
9658 var_node_list = var_pclassdefnode1;
9659 var7 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction69> */
9660 var8 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var7) /* go_to on <var_p:Parser>*/;
9661 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var8, var_node_list) /* push on <var_p:Parser>*/;
9662 RET_LABEL:;
9663 }
9664 /* method parser#ReduceAction69#action for (self: Object, Parser) */
9665 void VIRTUAL_parser__ReduceAction69__action(val* self, val* p0) {
9666 parser__ReduceAction69__action(self, p0);
9667 RET_LABEL:;
9668 }
9669 /* method parser#ReduceAction70#action for (self: ReduceAction70, Parser) */
9670 void parser__ReduceAction70__action(val* self, val* p0) {
9671 val* var_p /* var p: Parser */;
9672 val* var /* : null */;
9673 val* var_node_list /* var node_list: nullable Object */;
9674 val* var1 /* : nullable Object */;
9675 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9676 val* var2 /* : null */;
9677 long var3 /* : Int */;
9678 long var4 /* : Int */;
9679 var_p = p0;
9680 var = NULL;
9681 var_node_list = var;
9682 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9683 var_nodearraylist1 = var1;
9684 var2 = NULL;
9685 var_node_list = var2;
9686 var3 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction70> */
9687 var4 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var3) /* go_to on <var_p:Parser>*/;
9688 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var4, var_node_list) /* push on <var_p:Parser>*/;
9689 RET_LABEL:;
9690 }
9691 /* method parser#ReduceAction70#action for (self: Object, Parser) */
9692 void VIRTUAL_parser__ReduceAction70__action(val* self, val* p0) {
9693 parser__ReduceAction70__action(self, p0);
9694 RET_LABEL:;
9695 }
9696 /* method parser#ReduceAction71#action for (self: ReduceAction71, Parser) */
9697 void parser__ReduceAction71__action(val* self, val* p0) {
9698 val* var_p /* var p: Parser */;
9699 val* var /* : null */;
9700 val* var_node_list /* var node_list: nullable Object */;
9701 val* var1 /* : nullable Object */;
9702 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9703 val* var2 /* : nullable Object */;
9704 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9705 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
9706 short int var3 /* : Bool */;
9707 int cltype;
9708 int idtype;
9709 val* var4 /* : AMainMethPropdef */;
9710 val* var5 /* : null */;
9711 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AMainMethPropdef */;
9712 long var6 /* : Int */;
9713 long var7 /* : Int */;
9714 var_p = p0;
9715 var = NULL;
9716 var_node_list = var;
9717 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9718 var_nodearraylist2 = var1;
9719 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9720 var_nodearraylist1 = var2;
9721 var_pexprnode3 = var_nodearraylist2;
9722 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
9723 cltype = type_nullable_parser_nodes__AExpr.color;
9724 idtype = type_nullable_parser_nodes__AExpr.id;
9725 if(var_pexprnode3 == NULL) {
9726 var3 = 1;
9727 } else {
9728 if(cltype >= var_pexprnode3->type->table_size) {
9729 var3 = 0;
9730 } else {
9731 var3 = var_pexprnode3->type->type_table[cltype] == idtype;
9732 }
9733 }
9734 if (!var3) {
9735 fprintf(stderr, "Runtime error: %s", "Assert failed");
9736 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4162);
9737 show_backtrace(1);
9738 }
9739 var4 = NEW_parser_nodes__AMainMethPropdef(&type_parser_nodes__AMainMethPropdef);
9740 var5 = NULL;
9741 ((void (*)(val*, val*, val*))(var4->class->vft[COLOR_parser_prod__AMainMethPropdef__init_amainmethpropdef]))(var4, var5, var_pexprnode3) /* init_amainmethpropdef on <var4:AMainMethPropdef>*/;
9742 var_ppropdefnode1 = var4;
9743 var_node_list = var_ppropdefnode1;
9744 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction71> */
9745 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
9746 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
9747 RET_LABEL:;
9748 }
9749 /* method parser#ReduceAction71#action for (self: Object, Parser) */
9750 void VIRTUAL_parser__ReduceAction71__action(val* self, val* p0) {
9751 parser__ReduceAction71__action(self, p0);
9752 RET_LABEL:;
9753 }
9754 /* method parser#ReduceAction73#action for (self: ReduceAction73, Parser) */
9755 void parser__ReduceAction73__action(val* self, val* p0) {
9756 val* var_p /* var p: Parser */;
9757 val* var /* : null */;
9758 val* var_node_list /* var node_list: nullable Object */;
9759 val* var1 /* : nullable Object */;
9760 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
9761 val* var2 /* : nullable Object */;
9762 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
9763 val* var3 /* : nullable Object */;
9764 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9765 val* var4 /* : nullable Object */;
9766 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9767 val* var5 /* : nullable Object */;
9768 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9769 val* var6 /* : nullable Object */;
9770 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9771 val* var7 /* : nullable Object */;
9772 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9773 val* var8 /* : Array[Object] */;
9774 val* var_listnode7 /* var listnode7: Array[Object] */;
9775 val* var9 /* : Array[Object] */;
9776 val* var_listnode10 /* var listnode10: Array[Object] */;
9777 val* var10 /* : Array[Object] */;
9778 val* var_listnode11 /* var listnode11: Array[Object] */;
9779 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
9780 short int var11 /* : Bool */;
9781 int cltype;
9782 int idtype;
9783 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
9784 short int var12 /* : Bool */;
9785 int cltype13;
9786 int idtype14;
9787 val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */;
9788 short int var15 /* : Bool */;
9789 int cltype16;
9790 int idtype17;
9791 val* var_tclassidnode6 /* var tclassidnode6: nullable Object */;
9792 short int var18 /* : Bool */;
9793 int cltype19;
9794 int idtype20;
9795 val* var_tkwendnode12 /* var tkwendnode12: nullable Object */;
9796 short int var21 /* : Bool */;
9797 int cltype22;
9798 int idtype23;
9799 val* var24 /* : AStdClassdef */;
9800 val* var25 /* : null */;
9801 val* var26 /* : null */;
9802 val* var27 /* : null */;
9803 val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */;
9804 long var28 /* : Int */;
9805 long var29 /* : Int */;
9806 var_p = p0;
9807 var = NULL;
9808 var_node_list = var;
9809 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9810 var_nodearraylist7 = var1;
9811 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9812 var_nodearraylist6 = var2;
9813 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9814 var_nodearraylist5 = var3;
9815 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9816 var_nodearraylist4 = var4;
9817 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9818 var_nodearraylist3 = var5;
9819 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9820 var_nodearraylist2 = var6;
9821 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9822 var_nodearraylist1 = var7;
9823 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
9824 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
9825 var_listnode7 = var8;
9826 var9 = NEW_array__Array(&type_array__Arraykernel__Object);
9827 ((void (*)(val*))(var9->class->vft[COLOR_array__Array__init]))(var9) /* init on <var9:Array[Object]>*/;
9828 var_listnode10 = var9;
9829 var10 = NEW_array__Array(&type_array__Arraykernel__Object);
9830 ((void (*)(val*))(var10->class->vft[COLOR_array__Array__init]))(var10) /* init on <var10:Array[Object]>*/;
9831 var_listnode11 = var10;
9832 var_pdocnode2 = var_nodearraylist1;
9833 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
9834 cltype = type_nullable_parser_nodes__ADoc.color;
9835 idtype = type_nullable_parser_nodes__ADoc.id;
9836 if(var_pdocnode2 == NULL) {
9837 var11 = 1;
9838 } else {
9839 if(cltype >= var_pdocnode2->type->table_size) {
9840 var11 = 0;
9841 } else {
9842 var11 = var_pdocnode2->type->type_table[cltype] == idtype;
9843 }
9844 }
9845 if (!var11) {
9846 fprintf(stderr, "Runtime error: %s", "Assert failed");
9847 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4187);
9848 show_backtrace(1);
9849 }
9850 var_pvisibilitynode4 = var_nodearraylist2;
9851 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
9852 cltype13 = type_nullable_parser_nodes__AVisibility.color;
9853 idtype14 = type_nullable_parser_nodes__AVisibility.id;
9854 if(var_pvisibilitynode4 == NULL) {
9855 var12 = 1;
9856 } else {
9857 if(cltype13 >= var_pvisibilitynode4->type->table_size) {
9858 var12 = 0;
9859 } else {
9860 var12 = var_pvisibilitynode4->type->type_table[cltype13] == idtype14;
9861 }
9862 }
9863 if (!var12) {
9864 fprintf(stderr, "Runtime error: %s", "Assert failed");
9865 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4189);
9866 show_backtrace(1);
9867 }
9868 var_pclasskindnode5 = var_nodearraylist3;
9869 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
9870 cltype16 = type_nullable_parser_nodes__AClasskind.color;
9871 idtype17 = type_nullable_parser_nodes__AClasskind.id;
9872 if(var_pclasskindnode5 == NULL) {
9873 var15 = 1;
9874 } else {
9875 if(cltype16 >= var_pclasskindnode5->type->table_size) {
9876 var15 = 0;
9877 } else {
9878 var15 = var_pclasskindnode5->type->type_table[cltype16] == idtype17;
9879 }
9880 }
9881 if (!var15) {
9882 fprintf(stderr, "Runtime error: %s", "Assert failed");
9883 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4191);
9884 show_backtrace(1);
9885 }
9886 var_tclassidnode6 = var_nodearraylist5;
9887 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
9888 cltype19 = type_nullable_parser_nodes__TClassid.color;
9889 idtype20 = type_nullable_parser_nodes__TClassid.id;
9890 if(var_tclassidnode6 == NULL) {
9891 var18 = 1;
9892 } else {
9893 if(cltype19 >= var_tclassidnode6->type->table_size) {
9894 var18 = 0;
9895 } else {
9896 var18 = var_tclassidnode6->type->type_table[cltype19] == idtype20;
9897 }
9898 }
9899 if (!var18) {
9900 fprintf(stderr, "Runtime error: %s", "Assert failed");
9901 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4193);
9902 show_backtrace(1);
9903 }
9904 var_tkwendnode12 = var_nodearraylist7;
9905 /* <var_tkwendnode12:nullable Object> isa nullable TKwend */
9906 cltype22 = type_nullable_parser_nodes__TKwend.color;
9907 idtype23 = type_nullable_parser_nodes__TKwend.id;
9908 if(var_tkwendnode12 == NULL) {
9909 var21 = 1;
9910 } else {
9911 if(cltype22 >= var_tkwendnode12->type->table_size) {
9912 var21 = 0;
9913 } else {
9914 var21 = var_tkwendnode12->type->type_table[cltype22] == idtype23;
9915 }
9916 }
9917 if (!var21) {
9918 fprintf(stderr, "Runtime error: %s", "Assert failed");
9919 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4195);
9920 show_backtrace(1);
9921 }
9922 var24 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
9923 var25 = NULL;
9924 var26 = NULL;
9925 var27 = NULL;
9926 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var24->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var24, var_pdocnode2, var25, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var26, var27, var_listnode10, var_listnode11, var_tkwendnode12) /* init_astdclassdef on <var24:AStdClassdef>*/;
9927 var_pclassdefnode1 = var24;
9928 var_node_list = var_pclassdefnode1;
9929 var28 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction73> */
9930 var29 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var28) /* go_to on <var_p:Parser>*/;
9931 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var29, var_node_list) /* push on <var_p:Parser>*/;
9932 RET_LABEL:;
9933 }
9934 /* method parser#ReduceAction73#action for (self: Object, Parser) */
9935 void VIRTUAL_parser__ReduceAction73__action(val* self, val* p0) {
9936 parser__ReduceAction73__action(self, p0);
9937 RET_LABEL:;
9938 }