nitdoc: remove unused plugin "Copy to Clipboard"
[nit.git] / c_src / parser.sep.3.c
1 #include "parser.sep.0.h"
2 /* method parser#Parser#build_reduce_table for (self: Object) */
3 void VIRTUAL_parser__Parser__build_reduce_table(val* self) {
4 parser__Parser__build_reduce_table(self);
5 RET_LABEL:;
6 }
7 /* method parser#ComputeProdLocationVisitor#visit for (self: ComputeProdLocationVisitor, ANode) */
8 void parser__ComputeProdLocationVisitor__visit(val* self, val* p0) {
9 val* var_n /* var n: ANode */;
10 short int var /* : Bool */;
11 int cltype;
12 int idtype;
13 val* var1 /* : Location */;
14 val* var_loc /* var loc: Location */;
15 val* var2 /* : Array[Prod] */;
16 short int var3 /* : Bool */;
17 short int var4 /* : Bool */;
18 val* var5 /* : Array[Prod] */;
19 val* var6 /* : Iterator[nullable Object] */;
20 short int var7 /* : Bool */;
21 val* var8 /* : nullable Object */;
22 val* var_no /* var no: Prod */;
23 val* var9 /* : Array[Prod] */;
24 val* var10 /* : Array[Prod] */;
25 short int var11 /* : Bool */;
26 short int var12 /* : Bool */;
27 val* var13 /* : Location */;
28 val* var14 /* : nullable SourceFile */;
29 long var15 /* : Int */;
30 long var16 /* : Int */;
31 long var17 /* : Int */;
32 long var18 /* : Int */;
33 val* var_loco /* var loco: Location */;
34 val* var19 /* : Array[Prod] */;
35 val* var20 /* : Iterator[nullable Object] */;
36 short int var21 /* : Bool */;
37 val* var22 /* : nullable Object */;
38 val* var_no23 /* var no: Prod */;
39 val* var25 /* : Array[Prod] */;
40 short int var26 /* : Bool */;
41 int cltype27;
42 int idtype28;
43 val* var29 /* : Array[Prod] */;
44 val* var30 /* : nullable Location */;
45 val* var_startl /* var startl: nullable Location */;
46 val* var31 /* : null */;
47 short int var32 /* : Bool */;
48 val* var33 /* : nullable Location */;
49 val* var_endl /* var endl: nullable Location */;
50 val* var34 /* : null */;
51 short int var35 /* : Bool */;
52 val* var36 /* : Location */;
53 val* var37 /* : nullable SourceFile */;
54 long var38 /* : Int */;
55 long var39 /* : Int */;
56 long var40 /* : Int */;
57 long var41 /* : Int */;
58 val* var42 /* : Array[Prod] */;
59 short int var43 /* : Bool */;
60 short int var44 /* : Bool */;
61 val* var45 /* : Location */;
62 val* var46 /* : nullable SourceFile */;
63 long var47 /* : Int */;
64 long var48 /* : Int */;
65 long var49 /* : Int */;
66 long var50 /* : Int */;
67 val* var_loc51 /* var loc: Location */;
68 val* var52 /* : Array[Prod] */;
69 val* var53 /* : Iterator[nullable Object] */;
70 short int var54 /* : Bool */;
71 val* var55 /* : nullable Object */;
72 val* var_no56 /* var no: Prod */;
73 val* var58 /* : Array[Prod] */;
74 val* var59 /* : Array[Prod] */;
75 var_n = p0;
76 /* <var_n:ANode> isa Token */
77 cltype = type_parser_nodes__Token.color;
78 idtype = type_parser_nodes__Token.id;
79 if(cltype >= var_n->type->table_size) {
80 var = 0;
81 } else {
82 var = var_n->type->type_table[cltype] == idtype;
83 }
84 if (var){
85 var1 = ((val* (*)(val*))(var_n->class->vft[COLOR_parser_nodes__ANode__location]))(var_n) /* location on <var_n:ANode(Token)>*/;
86 var_loc = var1;
87 self->attrs[COLOR_parser__ComputeProdLocationVisitor___last_location].val = var_loc; /* _last_location on <self:ComputeProdLocationVisitor> */
88 var2 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_first_prods].val; /* _need_first_prods on <self:ComputeProdLocationVisitor> */
89 if (var2 == NULL) {
90 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _need_first_prods");
91 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1763);
92 exit(1);
93 }
94 var3 = ((short int (*)(val*))(var2->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var2) /* is_empty on <var2:Array[Prod]>*/;
95 var4 = !var3;
96 if (var4){
97 var5 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_first_prods].val; /* _need_first_prods on <self:ComputeProdLocationVisitor> */
98 if (var5 == NULL) {
99 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _need_first_prods");
100 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1764);
101 exit(1);
102 }
103 var6 = ((val* (*)(val*))(var5->class->vft[COLOR_abstract_collection__Collection__iterator]))(var5) /* iterator on <var5:Array[Prod]>*/;
104 for(;;) {
105 var7 = ((short int (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var6) /* is_ok on <var6:Iterator[nullable Object]>*/;
106 if(!var7) break;
107 var8 = ((val* (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__item]))(var6) /* item on <var6:Iterator[nullable Object]>*/;
108 var_no = var8;
109 var_no->attrs[COLOR_parser__Prod___first_location].val = var_loc; /* _first_location on <var_no:Prod> */
110 CONTINUE_label: (void)0;
111 ((void (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__next]))(var6) /* next on <var6:Iterator[nullable Object]>*/;
112 }
113 BREAK_label: (void)0;
114 var9 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_first_prods].val; /* _need_first_prods on <self:ComputeProdLocationVisitor> */
115 if (var9 == NULL) {
116 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _need_first_prods");
117 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1767);
118 exit(1);
119 }
120 ((void (*)(val*))(var9->class->vft[COLOR_abstract_collection__RemovableCollection__clear]))(var9) /* clear on <var9:Array[Prod]>*/;
121 } else {
122 }
123 var10 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
124 if (var10 == NULL) {
125 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
126 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1771);
127 exit(1);
128 }
129 var11 = ((short int (*)(val*))(var10->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var10) /* is_empty on <var10:Array[Prod]>*/;
130 var12 = !var11;
131 if (var12){
132 var13 = NEW_location__Location(&type_location__Location);
133 var14 = ((val* (*)(val*))(var_loc->class->vft[COLOR_location__Location__file]))(var_loc) /* file on <var_loc:Location>*/;
134 var15 = ((long (*)(val*))(var_loc->class->vft[COLOR_location__Location__line_start]))(var_loc) /* line_start on <var_loc:Location>*/;
135 var16 = ((long (*)(val*))(var_loc->class->vft[COLOR_location__Location__line_start]))(var_loc) /* line_start on <var_loc:Location>*/;
136 var17 = ((long (*)(val*))(var_loc->class->vft[COLOR_location__Location__column_start]))(var_loc) /* column_start on <var_loc:Location>*/;
137 var18 = ((long (*)(val*))(var_loc->class->vft[COLOR_location__Location__column_start]))(var_loc) /* column_start on <var_loc:Location>*/;
138 ((void (*)(val*, val*, long, long, long, long))(var13->class->vft[COLOR_location__Location__init]))(var13, var14, var15, var16, var17, var18) /* init on <var13:Location>*/;
139 CHECK_NEW_location__Location(var13);
140 var_loco = var13;
141 var19 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
142 if (var19 == NULL) {
143 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
144 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1773);
145 exit(1);
146 }
147 var20 = ((val* (*)(val*))(var19->class->vft[COLOR_abstract_collection__Collection__iterator]))(var19) /* iterator on <var19:Array[Prod]>*/;
148 for(;;) {
149 var21 = ((short int (*)(val*))(var20->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var20) /* is_ok on <var20:Iterator[nullable Object]>*/;
150 if(!var21) break;
151 var22 = ((val* (*)(val*))(var20->class->vft[COLOR_abstract_collection__Iterator__item]))(var20) /* item on <var20:Iterator[nullable Object]>*/;
152 var_no23 = var22;
153 ((void (*)(val*, val*))(var_no23->class->vft[COLOR_parser_nodes__Prod__location_61d]))(var_no23, var_loco) /* location= on <var_no23:Prod>*/;
154 CONTINUE_label24: (void)0;
155 ((void (*)(val*))(var20->class->vft[COLOR_abstract_collection__Iterator__next]))(var20) /* next on <var20:Iterator[nullable Object]>*/;
156 }
157 BREAK_label24: (void)0;
158 var25 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
159 if (var25 == NULL) {
160 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
161 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1776);
162 exit(1);
163 }
164 ((void (*)(val*))(var25->class->vft[COLOR_abstract_collection__RemovableCollection__clear]))(var25) /* clear on <var25:Array[Prod]>*/;
165 } else {
166 }
167 } else {
168 /* <var_n:ANode> isa Prod */
169 cltype27 = type_parser_nodes__Prod.color;
170 idtype28 = type_parser_nodes__Prod.id;
171 if(cltype27 >= var_n->type->table_size) {
172 var26 = 0;
173 } else {
174 var26 = var_n->type->type_table[cltype27] == idtype28;
175 }
176 if (!var26) {
177 fprintf(stderr, "Runtime error: %s", "Assert failed");
178 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1779);
179 exit(1);
180 }
181 var29 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_first_prods].val; /* _need_first_prods on <self:ComputeProdLocationVisitor> */
182 if (var29 == NULL) {
183 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _need_first_prods");
184 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1780);
185 exit(1);
186 }
187 ((void (*)(val*, val*))(var29->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var29, var_n) /* add on <var29:Array[Prod]>*/;
188 ((void (*)(val*, val*))(var_n->class->vft[COLOR_parser_nodes__ANode__visit_all]))(var_n, self) /* visit_all on <var_n:ANode(Prod)>*/;
189 var30 = var_n->attrs[COLOR_parser__Prod___first_location].val; /* _first_location on <var_n:ANode(Prod)> */
190 var_startl = var30;
191 var31 = NULL;
192 if (var_startl == NULL) {
193 var32 = 0; /* is null */
194 } else {
195 var32 = 1; /* arg is null and recv is not */
196 }
197 if (var32){
198 var33 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___last_location].val; /* _last_location on <self:ComputeProdLocationVisitor> */
199 var_endl = var33;
200 var34 = NULL;
201 if (var_endl == NULL) {
202 var35 = 0; /* is null */
203 } else {
204 var35 = 1; /* arg is null and recv is not */
205 }
206 if (!var35) {
207 fprintf(stderr, "Runtime error: %s", "Assert failed");
208 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1788);
209 exit(1);
210 }
211 var36 = NEW_location__Location(&type_location__Location);
212 var37 = ((val* (*)(val*))(var_startl->class->vft[COLOR_location__Location__file]))(var_startl) /* file on <var_startl:nullable Location(Location)>*/;
213 var38 = ((long (*)(val*))(var_startl->class->vft[COLOR_location__Location__line_start]))(var_startl) /* line_start on <var_startl:nullable Location(Location)>*/;
214 var39 = ((long (*)(val*))(var_endl->class->vft[COLOR_location__Location__line_end]))(var_endl) /* line_end on <var_endl:nullable Location(Location)>*/;
215 var40 = ((long (*)(val*))(var_startl->class->vft[COLOR_location__Location__column_start]))(var_startl) /* column_start on <var_startl:nullable Location(Location)>*/;
216 var41 = ((long (*)(val*))(var_endl->class->vft[COLOR_location__Location__column_end]))(var_endl) /* column_end on <var_endl:nullable Location(Location)>*/;
217 ((void (*)(val*, val*, long, long, long, long))(var36->class->vft[COLOR_location__Location__init]))(var36, var37, var38, var39, var40, var41) /* init on <var36:Location>*/;
218 CHECK_NEW_location__Location(var36);
219 ((void (*)(val*, val*))(var_n->class->vft[COLOR_parser_nodes__Prod__location_61d]))(var_n, var36) /* location= on <var_n:ANode(Prod)>*/;
220 var42 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
221 if (var42 == NULL) {
222 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
223 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1792);
224 exit(1);
225 }
226 var43 = ((short int (*)(val*))(var42->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var42) /* is_empty on <var42:Array[Prod]>*/;
227 var44 = !var43;
228 if (var44){
229 var45 = NEW_location__Location(&type_location__Location);
230 var46 = ((val* (*)(val*))(var_endl->class->vft[COLOR_location__Location__file]))(var_endl) /* file on <var_endl:nullable Location(Location)>*/;
231 var47 = ((long (*)(val*))(var_endl->class->vft[COLOR_location__Location__line_end]))(var_endl) /* line_end on <var_endl:nullable Location(Location)>*/;
232 var48 = ((long (*)(val*))(var_endl->class->vft[COLOR_location__Location__line_end]))(var_endl) /* line_end on <var_endl:nullable Location(Location)>*/;
233 var49 = ((long (*)(val*))(var_endl->class->vft[COLOR_location__Location__column_end]))(var_endl) /* column_end on <var_endl:nullable Location(Location)>*/;
234 var50 = ((long (*)(val*))(var_endl->class->vft[COLOR_location__Location__column_end]))(var_endl) /* column_end on <var_endl:nullable Location(Location)>*/;
235 ((void (*)(val*, val*, long, long, long, long))(var45->class->vft[COLOR_location__Location__init]))(var45, var46, var47, var48, var49, var50) /* init on <var45:Location>*/;
236 CHECK_NEW_location__Location(var45);
237 var_loc51 = var45;
238 var52 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
239 if (var52 == NULL) {
240 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
241 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1794);
242 exit(1);
243 }
244 var53 = ((val* (*)(val*))(var52->class->vft[COLOR_abstract_collection__Collection__iterator]))(var52) /* iterator on <var52:Array[Prod]>*/;
245 for(;;) {
246 var54 = ((short int (*)(val*))(var53->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var53) /* is_ok on <var53:Iterator[nullable Object]>*/;
247 if(!var54) break;
248 var55 = ((val* (*)(val*))(var53->class->vft[COLOR_abstract_collection__Iterator__item]))(var53) /* item on <var53:Iterator[nullable Object]>*/;
249 var_no56 = var55;
250 ((void (*)(val*, val*))(var_no56->class->vft[COLOR_parser_nodes__Prod__location_61d]))(var_no56, var_loc51) /* location= on <var_no56:Prod>*/;
251 CONTINUE_label57: (void)0;
252 ((void (*)(val*))(var53->class->vft[COLOR_abstract_collection__Iterator__next]))(var53) /* next on <var53:Iterator[nullable Object]>*/;
253 }
254 BREAK_label57: (void)0;
255 var58 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
256 if (var58 == NULL) {
257 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
258 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1798);
259 exit(1);
260 }
261 ((void (*)(val*))(var58->class->vft[COLOR_abstract_collection__RemovableCollection__clear]))(var58) /* clear on <var58:Array[Prod]>*/;
262 } else {
263 }
264 } else {
265 var59 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
266 if (var59 == NULL) {
267 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _need_after_epsilons");
268 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1802);
269 exit(1);
270 }
271 ((void (*)(val*, val*))(var59->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var59, var_n) /* add on <var59:Array[Prod]>*/;
272 }
273 }
274 RET_LABEL:;
275 }
276 /* method parser#ComputeProdLocationVisitor#visit for (self: Object, ANode) */
277 void VIRTUAL_parser__ComputeProdLocationVisitor__visit(val* self, val* p0) {
278 parser__ComputeProdLocationVisitor__visit(self, p0);
279 RET_LABEL:;
280 }
281 /* method parser#ComputeProdLocationVisitor#init for (self: ComputeProdLocationVisitor) */
282 void parser__ComputeProdLocationVisitor__init(val* self) {
283 ((void (*)(val*))(self->class->vft[COLOR_parser_nodes__Visitor__init]))(self) /* init on <self:ComputeProdLocationVisitor>*/;
284 RET_LABEL:;
285 }
286 /* method parser#ComputeProdLocationVisitor#init for (self: Object) */
287 void VIRTUAL_parser__ComputeProdLocationVisitor__init(val* self) {
288 parser__ComputeProdLocationVisitor__init(self);
289 RET_LABEL:;
290 }
291 /* method parser#ReduceAction#action for (self: ReduceAction, Parser) */
292 void parser__ReduceAction__action(val* self, val* p0) {
293 const char* var_class_name;
294 var_class_name = self == NULL ? "null" : self->type->name;
295 fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "action", var_class_name);
296 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1812);
297 exit(1);
298 RET_LABEL:;
299 }
300 /* method parser#ReduceAction#action for (self: Object, Parser) */
301 void VIRTUAL_parser__ReduceAction__action(val* self, val* p0) {
302 parser__ReduceAction__action(self, p0);
303 RET_LABEL:;
304 }
305 /* method parser#ReduceAction#concat for (self: ReduceAction, Array[Object], Array[Object]): Array[Object] */
306 val* parser__ReduceAction__concat(val* self, val* p0, val* p1) {
307 val* var /* : Array[Object] */;
308 val* var_l1 /* var l1: Array[Object] */;
309 val* var_l2 /* var l2: Array[Object] */;
310 short int var1 /* : Bool */;
311 var_l1 = p0;
312 var_l2 = p1;
313 var1 = ((short int (*)(val*))(var_l1->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var_l1) /* is_empty on <var_l1:Array[Object]>*/;
314 if (var1){
315 var = var_l2;
316 goto RET_LABEL;
317 } else {
318 }
319 ((void (*)(val*, val*))(var_l1->class->vft[COLOR_abstract_collection__Sequence__append]))(var_l1, var_l2) /* append on <var_l1:Array[Object]>*/;
320 var = var_l1;
321 goto RET_LABEL;
322 RET_LABEL:;
323 return var;
324 }
325 /* method parser#ReduceAction#concat for (self: Object, Array[Object], Array[Object]): Array[Object] */
326 val* VIRTUAL_parser__ReduceAction__concat(val* self, val* p0, val* p1) {
327 val* var /* : Array[Object] */;
328 val* var1 /* : Array[Object] */;
329 var1 = parser__ReduceAction__concat(self, p0, p1);
330 var = var1;
331 RET_LABEL:;
332 return var;
333 }
334 /* method parser#ReduceAction#init for (self: ReduceAction, Int) */
335 void parser__ReduceAction__init(val* self, long p0) {
336 long var_g /* var g: Int */;
337 var_g = p0;
338 self->attrs[COLOR_parser__ReduceAction___goto].l = var_g; /* _goto on <self:ReduceAction> */
339 RET_LABEL:;
340 }
341 /* method parser#ReduceAction#init for (self: Object, Int) */
342 void VIRTUAL_parser__ReduceAction__init(val* self, long p0) {
343 parser__ReduceAction__init(self, p0);
344 RET_LABEL:;
345 }
346 /* method parser#ReduceAction0#action for (self: ReduceAction0, Parser) */
347 void parser__ReduceAction0__action(val* self, val* p0) {
348 val* var_p /* var p: Parser */;
349 val* var /* : null */;
350 val* var_node_list /* var node_list: nullable Object */;
351 val* var1 /* : Array[Object] */;
352 val* var_listnode3 /* var listnode3: Array[Object] */;
353 val* var2 /* : Array[Object] */;
354 val* var_listnode4 /* var listnode4: Array[Object] */;
355 val* var3 /* : Array[Object] */;
356 val* var_listnode5 /* var listnode5: Array[Object] */;
357 val* var4 /* : AModule */;
358 val* var5 /* : null */;
359 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
360 long var6 /* : Int */;
361 long var7 /* : Int */;
362 var_p = p0;
363 var = NULL;
364 var_node_list = var;
365 var1 = NEW_array__Array(&type_array__Arraykernel__Object);
366 ((void (*)(val*))(var1->class->vft[COLOR_array__Array__init]))(var1) /* init on <var1:Array[Object]>*/;
367 CHECK_NEW_array__Array(var1);
368 var_listnode3 = var1;
369 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
370 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
371 CHECK_NEW_array__Array(var2);
372 var_listnode4 = var2;
373 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
374 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
375 CHECK_NEW_array__Array(var3);
376 var_listnode5 = var3;
377 var4 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
378 var5 = NULL;
379 ((void (*)(val*, val*, val*, val*, val*))(var4->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var4, var5, var_listnode3, var_listnode4, var_listnode5) /* init_amodule on <var4:AModule>*/;
380 CHECK_NEW_parser_nodes__AModule(var4);
381 var_pmodulenode1 = var4;
382 var_node_list = var_pmodulenode1;
383 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction0> */
384 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
385 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
386 RET_LABEL:;
387 }
388 /* method parser#ReduceAction0#action for (self: Object, Parser) */
389 void VIRTUAL_parser__ReduceAction0__action(val* self, val* p0) {
390 parser__ReduceAction0__action(self, p0);
391 RET_LABEL:;
392 }
393 /* method parser#ReduceAction1#action for (self: ReduceAction1, Parser) */
394 void parser__ReduceAction1__action(val* self, val* p0) {
395 val* var_p /* var p: Parser */;
396 val* var /* : null */;
397 val* var_node_list /* var node_list: nullable Object */;
398 val* var1 /* : nullable Object */;
399 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
400 val* var2 /* : Array[Object] */;
401 val* var_listnode3 /* var listnode3: Array[Object] */;
402 val* var3 /* : Array[Object] */;
403 val* var_listnode4 /* var listnode4: Array[Object] */;
404 val* var4 /* : Array[Object] */;
405 val* var_listnode5 /* var listnode5: Array[Object] */;
406 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
407 short int var5 /* : Bool */;
408 int cltype;
409 int idtype;
410 val* var6 /* : AModule */;
411 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
412 long var7 /* : Int */;
413 long var8 /* : Int */;
414 var_p = p0;
415 var = NULL;
416 var_node_list = var;
417 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
418 var_nodearraylist1 = var1;
419 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
420 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
421 CHECK_NEW_array__Array(var2);
422 var_listnode3 = var2;
423 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
424 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
425 CHECK_NEW_array__Array(var3);
426 var_listnode4 = var3;
427 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
428 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
429 CHECK_NEW_array__Array(var4);
430 var_listnode5 = var4;
431 var_pmoduledeclnode2 = var_nodearraylist1;
432 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
433 cltype = type_nullable_parser_nodes__AModuledecl.color;
434 idtype = type_nullable_parser_nodes__AModuledecl.id;
435 if(var_pmoduledeclnode2 == NULL) {
436 var5 = 1;
437 } else {
438 if(cltype >= var_pmoduledeclnode2->type->table_size) {
439 var5 = 0;
440 } else {
441 var5 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
442 }
443 }
444 if (!var5) {
445 fprintf(stderr, "Runtime error: %s", "Assert failed");
446 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1851);
447 exit(1);
448 }
449 var6 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
450 ((void (*)(val*, val*, val*, val*, val*))(var6->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var6, var_pmoduledeclnode2, var_listnode3, var_listnode4, var_listnode5) /* init_amodule on <var6:AModule>*/;
451 CHECK_NEW_parser_nodes__AModule(var6);
452 var_pmodulenode1 = var6;
453 var_node_list = var_pmodulenode1;
454 var7 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1> */
455 var8 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var7) /* go_to on <var_p:Parser>*/;
456 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var8, var_node_list) /* push on <var_p:Parser>*/;
457 RET_LABEL:;
458 }
459 /* method parser#ReduceAction1#action for (self: Object, Parser) */
460 void VIRTUAL_parser__ReduceAction1__action(val* self, val* p0) {
461 parser__ReduceAction1__action(self, p0);
462 RET_LABEL:;
463 }
464 /* method parser#ReduceAction2#action for (self: ReduceAction2, Parser) */
465 void parser__ReduceAction2__action(val* self, val* p0) {
466 val* var_p /* var p: Parser */;
467 val* var /* : null */;
468 val* var_node_list /* var node_list: nullable Object */;
469 val* var1 /* : nullable Object */;
470 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
471 val* var2 /* : Array[Object] */;
472 val* var_listnode4 /* var listnode4: Array[Object] */;
473 val* var3 /* : Array[Object] */;
474 val* var_listnode5 /* var listnode5: Array[Object] */;
475 val* var4 /* : Array[Object] */;
476 val* var_listnode6 /* var listnode6: Array[Object] */;
477 val* var_listnode3 /* var listnode3: nullable Object */;
478 short int var5 /* : Bool */;
479 int cltype;
480 int idtype;
481 val* var6 /* : Array[Object] */;
482 val* var7 /* : AModule */;
483 val* var8 /* : null */;
484 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
485 long var9 /* : Int */;
486 long var10 /* : Int */;
487 var_p = p0;
488 var = NULL;
489 var_node_list = var;
490 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
491 var_nodearraylist1 = var1;
492 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
493 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
494 CHECK_NEW_array__Array(var2);
495 var_listnode4 = var2;
496 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
497 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
498 CHECK_NEW_array__Array(var3);
499 var_listnode5 = var3;
500 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
501 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
502 CHECK_NEW_array__Array(var4);
503 var_listnode6 = var4;
504 var_listnode3 = var_nodearraylist1;
505 /* <var_listnode3:nullable Object> isa Array[Object] */
506 cltype = type_array__Arraykernel__Object.color;
507 idtype = type_array__Arraykernel__Object.id;
508 if(var_listnode3 == NULL) {
509 var5 = 0;
510 } else {
511 if(cltype >= var_listnode3->type->table_size) {
512 var5 = 0;
513 } else {
514 var5 = var_listnode3->type->type_table[cltype] == idtype;
515 }
516 }
517 if (!var5) {
518 fprintf(stderr, "Runtime error: %s", "Assert failed");
519 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1872);
520 exit(1);
521 }
522 var6 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction2>*/;
523 var_listnode4 = var6;
524 var7 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
525 var8 = NULL;
526 ((void (*)(val*, val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AModule__init_amodule]))(var7, var8, var_listnode4, var_listnode5, var_listnode6) /* init_amodule on <var7:AModule>*/;
527 CHECK_NEW_parser_nodes__AModule(var7);
528 var_pmodulenode1 = var7;
529 var_node_list = var_pmodulenode1;
530 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction2> */
531 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
532 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
533 RET_LABEL:;
534 }
535 /* method parser#ReduceAction2#action for (self: Object, Parser) */
536 void VIRTUAL_parser__ReduceAction2__action(val* self, val* p0) {
537 parser__ReduceAction2__action(self, p0);
538 RET_LABEL:;
539 }
540 /* method parser#ReduceAction3#action for (self: ReduceAction3, Parser) */
541 void parser__ReduceAction3__action(val* self, val* p0) {
542 val* var_p /* var p: Parser */;
543 val* var /* : null */;
544 val* var_node_list /* var node_list: nullable Object */;
545 val* var1 /* : nullable Object */;
546 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
547 val* var2 /* : nullable Object */;
548 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
549 val* var3 /* : Array[Object] */;
550 val* var_listnode4 /* var listnode4: Array[Object] */;
551 val* var4 /* : Array[Object] */;
552 val* var_listnode5 /* var listnode5: Array[Object] */;
553 val* var5 /* : Array[Object] */;
554 val* var_listnode6 /* var listnode6: Array[Object] */;
555 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
556 short int var6 /* : Bool */;
557 int cltype;
558 int idtype;
559 val* var_listnode3 /* var listnode3: nullable Object */;
560 short int var7 /* : Bool */;
561 int cltype8;
562 int idtype9;
563 val* var10 /* : Array[Object] */;
564 val* var11 /* : AModule */;
565 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
566 long var12 /* : Int */;
567 long var13 /* : Int */;
568 var_p = p0;
569 var = NULL;
570 var_node_list = var;
571 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
572 var_nodearraylist2 = var1;
573 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
574 var_nodearraylist1 = var2;
575 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
576 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
577 CHECK_NEW_array__Array(var3);
578 var_listnode4 = var3;
579 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
580 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
581 CHECK_NEW_array__Array(var4);
582 var_listnode5 = var4;
583 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
584 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
585 CHECK_NEW_array__Array(var5);
586 var_listnode6 = var5;
587 var_pmoduledeclnode2 = var_nodearraylist1;
588 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
589 cltype = type_nullable_parser_nodes__AModuledecl.color;
590 idtype = type_nullable_parser_nodes__AModuledecl.id;
591 if(var_pmoduledeclnode2 == NULL) {
592 var6 = 1;
593 } else {
594 if(cltype >= var_pmoduledeclnode2->type->table_size) {
595 var6 = 0;
596 } else {
597 var6 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
598 }
599 }
600 if (!var6) {
601 fprintf(stderr, "Runtime error: %s", "Assert failed");
602 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1895);
603 exit(1);
604 }
605 var_listnode3 = var_nodearraylist2;
606 /* <var_listnode3:nullable Object> isa Array[Object] */
607 cltype8 = type_array__Arraykernel__Object.color;
608 idtype9 = type_array__Arraykernel__Object.id;
609 if(var_listnode3 == NULL) {
610 var7 = 0;
611 } else {
612 if(cltype8 >= var_listnode3->type->table_size) {
613 var7 = 0;
614 } else {
615 var7 = var_listnode3->type->type_table[cltype8] == idtype9;
616 }
617 }
618 if (!var7) {
619 fprintf(stderr, "Runtime error: %s", "Assert failed");
620 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1897);
621 exit(1);
622 }
623 var10 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction3>*/;
624 var_listnode4 = var10;
625 var11 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
626 ((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>*/;
627 CHECK_NEW_parser_nodes__AModule(var11);
628 var_pmodulenode1 = var11;
629 var_node_list = var_pmodulenode1;
630 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction3> */
631 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
632 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
633 RET_LABEL:;
634 }
635 /* method parser#ReduceAction3#action for (self: Object, Parser) */
636 void VIRTUAL_parser__ReduceAction3__action(val* self, val* p0) {
637 parser__ReduceAction3__action(self, p0);
638 RET_LABEL:;
639 }
640 /* method parser#ReduceAction4#action for (self: ReduceAction4, Parser) */
641 void parser__ReduceAction4__action(val* self, val* p0) {
642 val* var_p /* var p: Parser */;
643 val* var /* : null */;
644 val* var_node_list /* var node_list: nullable Object */;
645 val* var1 /* : nullable Object */;
646 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
647 val* var2 /* : Array[Object] */;
648 val* var_listnode3 /* var listnode3: Array[Object] */;
649 val* var3 /* : Array[Object] */;
650 val* var_listnode5 /* var listnode5: Array[Object] */;
651 val* var4 /* : Array[Object] */;
652 val* var_listnode6 /* var listnode6: Array[Object] */;
653 val* var_listnode4 /* var listnode4: nullable Object */;
654 short int var5 /* : Bool */;
655 int cltype;
656 int idtype;
657 val* var6 /* : Array[Object] */;
658 val* var7 /* : AModule */;
659 val* var8 /* : null */;
660 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
661 long var9 /* : Int */;
662 long var10 /* : Int */;
663 var_p = p0;
664 var = NULL;
665 var_node_list = var;
666 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
667 var_nodearraylist1 = var1;
668 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
669 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
670 CHECK_NEW_array__Array(var2);
671 var_listnode3 = var2;
672 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
673 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
674 CHECK_NEW_array__Array(var3);
675 var_listnode5 = var3;
676 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
677 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
678 CHECK_NEW_array__Array(var4);
679 var_listnode6 = var4;
680 var_listnode4 = var_nodearraylist1;
681 /* <var_listnode4:nullable Object> isa Array[Object] */
682 cltype = type_array__Arraykernel__Object.color;
683 idtype = type_array__Arraykernel__Object.id;
684 if(var_listnode4 == NULL) {
685 var5 = 0;
686 } else {
687 if(cltype >= var_listnode4->type->table_size) {
688 var5 = 0;
689 } else {
690 var5 = var_listnode4->type->type_table[cltype] == idtype;
691 }
692 }
693 if (!var5) {
694 fprintf(stderr, "Runtime error: %s", "Assert failed");
695 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1919);
696 exit(1);
697 }
698 var6 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction4>*/;
699 var_listnode5 = var6;
700 var7 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
701 var8 = NULL;
702 ((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>*/;
703 CHECK_NEW_parser_nodes__AModule(var7);
704 var_pmodulenode1 = var7;
705 var_node_list = var_pmodulenode1;
706 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction4> */
707 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
708 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
709 RET_LABEL:;
710 }
711 /* method parser#ReduceAction4#action for (self: Object, Parser) */
712 void VIRTUAL_parser__ReduceAction4__action(val* self, val* p0) {
713 parser__ReduceAction4__action(self, p0);
714 RET_LABEL:;
715 }
716 /* method parser#ReduceAction5#action for (self: ReduceAction5, Parser) */
717 void parser__ReduceAction5__action(val* self, val* p0) {
718 val* var_p /* var p: Parser */;
719 val* var /* : null */;
720 val* var_node_list /* var node_list: nullable Object */;
721 val* var1 /* : nullable Object */;
722 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
723 val* var2 /* : nullable Object */;
724 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
725 val* var3 /* : Array[Object] */;
726 val* var_listnode3 /* var listnode3: Array[Object] */;
727 val* var4 /* : Array[Object] */;
728 val* var_listnode5 /* var listnode5: Array[Object] */;
729 val* var5 /* : Array[Object] */;
730 val* var_listnode6 /* var listnode6: Array[Object] */;
731 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
732 short int var6 /* : Bool */;
733 int cltype;
734 int idtype;
735 val* var_listnode4 /* var listnode4: nullable Object */;
736 short int var7 /* : Bool */;
737 int cltype8;
738 int idtype9;
739 val* var10 /* : Array[Object] */;
740 val* var11 /* : AModule */;
741 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
742 long var12 /* : Int */;
743 long var13 /* : Int */;
744 var_p = p0;
745 var = NULL;
746 var_node_list = var;
747 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
748 var_nodearraylist2 = var1;
749 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
750 var_nodearraylist1 = var2;
751 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
752 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
753 CHECK_NEW_array__Array(var3);
754 var_listnode3 = var3;
755 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
756 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
757 CHECK_NEW_array__Array(var4);
758 var_listnode5 = var4;
759 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
760 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
761 CHECK_NEW_array__Array(var5);
762 var_listnode6 = var5;
763 var_pmoduledeclnode2 = var_nodearraylist1;
764 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
765 cltype = type_nullable_parser_nodes__AModuledecl.color;
766 idtype = type_nullable_parser_nodes__AModuledecl.id;
767 if(var_pmoduledeclnode2 == NULL) {
768 var6 = 1;
769 } else {
770 if(cltype >= var_pmoduledeclnode2->type->table_size) {
771 var6 = 0;
772 } else {
773 var6 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
774 }
775 }
776 if (!var6) {
777 fprintf(stderr, "Runtime error: %s", "Assert failed");
778 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1942);
779 exit(1);
780 }
781 var_listnode4 = var_nodearraylist2;
782 /* <var_listnode4:nullable Object> isa Array[Object] */
783 cltype8 = type_array__Arraykernel__Object.color;
784 idtype9 = type_array__Arraykernel__Object.id;
785 if(var_listnode4 == NULL) {
786 var7 = 0;
787 } else {
788 if(cltype8 >= var_listnode4->type->table_size) {
789 var7 = 0;
790 } else {
791 var7 = var_listnode4->type->type_table[cltype8] == idtype9;
792 }
793 }
794 if (!var7) {
795 fprintf(stderr, "Runtime error: %s", "Assert failed");
796 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1944);
797 exit(1);
798 }
799 var10 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction5>*/;
800 var_listnode5 = var10;
801 var11 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
802 ((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>*/;
803 CHECK_NEW_parser_nodes__AModule(var11);
804 var_pmodulenode1 = var11;
805 var_node_list = var_pmodulenode1;
806 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction5> */
807 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
808 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
809 RET_LABEL:;
810 }
811 /* method parser#ReduceAction5#action for (self: Object, Parser) */
812 void VIRTUAL_parser__ReduceAction5__action(val* self, val* p0) {
813 parser__ReduceAction5__action(self, p0);
814 RET_LABEL:;
815 }
816 /* method parser#ReduceAction6#action for (self: ReduceAction6, Parser) */
817 void parser__ReduceAction6__action(val* self, val* p0) {
818 val* var_p /* var p: Parser */;
819 val* var /* : null */;
820 val* var_node_list /* var node_list: nullable Object */;
821 val* var1 /* : nullable Object */;
822 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
823 val* var2 /* : nullable Object */;
824 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
825 val* var3 /* : Array[Object] */;
826 val* var_listnode4 /* var listnode4: Array[Object] */;
827 val* var4 /* : Array[Object] */;
828 val* var_listnode6 /* var listnode6: Array[Object] */;
829 val* var5 /* : Array[Object] */;
830 val* var_listnode7 /* var listnode7: Array[Object] */;
831 val* var_listnode3 /* var listnode3: nullable Object */;
832 short int var6 /* : Bool */;
833 int cltype;
834 int idtype;
835 val* var7 /* : Array[Object] */;
836 val* var_listnode5 /* var listnode5: nullable Object */;
837 short int var8 /* : Bool */;
838 int cltype9;
839 int idtype10;
840 val* var11 /* : Array[Object] */;
841 val* var12 /* : AModule */;
842 val* var13 /* : null */;
843 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
844 long var14 /* : Int */;
845 long var15 /* : Int */;
846 var_p = p0;
847 var = NULL;
848 var_node_list = var;
849 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
850 var_nodearraylist2 = var1;
851 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
852 var_nodearraylist1 = var2;
853 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
854 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
855 CHECK_NEW_array__Array(var3);
856 var_listnode4 = var3;
857 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
858 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
859 CHECK_NEW_array__Array(var4);
860 var_listnode6 = var4;
861 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
862 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
863 CHECK_NEW_array__Array(var5);
864 var_listnode7 = var5;
865 var_listnode3 = var_nodearraylist1;
866 /* <var_listnode3:nullable Object> isa Array[Object] */
867 cltype = type_array__Arraykernel__Object.color;
868 idtype = type_array__Arraykernel__Object.id;
869 if(var_listnode3 == NULL) {
870 var6 = 0;
871 } else {
872 if(cltype >= var_listnode3->type->table_size) {
873 var6 = 0;
874 } else {
875 var6 = var_listnode3->type->type_table[cltype] == idtype;
876 }
877 }
878 if (!var6) {
879 fprintf(stderr, "Runtime error: %s", "Assert failed");
880 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1967);
881 exit(1);
882 }
883 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction6>*/;
884 var_listnode4 = var7;
885 var_listnode5 = var_nodearraylist2;
886 /* <var_listnode5:nullable Object> isa Array[Object] */
887 cltype9 = type_array__Arraykernel__Object.color;
888 idtype10 = type_array__Arraykernel__Object.id;
889 if(var_listnode5 == NULL) {
890 var8 = 0;
891 } else {
892 if(cltype9 >= var_listnode5->type->table_size) {
893 var8 = 0;
894 } else {
895 var8 = var_listnode5->type->type_table[cltype9] == idtype10;
896 }
897 }
898 if (!var8) {
899 fprintf(stderr, "Runtime error: %s", "Assert failed");
900 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1970);
901 exit(1);
902 }
903 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction6>*/;
904 var_listnode6 = var11;
905 var12 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
906 var13 = NULL;
907 ((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>*/;
908 CHECK_NEW_parser_nodes__AModule(var12);
909 var_pmodulenode1 = var12;
910 var_node_list = var_pmodulenode1;
911 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction6> */
912 var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
913 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
914 RET_LABEL:;
915 }
916 /* method parser#ReduceAction6#action for (self: Object, Parser) */
917 void VIRTUAL_parser__ReduceAction6__action(val* self, val* p0) {
918 parser__ReduceAction6__action(self, p0);
919 RET_LABEL:;
920 }
921 /* method parser#ReduceAction7#action for (self: ReduceAction7, Parser) */
922 void parser__ReduceAction7__action(val* self, val* p0) {
923 val* var_p /* var p: Parser */;
924 val* var /* : null */;
925 val* var_node_list /* var node_list: nullable Object */;
926 val* var1 /* : nullable Object */;
927 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
928 val* var2 /* : nullable Object */;
929 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
930 val* var3 /* : nullable Object */;
931 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
932 val* var4 /* : Array[Object] */;
933 val* var_listnode4 /* var listnode4: Array[Object] */;
934 val* var5 /* : Array[Object] */;
935 val* var_listnode6 /* var listnode6: Array[Object] */;
936 val* var6 /* : Array[Object] */;
937 val* var_listnode7 /* var listnode7: Array[Object] */;
938 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
939 short int var7 /* : Bool */;
940 int cltype;
941 int idtype;
942 val* var_listnode3 /* var listnode3: nullable Object */;
943 short int var8 /* : Bool */;
944 int cltype9;
945 int idtype10;
946 val* var11 /* : Array[Object] */;
947 val* var_listnode5 /* var listnode5: nullable Object */;
948 short int var12 /* : Bool */;
949 int cltype13;
950 int idtype14;
951 val* var15 /* : Array[Object] */;
952 val* var16 /* : AModule */;
953 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
954 long var17 /* : Int */;
955 long var18 /* : Int */;
956 var_p = p0;
957 var = NULL;
958 var_node_list = var;
959 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
960 var_nodearraylist3 = var1;
961 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
962 var_nodearraylist2 = var2;
963 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
964 var_nodearraylist1 = var3;
965 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
966 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
967 CHECK_NEW_array__Array(var4);
968 var_listnode4 = var4;
969 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
970 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
971 CHECK_NEW_array__Array(var5);
972 var_listnode6 = var5;
973 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
974 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
975 CHECK_NEW_array__Array(var6);
976 var_listnode7 = var6;
977 var_pmoduledeclnode2 = var_nodearraylist1;
978 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
979 cltype = type_nullable_parser_nodes__AModuledecl.color;
980 idtype = type_nullable_parser_nodes__AModuledecl.id;
981 if(var_pmoduledeclnode2 == NULL) {
982 var7 = 1;
983 } else {
984 if(cltype >= var_pmoduledeclnode2->type->table_size) {
985 var7 = 0;
986 } else {
987 var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
988 }
989 }
990 if (!var7) {
991 fprintf(stderr, "Runtime error: %s", "Assert failed");
992 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1994);
993 exit(1);
994 }
995 var_listnode3 = var_nodearraylist2;
996 /* <var_listnode3:nullable Object> isa Array[Object] */
997 cltype9 = type_array__Arraykernel__Object.color;
998 idtype10 = type_array__Arraykernel__Object.id;
999 if(var_listnode3 == NULL) {
1000 var8 = 0;
1001 } else {
1002 if(cltype9 >= var_listnode3->type->table_size) {
1003 var8 = 0;
1004 } else {
1005 var8 = var_listnode3->type->type_table[cltype9] == idtype10;
1006 }
1007 }
1008 if (!var8) {
1009 fprintf(stderr, "Runtime error: %s", "Assert failed");
1010 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1996);
1011 exit(1);
1012 }
1013 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction7>*/;
1014 var_listnode4 = var11;
1015 var_listnode5 = var_nodearraylist3;
1016 /* <var_listnode5:nullable Object> isa Array[Object] */
1017 cltype13 = type_array__Arraykernel__Object.color;
1018 idtype14 = type_array__Arraykernel__Object.id;
1019 if(var_listnode5 == NULL) {
1020 var12 = 0;
1021 } else {
1022 if(cltype13 >= var_listnode5->type->table_size) {
1023 var12 = 0;
1024 } else {
1025 var12 = var_listnode5->type->type_table[cltype13] == idtype14;
1026 }
1027 }
1028 if (!var12) {
1029 fprintf(stderr, "Runtime error: %s", "Assert failed");
1030 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 1999);
1031 exit(1);
1032 }
1033 var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction7>*/;
1034 var_listnode6 = var15;
1035 var16 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
1036 ((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>*/;
1037 CHECK_NEW_parser_nodes__AModule(var16);
1038 var_pmodulenode1 = var16;
1039 var_node_list = var_pmodulenode1;
1040 var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction7> */
1041 var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
1042 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
1043 RET_LABEL:;
1044 }
1045 /* method parser#ReduceAction7#action for (self: Object, Parser) */
1046 void VIRTUAL_parser__ReduceAction7__action(val* self, val* p0) {
1047 parser__ReduceAction7__action(self, p0);
1048 RET_LABEL:;
1049 }
1050 /* method parser#ReduceAction8#action for (self: ReduceAction8, Parser) */
1051 void parser__ReduceAction8__action(val* self, val* p0) {
1052 val* var_p /* var p: Parser */;
1053 val* var /* : null */;
1054 val* var_node_list /* var node_list: nullable Object */;
1055 val* var1 /* : nullable Object */;
1056 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1057 val* var2 /* : Array[Object] */;
1058 val* var_listnode3 /* var listnode3: Array[Object] */;
1059 val* var3 /* : Array[Object] */;
1060 val* var_listnode4 /* var listnode4: Array[Object] */;
1061 val* var4 /* : Array[Object] */;
1062 val* var_listnode6 /* var listnode6: Array[Object] */;
1063 val* var_listnode5 /* var listnode5: nullable Object */;
1064 short int var5 /* : Bool */;
1065 int cltype;
1066 int idtype;
1067 val* var6 /* : Array[Object] */;
1068 val* var7 /* : AModule */;
1069 val* var8 /* : null */;
1070 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
1071 long var9 /* : Int */;
1072 long var10 /* : Int */;
1073 var_p = p0;
1074 var = NULL;
1075 var_node_list = var;
1076 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1077 var_nodearraylist1 = var1;
1078 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
1079 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
1080 CHECK_NEW_array__Array(var2);
1081 var_listnode3 = var2;
1082 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
1083 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
1084 CHECK_NEW_array__Array(var3);
1085 var_listnode4 = var3;
1086 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
1087 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
1088 CHECK_NEW_array__Array(var4);
1089 var_listnode6 = var4;
1090 var_listnode5 = var_nodearraylist1;
1091 /* <var_listnode5:nullable Object> isa Array[Object] */
1092 cltype = type_array__Arraykernel__Object.color;
1093 idtype = type_array__Arraykernel__Object.id;
1094 if(var_listnode5 == NULL) {
1095 var5 = 0;
1096 } else {
1097 if(cltype >= var_listnode5->type->table_size) {
1098 var5 = 0;
1099 } else {
1100 var5 = var_listnode5->type->type_table[cltype] == idtype;
1101 }
1102 }
1103 if (!var5) {
1104 fprintf(stderr, "Runtime error: %s", "Assert failed");
1105 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2021);
1106 exit(1);
1107 }
1108 var6 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction8>*/;
1109 var_listnode6 = var6;
1110 var7 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
1111 var8 = NULL;
1112 ((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>*/;
1113 CHECK_NEW_parser_nodes__AModule(var7);
1114 var_pmodulenode1 = var7;
1115 var_node_list = var_pmodulenode1;
1116 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction8> */
1117 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
1118 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
1119 RET_LABEL:;
1120 }
1121 /* method parser#ReduceAction8#action for (self: Object, Parser) */
1122 void VIRTUAL_parser__ReduceAction8__action(val* self, val* p0) {
1123 parser__ReduceAction8__action(self, p0);
1124 RET_LABEL:;
1125 }
1126 /* method parser#ReduceAction9#action for (self: ReduceAction9, Parser) */
1127 void parser__ReduceAction9__action(val* self, val* p0) {
1128 val* var_p /* var p: Parser */;
1129 val* var /* : null */;
1130 val* var_node_list /* var node_list: nullable Object */;
1131 val* var1 /* : nullable Object */;
1132 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1133 val* var2 /* : nullable Object */;
1134 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1135 val* var3 /* : Array[Object] */;
1136 val* var_listnode3 /* var listnode3: Array[Object] */;
1137 val* var4 /* : Array[Object] */;
1138 val* var_listnode4 /* var listnode4: Array[Object] */;
1139 val* var5 /* : Array[Object] */;
1140 val* var_listnode6 /* var listnode6: Array[Object] */;
1141 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
1142 short int var6 /* : Bool */;
1143 int cltype;
1144 int idtype;
1145 val* var_listnode5 /* var listnode5: nullable Object */;
1146 short int var7 /* : Bool */;
1147 int cltype8;
1148 int idtype9;
1149 val* var10 /* : Array[Object] */;
1150 val* var11 /* : AModule */;
1151 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
1152 long var12 /* : Int */;
1153 long var13 /* : Int */;
1154 var_p = p0;
1155 var = NULL;
1156 var_node_list = var;
1157 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1158 var_nodearraylist2 = var1;
1159 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1160 var_nodearraylist1 = var2;
1161 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
1162 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
1163 CHECK_NEW_array__Array(var3);
1164 var_listnode3 = var3;
1165 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
1166 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
1167 CHECK_NEW_array__Array(var4);
1168 var_listnode4 = var4;
1169 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
1170 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
1171 CHECK_NEW_array__Array(var5);
1172 var_listnode6 = var5;
1173 var_pmoduledeclnode2 = var_nodearraylist1;
1174 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
1175 cltype = type_nullable_parser_nodes__AModuledecl.color;
1176 idtype = type_nullable_parser_nodes__AModuledecl.id;
1177 if(var_pmoduledeclnode2 == NULL) {
1178 var6 = 1;
1179 } else {
1180 if(cltype >= var_pmoduledeclnode2->type->table_size) {
1181 var6 = 0;
1182 } else {
1183 var6 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
1184 }
1185 }
1186 if (!var6) {
1187 fprintf(stderr, "Runtime error: %s", "Assert failed");
1188 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2044);
1189 exit(1);
1190 }
1191 var_listnode5 = var_nodearraylist2;
1192 /* <var_listnode5:nullable Object> isa Array[Object] */
1193 cltype8 = type_array__Arraykernel__Object.color;
1194 idtype9 = type_array__Arraykernel__Object.id;
1195 if(var_listnode5 == NULL) {
1196 var7 = 0;
1197 } else {
1198 if(cltype8 >= var_listnode5->type->table_size) {
1199 var7 = 0;
1200 } else {
1201 var7 = var_listnode5->type->type_table[cltype8] == idtype9;
1202 }
1203 }
1204 if (!var7) {
1205 fprintf(stderr, "Runtime error: %s", "Assert failed");
1206 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2046);
1207 exit(1);
1208 }
1209 var10 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction9>*/;
1210 var_listnode6 = var10;
1211 var11 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
1212 ((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>*/;
1213 CHECK_NEW_parser_nodes__AModule(var11);
1214 var_pmodulenode1 = var11;
1215 var_node_list = var_pmodulenode1;
1216 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction9> */
1217 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
1218 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
1219 RET_LABEL:;
1220 }
1221 /* method parser#ReduceAction9#action for (self: Object, Parser) */
1222 void VIRTUAL_parser__ReduceAction9__action(val* self, val* p0) {
1223 parser__ReduceAction9__action(self, p0);
1224 RET_LABEL:;
1225 }
1226 /* method parser#ReduceAction10#action for (self: ReduceAction10, Parser) */
1227 void parser__ReduceAction10__action(val* self, val* p0) {
1228 val* var_p /* var p: Parser */;
1229 val* var /* : null */;
1230 val* var_node_list /* var node_list: nullable Object */;
1231 val* var1 /* : nullable Object */;
1232 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1233 val* var2 /* : nullable Object */;
1234 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1235 val* var3 /* : Array[Object] */;
1236 val* var_listnode4 /* var listnode4: Array[Object] */;
1237 val* var4 /* : Array[Object] */;
1238 val* var_listnode5 /* var listnode5: Array[Object] */;
1239 val* var5 /* : Array[Object] */;
1240 val* var_listnode7 /* var listnode7: Array[Object] */;
1241 val* var_listnode3 /* var listnode3: nullable Object */;
1242 short int var6 /* : Bool */;
1243 int cltype;
1244 int idtype;
1245 val* var7 /* : Array[Object] */;
1246 val* var_listnode6 /* var listnode6: nullable Object */;
1247 short int var8 /* : Bool */;
1248 int cltype9;
1249 int idtype10;
1250 val* var11 /* : Array[Object] */;
1251 val* var12 /* : AModule */;
1252 val* var13 /* : null */;
1253 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
1254 long var14 /* : Int */;
1255 long var15 /* : Int */;
1256 var_p = p0;
1257 var = NULL;
1258 var_node_list = var;
1259 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1260 var_nodearraylist2 = var1;
1261 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1262 var_nodearraylist1 = var2;
1263 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
1264 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
1265 CHECK_NEW_array__Array(var3);
1266 var_listnode4 = var3;
1267 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
1268 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
1269 CHECK_NEW_array__Array(var4);
1270 var_listnode5 = var4;
1271 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
1272 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
1273 CHECK_NEW_array__Array(var5);
1274 var_listnode7 = var5;
1275 var_listnode3 = var_nodearraylist1;
1276 /* <var_listnode3:nullable Object> isa Array[Object] */
1277 cltype = type_array__Arraykernel__Object.color;
1278 idtype = type_array__Arraykernel__Object.id;
1279 if(var_listnode3 == NULL) {
1280 var6 = 0;
1281 } else {
1282 if(cltype >= var_listnode3->type->table_size) {
1283 var6 = 0;
1284 } else {
1285 var6 = var_listnode3->type->type_table[cltype] == idtype;
1286 }
1287 }
1288 if (!var6) {
1289 fprintf(stderr, "Runtime error: %s", "Assert failed");
1290 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2069);
1291 exit(1);
1292 }
1293 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction10>*/;
1294 var_listnode4 = var7;
1295 var_listnode6 = var_nodearraylist2;
1296 /* <var_listnode6:nullable Object> isa Array[Object] */
1297 cltype9 = type_array__Arraykernel__Object.color;
1298 idtype10 = type_array__Arraykernel__Object.id;
1299 if(var_listnode6 == NULL) {
1300 var8 = 0;
1301 } else {
1302 if(cltype9 >= var_listnode6->type->table_size) {
1303 var8 = 0;
1304 } else {
1305 var8 = var_listnode6->type->type_table[cltype9] == idtype10;
1306 }
1307 }
1308 if (!var8) {
1309 fprintf(stderr, "Runtime error: %s", "Assert failed");
1310 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2072);
1311 exit(1);
1312 }
1313 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on <self:ReduceAction10>*/;
1314 var_listnode7 = var11;
1315 var12 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
1316 var13 = NULL;
1317 ((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>*/;
1318 CHECK_NEW_parser_nodes__AModule(var12);
1319 var_pmodulenode1 = var12;
1320 var_node_list = var_pmodulenode1;
1321 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction10> */
1322 var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
1323 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
1324 RET_LABEL:;
1325 }
1326 /* method parser#ReduceAction10#action for (self: Object, Parser) */
1327 void VIRTUAL_parser__ReduceAction10__action(val* self, val* p0) {
1328 parser__ReduceAction10__action(self, p0);
1329 RET_LABEL:;
1330 }
1331 /* method parser#ReduceAction11#action for (self: ReduceAction11, Parser) */
1332 void parser__ReduceAction11__action(val* self, val* p0) {
1333 val* var_p /* var p: Parser */;
1334 val* var /* : null */;
1335 val* var_node_list /* var node_list: nullable Object */;
1336 val* var1 /* : nullable Object */;
1337 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1338 val* var2 /* : nullable Object */;
1339 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1340 val* var3 /* : nullable Object */;
1341 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1342 val* var4 /* : Array[Object] */;
1343 val* var_listnode4 /* var listnode4: Array[Object] */;
1344 val* var5 /* : Array[Object] */;
1345 val* var_listnode5 /* var listnode5: Array[Object] */;
1346 val* var6 /* : Array[Object] */;
1347 val* var_listnode7 /* var listnode7: Array[Object] */;
1348 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
1349 short int var7 /* : Bool */;
1350 int cltype;
1351 int idtype;
1352 val* var_listnode3 /* var listnode3: nullable Object */;
1353 short int var8 /* : Bool */;
1354 int cltype9;
1355 int idtype10;
1356 val* var11 /* : Array[Object] */;
1357 val* var_listnode6 /* var listnode6: nullable Object */;
1358 short int var12 /* : Bool */;
1359 int cltype13;
1360 int idtype14;
1361 val* var15 /* : Array[Object] */;
1362 val* var16 /* : AModule */;
1363 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
1364 long var17 /* : Int */;
1365 long var18 /* : Int */;
1366 var_p = p0;
1367 var = NULL;
1368 var_node_list = var;
1369 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1370 var_nodearraylist3 = var1;
1371 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1372 var_nodearraylist2 = var2;
1373 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1374 var_nodearraylist1 = var3;
1375 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
1376 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
1377 CHECK_NEW_array__Array(var4);
1378 var_listnode4 = var4;
1379 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
1380 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
1381 CHECK_NEW_array__Array(var5);
1382 var_listnode5 = var5;
1383 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
1384 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
1385 CHECK_NEW_array__Array(var6);
1386 var_listnode7 = var6;
1387 var_pmoduledeclnode2 = var_nodearraylist1;
1388 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
1389 cltype = type_nullable_parser_nodes__AModuledecl.color;
1390 idtype = type_nullable_parser_nodes__AModuledecl.id;
1391 if(var_pmoduledeclnode2 == NULL) {
1392 var7 = 1;
1393 } else {
1394 if(cltype >= var_pmoduledeclnode2->type->table_size) {
1395 var7 = 0;
1396 } else {
1397 var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
1398 }
1399 }
1400 if (!var7) {
1401 fprintf(stderr, "Runtime error: %s", "Assert failed");
1402 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2096);
1403 exit(1);
1404 }
1405 var_listnode3 = var_nodearraylist2;
1406 /* <var_listnode3:nullable Object> isa Array[Object] */
1407 cltype9 = type_array__Arraykernel__Object.color;
1408 idtype10 = type_array__Arraykernel__Object.id;
1409 if(var_listnode3 == NULL) {
1410 var8 = 0;
1411 } else {
1412 if(cltype9 >= var_listnode3->type->table_size) {
1413 var8 = 0;
1414 } else {
1415 var8 = var_listnode3->type->type_table[cltype9] == idtype10;
1416 }
1417 }
1418 if (!var8) {
1419 fprintf(stderr, "Runtime error: %s", "Assert failed");
1420 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2098);
1421 exit(1);
1422 }
1423 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction11>*/;
1424 var_listnode4 = var11;
1425 var_listnode6 = var_nodearraylist3;
1426 /* <var_listnode6:nullable Object> isa Array[Object] */
1427 cltype13 = type_array__Arraykernel__Object.color;
1428 idtype14 = type_array__Arraykernel__Object.id;
1429 if(var_listnode6 == NULL) {
1430 var12 = 0;
1431 } else {
1432 if(cltype13 >= var_listnode6->type->table_size) {
1433 var12 = 0;
1434 } else {
1435 var12 = var_listnode6->type->type_table[cltype13] == idtype14;
1436 }
1437 }
1438 if (!var12) {
1439 fprintf(stderr, "Runtime error: %s", "Assert failed");
1440 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2101);
1441 exit(1);
1442 }
1443 var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on <self:ReduceAction11>*/;
1444 var_listnode7 = var15;
1445 var16 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
1446 ((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>*/;
1447 CHECK_NEW_parser_nodes__AModule(var16);
1448 var_pmodulenode1 = var16;
1449 var_node_list = var_pmodulenode1;
1450 var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction11> */
1451 var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
1452 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
1453 RET_LABEL:;
1454 }
1455 /* method parser#ReduceAction11#action for (self: Object, Parser) */
1456 void VIRTUAL_parser__ReduceAction11__action(val* self, val* p0) {
1457 parser__ReduceAction11__action(self, p0);
1458 RET_LABEL:;
1459 }
1460 /* method parser#ReduceAction12#action for (self: ReduceAction12, Parser) */
1461 void parser__ReduceAction12__action(val* self, val* p0) {
1462 val* var_p /* var p: Parser */;
1463 val* var /* : null */;
1464 val* var_node_list /* var node_list: nullable Object */;
1465 val* var1 /* : nullable Object */;
1466 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1467 val* var2 /* : nullable Object */;
1468 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1469 val* var3 /* : Array[Object] */;
1470 val* var_listnode3 /* var listnode3: Array[Object] */;
1471 val* var4 /* : Array[Object] */;
1472 val* var_listnode5 /* var listnode5: Array[Object] */;
1473 val* var5 /* : Array[Object] */;
1474 val* var_listnode7 /* var listnode7: Array[Object] */;
1475 val* var_listnode4 /* var listnode4: nullable Object */;
1476 short int var6 /* : Bool */;
1477 int cltype;
1478 int idtype;
1479 val* var7 /* : Array[Object] */;
1480 val* var_listnode6 /* var listnode6: nullable Object */;
1481 short int var8 /* : Bool */;
1482 int cltype9;
1483 int idtype10;
1484 val* var11 /* : Array[Object] */;
1485 val* var12 /* : AModule */;
1486 val* var13 /* : null */;
1487 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
1488 long var14 /* : Int */;
1489 long var15 /* : Int */;
1490 var_p = p0;
1491 var = NULL;
1492 var_node_list = var;
1493 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1494 var_nodearraylist2 = var1;
1495 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1496 var_nodearraylist1 = var2;
1497 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
1498 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
1499 CHECK_NEW_array__Array(var3);
1500 var_listnode3 = var3;
1501 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
1502 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
1503 CHECK_NEW_array__Array(var4);
1504 var_listnode5 = var4;
1505 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
1506 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
1507 CHECK_NEW_array__Array(var5);
1508 var_listnode7 = var5;
1509 var_listnode4 = var_nodearraylist1;
1510 /* <var_listnode4:nullable Object> isa Array[Object] */
1511 cltype = type_array__Arraykernel__Object.color;
1512 idtype = type_array__Arraykernel__Object.id;
1513 if(var_listnode4 == NULL) {
1514 var6 = 0;
1515 } else {
1516 if(cltype >= var_listnode4->type->table_size) {
1517 var6 = 0;
1518 } else {
1519 var6 = var_listnode4->type->type_table[cltype] == idtype;
1520 }
1521 }
1522 if (!var6) {
1523 fprintf(stderr, "Runtime error: %s", "Assert failed");
1524 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2124);
1525 exit(1);
1526 }
1527 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction12>*/;
1528 var_listnode5 = var7;
1529 var_listnode6 = var_nodearraylist2;
1530 /* <var_listnode6:nullable Object> isa Array[Object] */
1531 cltype9 = type_array__Arraykernel__Object.color;
1532 idtype10 = type_array__Arraykernel__Object.id;
1533 if(var_listnode6 == NULL) {
1534 var8 = 0;
1535 } else {
1536 if(cltype9 >= var_listnode6->type->table_size) {
1537 var8 = 0;
1538 } else {
1539 var8 = var_listnode6->type->type_table[cltype9] == idtype10;
1540 }
1541 }
1542 if (!var8) {
1543 fprintf(stderr, "Runtime error: %s", "Assert failed");
1544 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2127);
1545 exit(1);
1546 }
1547 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on <self:ReduceAction12>*/;
1548 var_listnode7 = var11;
1549 var12 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
1550 var13 = NULL;
1551 ((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>*/;
1552 CHECK_NEW_parser_nodes__AModule(var12);
1553 var_pmodulenode1 = var12;
1554 var_node_list = var_pmodulenode1;
1555 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction12> */
1556 var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
1557 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
1558 RET_LABEL:;
1559 }
1560 /* method parser#ReduceAction12#action for (self: Object, Parser) */
1561 void VIRTUAL_parser__ReduceAction12__action(val* self, val* p0) {
1562 parser__ReduceAction12__action(self, p0);
1563 RET_LABEL:;
1564 }
1565 /* method parser#ReduceAction13#action for (self: ReduceAction13, Parser) */
1566 void parser__ReduceAction13__action(val* self, val* p0) {
1567 val* var_p /* var p: Parser */;
1568 val* var /* : null */;
1569 val* var_node_list /* var node_list: nullable Object */;
1570 val* var1 /* : nullable Object */;
1571 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1572 val* var2 /* : nullable Object */;
1573 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1574 val* var3 /* : nullable Object */;
1575 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1576 val* var4 /* : Array[Object] */;
1577 val* var_listnode3 /* var listnode3: Array[Object] */;
1578 val* var5 /* : Array[Object] */;
1579 val* var_listnode5 /* var listnode5: Array[Object] */;
1580 val* var6 /* : Array[Object] */;
1581 val* var_listnode7 /* var listnode7: Array[Object] */;
1582 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
1583 short int var7 /* : Bool */;
1584 int cltype;
1585 int idtype;
1586 val* var_listnode4 /* var listnode4: nullable Object */;
1587 short int var8 /* : Bool */;
1588 int cltype9;
1589 int idtype10;
1590 val* var11 /* : Array[Object] */;
1591 val* var_listnode6 /* var listnode6: nullable Object */;
1592 short int var12 /* : Bool */;
1593 int cltype13;
1594 int idtype14;
1595 val* var15 /* : Array[Object] */;
1596 val* var16 /* : AModule */;
1597 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
1598 long var17 /* : Int */;
1599 long var18 /* : Int */;
1600 var_p = p0;
1601 var = NULL;
1602 var_node_list = var;
1603 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1604 var_nodearraylist3 = var1;
1605 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1606 var_nodearraylist2 = var2;
1607 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1608 var_nodearraylist1 = var3;
1609 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
1610 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
1611 CHECK_NEW_array__Array(var4);
1612 var_listnode3 = var4;
1613 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
1614 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
1615 CHECK_NEW_array__Array(var5);
1616 var_listnode5 = var5;
1617 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
1618 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
1619 CHECK_NEW_array__Array(var6);
1620 var_listnode7 = var6;
1621 var_pmoduledeclnode2 = var_nodearraylist1;
1622 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
1623 cltype = type_nullable_parser_nodes__AModuledecl.color;
1624 idtype = type_nullable_parser_nodes__AModuledecl.id;
1625 if(var_pmoduledeclnode2 == NULL) {
1626 var7 = 1;
1627 } else {
1628 if(cltype >= var_pmoduledeclnode2->type->table_size) {
1629 var7 = 0;
1630 } else {
1631 var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
1632 }
1633 }
1634 if (!var7) {
1635 fprintf(stderr, "Runtime error: %s", "Assert failed");
1636 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2151);
1637 exit(1);
1638 }
1639 var_listnode4 = var_nodearraylist2;
1640 /* <var_listnode4:nullable Object> isa Array[Object] */
1641 cltype9 = type_array__Arraykernel__Object.color;
1642 idtype10 = type_array__Arraykernel__Object.id;
1643 if(var_listnode4 == NULL) {
1644 var8 = 0;
1645 } else {
1646 if(cltype9 >= var_listnode4->type->table_size) {
1647 var8 = 0;
1648 } else {
1649 var8 = var_listnode4->type->type_table[cltype9] == idtype10;
1650 }
1651 }
1652 if (!var8) {
1653 fprintf(stderr, "Runtime error: %s", "Assert failed");
1654 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2153);
1655 exit(1);
1656 }
1657 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction13>*/;
1658 var_listnode5 = var11;
1659 var_listnode6 = var_nodearraylist3;
1660 /* <var_listnode6:nullable Object> isa Array[Object] */
1661 cltype13 = type_array__Arraykernel__Object.color;
1662 idtype14 = type_array__Arraykernel__Object.id;
1663 if(var_listnode6 == NULL) {
1664 var12 = 0;
1665 } else {
1666 if(cltype13 >= var_listnode6->type->table_size) {
1667 var12 = 0;
1668 } else {
1669 var12 = var_listnode6->type->type_table[cltype13] == idtype14;
1670 }
1671 }
1672 if (!var12) {
1673 fprintf(stderr, "Runtime error: %s", "Assert failed");
1674 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2156);
1675 exit(1);
1676 }
1677 var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on <self:ReduceAction13>*/;
1678 var_listnode7 = var15;
1679 var16 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
1680 ((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>*/;
1681 CHECK_NEW_parser_nodes__AModule(var16);
1682 var_pmodulenode1 = var16;
1683 var_node_list = var_pmodulenode1;
1684 var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction13> */
1685 var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
1686 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
1687 RET_LABEL:;
1688 }
1689 /* method parser#ReduceAction13#action for (self: Object, Parser) */
1690 void VIRTUAL_parser__ReduceAction13__action(val* self, val* p0) {
1691 parser__ReduceAction13__action(self, p0);
1692 RET_LABEL:;
1693 }
1694 /* method parser#ReduceAction14#action for (self: ReduceAction14, Parser) */
1695 void parser__ReduceAction14__action(val* self, val* p0) {
1696 val* var_p /* var p: Parser */;
1697 val* var /* : null */;
1698 val* var_node_list /* var node_list: nullable Object */;
1699 val* var1 /* : nullable Object */;
1700 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1701 val* var2 /* : nullable Object */;
1702 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1703 val* var3 /* : nullable Object */;
1704 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1705 val* var4 /* : Array[Object] */;
1706 val* var_listnode4 /* var listnode4: Array[Object] */;
1707 val* var5 /* : Array[Object] */;
1708 val* var_listnode6 /* var listnode6: Array[Object] */;
1709 val* var6 /* : Array[Object] */;
1710 val* var_listnode8 /* var listnode8: Array[Object] */;
1711 val* var_listnode3 /* var listnode3: nullable Object */;
1712 short int var7 /* : Bool */;
1713 int cltype;
1714 int idtype;
1715 val* var8 /* : Array[Object] */;
1716 val* var_listnode5 /* var listnode5: nullable Object */;
1717 short int var9 /* : Bool */;
1718 int cltype10;
1719 int idtype11;
1720 val* var12 /* : Array[Object] */;
1721 val* var_listnode7 /* var listnode7: nullable Object */;
1722 short int var13 /* : Bool */;
1723 int cltype14;
1724 int idtype15;
1725 val* var16 /* : Array[Object] */;
1726 val* var17 /* : AModule */;
1727 val* var18 /* : null */;
1728 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
1729 long var19 /* : Int */;
1730 long var20 /* : Int */;
1731 var_p = p0;
1732 var = NULL;
1733 var_node_list = var;
1734 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1735 var_nodearraylist3 = var1;
1736 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1737 var_nodearraylist2 = var2;
1738 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1739 var_nodearraylist1 = var3;
1740 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
1741 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
1742 CHECK_NEW_array__Array(var4);
1743 var_listnode4 = var4;
1744 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
1745 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
1746 CHECK_NEW_array__Array(var5);
1747 var_listnode6 = var5;
1748 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
1749 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
1750 CHECK_NEW_array__Array(var6);
1751 var_listnode8 = var6;
1752 var_listnode3 = var_nodearraylist1;
1753 /* <var_listnode3:nullable Object> isa Array[Object] */
1754 cltype = type_array__Arraykernel__Object.color;
1755 idtype = type_array__Arraykernel__Object.id;
1756 if(var_listnode3 == NULL) {
1757 var7 = 0;
1758 } else {
1759 if(cltype >= var_listnode3->type->table_size) {
1760 var7 = 0;
1761 } else {
1762 var7 = var_listnode3->type->type_table[cltype] == idtype;
1763 }
1764 }
1765 if (!var7) {
1766 fprintf(stderr, "Runtime error: %s", "Assert failed");
1767 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2180);
1768 exit(1);
1769 }
1770 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction14>*/;
1771 var_listnode4 = var8;
1772 var_listnode5 = var_nodearraylist2;
1773 /* <var_listnode5:nullable Object> isa Array[Object] */
1774 cltype10 = type_array__Arraykernel__Object.color;
1775 idtype11 = type_array__Arraykernel__Object.id;
1776 if(var_listnode5 == NULL) {
1777 var9 = 0;
1778 } else {
1779 if(cltype10 >= var_listnode5->type->table_size) {
1780 var9 = 0;
1781 } else {
1782 var9 = var_listnode5->type->type_table[cltype10] == idtype11;
1783 }
1784 }
1785 if (!var9) {
1786 fprintf(stderr, "Runtime error: %s", "Assert failed");
1787 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2183);
1788 exit(1);
1789 }
1790 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction14>*/;
1791 var_listnode6 = var12;
1792 var_listnode7 = var_nodearraylist3;
1793 /* <var_listnode7:nullable Object> isa Array[Object] */
1794 cltype14 = type_array__Arraykernel__Object.color;
1795 idtype15 = type_array__Arraykernel__Object.id;
1796 if(var_listnode7 == NULL) {
1797 var13 = 0;
1798 } else {
1799 if(cltype14 >= var_listnode7->type->table_size) {
1800 var13 = 0;
1801 } else {
1802 var13 = var_listnode7->type->type_table[cltype14] == idtype15;
1803 }
1804 }
1805 if (!var13) {
1806 fprintf(stderr, "Runtime error: %s", "Assert failed");
1807 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2186);
1808 exit(1);
1809 }
1810 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction14>*/;
1811 var_listnode8 = var16;
1812 var17 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
1813 var18 = NULL;
1814 ((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>*/;
1815 CHECK_NEW_parser_nodes__AModule(var17);
1816 var_pmodulenode1 = var17;
1817 var_node_list = var_pmodulenode1;
1818 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction14> */
1819 var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
1820 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
1821 RET_LABEL:;
1822 }
1823 /* method parser#ReduceAction14#action for (self: Object, Parser) */
1824 void VIRTUAL_parser__ReduceAction14__action(val* self, val* p0) {
1825 parser__ReduceAction14__action(self, p0);
1826 RET_LABEL:;
1827 }
1828 /* method parser#ReduceAction15#action for (self: ReduceAction15, Parser) */
1829 void parser__ReduceAction15__action(val* self, val* p0) {
1830 val* var_p /* var p: Parser */;
1831 val* var /* : null */;
1832 val* var_node_list /* var node_list: nullable Object */;
1833 val* var1 /* : nullable Object */;
1834 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1835 val* var2 /* : nullable Object */;
1836 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1837 val* var3 /* : nullable Object */;
1838 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1839 val* var4 /* : nullable Object */;
1840 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1841 val* var5 /* : Array[Object] */;
1842 val* var_listnode4 /* var listnode4: Array[Object] */;
1843 val* var6 /* : Array[Object] */;
1844 val* var_listnode6 /* var listnode6: Array[Object] */;
1845 val* var7 /* : Array[Object] */;
1846 val* var_listnode8 /* var listnode8: Array[Object] */;
1847 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
1848 short int var8 /* : Bool */;
1849 int cltype;
1850 int idtype;
1851 val* var_listnode3 /* var listnode3: nullable Object */;
1852 short int var9 /* : Bool */;
1853 int cltype10;
1854 int idtype11;
1855 val* var12 /* : Array[Object] */;
1856 val* var_listnode5 /* var listnode5: nullable Object */;
1857 short int var13 /* : Bool */;
1858 int cltype14;
1859 int idtype15;
1860 val* var16 /* : Array[Object] */;
1861 val* var_listnode7 /* var listnode7: nullable Object */;
1862 short int var17 /* : Bool */;
1863 int cltype18;
1864 int idtype19;
1865 val* var20 /* : Array[Object] */;
1866 val* var21 /* : AModule */;
1867 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
1868 long var22 /* : Int */;
1869 long var23 /* : Int */;
1870 var_p = p0;
1871 var = NULL;
1872 var_node_list = var;
1873 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1874 var_nodearraylist4 = var1;
1875 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1876 var_nodearraylist3 = var2;
1877 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1878 var_nodearraylist2 = var3;
1879 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1880 var_nodearraylist1 = var4;
1881 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
1882 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
1883 CHECK_NEW_array__Array(var5);
1884 var_listnode4 = var5;
1885 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
1886 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
1887 CHECK_NEW_array__Array(var6);
1888 var_listnode6 = var6;
1889 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
1890 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
1891 CHECK_NEW_array__Array(var7);
1892 var_listnode8 = var7;
1893 var_pmoduledeclnode2 = var_nodearraylist1;
1894 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
1895 cltype = type_nullable_parser_nodes__AModuledecl.color;
1896 idtype = type_nullable_parser_nodes__AModuledecl.id;
1897 if(var_pmoduledeclnode2 == NULL) {
1898 var8 = 1;
1899 } else {
1900 if(cltype >= var_pmoduledeclnode2->type->table_size) {
1901 var8 = 0;
1902 } else {
1903 var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
1904 }
1905 }
1906 if (!var8) {
1907 fprintf(stderr, "Runtime error: %s", "Assert failed");
1908 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2211);
1909 exit(1);
1910 }
1911 var_listnode3 = var_nodearraylist2;
1912 /* <var_listnode3:nullable Object> isa Array[Object] */
1913 cltype10 = type_array__Arraykernel__Object.color;
1914 idtype11 = type_array__Arraykernel__Object.id;
1915 if(var_listnode3 == NULL) {
1916 var9 = 0;
1917 } else {
1918 if(cltype10 >= var_listnode3->type->table_size) {
1919 var9 = 0;
1920 } else {
1921 var9 = var_listnode3->type->type_table[cltype10] == idtype11;
1922 }
1923 }
1924 if (!var9) {
1925 fprintf(stderr, "Runtime error: %s", "Assert failed");
1926 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2213);
1927 exit(1);
1928 }
1929 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction15>*/;
1930 var_listnode4 = var12;
1931 var_listnode5 = var_nodearraylist3;
1932 /* <var_listnode5:nullable Object> isa Array[Object] */
1933 cltype14 = type_array__Arraykernel__Object.color;
1934 idtype15 = type_array__Arraykernel__Object.id;
1935 if(var_listnode5 == NULL) {
1936 var13 = 0;
1937 } else {
1938 if(cltype14 >= var_listnode5->type->table_size) {
1939 var13 = 0;
1940 } else {
1941 var13 = var_listnode5->type->type_table[cltype14] == idtype15;
1942 }
1943 }
1944 if (!var13) {
1945 fprintf(stderr, "Runtime error: %s", "Assert failed");
1946 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2216);
1947 exit(1);
1948 }
1949 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction15>*/;
1950 var_listnode6 = var16;
1951 var_listnode7 = var_nodearraylist4;
1952 /* <var_listnode7:nullable Object> isa Array[Object] */
1953 cltype18 = type_array__Arraykernel__Object.color;
1954 idtype19 = type_array__Arraykernel__Object.id;
1955 if(var_listnode7 == NULL) {
1956 var17 = 0;
1957 } else {
1958 if(cltype18 >= var_listnode7->type->table_size) {
1959 var17 = 0;
1960 } else {
1961 var17 = var_listnode7->type->type_table[cltype18] == idtype19;
1962 }
1963 }
1964 if (!var17) {
1965 fprintf(stderr, "Runtime error: %s", "Assert failed");
1966 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2219);
1967 exit(1);
1968 }
1969 var20 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction15>*/;
1970 var_listnode8 = var20;
1971 var21 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
1972 ((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>*/;
1973 CHECK_NEW_parser_nodes__AModule(var21);
1974 var_pmodulenode1 = var21;
1975 var_node_list = var_pmodulenode1;
1976 var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction15> */
1977 var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
1978 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
1979 RET_LABEL:;
1980 }
1981 /* method parser#ReduceAction15#action for (self: Object, Parser) */
1982 void VIRTUAL_parser__ReduceAction15__action(val* self, val* p0) {
1983 parser__ReduceAction15__action(self, p0);
1984 RET_LABEL:;
1985 }
1986 /* method parser#ReduceAction16#action for (self: ReduceAction16, Parser) */
1987 void parser__ReduceAction16__action(val* self, val* p0) {
1988 val* var_p /* var p: Parser */;
1989 val* var /* : null */;
1990 val* var_node_list /* var node_list: nullable Object */;
1991 val* var1 /* : nullable Object */;
1992 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1993 val* var2 /* : Array[Object] */;
1994 val* var_listnode3 /* var listnode3: Array[Object] */;
1995 val* var3 /* : Array[Object] */;
1996 val* var_listnode4 /* var listnode4: Array[Object] */;
1997 val* var4 /* : Array[Object] */;
1998 val* var_listnode8 /* var listnode8: Array[Object] */;
1999 val* var5 /* : Array[Object] */;
2000 val* var_listnode7 /* var listnode7: Array[Object] */;
2001 val* var_listnode6 /* var listnode6: nullable Object */;
2002 short int var6 /* : Bool */;
2003 int cltype;
2004 int idtype;
2005 val* var7 /* : Array[Object] */;
2006 val* var8 /* : ATopClassdef */;
2007 val* var_pclassdefnode5 /* var pclassdefnode5: nullable ATopClassdef */;
2008 val* var9 /* : null */;
2009 short int var10 /* : Bool */;
2010 val* var11 /* : AModule */;
2011 val* var12 /* : null */;
2012 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
2013 long var13 /* : Int */;
2014 long var14 /* : Int */;
2015 var_p = p0;
2016 var = NULL;
2017 var_node_list = var;
2018 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2019 var_nodearraylist1 = var1;
2020 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
2021 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
2022 CHECK_NEW_array__Array(var2);
2023 var_listnode3 = var2;
2024 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
2025 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
2026 CHECK_NEW_array__Array(var3);
2027 var_listnode4 = var3;
2028 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
2029 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
2030 CHECK_NEW_array__Array(var4);
2031 var_listnode8 = var4;
2032 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
2033 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
2034 CHECK_NEW_array__Array(var5);
2035 var_listnode7 = var5;
2036 var_listnode6 = var_nodearraylist1;
2037 /* <var_listnode6:nullable Object> isa Array[Object] */
2038 cltype = type_array__Arraykernel__Object.color;
2039 idtype = type_array__Arraykernel__Object.id;
2040 if(var_listnode6 == NULL) {
2041 var6 = 0;
2042 } else {
2043 if(cltype >= var_listnode6->type->table_size) {
2044 var6 = 0;
2045 } else {
2046 var6 = var_listnode6->type->type_table[cltype] == idtype;
2047 }
2048 }
2049 if (!var6) {
2050 fprintf(stderr, "Runtime error: %s", "Assert failed");
2051 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2242);
2052 exit(1);
2053 }
2054 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on <self:ReduceAction16>*/;
2055 var_listnode7 = var7;
2056 var8 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
2057 ((void (*)(val*, val*))(var8->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var8, var_listnode7) /* init_atopclassdef on <var8:ATopClassdef>*/;
2058 CHECK_NEW_parser_nodes__ATopClassdef(var8);
2059 var_pclassdefnode5 = var8;
2060 var9 = NULL;
2061 if (var_pclassdefnode5 == NULL) {
2062 var10 = 0; /* is null */
2063 } else {
2064 var10 = 1; /* arg is null and recv is not */
2065 }
2066 if (var10){
2067 ((void (*)(val*, val*))(var_listnode8->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode8, var_pclassdefnode5) /* add on <var_listnode8:Array[Object]>*/;
2068 } else {
2069 }
2070 var11 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
2071 var12 = NULL;
2072 ((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>*/;
2073 CHECK_NEW_parser_nodes__AModule(var11);
2074 var_pmodulenode1 = var11;
2075 var_node_list = var_pmodulenode1;
2076 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction16> */
2077 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
2078 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
2079 RET_LABEL:;
2080 }
2081 /* method parser#ReduceAction16#action for (self: Object, Parser) */
2082 void VIRTUAL_parser__ReduceAction16__action(val* self, val* p0) {
2083 parser__ReduceAction16__action(self, p0);
2084 RET_LABEL:;
2085 }
2086 /* method parser#ReduceAction17#action for (self: ReduceAction17, Parser) */
2087 void parser__ReduceAction17__action(val* self, val* p0) {
2088 val* var_p /* var p: Parser */;
2089 val* var /* : null */;
2090 val* var_node_list /* var node_list: nullable Object */;
2091 val* var1 /* : nullable Object */;
2092 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2093 val* var2 /* : nullable Object */;
2094 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2095 val* var3 /* : Array[Object] */;
2096 val* var_listnode3 /* var listnode3: Array[Object] */;
2097 val* var4 /* : Array[Object] */;
2098 val* var_listnode4 /* var listnode4: Array[Object] */;
2099 val* var5 /* : Array[Object] */;
2100 val* var_listnode8 /* var listnode8: Array[Object] */;
2101 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
2102 short int var6 /* : Bool */;
2103 int cltype;
2104 int idtype;
2105 val* var7 /* : Array[Object] */;
2106 val* var_listnode7 /* var listnode7: Array[Object] */;
2107 val* var_listnode6 /* var listnode6: nullable Object */;
2108 short int var8 /* : Bool */;
2109 int cltype9;
2110 int idtype10;
2111 val* var11 /* : Array[Object] */;
2112 val* var12 /* : ATopClassdef */;
2113 val* var_pclassdefnode5 /* var pclassdefnode5: nullable ATopClassdef */;
2114 val* var13 /* : null */;
2115 short int var14 /* : Bool */;
2116 val* var15 /* : AModule */;
2117 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
2118 long var16 /* : Int */;
2119 long var17 /* : Int */;
2120 var_p = p0;
2121 var = NULL;
2122 var_node_list = var;
2123 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2124 var_nodearraylist2 = var1;
2125 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2126 var_nodearraylist1 = var2;
2127 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
2128 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
2129 CHECK_NEW_array__Array(var3);
2130 var_listnode3 = var3;
2131 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
2132 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
2133 CHECK_NEW_array__Array(var4);
2134 var_listnode4 = var4;
2135 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
2136 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
2137 CHECK_NEW_array__Array(var5);
2138 var_listnode8 = var5;
2139 var_pmoduledeclnode2 = var_nodearraylist1;
2140 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
2141 cltype = type_nullable_parser_nodes__AModuledecl.color;
2142 idtype = type_nullable_parser_nodes__AModuledecl.id;
2143 if(var_pmoduledeclnode2 == NULL) {
2144 var6 = 1;
2145 } else {
2146 if(cltype >= var_pmoduledeclnode2->type->table_size) {
2147 var6 = 0;
2148 } else {
2149 var6 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
2150 }
2151 }
2152 if (!var6) {
2153 fprintf(stderr, "Runtime error: %s", "Assert failed");
2154 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2271);
2155 exit(1);
2156 }
2157 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
2158 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
2159 CHECK_NEW_array__Array(var7);
2160 var_listnode7 = var7;
2161 var_listnode6 = var_nodearraylist2;
2162 /* <var_listnode6:nullable Object> isa Array[Object] */
2163 cltype9 = type_array__Arraykernel__Object.color;
2164 idtype10 = type_array__Arraykernel__Object.id;
2165 if(var_listnode6 == NULL) {
2166 var8 = 0;
2167 } else {
2168 if(cltype9 >= var_listnode6->type->table_size) {
2169 var8 = 0;
2170 } else {
2171 var8 = var_listnode6->type->type_table[cltype9] == idtype10;
2172 }
2173 }
2174 if (!var8) {
2175 fprintf(stderr, "Runtime error: %s", "Assert failed");
2176 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2274);
2177 exit(1);
2178 }
2179 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on <self:ReduceAction17>*/;
2180 var_listnode7 = var11;
2181 var12 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
2182 ((void (*)(val*, val*))(var12->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var12, var_listnode7) /* init_atopclassdef on <var12:ATopClassdef>*/;
2183 CHECK_NEW_parser_nodes__ATopClassdef(var12);
2184 var_pclassdefnode5 = var12;
2185 var13 = NULL;
2186 if (var_pclassdefnode5 == NULL) {
2187 var14 = 0; /* is null */
2188 } else {
2189 var14 = 1; /* arg is null and recv is not */
2190 }
2191 if (var14){
2192 ((void (*)(val*, val*))(var_listnode8->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode8, var_pclassdefnode5) /* add on <var_listnode8:Array[Object]>*/;
2193 } else {
2194 }
2195 var15 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
2196 ((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>*/;
2197 CHECK_NEW_parser_nodes__AModule(var15);
2198 var_pmodulenode1 = var15;
2199 var_node_list = var_pmodulenode1;
2200 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction17> */
2201 var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
2202 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
2203 RET_LABEL:;
2204 }
2205 /* method parser#ReduceAction17#action for (self: Object, Parser) */
2206 void VIRTUAL_parser__ReduceAction17__action(val* self, val* p0) {
2207 parser__ReduceAction17__action(self, p0);
2208 RET_LABEL:;
2209 }
2210 /* method parser#ReduceAction18#action for (self: ReduceAction18, Parser) */
2211 void parser__ReduceAction18__action(val* self, val* p0) {
2212 val* var_p /* var p: Parser */;
2213 val* var /* : null */;
2214 val* var_node_list /* var node_list: nullable Object */;
2215 val* var1 /* : nullable Object */;
2216 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2217 val* var2 /* : nullable Object */;
2218 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2219 val* var3 /* : Array[Object] */;
2220 val* var_listnode4 /* var listnode4: Array[Object] */;
2221 val* var4 /* : Array[Object] */;
2222 val* var_listnode5 /* var listnode5: Array[Object] */;
2223 val* var5 /* : Array[Object] */;
2224 val* var_listnode9 /* var listnode9: Array[Object] */;
2225 val* var_listnode3 /* var listnode3: nullable Object */;
2226 short int var6 /* : Bool */;
2227 int cltype;
2228 int idtype;
2229 val* var7 /* : Array[Object] */;
2230 val* var8 /* : Array[Object] */;
2231 val* var_listnode8 /* var listnode8: Array[Object] */;
2232 val* var_listnode7 /* var listnode7: nullable Object */;
2233 short int var9 /* : Bool */;
2234 int cltype10;
2235 int idtype11;
2236 val* var12 /* : Array[Object] */;
2237 val* var13 /* : ATopClassdef */;
2238 val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */;
2239 val* var14 /* : null */;
2240 short int var15 /* : Bool */;
2241 val* var16 /* : AModule */;
2242 val* var17 /* : null */;
2243 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
2244 long var18 /* : Int */;
2245 long var19 /* : Int */;
2246 var_p = p0;
2247 var = NULL;
2248 var_node_list = var;
2249 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2250 var_nodearraylist2 = var1;
2251 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2252 var_nodearraylist1 = var2;
2253 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
2254 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
2255 CHECK_NEW_array__Array(var3);
2256 var_listnode4 = var3;
2257 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
2258 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
2259 CHECK_NEW_array__Array(var4);
2260 var_listnode5 = var4;
2261 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
2262 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
2263 CHECK_NEW_array__Array(var5);
2264 var_listnode9 = var5;
2265 var_listnode3 = var_nodearraylist1;
2266 /* <var_listnode3:nullable Object> isa Array[Object] */
2267 cltype = type_array__Arraykernel__Object.color;
2268 idtype = type_array__Arraykernel__Object.id;
2269 if(var_listnode3 == NULL) {
2270 var6 = 0;
2271 } else {
2272 if(cltype >= var_listnode3->type->table_size) {
2273 var6 = 0;
2274 } else {
2275 var6 = var_listnode3->type->type_table[cltype] == idtype;
2276 }
2277 }
2278 if (!var6) {
2279 fprintf(stderr, "Runtime error: %s", "Assert failed");
2280 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2303);
2281 exit(1);
2282 }
2283 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction18>*/;
2284 var_listnode4 = var7;
2285 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
2286 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
2287 CHECK_NEW_array__Array(var8);
2288 var_listnode8 = var8;
2289 var_listnode7 = var_nodearraylist2;
2290 /* <var_listnode7:nullable Object> isa Array[Object] */
2291 cltype10 = type_array__Arraykernel__Object.color;
2292 idtype11 = type_array__Arraykernel__Object.id;
2293 if(var_listnode7 == NULL) {
2294 var9 = 0;
2295 } else {
2296 if(cltype10 >= var_listnode7->type->table_size) {
2297 var9 = 0;
2298 } else {
2299 var9 = var_listnode7->type->type_table[cltype10] == idtype11;
2300 }
2301 }
2302 if (!var9) {
2303 fprintf(stderr, "Runtime error: %s", "Assert failed");
2304 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2307);
2305 exit(1);
2306 }
2307 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction18>*/;
2308 var_listnode8 = var12;
2309 var13 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
2310 ((void (*)(val*, val*))(var13->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var13, var_listnode8) /* init_atopclassdef on <var13:ATopClassdef>*/;
2311 CHECK_NEW_parser_nodes__ATopClassdef(var13);
2312 var_pclassdefnode6 = var13;
2313 var14 = NULL;
2314 if (var_pclassdefnode6 == NULL) {
2315 var15 = 0; /* is null */
2316 } else {
2317 var15 = 1; /* arg is null and recv is not */
2318 }
2319 if (var15){
2320 ((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode6) /* add on <var_listnode9:Array[Object]>*/;
2321 } else {
2322 }
2323 var16 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
2324 var17 = NULL;
2325 ((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>*/;
2326 CHECK_NEW_parser_nodes__AModule(var16);
2327 var_pmodulenode1 = var16;
2328 var_node_list = var_pmodulenode1;
2329 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction18> */
2330 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
2331 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
2332 RET_LABEL:;
2333 }
2334 /* method parser#ReduceAction18#action for (self: Object, Parser) */
2335 void VIRTUAL_parser__ReduceAction18__action(val* self, val* p0) {
2336 parser__ReduceAction18__action(self, p0);
2337 RET_LABEL:;
2338 }
2339 /* method parser#ReduceAction19#action for (self: ReduceAction19, Parser) */
2340 void parser__ReduceAction19__action(val* self, val* p0) {
2341 val* var_p /* var p: Parser */;
2342 val* var /* : null */;
2343 val* var_node_list /* var node_list: nullable Object */;
2344 val* var1 /* : nullable Object */;
2345 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2346 val* var2 /* : nullable Object */;
2347 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2348 val* var3 /* : nullable Object */;
2349 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2350 val* var4 /* : Array[Object] */;
2351 val* var_listnode4 /* var listnode4: Array[Object] */;
2352 val* var5 /* : Array[Object] */;
2353 val* var_listnode5 /* var listnode5: Array[Object] */;
2354 val* var6 /* : Array[Object] */;
2355 val* var_listnode9 /* var listnode9: Array[Object] */;
2356 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
2357 short int var7 /* : Bool */;
2358 int cltype;
2359 int idtype;
2360 val* var_listnode3 /* var listnode3: nullable Object */;
2361 short int var8 /* : Bool */;
2362 int cltype9;
2363 int idtype10;
2364 val* var11 /* : Array[Object] */;
2365 val* var12 /* : Array[Object] */;
2366 val* var_listnode8 /* var listnode8: Array[Object] */;
2367 val* var_listnode7 /* var listnode7: nullable Object */;
2368 short int var13 /* : Bool */;
2369 int cltype14;
2370 int idtype15;
2371 val* var16 /* : Array[Object] */;
2372 val* var17 /* : ATopClassdef */;
2373 val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */;
2374 val* var18 /* : null */;
2375 short int var19 /* : Bool */;
2376 val* var20 /* : AModule */;
2377 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
2378 long var21 /* : Int */;
2379 long var22 /* : Int */;
2380 var_p = p0;
2381 var = NULL;
2382 var_node_list = var;
2383 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2384 var_nodearraylist3 = var1;
2385 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2386 var_nodearraylist2 = var2;
2387 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2388 var_nodearraylist1 = var3;
2389 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
2390 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
2391 CHECK_NEW_array__Array(var4);
2392 var_listnode4 = var4;
2393 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
2394 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
2395 CHECK_NEW_array__Array(var5);
2396 var_listnode5 = var5;
2397 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
2398 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
2399 CHECK_NEW_array__Array(var6);
2400 var_listnode9 = var6;
2401 var_pmoduledeclnode2 = var_nodearraylist1;
2402 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
2403 cltype = type_nullable_parser_nodes__AModuledecl.color;
2404 idtype = type_nullable_parser_nodes__AModuledecl.id;
2405 if(var_pmoduledeclnode2 == NULL) {
2406 var7 = 1;
2407 } else {
2408 if(cltype >= var_pmoduledeclnode2->type->table_size) {
2409 var7 = 0;
2410 } else {
2411 var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
2412 }
2413 }
2414 if (!var7) {
2415 fprintf(stderr, "Runtime error: %s", "Assert failed");
2416 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2337);
2417 exit(1);
2418 }
2419 var_listnode3 = var_nodearraylist2;
2420 /* <var_listnode3:nullable Object> isa Array[Object] */
2421 cltype9 = type_array__Arraykernel__Object.color;
2422 idtype10 = type_array__Arraykernel__Object.id;
2423 if(var_listnode3 == NULL) {
2424 var8 = 0;
2425 } else {
2426 if(cltype9 >= var_listnode3->type->table_size) {
2427 var8 = 0;
2428 } else {
2429 var8 = var_listnode3->type->type_table[cltype9] == idtype10;
2430 }
2431 }
2432 if (!var8) {
2433 fprintf(stderr, "Runtime error: %s", "Assert failed");
2434 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2339);
2435 exit(1);
2436 }
2437 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction19>*/;
2438 var_listnode4 = var11;
2439 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
2440 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
2441 CHECK_NEW_array__Array(var12);
2442 var_listnode8 = var12;
2443 var_listnode7 = var_nodearraylist3;
2444 /* <var_listnode7:nullable Object> isa Array[Object] */
2445 cltype14 = type_array__Arraykernel__Object.color;
2446 idtype15 = type_array__Arraykernel__Object.id;
2447 if(var_listnode7 == NULL) {
2448 var13 = 0;
2449 } else {
2450 if(cltype14 >= var_listnode7->type->table_size) {
2451 var13 = 0;
2452 } else {
2453 var13 = var_listnode7->type->type_table[cltype14] == idtype15;
2454 }
2455 }
2456 if (!var13) {
2457 fprintf(stderr, "Runtime error: %s", "Assert failed");
2458 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2343);
2459 exit(1);
2460 }
2461 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction19>*/;
2462 var_listnode8 = var16;
2463 var17 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
2464 ((void (*)(val*, val*))(var17->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var17, var_listnode8) /* init_atopclassdef on <var17:ATopClassdef>*/;
2465 CHECK_NEW_parser_nodes__ATopClassdef(var17);
2466 var_pclassdefnode6 = var17;
2467 var18 = NULL;
2468 if (var_pclassdefnode6 == NULL) {
2469 var19 = 0; /* is null */
2470 } else {
2471 var19 = 1; /* arg is null and recv is not */
2472 }
2473 if (var19){
2474 ((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode6) /* add on <var_listnode9:Array[Object]>*/;
2475 } else {
2476 }
2477 var20 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
2478 ((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>*/;
2479 CHECK_NEW_parser_nodes__AModule(var20);
2480 var_pmodulenode1 = var20;
2481 var_node_list = var_pmodulenode1;
2482 var21 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction19> */
2483 var22 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var21) /* go_to on <var_p:Parser>*/;
2484 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var22, var_node_list) /* push on <var_p:Parser>*/;
2485 RET_LABEL:;
2486 }
2487 /* method parser#ReduceAction19#action for (self: Object, Parser) */
2488 void VIRTUAL_parser__ReduceAction19__action(val* self, val* p0) {
2489 parser__ReduceAction19__action(self, p0);
2490 RET_LABEL:;
2491 }
2492 /* method parser#ReduceAction20#action for (self: ReduceAction20, Parser) */
2493 void parser__ReduceAction20__action(val* self, val* p0) {
2494 val* var_p /* var p: Parser */;
2495 val* var /* : null */;
2496 val* var_node_list /* var node_list: nullable Object */;
2497 val* var1 /* : nullable Object */;
2498 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2499 val* var2 /* : nullable Object */;
2500 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2501 val* var3 /* : Array[Object] */;
2502 val* var_listnode3 /* var listnode3: Array[Object] */;
2503 val* var4 /* : Array[Object] */;
2504 val* var_listnode5 /* var listnode5: Array[Object] */;
2505 val* var5 /* : Array[Object] */;
2506 val* var_listnode9 /* var listnode9: Array[Object] */;
2507 val* var_listnode4 /* var listnode4: nullable Object */;
2508 short int var6 /* : Bool */;
2509 int cltype;
2510 int idtype;
2511 val* var7 /* : Array[Object] */;
2512 val* var8 /* : Array[Object] */;
2513 val* var_listnode8 /* var listnode8: Array[Object] */;
2514 val* var_listnode7 /* var listnode7: nullable Object */;
2515 short int var9 /* : Bool */;
2516 int cltype10;
2517 int idtype11;
2518 val* var12 /* : Array[Object] */;
2519 val* var13 /* : ATopClassdef */;
2520 val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */;
2521 val* var14 /* : null */;
2522 short int var15 /* : Bool */;
2523 val* var16 /* : AModule */;
2524 val* var17 /* : null */;
2525 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
2526 long var18 /* : Int */;
2527 long var19 /* : Int */;
2528 var_p = p0;
2529 var = NULL;
2530 var_node_list = var;
2531 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2532 var_nodearraylist2 = var1;
2533 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2534 var_nodearraylist1 = var2;
2535 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
2536 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
2537 CHECK_NEW_array__Array(var3);
2538 var_listnode3 = var3;
2539 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
2540 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
2541 CHECK_NEW_array__Array(var4);
2542 var_listnode5 = var4;
2543 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
2544 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
2545 CHECK_NEW_array__Array(var5);
2546 var_listnode9 = var5;
2547 var_listnode4 = var_nodearraylist1;
2548 /* <var_listnode4:nullable Object> isa Array[Object] */
2549 cltype = type_array__Arraykernel__Object.color;
2550 idtype = type_array__Arraykernel__Object.id;
2551 if(var_listnode4 == NULL) {
2552 var6 = 0;
2553 } else {
2554 if(cltype >= var_listnode4->type->table_size) {
2555 var6 = 0;
2556 } else {
2557 var6 = var_listnode4->type->type_table[cltype] == idtype;
2558 }
2559 }
2560 if (!var6) {
2561 fprintf(stderr, "Runtime error: %s", "Assert failed");
2562 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2372);
2563 exit(1);
2564 }
2565 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction20>*/;
2566 var_listnode5 = var7;
2567 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
2568 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
2569 CHECK_NEW_array__Array(var8);
2570 var_listnode8 = var8;
2571 var_listnode7 = var_nodearraylist2;
2572 /* <var_listnode7:nullable Object> isa Array[Object] */
2573 cltype10 = type_array__Arraykernel__Object.color;
2574 idtype11 = type_array__Arraykernel__Object.id;
2575 if(var_listnode7 == NULL) {
2576 var9 = 0;
2577 } else {
2578 if(cltype10 >= var_listnode7->type->table_size) {
2579 var9 = 0;
2580 } else {
2581 var9 = var_listnode7->type->type_table[cltype10] == idtype11;
2582 }
2583 }
2584 if (!var9) {
2585 fprintf(stderr, "Runtime error: %s", "Assert failed");
2586 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2376);
2587 exit(1);
2588 }
2589 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction20>*/;
2590 var_listnode8 = var12;
2591 var13 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
2592 ((void (*)(val*, val*))(var13->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var13, var_listnode8) /* init_atopclassdef on <var13:ATopClassdef>*/;
2593 CHECK_NEW_parser_nodes__ATopClassdef(var13);
2594 var_pclassdefnode6 = var13;
2595 var14 = NULL;
2596 if (var_pclassdefnode6 == NULL) {
2597 var15 = 0; /* is null */
2598 } else {
2599 var15 = 1; /* arg is null and recv is not */
2600 }
2601 if (var15){
2602 ((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode6) /* add on <var_listnode9:Array[Object]>*/;
2603 } else {
2604 }
2605 var16 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
2606 var17 = NULL;
2607 ((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>*/;
2608 CHECK_NEW_parser_nodes__AModule(var16);
2609 var_pmodulenode1 = var16;
2610 var_node_list = var_pmodulenode1;
2611 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction20> */
2612 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
2613 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
2614 RET_LABEL:;
2615 }
2616 /* method parser#ReduceAction20#action for (self: Object, Parser) */
2617 void VIRTUAL_parser__ReduceAction20__action(val* self, val* p0) {
2618 parser__ReduceAction20__action(self, p0);
2619 RET_LABEL:;
2620 }
2621 /* method parser#ReduceAction21#action for (self: ReduceAction21, Parser) */
2622 void parser__ReduceAction21__action(val* self, val* p0) {
2623 val* var_p /* var p: Parser */;
2624 val* var /* : null */;
2625 val* var_node_list /* var node_list: nullable Object */;
2626 val* var1 /* : nullable Object */;
2627 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2628 val* var2 /* : nullable Object */;
2629 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2630 val* var3 /* : nullable Object */;
2631 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2632 val* var4 /* : Array[Object] */;
2633 val* var_listnode3 /* var listnode3: Array[Object] */;
2634 val* var5 /* : Array[Object] */;
2635 val* var_listnode5 /* var listnode5: Array[Object] */;
2636 val* var6 /* : Array[Object] */;
2637 val* var_listnode9 /* var listnode9: Array[Object] */;
2638 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
2639 short int var7 /* : Bool */;
2640 int cltype;
2641 int idtype;
2642 val* var_listnode4 /* var listnode4: nullable Object */;
2643 short int var8 /* : Bool */;
2644 int cltype9;
2645 int idtype10;
2646 val* var11 /* : Array[Object] */;
2647 val* var12 /* : Array[Object] */;
2648 val* var_listnode8 /* var listnode8: Array[Object] */;
2649 val* var_listnode7 /* var listnode7: nullable Object */;
2650 short int var13 /* : Bool */;
2651 int cltype14;
2652 int idtype15;
2653 val* var16 /* : Array[Object] */;
2654 val* var17 /* : ATopClassdef */;
2655 val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */;
2656 val* var18 /* : null */;
2657 short int var19 /* : Bool */;
2658 val* var20 /* : AModule */;
2659 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
2660 long var21 /* : Int */;
2661 long var22 /* : Int */;
2662 var_p = p0;
2663 var = NULL;
2664 var_node_list = var;
2665 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2666 var_nodearraylist3 = var1;
2667 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2668 var_nodearraylist2 = var2;
2669 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2670 var_nodearraylist1 = var3;
2671 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
2672 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
2673 CHECK_NEW_array__Array(var4);
2674 var_listnode3 = var4;
2675 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
2676 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
2677 CHECK_NEW_array__Array(var5);
2678 var_listnode5 = var5;
2679 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
2680 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
2681 CHECK_NEW_array__Array(var6);
2682 var_listnode9 = var6;
2683 var_pmoduledeclnode2 = var_nodearraylist1;
2684 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
2685 cltype = type_nullable_parser_nodes__AModuledecl.color;
2686 idtype = type_nullable_parser_nodes__AModuledecl.id;
2687 if(var_pmoduledeclnode2 == NULL) {
2688 var7 = 1;
2689 } else {
2690 if(cltype >= var_pmoduledeclnode2->type->table_size) {
2691 var7 = 0;
2692 } else {
2693 var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
2694 }
2695 }
2696 if (!var7) {
2697 fprintf(stderr, "Runtime error: %s", "Assert failed");
2698 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2406);
2699 exit(1);
2700 }
2701 var_listnode4 = var_nodearraylist2;
2702 /* <var_listnode4:nullable Object> isa Array[Object] */
2703 cltype9 = type_array__Arraykernel__Object.color;
2704 idtype10 = type_array__Arraykernel__Object.id;
2705 if(var_listnode4 == NULL) {
2706 var8 = 0;
2707 } else {
2708 if(cltype9 >= var_listnode4->type->table_size) {
2709 var8 = 0;
2710 } else {
2711 var8 = var_listnode4->type->type_table[cltype9] == idtype10;
2712 }
2713 }
2714 if (!var8) {
2715 fprintf(stderr, "Runtime error: %s", "Assert failed");
2716 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2408);
2717 exit(1);
2718 }
2719 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction21>*/;
2720 var_listnode5 = var11;
2721 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
2722 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
2723 CHECK_NEW_array__Array(var12);
2724 var_listnode8 = var12;
2725 var_listnode7 = var_nodearraylist3;
2726 /* <var_listnode7:nullable Object> isa Array[Object] */
2727 cltype14 = type_array__Arraykernel__Object.color;
2728 idtype15 = type_array__Arraykernel__Object.id;
2729 if(var_listnode7 == NULL) {
2730 var13 = 0;
2731 } else {
2732 if(cltype14 >= var_listnode7->type->table_size) {
2733 var13 = 0;
2734 } else {
2735 var13 = var_listnode7->type->type_table[cltype14] == idtype15;
2736 }
2737 }
2738 if (!var13) {
2739 fprintf(stderr, "Runtime error: %s", "Assert failed");
2740 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2412);
2741 exit(1);
2742 }
2743 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction21>*/;
2744 var_listnode8 = var16;
2745 var17 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
2746 ((void (*)(val*, val*))(var17->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var17, var_listnode8) /* init_atopclassdef on <var17:ATopClassdef>*/;
2747 CHECK_NEW_parser_nodes__ATopClassdef(var17);
2748 var_pclassdefnode6 = var17;
2749 var18 = NULL;
2750 if (var_pclassdefnode6 == NULL) {
2751 var19 = 0; /* is null */
2752 } else {
2753 var19 = 1; /* arg is null and recv is not */
2754 }
2755 if (var19){
2756 ((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode6) /* add on <var_listnode9:Array[Object]>*/;
2757 } else {
2758 }
2759 var20 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
2760 ((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>*/;
2761 CHECK_NEW_parser_nodes__AModule(var20);
2762 var_pmodulenode1 = var20;
2763 var_node_list = var_pmodulenode1;
2764 var21 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction21> */
2765 var22 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var21) /* go_to on <var_p:Parser>*/;
2766 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var22, var_node_list) /* push on <var_p:Parser>*/;
2767 RET_LABEL:;
2768 }
2769 /* method parser#ReduceAction21#action for (self: Object, Parser) */
2770 void VIRTUAL_parser__ReduceAction21__action(val* self, val* p0) {
2771 parser__ReduceAction21__action(self, p0);
2772 RET_LABEL:;
2773 }
2774 /* method parser#ReduceAction22#action for (self: ReduceAction22, Parser) */
2775 void parser__ReduceAction22__action(val* self, val* p0) {
2776 val* var_p /* var p: Parser */;
2777 val* var /* : null */;
2778 val* var_node_list /* var node_list: nullable Object */;
2779 val* var1 /* : nullable Object */;
2780 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2781 val* var2 /* : nullable Object */;
2782 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2783 val* var3 /* : nullable Object */;
2784 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2785 val* var4 /* : Array[Object] */;
2786 val* var_listnode4 /* var listnode4: Array[Object] */;
2787 val* var5 /* : Array[Object] */;
2788 val* var_listnode6 /* var listnode6: Array[Object] */;
2789 val* var6 /* : Array[Object] */;
2790 val* var_listnode10 /* var listnode10: Array[Object] */;
2791 val* var_listnode3 /* var listnode3: nullable Object */;
2792 short int var7 /* : Bool */;
2793 int cltype;
2794 int idtype;
2795 val* var8 /* : Array[Object] */;
2796 val* var_listnode5 /* var listnode5: nullable Object */;
2797 short int var9 /* : Bool */;
2798 int cltype10;
2799 int idtype11;
2800 val* var12 /* : Array[Object] */;
2801 val* var13 /* : Array[Object] */;
2802 val* var_listnode9 /* var listnode9: Array[Object] */;
2803 val* var_listnode8 /* var listnode8: nullable Object */;
2804 short int var14 /* : Bool */;
2805 int cltype15;
2806 int idtype16;
2807 val* var17 /* : Array[Object] */;
2808 val* var18 /* : ATopClassdef */;
2809 val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */;
2810 val* var19 /* : null */;
2811 short int var20 /* : Bool */;
2812 val* var21 /* : AModule */;
2813 val* var22 /* : null */;
2814 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
2815 long var23 /* : Int */;
2816 long var24 /* : Int */;
2817 var_p = p0;
2818 var = NULL;
2819 var_node_list = var;
2820 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2821 var_nodearraylist3 = var1;
2822 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2823 var_nodearraylist2 = var2;
2824 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2825 var_nodearraylist1 = var3;
2826 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
2827 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
2828 CHECK_NEW_array__Array(var4);
2829 var_listnode4 = var4;
2830 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
2831 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
2832 CHECK_NEW_array__Array(var5);
2833 var_listnode6 = var5;
2834 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
2835 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
2836 CHECK_NEW_array__Array(var6);
2837 var_listnode10 = var6;
2838 var_listnode3 = var_nodearraylist1;
2839 /* <var_listnode3:nullable Object> isa Array[Object] */
2840 cltype = type_array__Arraykernel__Object.color;
2841 idtype = type_array__Arraykernel__Object.id;
2842 if(var_listnode3 == NULL) {
2843 var7 = 0;
2844 } else {
2845 if(cltype >= var_listnode3->type->table_size) {
2846 var7 = 0;
2847 } else {
2848 var7 = var_listnode3->type->type_table[cltype] == idtype;
2849 }
2850 }
2851 if (!var7) {
2852 fprintf(stderr, "Runtime error: %s", "Assert failed");
2853 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2442);
2854 exit(1);
2855 }
2856 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction22>*/;
2857 var_listnode4 = var8;
2858 var_listnode5 = var_nodearraylist2;
2859 /* <var_listnode5:nullable Object> isa Array[Object] */
2860 cltype10 = type_array__Arraykernel__Object.color;
2861 idtype11 = type_array__Arraykernel__Object.id;
2862 if(var_listnode5 == NULL) {
2863 var9 = 0;
2864 } else {
2865 if(cltype10 >= var_listnode5->type->table_size) {
2866 var9 = 0;
2867 } else {
2868 var9 = var_listnode5->type->type_table[cltype10] == idtype11;
2869 }
2870 }
2871 if (!var9) {
2872 fprintf(stderr, "Runtime error: %s", "Assert failed");
2873 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2445);
2874 exit(1);
2875 }
2876 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction22>*/;
2877 var_listnode6 = var12;
2878 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
2879 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
2880 CHECK_NEW_array__Array(var13);
2881 var_listnode9 = var13;
2882 var_listnode8 = var_nodearraylist3;
2883 /* <var_listnode8:nullable Object> isa Array[Object] */
2884 cltype15 = type_array__Arraykernel__Object.color;
2885 idtype16 = type_array__Arraykernel__Object.id;
2886 if(var_listnode8 == NULL) {
2887 var14 = 0;
2888 } else {
2889 if(cltype15 >= var_listnode8->type->table_size) {
2890 var14 = 0;
2891 } else {
2892 var14 = var_listnode8->type->type_table[cltype15] == idtype16;
2893 }
2894 }
2895 if (!var14) {
2896 fprintf(stderr, "Runtime error: %s", "Assert failed");
2897 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2449);
2898 exit(1);
2899 }
2900 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction22>*/;
2901 var_listnode9 = var17;
2902 var18 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
2903 ((void (*)(val*, val*))(var18->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var18, var_listnode9) /* init_atopclassdef on <var18:ATopClassdef>*/;
2904 CHECK_NEW_parser_nodes__ATopClassdef(var18);
2905 var_pclassdefnode7 = var18;
2906 var19 = NULL;
2907 if (var_pclassdefnode7 == NULL) {
2908 var20 = 0; /* is null */
2909 } else {
2910 var20 = 1; /* arg is null and recv is not */
2911 }
2912 if (var20){
2913 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode7) /* add on <var_listnode10:Array[Object]>*/;
2914 } else {
2915 }
2916 var21 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
2917 var22 = NULL;
2918 ((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>*/;
2919 CHECK_NEW_parser_nodes__AModule(var21);
2920 var_pmodulenode1 = var21;
2921 var_node_list = var_pmodulenode1;
2922 var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction22> */
2923 var24 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var23) /* go_to on <var_p:Parser>*/;
2924 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var24, var_node_list) /* push on <var_p:Parser>*/;
2925 RET_LABEL:;
2926 }
2927 /* method parser#ReduceAction22#action for (self: Object, Parser) */
2928 void VIRTUAL_parser__ReduceAction22__action(val* self, val* p0) {
2929 parser__ReduceAction22__action(self, p0);
2930 RET_LABEL:;
2931 }
2932 /* method parser#ReduceAction23#action for (self: ReduceAction23, Parser) */
2933 void parser__ReduceAction23__action(val* self, val* p0) {
2934 val* var_p /* var p: Parser */;
2935 val* var /* : null */;
2936 val* var_node_list /* var node_list: nullable Object */;
2937 val* var1 /* : nullable Object */;
2938 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2939 val* var2 /* : nullable Object */;
2940 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2941 val* var3 /* : nullable Object */;
2942 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2943 val* var4 /* : nullable Object */;
2944 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2945 val* var5 /* : Array[Object] */;
2946 val* var_listnode4 /* var listnode4: Array[Object] */;
2947 val* var6 /* : Array[Object] */;
2948 val* var_listnode6 /* var listnode6: Array[Object] */;
2949 val* var7 /* : Array[Object] */;
2950 val* var_listnode10 /* var listnode10: Array[Object] */;
2951 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
2952 short int var8 /* : Bool */;
2953 int cltype;
2954 int idtype;
2955 val* var_listnode3 /* var listnode3: nullable Object */;
2956 short int var9 /* : Bool */;
2957 int cltype10;
2958 int idtype11;
2959 val* var12 /* : Array[Object] */;
2960 val* var_listnode5 /* var listnode5: nullable Object */;
2961 short int var13 /* : Bool */;
2962 int cltype14;
2963 int idtype15;
2964 val* var16 /* : Array[Object] */;
2965 val* var17 /* : Array[Object] */;
2966 val* var_listnode9 /* var listnode9: Array[Object] */;
2967 val* var_listnode8 /* var listnode8: nullable Object */;
2968 short int var18 /* : Bool */;
2969 int cltype19;
2970 int idtype20;
2971 val* var21 /* : Array[Object] */;
2972 val* var22 /* : ATopClassdef */;
2973 val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */;
2974 val* var23 /* : null */;
2975 short int var24 /* : Bool */;
2976 val* var25 /* : AModule */;
2977 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
2978 long var26 /* : Int */;
2979 long var27 /* : Int */;
2980 var_p = p0;
2981 var = NULL;
2982 var_node_list = var;
2983 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2984 var_nodearraylist4 = var1;
2985 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2986 var_nodearraylist3 = var2;
2987 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2988 var_nodearraylist2 = var3;
2989 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2990 var_nodearraylist1 = var4;
2991 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
2992 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
2993 CHECK_NEW_array__Array(var5);
2994 var_listnode4 = var5;
2995 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
2996 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
2997 CHECK_NEW_array__Array(var6);
2998 var_listnode6 = var6;
2999 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
3000 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
3001 CHECK_NEW_array__Array(var7);
3002 var_listnode10 = var7;
3003 var_pmoduledeclnode2 = var_nodearraylist1;
3004 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
3005 cltype = type_nullable_parser_nodes__AModuledecl.color;
3006 idtype = type_nullable_parser_nodes__AModuledecl.id;
3007 if(var_pmoduledeclnode2 == NULL) {
3008 var8 = 1;
3009 } else {
3010 if(cltype >= var_pmoduledeclnode2->type->table_size) {
3011 var8 = 0;
3012 } else {
3013 var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
3014 }
3015 }
3016 if (!var8) {
3017 fprintf(stderr, "Runtime error: %s", "Assert failed");
3018 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2480);
3019 exit(1);
3020 }
3021 var_listnode3 = var_nodearraylist2;
3022 /* <var_listnode3:nullable Object> isa Array[Object] */
3023 cltype10 = type_array__Arraykernel__Object.color;
3024 idtype11 = type_array__Arraykernel__Object.id;
3025 if(var_listnode3 == NULL) {
3026 var9 = 0;
3027 } else {
3028 if(cltype10 >= var_listnode3->type->table_size) {
3029 var9 = 0;
3030 } else {
3031 var9 = var_listnode3->type->type_table[cltype10] == idtype11;
3032 }
3033 }
3034 if (!var9) {
3035 fprintf(stderr, "Runtime error: %s", "Assert failed");
3036 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2482);
3037 exit(1);
3038 }
3039 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction23>*/;
3040 var_listnode4 = var12;
3041 var_listnode5 = var_nodearraylist3;
3042 /* <var_listnode5:nullable Object> isa Array[Object] */
3043 cltype14 = type_array__Arraykernel__Object.color;
3044 idtype15 = type_array__Arraykernel__Object.id;
3045 if(var_listnode5 == NULL) {
3046 var13 = 0;
3047 } else {
3048 if(cltype14 >= var_listnode5->type->table_size) {
3049 var13 = 0;
3050 } else {
3051 var13 = var_listnode5->type->type_table[cltype14] == idtype15;
3052 }
3053 }
3054 if (!var13) {
3055 fprintf(stderr, "Runtime error: %s", "Assert failed");
3056 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2485);
3057 exit(1);
3058 }
3059 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction23>*/;
3060 var_listnode6 = var16;
3061 var17 = NEW_array__Array(&type_array__Arraykernel__Object);
3062 ((void (*)(val*))(var17->class->vft[COLOR_array__Array__init]))(var17) /* init on <var17:Array[Object]>*/;
3063 CHECK_NEW_array__Array(var17);
3064 var_listnode9 = var17;
3065 var_listnode8 = var_nodearraylist4;
3066 /* <var_listnode8:nullable Object> isa Array[Object] */
3067 cltype19 = type_array__Arraykernel__Object.color;
3068 idtype20 = type_array__Arraykernel__Object.id;
3069 if(var_listnode8 == NULL) {
3070 var18 = 0;
3071 } else {
3072 if(cltype19 >= var_listnode8->type->table_size) {
3073 var18 = 0;
3074 } else {
3075 var18 = var_listnode8->type->type_table[cltype19] == idtype20;
3076 }
3077 }
3078 if (!var18) {
3079 fprintf(stderr, "Runtime error: %s", "Assert failed");
3080 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2489);
3081 exit(1);
3082 }
3083 var21 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction23>*/;
3084 var_listnode9 = var21;
3085 var22 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
3086 ((void (*)(val*, val*))(var22->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var22, var_listnode9) /* init_atopclassdef on <var22:ATopClassdef>*/;
3087 CHECK_NEW_parser_nodes__ATopClassdef(var22);
3088 var_pclassdefnode7 = var22;
3089 var23 = NULL;
3090 if (var_pclassdefnode7 == NULL) {
3091 var24 = 0; /* is null */
3092 } else {
3093 var24 = 1; /* arg is null and recv is not */
3094 }
3095 if (var24){
3096 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode7) /* add on <var_listnode10:Array[Object]>*/;
3097 } else {
3098 }
3099 var25 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
3100 ((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>*/;
3101 CHECK_NEW_parser_nodes__AModule(var25);
3102 var_pmodulenode1 = var25;
3103 var_node_list = var_pmodulenode1;
3104 var26 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction23> */
3105 var27 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var26) /* go_to on <var_p:Parser>*/;
3106 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var27, var_node_list) /* push on <var_p:Parser>*/;
3107 RET_LABEL:;
3108 }
3109 /* method parser#ReduceAction23#action for (self: Object, Parser) */
3110 void VIRTUAL_parser__ReduceAction23__action(val* self, val* p0) {
3111 parser__ReduceAction23__action(self, p0);
3112 RET_LABEL:;
3113 }
3114 /* method parser#ReduceAction24#action for (self: ReduceAction24, Parser) */
3115 void parser__ReduceAction24__action(val* self, val* p0) {
3116 val* var_p /* var p: Parser */;
3117 val* var /* : null */;
3118 val* var_node_list /* var node_list: nullable Object */;
3119 val* var1 /* : nullable Object */;
3120 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3121 val* var2 /* : nullable Object */;
3122 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3123 val* var3 /* : Array[Object] */;
3124 val* var_listnode3 /* var listnode3: Array[Object] */;
3125 val* var4 /* : Array[Object] */;
3126 val* var_listnode4 /* var listnode4: Array[Object] */;
3127 val* var5 /* : Array[Object] */;
3128 val* var_listnode9 /* var listnode9: Array[Object] */;
3129 val* var_listnode5 /* var listnode5: nullable Object */;
3130 short int var6 /* : Bool */;
3131 int cltype;
3132 int idtype;
3133 val* var7 /* : Array[Object] */;
3134 val* var_listnode8 /* var listnode8: Array[Object] */;
3135 val* var_listnode7 /* var listnode7: nullable Object */;
3136 short int var8 /* : Bool */;
3137 int cltype9;
3138 int idtype10;
3139 val* var11 /* : Array[Object] */;
3140 val* var12 /* : ATopClassdef */;
3141 val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */;
3142 val* var13 /* : Array[Object] */;
3143 val* var14 /* : null */;
3144 short int var15 /* : Bool */;
3145 val* var16 /* : AModule */;
3146 val* var17 /* : null */;
3147 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
3148 long var18 /* : Int */;
3149 long var19 /* : Int */;
3150 var_p = p0;
3151 var = NULL;
3152 var_node_list = var;
3153 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3154 var_nodearraylist2 = var1;
3155 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3156 var_nodearraylist1 = var2;
3157 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
3158 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
3159 CHECK_NEW_array__Array(var3);
3160 var_listnode3 = var3;
3161 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
3162 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
3163 CHECK_NEW_array__Array(var4);
3164 var_listnode4 = var4;
3165 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
3166 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
3167 CHECK_NEW_array__Array(var5);
3168 var_listnode9 = var5;
3169 var_listnode5 = var_nodearraylist1;
3170 /* <var_listnode5:nullable Object> isa Array[Object] */
3171 cltype = type_array__Arraykernel__Object.color;
3172 idtype = type_array__Arraykernel__Object.id;
3173 if(var_listnode5 == NULL) {
3174 var6 = 0;
3175 } else {
3176 if(cltype >= var_listnode5->type->table_size) {
3177 var6 = 0;
3178 } else {
3179 var6 = var_listnode5->type->type_table[cltype] == idtype;
3180 }
3181 }
3182 if (!var6) {
3183 fprintf(stderr, "Runtime error: %s", "Assert failed");
3184 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2518);
3185 exit(1);
3186 }
3187 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
3188 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
3189 CHECK_NEW_array__Array(var7);
3190 var_listnode8 = var7;
3191 var_listnode7 = var_nodearraylist2;
3192 /* <var_listnode7:nullable Object> isa Array[Object] */
3193 cltype9 = type_array__Arraykernel__Object.color;
3194 idtype10 = type_array__Arraykernel__Object.id;
3195 if(var_listnode7 == NULL) {
3196 var8 = 0;
3197 } else {
3198 if(cltype9 >= var_listnode7->type->table_size) {
3199 var8 = 0;
3200 } else {
3201 var8 = var_listnode7->type->type_table[cltype9] == idtype10;
3202 }
3203 }
3204 if (!var8) {
3205 fprintf(stderr, "Runtime error: %s", "Assert failed");
3206 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2521);
3207 exit(1);
3208 }
3209 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction24>*/;
3210 var_listnode8 = var11;
3211 var12 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
3212 ((void (*)(val*, val*))(var12->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var12, var_listnode8) /* init_atopclassdef on <var12:ATopClassdef>*/;
3213 CHECK_NEW_parser_nodes__ATopClassdef(var12);
3214 var_pclassdefnode6 = var12;
3215 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode5) /* concat on <self:ReduceAction24>*/;
3216 var_listnode9 = var13;
3217 var14 = NULL;
3218 if (var_pclassdefnode6 == NULL) {
3219 var15 = 0; /* is null */
3220 } else {
3221 var15 = 1; /* arg is null and recv is not */
3222 }
3223 if (var15){
3224 ((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode6) /* add on <var_listnode9:Array[Object]>*/;
3225 } else {
3226 }
3227 var16 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
3228 var17 = NULL;
3229 ((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>*/;
3230 CHECK_NEW_parser_nodes__AModule(var16);
3231 var_pmodulenode1 = var16;
3232 var_node_list = var_pmodulenode1;
3233 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction24> */
3234 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
3235 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
3236 RET_LABEL:;
3237 }
3238 /* method parser#ReduceAction24#action for (self: Object, Parser) */
3239 void VIRTUAL_parser__ReduceAction24__action(val* self, val* p0) {
3240 parser__ReduceAction24__action(self, p0);
3241 RET_LABEL:;
3242 }
3243 /* method parser#ReduceAction25#action for (self: ReduceAction25, Parser) */
3244 void parser__ReduceAction25__action(val* self, val* p0) {
3245 val* var_p /* var p: Parser */;
3246 val* var /* : null */;
3247 val* var_node_list /* var node_list: nullable Object */;
3248 val* var1 /* : nullable Object */;
3249 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3250 val* var2 /* : nullable Object */;
3251 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3252 val* var3 /* : nullable Object */;
3253 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3254 val* var4 /* : Array[Object] */;
3255 val* var_listnode3 /* var listnode3: Array[Object] */;
3256 val* var5 /* : Array[Object] */;
3257 val* var_listnode4 /* var listnode4: Array[Object] */;
3258 val* var6 /* : Array[Object] */;
3259 val* var_listnode9 /* var listnode9: Array[Object] */;
3260 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
3261 short int var7 /* : Bool */;
3262 int cltype;
3263 int idtype;
3264 val* var_listnode5 /* var listnode5: nullable Object */;
3265 short int var8 /* : Bool */;
3266 int cltype9;
3267 int idtype10;
3268 val* var11 /* : Array[Object] */;
3269 val* var_listnode8 /* var listnode8: Array[Object] */;
3270 val* var_listnode7 /* var listnode7: nullable Object */;
3271 short int var12 /* : Bool */;
3272 int cltype13;
3273 int idtype14;
3274 val* var15 /* : Array[Object] */;
3275 val* var16 /* : ATopClassdef */;
3276 val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */;
3277 val* var17 /* : Array[Object] */;
3278 val* var18 /* : null */;
3279 short int var19 /* : Bool */;
3280 val* var20 /* : AModule */;
3281 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
3282 long var21 /* : Int */;
3283 long var22 /* : Int */;
3284 var_p = p0;
3285 var = NULL;
3286 var_node_list = var;
3287 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3288 var_nodearraylist3 = var1;
3289 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3290 var_nodearraylist2 = var2;
3291 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3292 var_nodearraylist1 = var3;
3293 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
3294 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
3295 CHECK_NEW_array__Array(var4);
3296 var_listnode3 = var4;
3297 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
3298 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
3299 CHECK_NEW_array__Array(var5);
3300 var_listnode4 = var5;
3301 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
3302 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
3303 CHECK_NEW_array__Array(var6);
3304 var_listnode9 = var6;
3305 var_pmoduledeclnode2 = var_nodearraylist1;
3306 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
3307 cltype = type_nullable_parser_nodes__AModuledecl.color;
3308 idtype = type_nullable_parser_nodes__AModuledecl.id;
3309 if(var_pmoduledeclnode2 == NULL) {
3310 var7 = 1;
3311 } else {
3312 if(cltype >= var_pmoduledeclnode2->type->table_size) {
3313 var7 = 0;
3314 } else {
3315 var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
3316 }
3317 }
3318 if (!var7) {
3319 fprintf(stderr, "Runtime error: %s", "Assert failed");
3320 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2552);
3321 exit(1);
3322 }
3323 var_listnode5 = var_nodearraylist2;
3324 /* <var_listnode5:nullable Object> isa Array[Object] */
3325 cltype9 = type_array__Arraykernel__Object.color;
3326 idtype10 = type_array__Arraykernel__Object.id;
3327 if(var_listnode5 == NULL) {
3328 var8 = 0;
3329 } else {
3330 if(cltype9 >= var_listnode5->type->table_size) {
3331 var8 = 0;
3332 } else {
3333 var8 = var_listnode5->type->type_table[cltype9] == idtype10;
3334 }
3335 }
3336 if (!var8) {
3337 fprintf(stderr, "Runtime error: %s", "Assert failed");
3338 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2554);
3339 exit(1);
3340 }
3341 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
3342 ((void (*)(val*))(var11->class->vft[COLOR_array__Array__init]))(var11) /* init on <var11:Array[Object]>*/;
3343 CHECK_NEW_array__Array(var11);
3344 var_listnode8 = var11;
3345 var_listnode7 = var_nodearraylist3;
3346 /* <var_listnode7:nullable Object> isa Array[Object] */
3347 cltype13 = type_array__Arraykernel__Object.color;
3348 idtype14 = type_array__Arraykernel__Object.id;
3349 if(var_listnode7 == NULL) {
3350 var12 = 0;
3351 } else {
3352 if(cltype13 >= var_listnode7->type->table_size) {
3353 var12 = 0;
3354 } else {
3355 var12 = var_listnode7->type->type_table[cltype13] == idtype14;
3356 }
3357 }
3358 if (!var12) {
3359 fprintf(stderr, "Runtime error: %s", "Assert failed");
3360 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2557);
3361 exit(1);
3362 }
3363 var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction25>*/;
3364 var_listnode8 = var15;
3365 var16 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
3366 ((void (*)(val*, val*))(var16->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var16, var_listnode8) /* init_atopclassdef on <var16:ATopClassdef>*/;
3367 CHECK_NEW_parser_nodes__ATopClassdef(var16);
3368 var_pclassdefnode6 = var16;
3369 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode5) /* concat on <self:ReduceAction25>*/;
3370 var_listnode9 = var17;
3371 var18 = NULL;
3372 if (var_pclassdefnode6 == NULL) {
3373 var19 = 0; /* is null */
3374 } else {
3375 var19 = 1; /* arg is null and recv is not */
3376 }
3377 if (var19){
3378 ((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode6) /* add on <var_listnode9:Array[Object]>*/;
3379 } else {
3380 }
3381 var20 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
3382 ((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>*/;
3383 CHECK_NEW_parser_nodes__AModule(var20);
3384 var_pmodulenode1 = var20;
3385 var_node_list = var_pmodulenode1;
3386 var21 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction25> */
3387 var22 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var21) /* go_to on <var_p:Parser>*/;
3388 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var22, var_node_list) /* push on <var_p:Parser>*/;
3389 RET_LABEL:;
3390 }
3391 /* method parser#ReduceAction25#action for (self: Object, Parser) */
3392 void VIRTUAL_parser__ReduceAction25__action(val* self, val* p0) {
3393 parser__ReduceAction25__action(self, p0);
3394 RET_LABEL:;
3395 }
3396 /* method parser#ReduceAction26#action for (self: ReduceAction26, Parser) */
3397 void parser__ReduceAction26__action(val* self, val* p0) {
3398 val* var_p /* var p: Parser */;
3399 val* var /* : null */;
3400 val* var_node_list /* var node_list: nullable Object */;
3401 val* var1 /* : nullable Object */;
3402 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3403 val* var2 /* : nullable Object */;
3404 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3405 val* var3 /* : nullable Object */;
3406 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3407 val* var4 /* : Array[Object] */;
3408 val* var_listnode4 /* var listnode4: Array[Object] */;
3409 val* var5 /* : Array[Object] */;
3410 val* var_listnode5 /* var listnode5: Array[Object] */;
3411 val* var6 /* : Array[Object] */;
3412 val* var_listnode10 /* var listnode10: Array[Object] */;
3413 val* var_listnode3 /* var listnode3: nullable Object */;
3414 short int var7 /* : Bool */;
3415 int cltype;
3416 int idtype;
3417 val* var8 /* : Array[Object] */;
3418 val* var_listnode6 /* var listnode6: nullable Object */;
3419 short int var9 /* : Bool */;
3420 int cltype10;
3421 int idtype11;
3422 val* var12 /* : Array[Object] */;
3423 val* var_listnode9 /* var listnode9: Array[Object] */;
3424 val* var_listnode8 /* var listnode8: nullable Object */;
3425 short int var13 /* : Bool */;
3426 int cltype14;
3427 int idtype15;
3428 val* var16 /* : Array[Object] */;
3429 val* var17 /* : ATopClassdef */;
3430 val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */;
3431 val* var18 /* : Array[Object] */;
3432 val* var19 /* : null */;
3433 short int var20 /* : Bool */;
3434 val* var21 /* : AModule */;
3435 val* var22 /* : null */;
3436 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
3437 long var23 /* : Int */;
3438 long var24 /* : Int */;
3439 var_p = p0;
3440 var = NULL;
3441 var_node_list = var;
3442 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3443 var_nodearraylist3 = var1;
3444 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3445 var_nodearraylist2 = var2;
3446 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3447 var_nodearraylist1 = var3;
3448 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
3449 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
3450 CHECK_NEW_array__Array(var4);
3451 var_listnode4 = var4;
3452 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
3453 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
3454 CHECK_NEW_array__Array(var5);
3455 var_listnode5 = var5;
3456 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
3457 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
3458 CHECK_NEW_array__Array(var6);
3459 var_listnode10 = var6;
3460 var_listnode3 = var_nodearraylist1;
3461 /* <var_listnode3:nullable Object> isa Array[Object] */
3462 cltype = type_array__Arraykernel__Object.color;
3463 idtype = type_array__Arraykernel__Object.id;
3464 if(var_listnode3 == NULL) {
3465 var7 = 0;
3466 } else {
3467 if(cltype >= var_listnode3->type->table_size) {
3468 var7 = 0;
3469 } else {
3470 var7 = var_listnode3->type->type_table[cltype] == idtype;
3471 }
3472 }
3473 if (!var7) {
3474 fprintf(stderr, "Runtime error: %s", "Assert failed");
3475 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2588);
3476 exit(1);
3477 }
3478 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction26>*/;
3479 var_listnode4 = var8;
3480 var_listnode6 = var_nodearraylist2;
3481 /* <var_listnode6:nullable Object> isa Array[Object] */
3482 cltype10 = type_array__Arraykernel__Object.color;
3483 idtype11 = type_array__Arraykernel__Object.id;
3484 if(var_listnode6 == NULL) {
3485 var9 = 0;
3486 } else {
3487 if(cltype10 >= var_listnode6->type->table_size) {
3488 var9 = 0;
3489 } else {
3490 var9 = var_listnode6->type->type_table[cltype10] == idtype11;
3491 }
3492 }
3493 if (!var9) {
3494 fprintf(stderr, "Runtime error: %s", "Assert failed");
3495 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2591);
3496 exit(1);
3497 }
3498 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
3499 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
3500 CHECK_NEW_array__Array(var12);
3501 var_listnode9 = var12;
3502 var_listnode8 = var_nodearraylist3;
3503 /* <var_listnode8:nullable Object> isa Array[Object] */
3504 cltype14 = type_array__Arraykernel__Object.color;
3505 idtype15 = type_array__Arraykernel__Object.id;
3506 if(var_listnode8 == NULL) {
3507 var13 = 0;
3508 } else {
3509 if(cltype14 >= var_listnode8->type->table_size) {
3510 var13 = 0;
3511 } else {
3512 var13 = var_listnode8->type->type_table[cltype14] == idtype15;
3513 }
3514 }
3515 if (!var13) {
3516 fprintf(stderr, "Runtime error: %s", "Assert failed");
3517 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2594);
3518 exit(1);
3519 }
3520 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction26>*/;
3521 var_listnode9 = var16;
3522 var17 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
3523 ((void (*)(val*, val*))(var17->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var17, var_listnode9) /* init_atopclassdef on <var17:ATopClassdef>*/;
3524 CHECK_NEW_parser_nodes__ATopClassdef(var17);
3525 var_pclassdefnode7 = var17;
3526 var18 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode6) /* concat on <self:ReduceAction26>*/;
3527 var_listnode10 = var18;
3528 var19 = NULL;
3529 if (var_pclassdefnode7 == NULL) {
3530 var20 = 0; /* is null */
3531 } else {
3532 var20 = 1; /* arg is null and recv is not */
3533 }
3534 if (var20){
3535 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode7) /* add on <var_listnode10:Array[Object]>*/;
3536 } else {
3537 }
3538 var21 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
3539 var22 = NULL;
3540 ((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>*/;
3541 CHECK_NEW_parser_nodes__AModule(var21);
3542 var_pmodulenode1 = var21;
3543 var_node_list = var_pmodulenode1;
3544 var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction26> */
3545 var24 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var23) /* go_to on <var_p:Parser>*/;
3546 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var24, var_node_list) /* push on <var_p:Parser>*/;
3547 RET_LABEL:;
3548 }
3549 /* method parser#ReduceAction26#action for (self: Object, Parser) */
3550 void VIRTUAL_parser__ReduceAction26__action(val* self, val* p0) {
3551 parser__ReduceAction26__action(self, p0);
3552 RET_LABEL:;
3553 }
3554 /* method parser#ReduceAction27#action for (self: ReduceAction27, Parser) */
3555 void parser__ReduceAction27__action(val* self, val* p0) {
3556 val* var_p /* var p: Parser */;
3557 val* var /* : null */;
3558 val* var_node_list /* var node_list: nullable Object */;
3559 val* var1 /* : nullable Object */;
3560 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3561 val* var2 /* : nullable Object */;
3562 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3563 val* var3 /* : nullable Object */;
3564 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3565 val* var4 /* : nullable Object */;
3566 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3567 val* var5 /* : Array[Object] */;
3568 val* var_listnode4 /* var listnode4: Array[Object] */;
3569 val* var6 /* : Array[Object] */;
3570 val* var_listnode5 /* var listnode5: Array[Object] */;
3571 val* var7 /* : Array[Object] */;
3572 val* var_listnode10 /* var listnode10: Array[Object] */;
3573 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
3574 short int var8 /* : Bool */;
3575 int cltype;
3576 int idtype;
3577 val* var_listnode3 /* var listnode3: nullable Object */;
3578 short int var9 /* : Bool */;
3579 int cltype10;
3580 int idtype11;
3581 val* var12 /* : Array[Object] */;
3582 val* var_listnode6 /* var listnode6: nullable Object */;
3583 short int var13 /* : Bool */;
3584 int cltype14;
3585 int idtype15;
3586 val* var16 /* : Array[Object] */;
3587 val* var_listnode9 /* var listnode9: Array[Object] */;
3588 val* var_listnode8 /* var listnode8: nullable Object */;
3589 short int var17 /* : Bool */;
3590 int cltype18;
3591 int idtype19;
3592 val* var20 /* : Array[Object] */;
3593 val* var21 /* : ATopClassdef */;
3594 val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */;
3595 val* var22 /* : Array[Object] */;
3596 val* var23 /* : null */;
3597 short int var24 /* : Bool */;
3598 val* var25 /* : AModule */;
3599 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
3600 long var26 /* : Int */;
3601 long var27 /* : Int */;
3602 var_p = p0;
3603 var = NULL;
3604 var_node_list = var;
3605 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3606 var_nodearraylist4 = var1;
3607 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3608 var_nodearraylist3 = var2;
3609 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3610 var_nodearraylist2 = var3;
3611 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3612 var_nodearraylist1 = var4;
3613 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
3614 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
3615 CHECK_NEW_array__Array(var5);
3616 var_listnode4 = var5;
3617 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
3618 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
3619 CHECK_NEW_array__Array(var6);
3620 var_listnode5 = var6;
3621 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
3622 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
3623 CHECK_NEW_array__Array(var7);
3624 var_listnode10 = var7;
3625 var_pmoduledeclnode2 = var_nodearraylist1;
3626 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
3627 cltype = type_nullable_parser_nodes__AModuledecl.color;
3628 idtype = type_nullable_parser_nodes__AModuledecl.id;
3629 if(var_pmoduledeclnode2 == NULL) {
3630 var8 = 1;
3631 } else {
3632 if(cltype >= var_pmoduledeclnode2->type->table_size) {
3633 var8 = 0;
3634 } else {
3635 var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
3636 }
3637 }
3638 if (!var8) {
3639 fprintf(stderr, "Runtime error: %s", "Assert failed");
3640 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2626);
3641 exit(1);
3642 }
3643 var_listnode3 = var_nodearraylist2;
3644 /* <var_listnode3:nullable Object> isa Array[Object] */
3645 cltype10 = type_array__Arraykernel__Object.color;
3646 idtype11 = type_array__Arraykernel__Object.id;
3647 if(var_listnode3 == NULL) {
3648 var9 = 0;
3649 } else {
3650 if(cltype10 >= var_listnode3->type->table_size) {
3651 var9 = 0;
3652 } else {
3653 var9 = var_listnode3->type->type_table[cltype10] == idtype11;
3654 }
3655 }
3656 if (!var9) {
3657 fprintf(stderr, "Runtime error: %s", "Assert failed");
3658 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2628);
3659 exit(1);
3660 }
3661 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction27>*/;
3662 var_listnode4 = var12;
3663 var_listnode6 = var_nodearraylist3;
3664 /* <var_listnode6:nullable Object> isa Array[Object] */
3665 cltype14 = type_array__Arraykernel__Object.color;
3666 idtype15 = type_array__Arraykernel__Object.id;
3667 if(var_listnode6 == NULL) {
3668 var13 = 0;
3669 } else {
3670 if(cltype14 >= var_listnode6->type->table_size) {
3671 var13 = 0;
3672 } else {
3673 var13 = var_listnode6->type->type_table[cltype14] == idtype15;
3674 }
3675 }
3676 if (!var13) {
3677 fprintf(stderr, "Runtime error: %s", "Assert failed");
3678 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2631);
3679 exit(1);
3680 }
3681 var16 = NEW_array__Array(&type_array__Arraykernel__Object);
3682 ((void (*)(val*))(var16->class->vft[COLOR_array__Array__init]))(var16) /* init on <var16:Array[Object]>*/;
3683 CHECK_NEW_array__Array(var16);
3684 var_listnode9 = var16;
3685 var_listnode8 = var_nodearraylist4;
3686 /* <var_listnode8:nullable Object> isa Array[Object] */
3687 cltype18 = type_array__Arraykernel__Object.color;
3688 idtype19 = type_array__Arraykernel__Object.id;
3689 if(var_listnode8 == NULL) {
3690 var17 = 0;
3691 } else {
3692 if(cltype18 >= var_listnode8->type->table_size) {
3693 var17 = 0;
3694 } else {
3695 var17 = var_listnode8->type->type_table[cltype18] == idtype19;
3696 }
3697 }
3698 if (!var17) {
3699 fprintf(stderr, "Runtime error: %s", "Assert failed");
3700 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2634);
3701 exit(1);
3702 }
3703 var20 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction27>*/;
3704 var_listnode9 = var20;
3705 var21 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
3706 ((void (*)(val*, val*))(var21->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var21, var_listnode9) /* init_atopclassdef on <var21:ATopClassdef>*/;
3707 CHECK_NEW_parser_nodes__ATopClassdef(var21);
3708 var_pclassdefnode7 = var21;
3709 var22 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode6) /* concat on <self:ReduceAction27>*/;
3710 var_listnode10 = var22;
3711 var23 = NULL;
3712 if (var_pclassdefnode7 == NULL) {
3713 var24 = 0; /* is null */
3714 } else {
3715 var24 = 1; /* arg is null and recv is not */
3716 }
3717 if (var24){
3718 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode7) /* add on <var_listnode10:Array[Object]>*/;
3719 } else {
3720 }
3721 var25 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
3722 ((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>*/;
3723 CHECK_NEW_parser_nodes__AModule(var25);
3724 var_pmodulenode1 = var25;
3725 var_node_list = var_pmodulenode1;
3726 var26 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction27> */
3727 var27 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var26) /* go_to on <var_p:Parser>*/;
3728 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var27, var_node_list) /* push on <var_p:Parser>*/;
3729 RET_LABEL:;
3730 }
3731 /* method parser#ReduceAction27#action for (self: Object, Parser) */
3732 void VIRTUAL_parser__ReduceAction27__action(val* self, val* p0) {
3733 parser__ReduceAction27__action(self, p0);
3734 RET_LABEL:;
3735 }
3736 /* method parser#ReduceAction28#action for (self: ReduceAction28, Parser) */
3737 void parser__ReduceAction28__action(val* self, val* p0) {
3738 val* var_p /* var p: Parser */;
3739 val* var /* : null */;
3740 val* var_node_list /* var node_list: nullable Object */;
3741 val* var1 /* : nullable Object */;
3742 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3743 val* var2 /* : nullable Object */;
3744 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3745 val* var3 /* : nullable Object */;
3746 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3747 val* var4 /* : Array[Object] */;
3748 val* var_listnode3 /* var listnode3: Array[Object] */;
3749 val* var5 /* : Array[Object] */;
3750 val* var_listnode5 /* var listnode5: Array[Object] */;
3751 val* var6 /* : Array[Object] */;
3752 val* var_listnode10 /* var listnode10: Array[Object] */;
3753 val* var_listnode4 /* var listnode4: nullable Object */;
3754 short int var7 /* : Bool */;
3755 int cltype;
3756 int idtype;
3757 val* var8 /* : Array[Object] */;
3758 val* var_listnode6 /* var listnode6: nullable Object */;
3759 short int var9 /* : Bool */;
3760 int cltype10;
3761 int idtype11;
3762 val* var12 /* : Array[Object] */;
3763 val* var_listnode9 /* var listnode9: Array[Object] */;
3764 val* var_listnode8 /* var listnode8: nullable Object */;
3765 short int var13 /* : Bool */;
3766 int cltype14;
3767 int idtype15;
3768 val* var16 /* : Array[Object] */;
3769 val* var17 /* : ATopClassdef */;
3770 val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */;
3771 val* var18 /* : Array[Object] */;
3772 val* var19 /* : null */;
3773 short int var20 /* : Bool */;
3774 val* var21 /* : AModule */;
3775 val* var22 /* : null */;
3776 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
3777 long var23 /* : Int */;
3778 long var24 /* : Int */;
3779 var_p = p0;
3780 var = NULL;
3781 var_node_list = var;
3782 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3783 var_nodearraylist3 = var1;
3784 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3785 var_nodearraylist2 = var2;
3786 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3787 var_nodearraylist1 = var3;
3788 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
3789 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
3790 CHECK_NEW_array__Array(var4);
3791 var_listnode3 = var4;
3792 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
3793 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
3794 CHECK_NEW_array__Array(var5);
3795 var_listnode5 = var5;
3796 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
3797 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
3798 CHECK_NEW_array__Array(var6);
3799 var_listnode10 = var6;
3800 var_listnode4 = var_nodearraylist1;
3801 /* <var_listnode4:nullable Object> isa Array[Object] */
3802 cltype = type_array__Arraykernel__Object.color;
3803 idtype = type_array__Arraykernel__Object.id;
3804 if(var_listnode4 == NULL) {
3805 var7 = 0;
3806 } else {
3807 if(cltype >= var_listnode4->type->table_size) {
3808 var7 = 0;
3809 } else {
3810 var7 = var_listnode4->type->type_table[cltype] == idtype;
3811 }
3812 }
3813 if (!var7) {
3814 fprintf(stderr, "Runtime error: %s", "Assert failed");
3815 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2665);
3816 exit(1);
3817 }
3818 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction28>*/;
3819 var_listnode5 = var8;
3820 var_listnode6 = var_nodearraylist2;
3821 /* <var_listnode6:nullable Object> isa Array[Object] */
3822 cltype10 = type_array__Arraykernel__Object.color;
3823 idtype11 = type_array__Arraykernel__Object.id;
3824 if(var_listnode6 == NULL) {
3825 var9 = 0;
3826 } else {
3827 if(cltype10 >= var_listnode6->type->table_size) {
3828 var9 = 0;
3829 } else {
3830 var9 = var_listnode6->type->type_table[cltype10] == idtype11;
3831 }
3832 }
3833 if (!var9) {
3834 fprintf(stderr, "Runtime error: %s", "Assert failed");
3835 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2668);
3836 exit(1);
3837 }
3838 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
3839 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
3840 CHECK_NEW_array__Array(var12);
3841 var_listnode9 = var12;
3842 var_listnode8 = var_nodearraylist3;
3843 /* <var_listnode8:nullable Object> isa Array[Object] */
3844 cltype14 = type_array__Arraykernel__Object.color;
3845 idtype15 = type_array__Arraykernel__Object.id;
3846 if(var_listnode8 == NULL) {
3847 var13 = 0;
3848 } else {
3849 if(cltype14 >= var_listnode8->type->table_size) {
3850 var13 = 0;
3851 } else {
3852 var13 = var_listnode8->type->type_table[cltype14] == idtype15;
3853 }
3854 }
3855 if (!var13) {
3856 fprintf(stderr, "Runtime error: %s", "Assert failed");
3857 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2671);
3858 exit(1);
3859 }
3860 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction28>*/;
3861 var_listnode9 = var16;
3862 var17 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
3863 ((void (*)(val*, val*))(var17->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var17, var_listnode9) /* init_atopclassdef on <var17:ATopClassdef>*/;
3864 CHECK_NEW_parser_nodes__ATopClassdef(var17);
3865 var_pclassdefnode7 = var17;
3866 var18 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode6) /* concat on <self:ReduceAction28>*/;
3867 var_listnode10 = var18;
3868 var19 = NULL;
3869 if (var_pclassdefnode7 == NULL) {
3870 var20 = 0; /* is null */
3871 } else {
3872 var20 = 1; /* arg is null and recv is not */
3873 }
3874 if (var20){
3875 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode7) /* add on <var_listnode10:Array[Object]>*/;
3876 } else {
3877 }
3878 var21 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
3879 var22 = NULL;
3880 ((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>*/;
3881 CHECK_NEW_parser_nodes__AModule(var21);
3882 var_pmodulenode1 = var21;
3883 var_node_list = var_pmodulenode1;
3884 var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction28> */
3885 var24 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var23) /* go_to on <var_p:Parser>*/;
3886 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var24, var_node_list) /* push on <var_p:Parser>*/;
3887 RET_LABEL:;
3888 }
3889 /* method parser#ReduceAction28#action for (self: Object, Parser) */
3890 void VIRTUAL_parser__ReduceAction28__action(val* self, val* p0) {
3891 parser__ReduceAction28__action(self, p0);
3892 RET_LABEL:;
3893 }
3894 /* method parser#ReduceAction29#action for (self: ReduceAction29, Parser) */
3895 void parser__ReduceAction29__action(val* self, val* p0) {
3896 val* var_p /* var p: Parser */;
3897 val* var /* : null */;
3898 val* var_node_list /* var node_list: nullable Object */;
3899 val* var1 /* : nullable Object */;
3900 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3901 val* var2 /* : nullable Object */;
3902 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3903 val* var3 /* : nullable Object */;
3904 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3905 val* var4 /* : nullable Object */;
3906 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3907 val* var5 /* : Array[Object] */;
3908 val* var_listnode3 /* var listnode3: Array[Object] */;
3909 val* var6 /* : Array[Object] */;
3910 val* var_listnode5 /* var listnode5: Array[Object] */;
3911 val* var7 /* : Array[Object] */;
3912 val* var_listnode10 /* var listnode10: Array[Object] */;
3913 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
3914 short int var8 /* : Bool */;
3915 int cltype;
3916 int idtype;
3917 val* var_listnode4 /* var listnode4: nullable Object */;
3918 short int var9 /* : Bool */;
3919 int cltype10;
3920 int idtype11;
3921 val* var12 /* : Array[Object] */;
3922 val* var_listnode6 /* var listnode6: nullable Object */;
3923 short int var13 /* : Bool */;
3924 int cltype14;
3925 int idtype15;
3926 val* var16 /* : Array[Object] */;
3927 val* var_listnode9 /* var listnode9: Array[Object] */;
3928 val* var_listnode8 /* var listnode8: nullable Object */;
3929 short int var17 /* : Bool */;
3930 int cltype18;
3931 int idtype19;
3932 val* var20 /* : Array[Object] */;
3933 val* var21 /* : ATopClassdef */;
3934 val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */;
3935 val* var22 /* : Array[Object] */;
3936 val* var23 /* : null */;
3937 short int var24 /* : Bool */;
3938 val* var25 /* : AModule */;
3939 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
3940 long var26 /* : Int */;
3941 long var27 /* : Int */;
3942 var_p = p0;
3943 var = NULL;
3944 var_node_list = var;
3945 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3946 var_nodearraylist4 = var1;
3947 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3948 var_nodearraylist3 = var2;
3949 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3950 var_nodearraylist2 = var3;
3951 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3952 var_nodearraylist1 = var4;
3953 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
3954 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
3955 CHECK_NEW_array__Array(var5);
3956 var_listnode3 = var5;
3957 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
3958 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
3959 CHECK_NEW_array__Array(var6);
3960 var_listnode5 = var6;
3961 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
3962 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
3963 CHECK_NEW_array__Array(var7);
3964 var_listnode10 = var7;
3965 var_pmoduledeclnode2 = var_nodearraylist1;
3966 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
3967 cltype = type_nullable_parser_nodes__AModuledecl.color;
3968 idtype = type_nullable_parser_nodes__AModuledecl.id;
3969 if(var_pmoduledeclnode2 == NULL) {
3970 var8 = 1;
3971 } else {
3972 if(cltype >= var_pmoduledeclnode2->type->table_size) {
3973 var8 = 0;
3974 } else {
3975 var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
3976 }
3977 }
3978 if (!var8) {
3979 fprintf(stderr, "Runtime error: %s", "Assert failed");
3980 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2703);
3981 exit(1);
3982 }
3983 var_listnode4 = var_nodearraylist2;
3984 /* <var_listnode4:nullable Object> isa Array[Object] */
3985 cltype10 = type_array__Arraykernel__Object.color;
3986 idtype11 = type_array__Arraykernel__Object.id;
3987 if(var_listnode4 == NULL) {
3988 var9 = 0;
3989 } else {
3990 if(cltype10 >= var_listnode4->type->table_size) {
3991 var9 = 0;
3992 } else {
3993 var9 = var_listnode4->type->type_table[cltype10] == idtype11;
3994 }
3995 }
3996 if (!var9) {
3997 fprintf(stderr, "Runtime error: %s", "Assert failed");
3998 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2705);
3999 exit(1);
4000 }
4001 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction29>*/;
4002 var_listnode5 = var12;
4003 var_listnode6 = var_nodearraylist3;
4004 /* <var_listnode6:nullable Object> isa Array[Object] */
4005 cltype14 = type_array__Arraykernel__Object.color;
4006 idtype15 = type_array__Arraykernel__Object.id;
4007 if(var_listnode6 == NULL) {
4008 var13 = 0;
4009 } else {
4010 if(cltype14 >= var_listnode6->type->table_size) {
4011 var13 = 0;
4012 } else {
4013 var13 = var_listnode6->type->type_table[cltype14] == idtype15;
4014 }
4015 }
4016 if (!var13) {
4017 fprintf(stderr, "Runtime error: %s", "Assert failed");
4018 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2708);
4019 exit(1);
4020 }
4021 var16 = NEW_array__Array(&type_array__Arraykernel__Object);
4022 ((void (*)(val*))(var16->class->vft[COLOR_array__Array__init]))(var16) /* init on <var16:Array[Object]>*/;
4023 CHECK_NEW_array__Array(var16);
4024 var_listnode9 = var16;
4025 var_listnode8 = var_nodearraylist4;
4026 /* <var_listnode8:nullable Object> isa Array[Object] */
4027 cltype18 = type_array__Arraykernel__Object.color;
4028 idtype19 = type_array__Arraykernel__Object.id;
4029 if(var_listnode8 == NULL) {
4030 var17 = 0;
4031 } else {
4032 if(cltype18 >= var_listnode8->type->table_size) {
4033 var17 = 0;
4034 } else {
4035 var17 = var_listnode8->type->type_table[cltype18] == idtype19;
4036 }
4037 }
4038 if (!var17) {
4039 fprintf(stderr, "Runtime error: %s", "Assert failed");
4040 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2711);
4041 exit(1);
4042 }
4043 var20 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction29>*/;
4044 var_listnode9 = var20;
4045 var21 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
4046 ((void (*)(val*, val*))(var21->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var21, var_listnode9) /* init_atopclassdef on <var21:ATopClassdef>*/;
4047 CHECK_NEW_parser_nodes__ATopClassdef(var21);
4048 var_pclassdefnode7 = var21;
4049 var22 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode6) /* concat on <self:ReduceAction29>*/;
4050 var_listnode10 = var22;
4051 var23 = NULL;
4052 if (var_pclassdefnode7 == NULL) {
4053 var24 = 0; /* is null */
4054 } else {
4055 var24 = 1; /* arg is null and recv is not */
4056 }
4057 if (var24){
4058 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode7) /* add on <var_listnode10:Array[Object]>*/;
4059 } else {
4060 }
4061 var25 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
4062 ((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>*/;
4063 CHECK_NEW_parser_nodes__AModule(var25);
4064 var_pmodulenode1 = var25;
4065 var_node_list = var_pmodulenode1;
4066 var26 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction29> */
4067 var27 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var26) /* go_to on <var_p:Parser>*/;
4068 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var27, var_node_list) /* push on <var_p:Parser>*/;
4069 RET_LABEL:;
4070 }
4071 /* method parser#ReduceAction29#action for (self: Object, Parser) */
4072 void VIRTUAL_parser__ReduceAction29__action(val* self, val* p0) {
4073 parser__ReduceAction29__action(self, p0);
4074 RET_LABEL:;
4075 }
4076 /* method parser#ReduceAction30#action for (self: ReduceAction30, Parser) */
4077 void parser__ReduceAction30__action(val* self, val* p0) {
4078 val* var_p /* var p: Parser */;
4079 val* var /* : null */;
4080 val* var_node_list /* var node_list: nullable Object */;
4081 val* var1 /* : nullable Object */;
4082 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4083 val* var2 /* : nullable Object */;
4084 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4085 val* var3 /* : nullable Object */;
4086 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4087 val* var4 /* : nullable Object */;
4088 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4089 val* var5 /* : Array[Object] */;
4090 val* var_listnode4 /* var listnode4: Array[Object] */;
4091 val* var6 /* : Array[Object] */;
4092 val* var_listnode6 /* var listnode6: Array[Object] */;
4093 val* var7 /* : Array[Object] */;
4094 val* var_listnode11 /* var listnode11: Array[Object] */;
4095 val* var_listnode3 /* var listnode3: nullable Object */;
4096 short int var8 /* : Bool */;
4097 int cltype;
4098 int idtype;
4099 val* var9 /* : Array[Object] */;
4100 val* var_listnode5 /* var listnode5: nullable Object */;
4101 short int var10 /* : Bool */;
4102 int cltype11;
4103 int idtype12;
4104 val* var13 /* : Array[Object] */;
4105 val* var_listnode7 /* var listnode7: nullable Object */;
4106 short int var14 /* : Bool */;
4107 int cltype15;
4108 int idtype16;
4109 val* var17 /* : Array[Object] */;
4110 val* var_listnode10 /* var listnode10: Array[Object] */;
4111 val* var_listnode9 /* var listnode9: nullable Object */;
4112 short int var18 /* : Bool */;
4113 int cltype19;
4114 int idtype20;
4115 val* var21 /* : Array[Object] */;
4116 val* var22 /* : ATopClassdef */;
4117 val* var_pclassdefnode8 /* var pclassdefnode8: nullable ATopClassdef */;
4118 val* var23 /* : Array[Object] */;
4119 val* var24 /* : null */;
4120 short int var25 /* : Bool */;
4121 val* var26 /* : AModule */;
4122 val* var27 /* : null */;
4123 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
4124 long var28 /* : Int */;
4125 long var29 /* : Int */;
4126 var_p = p0;
4127 var = NULL;
4128 var_node_list = var;
4129 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4130 var_nodearraylist4 = var1;
4131 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4132 var_nodearraylist3 = var2;
4133 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4134 var_nodearraylist2 = var3;
4135 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4136 var_nodearraylist1 = var4;
4137 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
4138 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
4139 CHECK_NEW_array__Array(var5);
4140 var_listnode4 = var5;
4141 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
4142 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
4143 CHECK_NEW_array__Array(var6);
4144 var_listnode6 = var6;
4145 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
4146 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
4147 CHECK_NEW_array__Array(var7);
4148 var_listnode11 = var7;
4149 var_listnode3 = var_nodearraylist1;
4150 /* <var_listnode3:nullable Object> isa Array[Object] */
4151 cltype = type_array__Arraykernel__Object.color;
4152 idtype = type_array__Arraykernel__Object.id;
4153 if(var_listnode3 == NULL) {
4154 var8 = 0;
4155 } else {
4156 if(cltype >= var_listnode3->type->table_size) {
4157 var8 = 0;
4158 } else {
4159 var8 = var_listnode3->type->type_table[cltype] == idtype;
4160 }
4161 }
4162 if (!var8) {
4163 fprintf(stderr, "Runtime error: %s", "Assert failed");
4164 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2743);
4165 exit(1);
4166 }
4167 var9 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction30>*/;
4168 var_listnode4 = var9;
4169 var_listnode5 = var_nodearraylist2;
4170 /* <var_listnode5:nullable Object> isa Array[Object] */
4171 cltype11 = type_array__Arraykernel__Object.color;
4172 idtype12 = type_array__Arraykernel__Object.id;
4173 if(var_listnode5 == NULL) {
4174 var10 = 0;
4175 } else {
4176 if(cltype11 >= var_listnode5->type->table_size) {
4177 var10 = 0;
4178 } else {
4179 var10 = var_listnode5->type->type_table[cltype11] == idtype12;
4180 }
4181 }
4182 if (!var10) {
4183 fprintf(stderr, "Runtime error: %s", "Assert failed");
4184 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2746);
4185 exit(1);
4186 }
4187 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction30>*/;
4188 var_listnode6 = var13;
4189 var_listnode7 = var_nodearraylist3;
4190 /* <var_listnode7:nullable Object> isa Array[Object] */
4191 cltype15 = type_array__Arraykernel__Object.color;
4192 idtype16 = type_array__Arraykernel__Object.id;
4193 if(var_listnode7 == NULL) {
4194 var14 = 0;
4195 } else {
4196 if(cltype15 >= var_listnode7->type->table_size) {
4197 var14 = 0;
4198 } else {
4199 var14 = var_listnode7->type->type_table[cltype15] == idtype16;
4200 }
4201 }
4202 if (!var14) {
4203 fprintf(stderr, "Runtime error: %s", "Assert failed");
4204 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2749);
4205 exit(1);
4206 }
4207 var17 = NEW_array__Array(&type_array__Arraykernel__Object);
4208 ((void (*)(val*))(var17->class->vft[COLOR_array__Array__init]))(var17) /* init on <var17:Array[Object]>*/;
4209 CHECK_NEW_array__Array(var17);
4210 var_listnode10 = var17;
4211 var_listnode9 = var_nodearraylist4;
4212 /* <var_listnode9:nullable Object> isa Array[Object] */
4213 cltype19 = type_array__Arraykernel__Object.color;
4214 idtype20 = type_array__Arraykernel__Object.id;
4215 if(var_listnode9 == NULL) {
4216 var18 = 0;
4217 } else {
4218 if(cltype19 >= var_listnode9->type->table_size) {
4219 var18 = 0;
4220 } else {
4221 var18 = var_listnode9->type->type_table[cltype19] == idtype20;
4222 }
4223 }
4224 if (!var18) {
4225 fprintf(stderr, "Runtime error: %s", "Assert failed");
4226 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2752);
4227 exit(1);
4228 }
4229 var21 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode9) /* concat on <self:ReduceAction30>*/;
4230 var_listnode10 = var21;
4231 var22 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
4232 ((void (*)(val*, val*))(var22->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var22, var_listnode10) /* init_atopclassdef on <var22:ATopClassdef>*/;
4233 CHECK_NEW_parser_nodes__ATopClassdef(var22);
4234 var_pclassdefnode8 = var22;
4235 var23 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode11, var_listnode7) /* concat on <self:ReduceAction30>*/;
4236 var_listnode11 = var23;
4237 var24 = NULL;
4238 if (var_pclassdefnode8 == NULL) {
4239 var25 = 0; /* is null */
4240 } else {
4241 var25 = 1; /* arg is null and recv is not */
4242 }
4243 if (var25){
4244 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode8) /* add on <var_listnode11:Array[Object]>*/;
4245 } else {
4246 }
4247 var26 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
4248 var27 = NULL;
4249 ((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>*/;
4250 CHECK_NEW_parser_nodes__AModule(var26);
4251 var_pmodulenode1 = var26;
4252 var_node_list = var_pmodulenode1;
4253 var28 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction30> */
4254 var29 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var28) /* go_to on <var_p:Parser>*/;
4255 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var29, var_node_list) /* push on <var_p:Parser>*/;
4256 RET_LABEL:;
4257 }
4258 /* method parser#ReduceAction30#action for (self: Object, Parser) */
4259 void VIRTUAL_parser__ReduceAction30__action(val* self, val* p0) {
4260 parser__ReduceAction30__action(self, p0);
4261 RET_LABEL:;
4262 }
4263 /* method parser#ReduceAction31#action for (self: ReduceAction31, Parser) */
4264 void parser__ReduceAction31__action(val* self, val* p0) {
4265 val* var_p /* var p: Parser */;
4266 val* var /* : null */;
4267 val* var_node_list /* var node_list: nullable Object */;
4268 val* var1 /* : nullable Object */;
4269 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4270 val* var2 /* : nullable Object */;
4271 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4272 val* var3 /* : nullable Object */;
4273 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4274 val* var4 /* : nullable Object */;
4275 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4276 val* var5 /* : nullable Object */;
4277 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4278 val* var6 /* : Array[Object] */;
4279 val* var_listnode4 /* var listnode4: Array[Object] */;
4280 val* var7 /* : Array[Object] */;
4281 val* var_listnode6 /* var listnode6: Array[Object] */;
4282 val* var8 /* : Array[Object] */;
4283 val* var_listnode11 /* var listnode11: Array[Object] */;
4284 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
4285 short int var9 /* : Bool */;
4286 int cltype;
4287 int idtype;
4288 val* var_listnode3 /* var listnode3: nullable Object */;
4289 short int var10 /* : Bool */;
4290 int cltype11;
4291 int idtype12;
4292 val* var13 /* : Array[Object] */;
4293 val* var_listnode5 /* var listnode5: nullable Object */;
4294 short int var14 /* : Bool */;
4295 int cltype15;
4296 int idtype16;
4297 val* var17 /* : Array[Object] */;
4298 val* var_listnode7 /* var listnode7: nullable Object */;
4299 short int var18 /* : Bool */;
4300 int cltype19;
4301 int idtype20;
4302 val* var21 /* : Array[Object] */;
4303 val* var_listnode10 /* var listnode10: Array[Object] */;
4304 val* var_listnode9 /* var listnode9: nullable Object */;
4305 short int var22 /* : Bool */;
4306 int cltype23;
4307 int idtype24;
4308 val* var25 /* : Array[Object] */;
4309 val* var26 /* : ATopClassdef */;
4310 val* var_pclassdefnode8 /* var pclassdefnode8: nullable ATopClassdef */;
4311 val* var27 /* : Array[Object] */;
4312 val* var28 /* : null */;
4313 short int var29 /* : Bool */;
4314 val* var30 /* : AModule */;
4315 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
4316 long var31 /* : Int */;
4317 long var32 /* : Int */;
4318 var_p = p0;
4319 var = NULL;
4320 var_node_list = var;
4321 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4322 var_nodearraylist5 = var1;
4323 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4324 var_nodearraylist4 = var2;
4325 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4326 var_nodearraylist3 = var3;
4327 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4328 var_nodearraylist2 = var4;
4329 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4330 var_nodearraylist1 = var5;
4331 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
4332 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
4333 CHECK_NEW_array__Array(var6);
4334 var_listnode4 = var6;
4335 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
4336 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
4337 CHECK_NEW_array__Array(var7);
4338 var_listnode6 = var7;
4339 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
4340 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
4341 CHECK_NEW_array__Array(var8);
4342 var_listnode11 = var8;
4343 var_pmoduledeclnode2 = var_nodearraylist1;
4344 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
4345 cltype = type_nullable_parser_nodes__AModuledecl.color;
4346 idtype = type_nullable_parser_nodes__AModuledecl.id;
4347 if(var_pmoduledeclnode2 == NULL) {
4348 var9 = 1;
4349 } else {
4350 if(cltype >= var_pmoduledeclnode2->type->table_size) {
4351 var9 = 0;
4352 } else {
4353 var9 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
4354 }
4355 }
4356 if (!var9) {
4357 fprintf(stderr, "Runtime error: %s", "Assert failed");
4358 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2785);
4359 exit(1);
4360 }
4361 var_listnode3 = var_nodearraylist2;
4362 /* <var_listnode3:nullable Object> isa Array[Object] */
4363 cltype11 = type_array__Arraykernel__Object.color;
4364 idtype12 = type_array__Arraykernel__Object.id;
4365 if(var_listnode3 == NULL) {
4366 var10 = 0;
4367 } else {
4368 if(cltype11 >= var_listnode3->type->table_size) {
4369 var10 = 0;
4370 } else {
4371 var10 = var_listnode3->type->type_table[cltype11] == idtype12;
4372 }
4373 }
4374 if (!var10) {
4375 fprintf(stderr, "Runtime error: %s", "Assert failed");
4376 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2787);
4377 exit(1);
4378 }
4379 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction31>*/;
4380 var_listnode4 = var13;
4381 var_listnode5 = var_nodearraylist3;
4382 /* <var_listnode5:nullable Object> isa Array[Object] */
4383 cltype15 = type_array__Arraykernel__Object.color;
4384 idtype16 = type_array__Arraykernel__Object.id;
4385 if(var_listnode5 == NULL) {
4386 var14 = 0;
4387 } else {
4388 if(cltype15 >= var_listnode5->type->table_size) {
4389 var14 = 0;
4390 } else {
4391 var14 = var_listnode5->type->type_table[cltype15] == idtype16;
4392 }
4393 }
4394 if (!var14) {
4395 fprintf(stderr, "Runtime error: %s", "Assert failed");
4396 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2790);
4397 exit(1);
4398 }
4399 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction31>*/;
4400 var_listnode6 = var17;
4401 var_listnode7 = var_nodearraylist4;
4402 /* <var_listnode7:nullable Object> isa Array[Object] */
4403 cltype19 = type_array__Arraykernel__Object.color;
4404 idtype20 = type_array__Arraykernel__Object.id;
4405 if(var_listnode7 == NULL) {
4406 var18 = 0;
4407 } else {
4408 if(cltype19 >= var_listnode7->type->table_size) {
4409 var18 = 0;
4410 } else {
4411 var18 = var_listnode7->type->type_table[cltype19] == idtype20;
4412 }
4413 }
4414 if (!var18) {
4415 fprintf(stderr, "Runtime error: %s", "Assert failed");
4416 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2793);
4417 exit(1);
4418 }
4419 var21 = NEW_array__Array(&type_array__Arraykernel__Object);
4420 ((void (*)(val*))(var21->class->vft[COLOR_array__Array__init]))(var21) /* init on <var21:Array[Object]>*/;
4421 CHECK_NEW_array__Array(var21);
4422 var_listnode10 = var21;
4423 var_listnode9 = var_nodearraylist5;
4424 /* <var_listnode9:nullable Object> isa Array[Object] */
4425 cltype23 = type_array__Arraykernel__Object.color;
4426 idtype24 = type_array__Arraykernel__Object.id;
4427 if(var_listnode9 == NULL) {
4428 var22 = 0;
4429 } else {
4430 if(cltype23 >= var_listnode9->type->table_size) {
4431 var22 = 0;
4432 } else {
4433 var22 = var_listnode9->type->type_table[cltype23] == idtype24;
4434 }
4435 }
4436 if (!var22) {
4437 fprintf(stderr, "Runtime error: %s", "Assert failed");
4438 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2796);
4439 exit(1);
4440 }
4441 var25 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode9) /* concat on <self:ReduceAction31>*/;
4442 var_listnode10 = var25;
4443 var26 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
4444 ((void (*)(val*, val*))(var26->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var26, var_listnode10) /* init_atopclassdef on <var26:ATopClassdef>*/;
4445 CHECK_NEW_parser_nodes__ATopClassdef(var26);
4446 var_pclassdefnode8 = var26;
4447 var27 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode11, var_listnode7) /* concat on <self:ReduceAction31>*/;
4448 var_listnode11 = var27;
4449 var28 = NULL;
4450 if (var_pclassdefnode8 == NULL) {
4451 var29 = 0; /* is null */
4452 } else {
4453 var29 = 1; /* arg is null and recv is not */
4454 }
4455 if (var29){
4456 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode8) /* add on <var_listnode11:Array[Object]>*/;
4457 } else {
4458 }
4459 var30 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
4460 ((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>*/;
4461 CHECK_NEW_parser_nodes__AModule(var30);
4462 var_pmodulenode1 = var30;
4463 var_node_list = var_pmodulenode1;
4464 var31 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction31> */
4465 var32 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var31) /* go_to on <var_p:Parser>*/;
4466 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var32, var_node_list) /* push on <var_p:Parser>*/;
4467 RET_LABEL:;
4468 }
4469 /* method parser#ReduceAction31#action for (self: Object, Parser) */
4470 void VIRTUAL_parser__ReduceAction31__action(val* self, val* p0) {
4471 parser__ReduceAction31__action(self, p0);
4472 RET_LABEL:;
4473 }
4474 /* method parser#ReduceAction32#action for (self: ReduceAction32, Parser) */
4475 void parser__ReduceAction32__action(val* self, val* p0) {
4476 val* var_p /* var p: Parser */;
4477 val* var /* : null */;
4478 val* var_node_list /* var node_list: nullable Object */;
4479 val* var1 /* : nullable Object */;
4480 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4481 val* var2 /* : Array[Object] */;
4482 val* var_listnode3 /* var listnode3: Array[Object] */;
4483 val* var3 /* : Array[Object] */;
4484 val* var_listnode4 /* var listnode4: Array[Object] */;
4485 val* var4 /* : Array[Object] */;
4486 val* var_listnode6 /* var listnode6: Array[Object] */;
4487 val* var_pclassdefnode5 /* var pclassdefnode5: nullable Object */;
4488 short int var5 /* : Bool */;
4489 int cltype;
4490 int idtype;
4491 val* var6 /* : null */;
4492 short int var7 /* : Bool */;
4493 val* var8 /* : AModule */;
4494 val* var9 /* : null */;
4495 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
4496 long var10 /* : Int */;
4497 long var11 /* : Int */;
4498 var_p = p0;
4499 var = NULL;
4500 var_node_list = var;
4501 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4502 var_nodearraylist1 = var1;
4503 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
4504 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
4505 CHECK_NEW_array__Array(var2);
4506 var_listnode3 = var2;
4507 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
4508 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
4509 CHECK_NEW_array__Array(var3);
4510 var_listnode4 = var3;
4511 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
4512 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
4513 CHECK_NEW_array__Array(var4);
4514 var_listnode6 = var4;
4515 var_pclassdefnode5 = var_nodearraylist1;
4516 /* <var_pclassdefnode5:nullable Object> isa nullable AClassdef */
4517 cltype = type_nullable_parser_nodes__AClassdef.color;
4518 idtype = type_nullable_parser_nodes__AClassdef.id;
4519 if(var_pclassdefnode5 == NULL) {
4520 var5 = 1;
4521 } else {
4522 if(cltype >= var_pclassdefnode5->type->table_size) {
4523 var5 = 0;
4524 } else {
4525 var5 = var_pclassdefnode5->type->type_table[cltype] == idtype;
4526 }
4527 }
4528 if (!var5) {
4529 fprintf(stderr, "Runtime error: %s", "Assert failed");
4530 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2825);
4531 exit(1);
4532 }
4533 var6 = NULL;
4534 if (var_pclassdefnode5 == NULL) {
4535 var7 = 0; /* is null */
4536 } else {
4537 var7 = 1; /* arg is null and recv is not */
4538 }
4539 if (var7){
4540 ((void (*)(val*, val*))(var_listnode6->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode6, var_pclassdefnode5) /* add on <var_listnode6:Array[Object]>*/;
4541 } else {
4542 }
4543 var8 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
4544 var9 = NULL;
4545 ((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>*/;
4546 CHECK_NEW_parser_nodes__AModule(var8);
4547 var_pmodulenode1 = var8;
4548 var_node_list = var_pmodulenode1;
4549 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction32> */
4550 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
4551 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
4552 RET_LABEL:;
4553 }
4554 /* method parser#ReduceAction32#action for (self: Object, Parser) */
4555 void VIRTUAL_parser__ReduceAction32__action(val* self, val* p0) {
4556 parser__ReduceAction32__action(self, p0);
4557 RET_LABEL:;
4558 }
4559 /* method parser#ReduceAction33#action for (self: ReduceAction33, Parser) */
4560 void parser__ReduceAction33__action(val* self, val* p0) {
4561 val* var_p /* var p: Parser */;
4562 val* var /* : null */;
4563 val* var_node_list /* var node_list: nullable Object */;
4564 val* var1 /* : nullable Object */;
4565 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4566 val* var2 /* : nullable Object */;
4567 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4568 val* var3 /* : Array[Object] */;
4569 val* var_listnode3 /* var listnode3: Array[Object] */;
4570 val* var4 /* : Array[Object] */;
4571 val* var_listnode4 /* var listnode4: Array[Object] */;
4572 val* var5 /* : Array[Object] */;
4573 val* var_listnode6 /* var listnode6: Array[Object] */;
4574 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
4575 short int var6 /* : Bool */;
4576 int cltype;
4577 int idtype;
4578 val* var_pclassdefnode5 /* var pclassdefnode5: nullable Object */;
4579 short int var7 /* : Bool */;
4580 int cltype8;
4581 int idtype9;
4582 val* var10 /* : null */;
4583 short int var11 /* : Bool */;
4584 val* var12 /* : AModule */;
4585 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
4586 long var13 /* : Int */;
4587 long var14 /* : Int */;
4588 var_p = p0;
4589 var = NULL;
4590 var_node_list = var;
4591 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4592 var_nodearraylist2 = var1;
4593 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4594 var_nodearraylist1 = var2;
4595 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
4596 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
4597 CHECK_NEW_array__Array(var3);
4598 var_listnode3 = var3;
4599 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
4600 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
4601 CHECK_NEW_array__Array(var4);
4602 var_listnode4 = var4;
4603 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
4604 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
4605 CHECK_NEW_array__Array(var5);
4606 var_listnode6 = var5;
4607 var_pmoduledeclnode2 = var_nodearraylist1;
4608 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
4609 cltype = type_nullable_parser_nodes__AModuledecl.color;
4610 idtype = type_nullable_parser_nodes__AModuledecl.id;
4611 if(var_pmoduledeclnode2 == NULL) {
4612 var6 = 1;
4613 } else {
4614 if(cltype >= var_pmoduledeclnode2->type->table_size) {
4615 var6 = 0;
4616 } else {
4617 var6 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
4618 }
4619 }
4620 if (!var6) {
4621 fprintf(stderr, "Runtime error: %s", "Assert failed");
4622 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2850);
4623 exit(1);
4624 }
4625 var_pclassdefnode5 = var_nodearraylist2;
4626 /* <var_pclassdefnode5:nullable Object> isa nullable AClassdef */
4627 cltype8 = type_nullable_parser_nodes__AClassdef.color;
4628 idtype9 = type_nullable_parser_nodes__AClassdef.id;
4629 if(var_pclassdefnode5 == NULL) {
4630 var7 = 1;
4631 } else {
4632 if(cltype8 >= var_pclassdefnode5->type->table_size) {
4633 var7 = 0;
4634 } else {
4635 var7 = var_pclassdefnode5->type->type_table[cltype8] == idtype9;
4636 }
4637 }
4638 if (!var7) {
4639 fprintf(stderr, "Runtime error: %s", "Assert failed");
4640 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2852);
4641 exit(1);
4642 }
4643 var10 = NULL;
4644 if (var_pclassdefnode5 == NULL) {
4645 var11 = 0; /* is null */
4646 } else {
4647 var11 = 1; /* arg is null and recv is not */
4648 }
4649 if (var11){
4650 ((void (*)(val*, val*))(var_listnode6->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode6, var_pclassdefnode5) /* add on <var_listnode6:Array[Object]>*/;
4651 } else {
4652 }
4653 var12 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
4654 ((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>*/;
4655 CHECK_NEW_parser_nodes__AModule(var12);
4656 var_pmodulenode1 = var12;
4657 var_node_list = var_pmodulenode1;
4658 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction33> */
4659 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
4660 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
4661 RET_LABEL:;
4662 }
4663 /* method parser#ReduceAction33#action for (self: Object, Parser) */
4664 void VIRTUAL_parser__ReduceAction33__action(val* self, val* p0) {
4665 parser__ReduceAction33__action(self, p0);
4666 RET_LABEL:;
4667 }
4668 /* method parser#ReduceAction34#action for (self: ReduceAction34, Parser) */
4669 void parser__ReduceAction34__action(val* self, val* p0) {
4670 val* var_p /* var p: Parser */;
4671 val* var /* : null */;
4672 val* var_node_list /* var node_list: nullable Object */;
4673 val* var1 /* : nullable Object */;
4674 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4675 val* var2 /* : nullable Object */;
4676 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4677 val* var3 /* : Array[Object] */;
4678 val* var_listnode4 /* var listnode4: Array[Object] */;
4679 val* var4 /* : Array[Object] */;
4680 val* var_listnode5 /* var listnode5: Array[Object] */;
4681 val* var5 /* : Array[Object] */;
4682 val* var_listnode7 /* var listnode7: Array[Object] */;
4683 val* var_listnode3 /* var listnode3: nullable Object */;
4684 short int var6 /* : Bool */;
4685 int cltype;
4686 int idtype;
4687 val* var7 /* : Array[Object] */;
4688 val* var_pclassdefnode6 /* var pclassdefnode6: nullable Object */;
4689 short int var8 /* : Bool */;
4690 int cltype9;
4691 int idtype10;
4692 val* var11 /* : null */;
4693 short int var12 /* : Bool */;
4694 val* var13 /* : AModule */;
4695 val* var14 /* : null */;
4696 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
4697 long var15 /* : Int */;
4698 long var16 /* : Int */;
4699 var_p = p0;
4700 var = NULL;
4701 var_node_list = var;
4702 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4703 var_nodearraylist2 = var1;
4704 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4705 var_nodearraylist1 = var2;
4706 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
4707 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
4708 CHECK_NEW_array__Array(var3);
4709 var_listnode4 = var3;
4710 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
4711 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
4712 CHECK_NEW_array__Array(var4);
4713 var_listnode5 = var4;
4714 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
4715 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
4716 CHECK_NEW_array__Array(var5);
4717 var_listnode7 = var5;
4718 var_listnode3 = var_nodearraylist1;
4719 /* <var_listnode3:nullable Object> isa Array[Object] */
4720 cltype = type_array__Arraykernel__Object.color;
4721 idtype = type_array__Arraykernel__Object.id;
4722 if(var_listnode3 == NULL) {
4723 var6 = 0;
4724 } else {
4725 if(cltype >= var_listnode3->type->table_size) {
4726 var6 = 0;
4727 } else {
4728 var6 = var_listnode3->type->type_table[cltype] == idtype;
4729 }
4730 }
4731 if (!var6) {
4732 fprintf(stderr, "Runtime error: %s", "Assert failed");
4733 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2877);
4734 exit(1);
4735 }
4736 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction34>*/;
4737 var_listnode4 = var7;
4738 var_pclassdefnode6 = var_nodearraylist2;
4739 /* <var_pclassdefnode6:nullable Object> isa nullable AClassdef */
4740 cltype9 = type_nullable_parser_nodes__AClassdef.color;
4741 idtype10 = type_nullable_parser_nodes__AClassdef.id;
4742 if(var_pclassdefnode6 == NULL) {
4743 var8 = 1;
4744 } else {
4745 if(cltype9 >= var_pclassdefnode6->type->table_size) {
4746 var8 = 0;
4747 } else {
4748 var8 = var_pclassdefnode6->type->type_table[cltype9] == idtype10;
4749 }
4750 }
4751 if (!var8) {
4752 fprintf(stderr, "Runtime error: %s", "Assert failed");
4753 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2880);
4754 exit(1);
4755 }
4756 var11 = NULL;
4757 if (var_pclassdefnode6 == NULL) {
4758 var12 = 0; /* is null */
4759 } else {
4760 var12 = 1; /* arg is null and recv is not */
4761 }
4762 if (var12){
4763 ((void (*)(val*, val*))(var_listnode7->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode7, var_pclassdefnode6) /* add on <var_listnode7:Array[Object]>*/;
4764 } else {
4765 }
4766 var13 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
4767 var14 = NULL;
4768 ((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>*/;
4769 CHECK_NEW_parser_nodes__AModule(var13);
4770 var_pmodulenode1 = var13;
4771 var_node_list = var_pmodulenode1;
4772 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction34> */
4773 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
4774 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
4775 RET_LABEL:;
4776 }
4777 /* method parser#ReduceAction34#action for (self: Object, Parser) */
4778 void VIRTUAL_parser__ReduceAction34__action(val* self, val* p0) {
4779 parser__ReduceAction34__action(self, p0);
4780 RET_LABEL:;
4781 }
4782 /* method parser#ReduceAction35#action for (self: ReduceAction35, Parser) */
4783 void parser__ReduceAction35__action(val* self, val* p0) {
4784 val* var_p /* var p: Parser */;
4785 val* var /* : null */;
4786 val* var_node_list /* var node_list: nullable Object */;
4787 val* var1 /* : nullable Object */;
4788 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4789 val* var2 /* : nullable Object */;
4790 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4791 val* var3 /* : nullable Object */;
4792 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4793 val* var4 /* : Array[Object] */;
4794 val* var_listnode4 /* var listnode4: Array[Object] */;
4795 val* var5 /* : Array[Object] */;
4796 val* var_listnode5 /* var listnode5: Array[Object] */;
4797 val* var6 /* : Array[Object] */;
4798 val* var_listnode7 /* var listnode7: Array[Object] */;
4799 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
4800 short int var7 /* : Bool */;
4801 int cltype;
4802 int idtype;
4803 val* var_listnode3 /* var listnode3: nullable Object */;
4804 short int var8 /* : Bool */;
4805 int cltype9;
4806 int idtype10;
4807 val* var11 /* : Array[Object] */;
4808 val* var_pclassdefnode6 /* var pclassdefnode6: nullable Object */;
4809 short int var12 /* : Bool */;
4810 int cltype13;
4811 int idtype14;
4812 val* var15 /* : null */;
4813 short int var16 /* : Bool */;
4814 val* var17 /* : AModule */;
4815 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
4816 long var18 /* : Int */;
4817 long var19 /* : Int */;
4818 var_p = p0;
4819 var = NULL;
4820 var_node_list = var;
4821 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4822 var_nodearraylist3 = var1;
4823 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4824 var_nodearraylist2 = var2;
4825 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4826 var_nodearraylist1 = var3;
4827 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
4828 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
4829 CHECK_NEW_array__Array(var4);
4830 var_listnode4 = var4;
4831 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
4832 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
4833 CHECK_NEW_array__Array(var5);
4834 var_listnode5 = var5;
4835 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
4836 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
4837 CHECK_NEW_array__Array(var6);
4838 var_listnode7 = var6;
4839 var_pmoduledeclnode2 = var_nodearraylist1;
4840 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
4841 cltype = type_nullable_parser_nodes__AModuledecl.color;
4842 idtype = type_nullable_parser_nodes__AModuledecl.id;
4843 if(var_pmoduledeclnode2 == NULL) {
4844 var7 = 1;
4845 } else {
4846 if(cltype >= var_pmoduledeclnode2->type->table_size) {
4847 var7 = 0;
4848 } else {
4849 var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
4850 }
4851 }
4852 if (!var7) {
4853 fprintf(stderr, "Runtime error: %s", "Assert failed");
4854 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2906);
4855 exit(1);
4856 }
4857 var_listnode3 = var_nodearraylist2;
4858 /* <var_listnode3:nullable Object> isa Array[Object] */
4859 cltype9 = type_array__Arraykernel__Object.color;
4860 idtype10 = type_array__Arraykernel__Object.id;
4861 if(var_listnode3 == NULL) {
4862 var8 = 0;
4863 } else {
4864 if(cltype9 >= var_listnode3->type->table_size) {
4865 var8 = 0;
4866 } else {
4867 var8 = var_listnode3->type->type_table[cltype9] == idtype10;
4868 }
4869 }
4870 if (!var8) {
4871 fprintf(stderr, "Runtime error: %s", "Assert failed");
4872 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2908);
4873 exit(1);
4874 }
4875 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction35>*/;
4876 var_listnode4 = var11;
4877 var_pclassdefnode6 = var_nodearraylist3;
4878 /* <var_pclassdefnode6:nullable Object> isa nullable AClassdef */
4879 cltype13 = type_nullable_parser_nodes__AClassdef.color;
4880 idtype14 = type_nullable_parser_nodes__AClassdef.id;
4881 if(var_pclassdefnode6 == NULL) {
4882 var12 = 1;
4883 } else {
4884 if(cltype13 >= var_pclassdefnode6->type->table_size) {
4885 var12 = 0;
4886 } else {
4887 var12 = var_pclassdefnode6->type->type_table[cltype13] == idtype14;
4888 }
4889 }
4890 if (!var12) {
4891 fprintf(stderr, "Runtime error: %s", "Assert failed");
4892 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2911);
4893 exit(1);
4894 }
4895 var15 = NULL;
4896 if (var_pclassdefnode6 == NULL) {
4897 var16 = 0; /* is null */
4898 } else {
4899 var16 = 1; /* arg is null and recv is not */
4900 }
4901 if (var16){
4902 ((void (*)(val*, val*))(var_listnode7->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode7, var_pclassdefnode6) /* add on <var_listnode7:Array[Object]>*/;
4903 } else {
4904 }
4905 var17 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
4906 ((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>*/;
4907 CHECK_NEW_parser_nodes__AModule(var17);
4908 var_pmodulenode1 = var17;
4909 var_node_list = var_pmodulenode1;
4910 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction35> */
4911 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
4912 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
4913 RET_LABEL:;
4914 }
4915 /* method parser#ReduceAction35#action for (self: Object, Parser) */
4916 void VIRTUAL_parser__ReduceAction35__action(val* self, val* p0) {
4917 parser__ReduceAction35__action(self, p0);
4918 RET_LABEL:;
4919 }
4920 /* method parser#ReduceAction36#action for (self: ReduceAction36, Parser) */
4921 void parser__ReduceAction36__action(val* self, val* p0) {
4922 val* var_p /* var p: Parser */;
4923 val* var /* : null */;
4924 val* var_node_list /* var node_list: nullable Object */;
4925 val* var1 /* : nullable Object */;
4926 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4927 val* var2 /* : nullable Object */;
4928 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4929 val* var3 /* : Array[Object] */;
4930 val* var_listnode3 /* var listnode3: Array[Object] */;
4931 val* var4 /* : Array[Object] */;
4932 val* var_listnode5 /* var listnode5: Array[Object] */;
4933 val* var5 /* : Array[Object] */;
4934 val* var_listnode7 /* var listnode7: Array[Object] */;
4935 val* var_listnode4 /* var listnode4: nullable Object */;
4936 short int var6 /* : Bool */;
4937 int cltype;
4938 int idtype;
4939 val* var7 /* : Array[Object] */;
4940 val* var_pclassdefnode6 /* var pclassdefnode6: nullable Object */;
4941 short int var8 /* : Bool */;
4942 int cltype9;
4943 int idtype10;
4944 val* var11 /* : null */;
4945 short int var12 /* : Bool */;
4946 val* var13 /* : AModule */;
4947 val* var14 /* : null */;
4948 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
4949 long var15 /* : Int */;
4950 long var16 /* : Int */;
4951 var_p = p0;
4952 var = NULL;
4953 var_node_list = var;
4954 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4955 var_nodearraylist2 = var1;
4956 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4957 var_nodearraylist1 = var2;
4958 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
4959 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
4960 CHECK_NEW_array__Array(var3);
4961 var_listnode3 = var3;
4962 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
4963 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
4964 CHECK_NEW_array__Array(var4);
4965 var_listnode5 = var4;
4966 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
4967 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
4968 CHECK_NEW_array__Array(var5);
4969 var_listnode7 = var5;
4970 var_listnode4 = var_nodearraylist1;
4971 /* <var_listnode4:nullable Object> isa Array[Object] */
4972 cltype = type_array__Arraykernel__Object.color;
4973 idtype = type_array__Arraykernel__Object.id;
4974 if(var_listnode4 == NULL) {
4975 var6 = 0;
4976 } else {
4977 if(cltype >= var_listnode4->type->table_size) {
4978 var6 = 0;
4979 } else {
4980 var6 = var_listnode4->type->type_table[cltype] == idtype;
4981 }
4982 }
4983 if (!var6) {
4984 fprintf(stderr, "Runtime error: %s", "Assert failed");
4985 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2936);
4986 exit(1);
4987 }
4988 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction36>*/;
4989 var_listnode5 = var7;
4990 var_pclassdefnode6 = var_nodearraylist2;
4991 /* <var_pclassdefnode6:nullable Object> isa nullable AClassdef */
4992 cltype9 = type_nullable_parser_nodes__AClassdef.color;
4993 idtype10 = type_nullable_parser_nodes__AClassdef.id;
4994 if(var_pclassdefnode6 == NULL) {
4995 var8 = 1;
4996 } else {
4997 if(cltype9 >= var_pclassdefnode6->type->table_size) {
4998 var8 = 0;
4999 } else {
5000 var8 = var_pclassdefnode6->type->type_table[cltype9] == idtype10;
5001 }
5002 }
5003 if (!var8) {
5004 fprintf(stderr, "Runtime error: %s", "Assert failed");
5005 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2939);
5006 exit(1);
5007 }
5008 var11 = NULL;
5009 if (var_pclassdefnode6 == NULL) {
5010 var12 = 0; /* is null */
5011 } else {
5012 var12 = 1; /* arg is null and recv is not */
5013 }
5014 if (var12){
5015 ((void (*)(val*, val*))(var_listnode7->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode7, var_pclassdefnode6) /* add on <var_listnode7:Array[Object]>*/;
5016 } else {
5017 }
5018 var13 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
5019 var14 = NULL;
5020 ((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>*/;
5021 CHECK_NEW_parser_nodes__AModule(var13);
5022 var_pmodulenode1 = var13;
5023 var_node_list = var_pmodulenode1;
5024 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction36> */
5025 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
5026 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
5027 RET_LABEL:;
5028 }
5029 /* method parser#ReduceAction36#action for (self: Object, Parser) */
5030 void VIRTUAL_parser__ReduceAction36__action(val* self, val* p0) {
5031 parser__ReduceAction36__action(self, p0);
5032 RET_LABEL:;
5033 }
5034 /* method parser#ReduceAction37#action for (self: ReduceAction37, Parser) */
5035 void parser__ReduceAction37__action(val* self, val* p0) {
5036 val* var_p /* var p: Parser */;
5037 val* var /* : null */;
5038 val* var_node_list /* var node_list: nullable Object */;
5039 val* var1 /* : nullable Object */;
5040 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5041 val* var2 /* : nullable Object */;
5042 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5043 val* var3 /* : nullable Object */;
5044 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5045 val* var4 /* : Array[Object] */;
5046 val* var_listnode3 /* var listnode3: Array[Object] */;
5047 val* var5 /* : Array[Object] */;
5048 val* var_listnode5 /* var listnode5: Array[Object] */;
5049 val* var6 /* : Array[Object] */;
5050 val* var_listnode7 /* var listnode7: Array[Object] */;
5051 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
5052 short int var7 /* : Bool */;
5053 int cltype;
5054 int idtype;
5055 val* var_listnode4 /* var listnode4: nullable Object */;
5056 short int var8 /* : Bool */;
5057 int cltype9;
5058 int idtype10;
5059 val* var11 /* : Array[Object] */;
5060 val* var_pclassdefnode6 /* var pclassdefnode6: nullable Object */;
5061 short int var12 /* : Bool */;
5062 int cltype13;
5063 int idtype14;
5064 val* var15 /* : null */;
5065 short int var16 /* : Bool */;
5066 val* var17 /* : AModule */;
5067 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
5068 long var18 /* : Int */;
5069 long var19 /* : Int */;
5070 var_p = p0;
5071 var = NULL;
5072 var_node_list = var;
5073 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5074 var_nodearraylist3 = var1;
5075 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5076 var_nodearraylist2 = var2;
5077 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5078 var_nodearraylist1 = var3;
5079 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
5080 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
5081 CHECK_NEW_array__Array(var4);
5082 var_listnode3 = var4;
5083 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
5084 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
5085 CHECK_NEW_array__Array(var5);
5086 var_listnode5 = var5;
5087 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
5088 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
5089 CHECK_NEW_array__Array(var6);
5090 var_listnode7 = var6;
5091 var_pmoduledeclnode2 = var_nodearraylist1;
5092 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
5093 cltype = type_nullable_parser_nodes__AModuledecl.color;
5094 idtype = type_nullable_parser_nodes__AModuledecl.id;
5095 if(var_pmoduledeclnode2 == NULL) {
5096 var7 = 1;
5097 } else {
5098 if(cltype >= var_pmoduledeclnode2->type->table_size) {
5099 var7 = 0;
5100 } else {
5101 var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
5102 }
5103 }
5104 if (!var7) {
5105 fprintf(stderr, "Runtime error: %s", "Assert failed");
5106 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2965);
5107 exit(1);
5108 }
5109 var_listnode4 = var_nodearraylist2;
5110 /* <var_listnode4:nullable Object> isa Array[Object] */
5111 cltype9 = type_array__Arraykernel__Object.color;
5112 idtype10 = type_array__Arraykernel__Object.id;
5113 if(var_listnode4 == NULL) {
5114 var8 = 0;
5115 } else {
5116 if(cltype9 >= var_listnode4->type->table_size) {
5117 var8 = 0;
5118 } else {
5119 var8 = var_listnode4->type->type_table[cltype9] == idtype10;
5120 }
5121 }
5122 if (!var8) {
5123 fprintf(stderr, "Runtime error: %s", "Assert failed");
5124 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2967);
5125 exit(1);
5126 }
5127 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction37>*/;
5128 var_listnode5 = var11;
5129 var_pclassdefnode6 = var_nodearraylist3;
5130 /* <var_pclassdefnode6:nullable Object> isa nullable AClassdef */
5131 cltype13 = type_nullable_parser_nodes__AClassdef.color;
5132 idtype14 = type_nullable_parser_nodes__AClassdef.id;
5133 if(var_pclassdefnode6 == NULL) {
5134 var12 = 1;
5135 } else {
5136 if(cltype13 >= var_pclassdefnode6->type->table_size) {
5137 var12 = 0;
5138 } else {
5139 var12 = var_pclassdefnode6->type->type_table[cltype13] == idtype14;
5140 }
5141 }
5142 if (!var12) {
5143 fprintf(stderr, "Runtime error: %s", "Assert failed");
5144 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2970);
5145 exit(1);
5146 }
5147 var15 = NULL;
5148 if (var_pclassdefnode6 == NULL) {
5149 var16 = 0; /* is null */
5150 } else {
5151 var16 = 1; /* arg is null and recv is not */
5152 }
5153 if (var16){
5154 ((void (*)(val*, val*))(var_listnode7->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode7, var_pclassdefnode6) /* add on <var_listnode7:Array[Object]>*/;
5155 } else {
5156 }
5157 var17 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
5158 ((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>*/;
5159 CHECK_NEW_parser_nodes__AModule(var17);
5160 var_pmodulenode1 = var17;
5161 var_node_list = var_pmodulenode1;
5162 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction37> */
5163 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
5164 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
5165 RET_LABEL:;
5166 }
5167 /* method parser#ReduceAction37#action for (self: Object, Parser) */
5168 void VIRTUAL_parser__ReduceAction37__action(val* self, val* p0) {
5169 parser__ReduceAction37__action(self, p0);
5170 RET_LABEL:;
5171 }
5172 /* method parser#ReduceAction38#action for (self: ReduceAction38, Parser) */
5173 void parser__ReduceAction38__action(val* self, val* p0) {
5174 val* var_p /* var p: Parser */;
5175 val* var /* : null */;
5176 val* var_node_list /* var node_list: nullable Object */;
5177 val* var1 /* : nullable Object */;
5178 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5179 val* var2 /* : nullable Object */;
5180 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5181 val* var3 /* : nullable Object */;
5182 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5183 val* var4 /* : Array[Object] */;
5184 val* var_listnode4 /* var listnode4: Array[Object] */;
5185 val* var5 /* : Array[Object] */;
5186 val* var_listnode6 /* var listnode6: Array[Object] */;
5187 val* var6 /* : Array[Object] */;
5188 val* var_listnode8 /* var listnode8: Array[Object] */;
5189 val* var_listnode3 /* var listnode3: nullable Object */;
5190 short int var7 /* : Bool */;
5191 int cltype;
5192 int idtype;
5193 val* var8 /* : Array[Object] */;
5194 val* var_listnode5 /* var listnode5: nullable Object */;
5195 short int var9 /* : Bool */;
5196 int cltype10;
5197 int idtype11;
5198 val* var12 /* : Array[Object] */;
5199 val* var_pclassdefnode7 /* var pclassdefnode7: nullable Object */;
5200 short int var13 /* : Bool */;
5201 int cltype14;
5202 int idtype15;
5203 val* var16 /* : null */;
5204 short int var17 /* : Bool */;
5205 val* var18 /* : AModule */;
5206 val* var19 /* : null */;
5207 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
5208 long var20 /* : Int */;
5209 long var21 /* : Int */;
5210 var_p = p0;
5211 var = NULL;
5212 var_node_list = var;
5213 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5214 var_nodearraylist3 = var1;
5215 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5216 var_nodearraylist2 = var2;
5217 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5218 var_nodearraylist1 = var3;
5219 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
5220 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
5221 CHECK_NEW_array__Array(var4);
5222 var_listnode4 = var4;
5223 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
5224 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
5225 CHECK_NEW_array__Array(var5);
5226 var_listnode6 = var5;
5227 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
5228 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
5229 CHECK_NEW_array__Array(var6);
5230 var_listnode8 = var6;
5231 var_listnode3 = var_nodearraylist1;
5232 /* <var_listnode3:nullable Object> isa Array[Object] */
5233 cltype = type_array__Arraykernel__Object.color;
5234 idtype = type_array__Arraykernel__Object.id;
5235 if(var_listnode3 == NULL) {
5236 var7 = 0;
5237 } else {
5238 if(cltype >= var_listnode3->type->table_size) {
5239 var7 = 0;
5240 } else {
5241 var7 = var_listnode3->type->type_table[cltype] == idtype;
5242 }
5243 }
5244 if (!var7) {
5245 fprintf(stderr, "Runtime error: %s", "Assert failed");
5246 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2996);
5247 exit(1);
5248 }
5249 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction38>*/;
5250 var_listnode4 = var8;
5251 var_listnode5 = var_nodearraylist2;
5252 /* <var_listnode5:nullable Object> isa Array[Object] */
5253 cltype10 = type_array__Arraykernel__Object.color;
5254 idtype11 = type_array__Arraykernel__Object.id;
5255 if(var_listnode5 == NULL) {
5256 var9 = 0;
5257 } else {
5258 if(cltype10 >= var_listnode5->type->table_size) {
5259 var9 = 0;
5260 } else {
5261 var9 = var_listnode5->type->type_table[cltype10] == idtype11;
5262 }
5263 }
5264 if (!var9) {
5265 fprintf(stderr, "Runtime error: %s", "Assert failed");
5266 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 2999);
5267 exit(1);
5268 }
5269 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction38>*/;
5270 var_listnode6 = var12;
5271 var_pclassdefnode7 = var_nodearraylist3;
5272 /* <var_pclassdefnode7:nullable Object> isa nullable AClassdef */
5273 cltype14 = type_nullable_parser_nodes__AClassdef.color;
5274 idtype15 = type_nullable_parser_nodes__AClassdef.id;
5275 if(var_pclassdefnode7 == NULL) {
5276 var13 = 1;
5277 } else {
5278 if(cltype14 >= var_pclassdefnode7->type->table_size) {
5279 var13 = 0;
5280 } else {
5281 var13 = var_pclassdefnode7->type->type_table[cltype14] == idtype15;
5282 }
5283 }
5284 if (!var13) {
5285 fprintf(stderr, "Runtime error: %s", "Assert failed");
5286 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3002);
5287 exit(1);
5288 }
5289 var16 = NULL;
5290 if (var_pclassdefnode7 == NULL) {
5291 var17 = 0; /* is null */
5292 } else {
5293 var17 = 1; /* arg is null and recv is not */
5294 }
5295 if (var17){
5296 ((void (*)(val*, val*))(var_listnode8->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode8, var_pclassdefnode7) /* add on <var_listnode8:Array[Object]>*/;
5297 } else {
5298 }
5299 var18 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
5300 var19 = NULL;
5301 ((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>*/;
5302 CHECK_NEW_parser_nodes__AModule(var18);
5303 var_pmodulenode1 = var18;
5304 var_node_list = var_pmodulenode1;
5305 var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction38> */
5306 var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on <var_p:Parser>*/;
5307 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on <var_p:Parser>*/;
5308 RET_LABEL:;
5309 }
5310 /* method parser#ReduceAction38#action for (self: Object, Parser) */
5311 void VIRTUAL_parser__ReduceAction38__action(val* self, val* p0) {
5312 parser__ReduceAction38__action(self, p0);
5313 RET_LABEL:;
5314 }
5315 /* method parser#ReduceAction39#action for (self: ReduceAction39, Parser) */
5316 void parser__ReduceAction39__action(val* self, val* p0) {
5317 val* var_p /* var p: Parser */;
5318 val* var /* : null */;
5319 val* var_node_list /* var node_list: nullable Object */;
5320 val* var1 /* : nullable Object */;
5321 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5322 val* var2 /* : nullable Object */;
5323 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5324 val* var3 /* : nullable Object */;
5325 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5326 val* var4 /* : nullable Object */;
5327 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5328 val* var5 /* : Array[Object] */;
5329 val* var_listnode4 /* var listnode4: Array[Object] */;
5330 val* var6 /* : Array[Object] */;
5331 val* var_listnode6 /* var listnode6: Array[Object] */;
5332 val* var7 /* : Array[Object] */;
5333 val* var_listnode8 /* var listnode8: Array[Object] */;
5334 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
5335 short int var8 /* : Bool */;
5336 int cltype;
5337 int idtype;
5338 val* var_listnode3 /* var listnode3: nullable Object */;
5339 short int var9 /* : Bool */;
5340 int cltype10;
5341 int idtype11;
5342 val* var12 /* : Array[Object] */;
5343 val* var_listnode5 /* var listnode5: nullable Object */;
5344 short int var13 /* : Bool */;
5345 int cltype14;
5346 int idtype15;
5347 val* var16 /* : Array[Object] */;
5348 val* var_pclassdefnode7 /* var pclassdefnode7: nullable Object */;
5349 short int var17 /* : Bool */;
5350 int cltype18;
5351 int idtype19;
5352 val* var20 /* : null */;
5353 short int var21 /* : Bool */;
5354 val* var22 /* : AModule */;
5355 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
5356 long var23 /* : Int */;
5357 long var24 /* : Int */;
5358 var_p = p0;
5359 var = NULL;
5360 var_node_list = var;
5361 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5362 var_nodearraylist4 = var1;
5363 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5364 var_nodearraylist3 = var2;
5365 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5366 var_nodearraylist2 = var3;
5367 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5368 var_nodearraylist1 = var4;
5369 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
5370 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
5371 CHECK_NEW_array__Array(var5);
5372 var_listnode4 = var5;
5373 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
5374 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
5375 CHECK_NEW_array__Array(var6);
5376 var_listnode6 = var6;
5377 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
5378 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
5379 CHECK_NEW_array__Array(var7);
5380 var_listnode8 = var7;
5381 var_pmoduledeclnode2 = var_nodearraylist1;
5382 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
5383 cltype = type_nullable_parser_nodes__AModuledecl.color;
5384 idtype = type_nullable_parser_nodes__AModuledecl.id;
5385 if(var_pmoduledeclnode2 == NULL) {
5386 var8 = 1;
5387 } else {
5388 if(cltype >= var_pmoduledeclnode2->type->table_size) {
5389 var8 = 0;
5390 } else {
5391 var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
5392 }
5393 }
5394 if (!var8) {
5395 fprintf(stderr, "Runtime error: %s", "Assert failed");
5396 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3029);
5397 exit(1);
5398 }
5399 var_listnode3 = var_nodearraylist2;
5400 /* <var_listnode3:nullable Object> isa Array[Object] */
5401 cltype10 = type_array__Arraykernel__Object.color;
5402 idtype11 = type_array__Arraykernel__Object.id;
5403 if(var_listnode3 == NULL) {
5404 var9 = 0;
5405 } else {
5406 if(cltype10 >= var_listnode3->type->table_size) {
5407 var9 = 0;
5408 } else {
5409 var9 = var_listnode3->type->type_table[cltype10] == idtype11;
5410 }
5411 }
5412 if (!var9) {
5413 fprintf(stderr, "Runtime error: %s", "Assert failed");
5414 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3031);
5415 exit(1);
5416 }
5417 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction39>*/;
5418 var_listnode4 = var12;
5419 var_listnode5 = var_nodearraylist3;
5420 /* <var_listnode5:nullable Object> isa Array[Object] */
5421 cltype14 = type_array__Arraykernel__Object.color;
5422 idtype15 = type_array__Arraykernel__Object.id;
5423 if(var_listnode5 == NULL) {
5424 var13 = 0;
5425 } else {
5426 if(cltype14 >= var_listnode5->type->table_size) {
5427 var13 = 0;
5428 } else {
5429 var13 = var_listnode5->type->type_table[cltype14] == idtype15;
5430 }
5431 }
5432 if (!var13) {
5433 fprintf(stderr, "Runtime error: %s", "Assert failed");
5434 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3034);
5435 exit(1);
5436 }
5437 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction39>*/;
5438 var_listnode6 = var16;
5439 var_pclassdefnode7 = var_nodearraylist4;
5440 /* <var_pclassdefnode7:nullable Object> isa nullable AClassdef */
5441 cltype18 = type_nullable_parser_nodes__AClassdef.color;
5442 idtype19 = type_nullable_parser_nodes__AClassdef.id;
5443 if(var_pclassdefnode7 == NULL) {
5444 var17 = 1;
5445 } else {
5446 if(cltype18 >= var_pclassdefnode7->type->table_size) {
5447 var17 = 0;
5448 } else {
5449 var17 = var_pclassdefnode7->type->type_table[cltype18] == idtype19;
5450 }
5451 }
5452 if (!var17) {
5453 fprintf(stderr, "Runtime error: %s", "Assert failed");
5454 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3037);
5455 exit(1);
5456 }
5457 var20 = NULL;
5458 if (var_pclassdefnode7 == NULL) {
5459 var21 = 0; /* is null */
5460 } else {
5461 var21 = 1; /* arg is null and recv is not */
5462 }
5463 if (var21){
5464 ((void (*)(val*, val*))(var_listnode8->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode8, var_pclassdefnode7) /* add on <var_listnode8:Array[Object]>*/;
5465 } else {
5466 }
5467 var22 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
5468 ((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>*/;
5469 CHECK_NEW_parser_nodes__AModule(var22);
5470 var_pmodulenode1 = var22;
5471 var_node_list = var_pmodulenode1;
5472 var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction39> */
5473 var24 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var23) /* go_to on <var_p:Parser>*/;
5474 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var24, var_node_list) /* push on <var_p:Parser>*/;
5475 RET_LABEL:;
5476 }
5477 /* method parser#ReduceAction39#action for (self: Object, Parser) */
5478 void VIRTUAL_parser__ReduceAction39__action(val* self, val* p0) {
5479 parser__ReduceAction39__action(self, p0);
5480 RET_LABEL:;
5481 }
5482 /* method parser#ReduceAction40#action for (self: ReduceAction40, Parser) */
5483 void parser__ReduceAction40__action(val* self, val* p0) {
5484 val* var_p /* var p: Parser */;
5485 val* var /* : null */;
5486 val* var_node_list /* var node_list: nullable Object */;
5487 val* var1 /* : nullable Object */;
5488 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5489 val* var2 /* : nullable Object */;
5490 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5491 val* var3 /* : Array[Object] */;
5492 val* var_listnode3 /* var listnode3: Array[Object] */;
5493 val* var4 /* : Array[Object] */;
5494 val* var_listnode4 /* var listnode4: Array[Object] */;
5495 val* var5 /* : Array[Object] */;
5496 val* var_listnode7 /* var listnode7: Array[Object] */;
5497 val* var_listnode5 /* var listnode5: nullable Object */;
5498 short int var6 /* : Bool */;
5499 int cltype;
5500 int idtype;
5501 val* var_pclassdefnode6 /* var pclassdefnode6: nullable Object */;
5502 short int var7 /* : Bool */;
5503 int cltype8;
5504 int idtype9;
5505 val* var10 /* : Array[Object] */;
5506 val* var11 /* : null */;
5507 short int var12 /* : Bool */;
5508 val* var13 /* : AModule */;
5509 val* var14 /* : null */;
5510 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
5511 long var15 /* : Int */;
5512 long var16 /* : Int */;
5513 var_p = p0;
5514 var = NULL;
5515 var_node_list = var;
5516 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5517 var_nodearraylist2 = var1;
5518 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5519 var_nodearraylist1 = var2;
5520 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
5521 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
5522 CHECK_NEW_array__Array(var3);
5523 var_listnode3 = var3;
5524 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
5525 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
5526 CHECK_NEW_array__Array(var4);
5527 var_listnode4 = var4;
5528 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
5529 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
5530 CHECK_NEW_array__Array(var5);
5531 var_listnode7 = var5;
5532 var_listnode5 = var_nodearraylist1;
5533 /* <var_listnode5:nullable Object> isa Array[Object] */
5534 cltype = type_array__Arraykernel__Object.color;
5535 idtype = type_array__Arraykernel__Object.id;
5536 if(var_listnode5 == NULL) {
5537 var6 = 0;
5538 } else {
5539 if(cltype >= var_listnode5->type->table_size) {
5540 var6 = 0;
5541 } else {
5542 var6 = var_listnode5->type->type_table[cltype] == idtype;
5543 }
5544 }
5545 if (!var6) {
5546 fprintf(stderr, "Runtime error: %s", "Assert failed");
5547 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3062);
5548 exit(1);
5549 }
5550 var_pclassdefnode6 = var_nodearraylist2;
5551 /* <var_pclassdefnode6:nullable Object> isa nullable AClassdef */
5552 cltype8 = type_nullable_parser_nodes__AClassdef.color;
5553 idtype9 = type_nullable_parser_nodes__AClassdef.id;
5554 if(var_pclassdefnode6 == NULL) {
5555 var7 = 1;
5556 } else {
5557 if(cltype8 >= var_pclassdefnode6->type->table_size) {
5558 var7 = 0;
5559 } else {
5560 var7 = var_pclassdefnode6->type->type_table[cltype8] == idtype9;
5561 }
5562 }
5563 if (!var7) {
5564 fprintf(stderr, "Runtime error: %s", "Assert failed");
5565 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3064);
5566 exit(1);
5567 }
5568 var10 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode5) /* concat on <self:ReduceAction40>*/;
5569 var_listnode7 = var10;
5570 var11 = NULL;
5571 if (var_pclassdefnode6 == NULL) {
5572 var12 = 0; /* is null */
5573 } else {
5574 var12 = 1; /* arg is null and recv is not */
5575 }
5576 if (var12){
5577 ((void (*)(val*, val*))(var_listnode7->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode7, var_pclassdefnode6) /* add on <var_listnode7:Array[Object]>*/;
5578 } else {
5579 }
5580 var13 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
5581 var14 = NULL;
5582 ((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>*/;
5583 CHECK_NEW_parser_nodes__AModule(var13);
5584 var_pmodulenode1 = var13;
5585 var_node_list = var_pmodulenode1;
5586 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction40> */
5587 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
5588 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
5589 RET_LABEL:;
5590 }
5591 /* method parser#ReduceAction40#action for (self: Object, Parser) */
5592 void VIRTUAL_parser__ReduceAction40__action(val* self, val* p0) {
5593 parser__ReduceAction40__action(self, p0);
5594 RET_LABEL:;
5595 }
5596 /* method parser#ReduceAction41#action for (self: ReduceAction41, Parser) */
5597 void parser__ReduceAction41__action(val* self, val* p0) {
5598 val* var_p /* var p: Parser */;
5599 val* var /* : null */;
5600 val* var_node_list /* var node_list: nullable Object */;
5601 val* var1 /* : nullable Object */;
5602 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5603 val* var2 /* : nullable Object */;
5604 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5605 val* var3 /* : nullable Object */;
5606 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5607 val* var4 /* : Array[Object] */;
5608 val* var_listnode3 /* var listnode3: Array[Object] */;
5609 val* var5 /* : Array[Object] */;
5610 val* var_listnode4 /* var listnode4: Array[Object] */;
5611 val* var6 /* : Array[Object] */;
5612 val* var_listnode7 /* var listnode7: Array[Object] */;
5613 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
5614 short int var7 /* : Bool */;
5615 int cltype;
5616 int idtype;
5617 val* var_listnode5 /* var listnode5: nullable Object */;
5618 short int var8 /* : Bool */;
5619 int cltype9;
5620 int idtype10;
5621 val* var_pclassdefnode6 /* var pclassdefnode6: nullable Object */;
5622 short int var11 /* : Bool */;
5623 int cltype12;
5624 int idtype13;
5625 val* var14 /* : Array[Object] */;
5626 val* var15 /* : null */;
5627 short int var16 /* : Bool */;
5628 val* var17 /* : AModule */;
5629 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
5630 long var18 /* : Int */;
5631 long var19 /* : Int */;
5632 var_p = p0;
5633 var = NULL;
5634 var_node_list = var;
5635 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5636 var_nodearraylist3 = var1;
5637 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5638 var_nodearraylist2 = var2;
5639 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5640 var_nodearraylist1 = var3;
5641 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
5642 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
5643 CHECK_NEW_array__Array(var4);
5644 var_listnode3 = var4;
5645 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
5646 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
5647 CHECK_NEW_array__Array(var5);
5648 var_listnode4 = var5;
5649 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
5650 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
5651 CHECK_NEW_array__Array(var6);
5652 var_listnode7 = var6;
5653 var_pmoduledeclnode2 = var_nodearraylist1;
5654 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
5655 cltype = type_nullable_parser_nodes__AModuledecl.color;
5656 idtype = type_nullable_parser_nodes__AModuledecl.id;
5657 if(var_pmoduledeclnode2 == NULL) {
5658 var7 = 1;
5659 } else {
5660 if(cltype >= var_pmoduledeclnode2->type->table_size) {
5661 var7 = 0;
5662 } else {
5663 var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
5664 }
5665 }
5666 if (!var7) {
5667 fprintf(stderr, "Runtime error: %s", "Assert failed");
5668 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3091);
5669 exit(1);
5670 }
5671 var_listnode5 = var_nodearraylist2;
5672 /* <var_listnode5:nullable Object> isa Array[Object] */
5673 cltype9 = type_array__Arraykernel__Object.color;
5674 idtype10 = type_array__Arraykernel__Object.id;
5675 if(var_listnode5 == NULL) {
5676 var8 = 0;
5677 } else {
5678 if(cltype9 >= var_listnode5->type->table_size) {
5679 var8 = 0;
5680 } else {
5681 var8 = var_listnode5->type->type_table[cltype9] == idtype10;
5682 }
5683 }
5684 if (!var8) {
5685 fprintf(stderr, "Runtime error: %s", "Assert failed");
5686 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3093);
5687 exit(1);
5688 }
5689 var_pclassdefnode6 = var_nodearraylist3;
5690 /* <var_pclassdefnode6:nullable Object> isa nullable AClassdef */
5691 cltype12 = type_nullable_parser_nodes__AClassdef.color;
5692 idtype13 = type_nullable_parser_nodes__AClassdef.id;
5693 if(var_pclassdefnode6 == NULL) {
5694 var11 = 1;
5695 } else {
5696 if(cltype12 >= var_pclassdefnode6->type->table_size) {
5697 var11 = 0;
5698 } else {
5699 var11 = var_pclassdefnode6->type->type_table[cltype12] == idtype13;
5700 }
5701 }
5702 if (!var11) {
5703 fprintf(stderr, "Runtime error: %s", "Assert failed");
5704 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3095);
5705 exit(1);
5706 }
5707 var14 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode5) /* concat on <self:ReduceAction41>*/;
5708 var_listnode7 = var14;
5709 var15 = NULL;
5710 if (var_pclassdefnode6 == NULL) {
5711 var16 = 0; /* is null */
5712 } else {
5713 var16 = 1; /* arg is null and recv is not */
5714 }
5715 if (var16){
5716 ((void (*)(val*, val*))(var_listnode7->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode7, var_pclassdefnode6) /* add on <var_listnode7:Array[Object]>*/;
5717 } else {
5718 }
5719 var17 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
5720 ((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>*/;
5721 CHECK_NEW_parser_nodes__AModule(var17);
5722 var_pmodulenode1 = var17;
5723 var_node_list = var_pmodulenode1;
5724 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction41> */
5725 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
5726 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
5727 RET_LABEL:;
5728 }
5729 /* method parser#ReduceAction41#action for (self: Object, Parser) */
5730 void VIRTUAL_parser__ReduceAction41__action(val* self, val* p0) {
5731 parser__ReduceAction41__action(self, p0);
5732 RET_LABEL:;
5733 }
5734 /* method parser#ReduceAction42#action for (self: ReduceAction42, Parser) */
5735 void parser__ReduceAction42__action(val* self, val* p0) {
5736 val* var_p /* var p: Parser */;
5737 val* var /* : null */;
5738 val* var_node_list /* var node_list: nullable Object */;
5739 val* var1 /* : nullable Object */;
5740 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5741 val* var2 /* : nullable Object */;
5742 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5743 val* var3 /* : nullable Object */;
5744 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5745 val* var4 /* : Array[Object] */;
5746 val* var_listnode4 /* var listnode4: Array[Object] */;
5747 val* var5 /* : Array[Object] */;
5748 val* var_listnode5 /* var listnode5: Array[Object] */;
5749 val* var6 /* : Array[Object] */;
5750 val* var_listnode8 /* var listnode8: Array[Object] */;
5751 val* var_listnode3 /* var listnode3: nullable Object */;
5752 short int var7 /* : Bool */;
5753 int cltype;
5754 int idtype;
5755 val* var8 /* : Array[Object] */;
5756 val* var_listnode6 /* var listnode6: nullable Object */;
5757 short int var9 /* : Bool */;
5758 int cltype10;
5759 int idtype11;
5760 val* var_pclassdefnode7 /* var pclassdefnode7: nullable Object */;
5761 short int var12 /* : Bool */;
5762 int cltype13;
5763 int idtype14;
5764 val* var15 /* : Array[Object] */;
5765 val* var16 /* : null */;
5766 short int var17 /* : Bool */;
5767 val* var18 /* : AModule */;
5768 val* var19 /* : null */;
5769 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
5770 long var20 /* : Int */;
5771 long var21 /* : Int */;
5772 var_p = p0;
5773 var = NULL;
5774 var_node_list = var;
5775 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5776 var_nodearraylist3 = var1;
5777 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5778 var_nodearraylist2 = var2;
5779 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5780 var_nodearraylist1 = var3;
5781 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
5782 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
5783 CHECK_NEW_array__Array(var4);
5784 var_listnode4 = var4;
5785 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
5786 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
5787 CHECK_NEW_array__Array(var5);
5788 var_listnode5 = var5;
5789 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
5790 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
5791 CHECK_NEW_array__Array(var6);
5792 var_listnode8 = var6;
5793 var_listnode3 = var_nodearraylist1;
5794 /* <var_listnode3:nullable Object> isa Array[Object] */
5795 cltype = type_array__Arraykernel__Object.color;
5796 idtype = type_array__Arraykernel__Object.id;
5797 if(var_listnode3 == NULL) {
5798 var7 = 0;
5799 } else {
5800 if(cltype >= var_listnode3->type->table_size) {
5801 var7 = 0;
5802 } else {
5803 var7 = var_listnode3->type->type_table[cltype] == idtype;
5804 }
5805 }
5806 if (!var7) {
5807 fprintf(stderr, "Runtime error: %s", "Assert failed");
5808 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3122);
5809 exit(1);
5810 }
5811 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction42>*/;
5812 var_listnode4 = var8;
5813 var_listnode6 = var_nodearraylist2;
5814 /* <var_listnode6:nullable Object> isa Array[Object] */
5815 cltype10 = type_array__Arraykernel__Object.color;
5816 idtype11 = type_array__Arraykernel__Object.id;
5817 if(var_listnode6 == NULL) {
5818 var9 = 0;
5819 } else {
5820 if(cltype10 >= var_listnode6->type->table_size) {
5821 var9 = 0;
5822 } else {
5823 var9 = var_listnode6->type->type_table[cltype10] == idtype11;
5824 }
5825 }
5826 if (!var9) {
5827 fprintf(stderr, "Runtime error: %s", "Assert failed");
5828 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3125);
5829 exit(1);
5830 }
5831 var_pclassdefnode7 = var_nodearraylist3;
5832 /* <var_pclassdefnode7:nullable Object> isa nullable AClassdef */
5833 cltype13 = type_nullable_parser_nodes__AClassdef.color;
5834 idtype14 = type_nullable_parser_nodes__AClassdef.id;
5835 if(var_pclassdefnode7 == NULL) {
5836 var12 = 1;
5837 } else {
5838 if(cltype13 >= var_pclassdefnode7->type->table_size) {
5839 var12 = 0;
5840 } else {
5841 var12 = var_pclassdefnode7->type->type_table[cltype13] == idtype14;
5842 }
5843 }
5844 if (!var12) {
5845 fprintf(stderr, "Runtime error: %s", "Assert failed");
5846 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3127);
5847 exit(1);
5848 }
5849 var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode6) /* concat on <self:ReduceAction42>*/;
5850 var_listnode8 = var15;
5851 var16 = NULL;
5852 if (var_pclassdefnode7 == NULL) {
5853 var17 = 0; /* is null */
5854 } else {
5855 var17 = 1; /* arg is null and recv is not */
5856 }
5857 if (var17){
5858 ((void (*)(val*, val*))(var_listnode8->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode8, var_pclassdefnode7) /* add on <var_listnode8:Array[Object]>*/;
5859 } else {
5860 }
5861 var18 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
5862 var19 = NULL;
5863 ((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>*/;
5864 CHECK_NEW_parser_nodes__AModule(var18);
5865 var_pmodulenode1 = var18;
5866 var_node_list = var_pmodulenode1;
5867 var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction42> */
5868 var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on <var_p:Parser>*/;
5869 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on <var_p:Parser>*/;
5870 RET_LABEL:;
5871 }
5872 /* method parser#ReduceAction42#action for (self: Object, Parser) */
5873 void VIRTUAL_parser__ReduceAction42__action(val* self, val* p0) {
5874 parser__ReduceAction42__action(self, p0);
5875 RET_LABEL:;
5876 }
5877 /* method parser#ReduceAction43#action for (self: ReduceAction43, Parser) */
5878 void parser__ReduceAction43__action(val* self, val* p0) {
5879 val* var_p /* var p: Parser */;
5880 val* var /* : null */;
5881 val* var_node_list /* var node_list: nullable Object */;
5882 val* var1 /* : nullable Object */;
5883 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5884 val* var2 /* : nullable Object */;
5885 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5886 val* var3 /* : nullable Object */;
5887 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5888 val* var4 /* : nullable Object */;
5889 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5890 val* var5 /* : Array[Object] */;
5891 val* var_listnode4 /* var listnode4: Array[Object] */;
5892 val* var6 /* : Array[Object] */;
5893 val* var_listnode5 /* var listnode5: Array[Object] */;
5894 val* var7 /* : Array[Object] */;
5895 val* var_listnode8 /* var listnode8: Array[Object] */;
5896 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
5897 short int var8 /* : Bool */;
5898 int cltype;
5899 int idtype;
5900 val* var_listnode3 /* var listnode3: nullable Object */;
5901 short int var9 /* : Bool */;
5902 int cltype10;
5903 int idtype11;
5904 val* var12 /* : Array[Object] */;
5905 val* var_listnode6 /* var listnode6: nullable Object */;
5906 short int var13 /* : Bool */;
5907 int cltype14;
5908 int idtype15;
5909 val* var_pclassdefnode7 /* var pclassdefnode7: nullable Object */;
5910 short int var16 /* : Bool */;
5911 int cltype17;
5912 int idtype18;
5913 val* var19 /* : Array[Object] */;
5914 val* var20 /* : null */;
5915 short int var21 /* : Bool */;
5916 val* var22 /* : AModule */;
5917 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
5918 long var23 /* : Int */;
5919 long var24 /* : Int */;
5920 var_p = p0;
5921 var = NULL;
5922 var_node_list = var;
5923 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5924 var_nodearraylist4 = var1;
5925 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5926 var_nodearraylist3 = var2;
5927 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5928 var_nodearraylist2 = var3;
5929 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5930 var_nodearraylist1 = var4;
5931 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
5932 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
5933 CHECK_NEW_array__Array(var5);
5934 var_listnode4 = var5;
5935 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
5936 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
5937 CHECK_NEW_array__Array(var6);
5938 var_listnode5 = var6;
5939 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
5940 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
5941 CHECK_NEW_array__Array(var7);
5942 var_listnode8 = var7;
5943 var_pmoduledeclnode2 = var_nodearraylist1;
5944 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
5945 cltype = type_nullable_parser_nodes__AModuledecl.color;
5946 idtype = type_nullable_parser_nodes__AModuledecl.id;
5947 if(var_pmoduledeclnode2 == NULL) {
5948 var8 = 1;
5949 } else {
5950 if(cltype >= var_pmoduledeclnode2->type->table_size) {
5951 var8 = 0;
5952 } else {
5953 var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
5954 }
5955 }
5956 if (!var8) {
5957 fprintf(stderr, "Runtime error: %s", "Assert failed");
5958 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3155);
5959 exit(1);
5960 }
5961 var_listnode3 = var_nodearraylist2;
5962 /* <var_listnode3:nullable Object> isa Array[Object] */
5963 cltype10 = type_array__Arraykernel__Object.color;
5964 idtype11 = type_array__Arraykernel__Object.id;
5965 if(var_listnode3 == NULL) {
5966 var9 = 0;
5967 } else {
5968 if(cltype10 >= var_listnode3->type->table_size) {
5969 var9 = 0;
5970 } else {
5971 var9 = var_listnode3->type->type_table[cltype10] == idtype11;
5972 }
5973 }
5974 if (!var9) {
5975 fprintf(stderr, "Runtime error: %s", "Assert failed");
5976 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3157);
5977 exit(1);
5978 }
5979 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction43>*/;
5980 var_listnode4 = var12;
5981 var_listnode6 = var_nodearraylist3;
5982 /* <var_listnode6:nullable Object> isa Array[Object] */
5983 cltype14 = type_array__Arraykernel__Object.color;
5984 idtype15 = type_array__Arraykernel__Object.id;
5985 if(var_listnode6 == NULL) {
5986 var13 = 0;
5987 } else {
5988 if(cltype14 >= var_listnode6->type->table_size) {
5989 var13 = 0;
5990 } else {
5991 var13 = var_listnode6->type->type_table[cltype14] == idtype15;
5992 }
5993 }
5994 if (!var13) {
5995 fprintf(stderr, "Runtime error: %s", "Assert failed");
5996 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3160);
5997 exit(1);
5998 }
5999 var_pclassdefnode7 = var_nodearraylist4;
6000 /* <var_pclassdefnode7:nullable Object> isa nullable AClassdef */
6001 cltype17 = type_nullable_parser_nodes__AClassdef.color;
6002 idtype18 = type_nullable_parser_nodes__AClassdef.id;
6003 if(var_pclassdefnode7 == NULL) {
6004 var16 = 1;
6005 } else {
6006 if(cltype17 >= var_pclassdefnode7->type->table_size) {
6007 var16 = 0;
6008 } else {
6009 var16 = var_pclassdefnode7->type->type_table[cltype17] == idtype18;
6010 }
6011 }
6012 if (!var16) {
6013 fprintf(stderr, "Runtime error: %s", "Assert failed");
6014 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3162);
6015 exit(1);
6016 }
6017 var19 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode6) /* concat on <self:ReduceAction43>*/;
6018 var_listnode8 = var19;
6019 var20 = NULL;
6020 if (var_pclassdefnode7 == NULL) {
6021 var21 = 0; /* is null */
6022 } else {
6023 var21 = 1; /* arg is null and recv is not */
6024 }
6025 if (var21){
6026 ((void (*)(val*, val*))(var_listnode8->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode8, var_pclassdefnode7) /* add on <var_listnode8:Array[Object]>*/;
6027 } else {
6028 }
6029 var22 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
6030 ((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>*/;
6031 CHECK_NEW_parser_nodes__AModule(var22);
6032 var_pmodulenode1 = var22;
6033 var_node_list = var_pmodulenode1;
6034 var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction43> */
6035 var24 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var23) /* go_to on <var_p:Parser>*/;
6036 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var24, var_node_list) /* push on <var_p:Parser>*/;
6037 RET_LABEL:;
6038 }
6039 /* method parser#ReduceAction43#action for (self: Object, Parser) */
6040 void VIRTUAL_parser__ReduceAction43__action(val* self, val* p0) {
6041 parser__ReduceAction43__action(self, p0);
6042 RET_LABEL:;
6043 }
6044 /* method parser#ReduceAction44#action for (self: ReduceAction44, Parser) */
6045 void parser__ReduceAction44__action(val* self, val* p0) {
6046 val* var_p /* var p: Parser */;
6047 val* var /* : null */;
6048 val* var_node_list /* var node_list: nullable Object */;
6049 val* var1 /* : nullable Object */;
6050 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6051 val* var2 /* : nullable Object */;
6052 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6053 val* var3 /* : nullable Object */;
6054 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6055 val* var4 /* : Array[Object] */;
6056 val* var_listnode3 /* var listnode3: Array[Object] */;
6057 val* var5 /* : Array[Object] */;
6058 val* var_listnode5 /* var listnode5: Array[Object] */;
6059 val* var6 /* : Array[Object] */;
6060 val* var_listnode8 /* var listnode8: Array[Object] */;
6061 val* var_listnode4 /* var listnode4: nullable Object */;
6062 short int var7 /* : Bool */;
6063 int cltype;
6064 int idtype;
6065 val* var8 /* : Array[Object] */;
6066 val* var_listnode6 /* var listnode6: nullable Object */;
6067 short int var9 /* : Bool */;
6068 int cltype10;
6069 int idtype11;
6070 val* var_pclassdefnode7 /* var pclassdefnode7: nullable Object */;
6071 short int var12 /* : Bool */;
6072 int cltype13;
6073 int idtype14;
6074 val* var15 /* : Array[Object] */;
6075 val* var16 /* : null */;
6076 short int var17 /* : Bool */;
6077 val* var18 /* : AModule */;
6078 val* var19 /* : null */;
6079 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
6080 long var20 /* : Int */;
6081 long var21 /* : Int */;
6082 var_p = p0;
6083 var = NULL;
6084 var_node_list = var;
6085 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6086 var_nodearraylist3 = var1;
6087 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6088 var_nodearraylist2 = var2;
6089 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6090 var_nodearraylist1 = var3;
6091 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
6092 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
6093 CHECK_NEW_array__Array(var4);
6094 var_listnode3 = var4;
6095 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
6096 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
6097 CHECK_NEW_array__Array(var5);
6098 var_listnode5 = var5;
6099 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
6100 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
6101 CHECK_NEW_array__Array(var6);
6102 var_listnode8 = var6;
6103 var_listnode4 = var_nodearraylist1;
6104 /* <var_listnode4:nullable Object> isa Array[Object] */
6105 cltype = type_array__Arraykernel__Object.color;
6106 idtype = type_array__Arraykernel__Object.id;
6107 if(var_listnode4 == NULL) {
6108 var7 = 0;
6109 } else {
6110 if(cltype >= var_listnode4->type->table_size) {
6111 var7 = 0;
6112 } else {
6113 var7 = var_listnode4->type->type_table[cltype] == idtype;
6114 }
6115 }
6116 if (!var7) {
6117 fprintf(stderr, "Runtime error: %s", "Assert failed");
6118 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3189);
6119 exit(1);
6120 }
6121 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction44>*/;
6122 var_listnode5 = var8;
6123 var_listnode6 = var_nodearraylist2;
6124 /* <var_listnode6:nullable Object> isa Array[Object] */
6125 cltype10 = type_array__Arraykernel__Object.color;
6126 idtype11 = type_array__Arraykernel__Object.id;
6127 if(var_listnode6 == NULL) {
6128 var9 = 0;
6129 } else {
6130 if(cltype10 >= var_listnode6->type->table_size) {
6131 var9 = 0;
6132 } else {
6133 var9 = var_listnode6->type->type_table[cltype10] == idtype11;
6134 }
6135 }
6136 if (!var9) {
6137 fprintf(stderr, "Runtime error: %s", "Assert failed");
6138 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3192);
6139 exit(1);
6140 }
6141 var_pclassdefnode7 = var_nodearraylist3;
6142 /* <var_pclassdefnode7:nullable Object> isa nullable AClassdef */
6143 cltype13 = type_nullable_parser_nodes__AClassdef.color;
6144 idtype14 = type_nullable_parser_nodes__AClassdef.id;
6145 if(var_pclassdefnode7 == NULL) {
6146 var12 = 1;
6147 } else {
6148 if(cltype13 >= var_pclassdefnode7->type->table_size) {
6149 var12 = 0;
6150 } else {
6151 var12 = var_pclassdefnode7->type->type_table[cltype13] == idtype14;
6152 }
6153 }
6154 if (!var12) {
6155 fprintf(stderr, "Runtime error: %s", "Assert failed");
6156 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3194);
6157 exit(1);
6158 }
6159 var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode6) /* concat on <self:ReduceAction44>*/;
6160 var_listnode8 = var15;
6161 var16 = NULL;
6162 if (var_pclassdefnode7 == NULL) {
6163 var17 = 0; /* is null */
6164 } else {
6165 var17 = 1; /* arg is null and recv is not */
6166 }
6167 if (var17){
6168 ((void (*)(val*, val*))(var_listnode8->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode8, var_pclassdefnode7) /* add on <var_listnode8:Array[Object]>*/;
6169 } else {
6170 }
6171 var18 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
6172 var19 = NULL;
6173 ((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>*/;
6174 CHECK_NEW_parser_nodes__AModule(var18);
6175 var_pmodulenode1 = var18;
6176 var_node_list = var_pmodulenode1;
6177 var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction44> */
6178 var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on <var_p:Parser>*/;
6179 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on <var_p:Parser>*/;
6180 RET_LABEL:;
6181 }
6182 /* method parser#ReduceAction44#action for (self: Object, Parser) */
6183 void VIRTUAL_parser__ReduceAction44__action(val* self, val* p0) {
6184 parser__ReduceAction44__action(self, p0);
6185 RET_LABEL:;
6186 }
6187 /* method parser#ReduceAction45#action for (self: ReduceAction45, Parser) */
6188 void parser__ReduceAction45__action(val* self, val* p0) {
6189 val* var_p /* var p: Parser */;
6190 val* var /* : null */;
6191 val* var_node_list /* var node_list: nullable Object */;
6192 val* var1 /* : nullable Object */;
6193 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6194 val* var2 /* : nullable Object */;
6195 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6196 val* var3 /* : nullable Object */;
6197 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6198 val* var4 /* : nullable Object */;
6199 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6200 val* var5 /* : Array[Object] */;
6201 val* var_listnode3 /* var listnode3: Array[Object] */;
6202 val* var6 /* : Array[Object] */;
6203 val* var_listnode5 /* var listnode5: Array[Object] */;
6204 val* var7 /* : Array[Object] */;
6205 val* var_listnode8 /* var listnode8: Array[Object] */;
6206 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
6207 short int var8 /* : Bool */;
6208 int cltype;
6209 int idtype;
6210 val* var_listnode4 /* var listnode4: nullable Object */;
6211 short int var9 /* : Bool */;
6212 int cltype10;
6213 int idtype11;
6214 val* var12 /* : Array[Object] */;
6215 val* var_listnode6 /* var listnode6: nullable Object */;
6216 short int var13 /* : Bool */;
6217 int cltype14;
6218 int idtype15;
6219 val* var_pclassdefnode7 /* var pclassdefnode7: nullable Object */;
6220 short int var16 /* : Bool */;
6221 int cltype17;
6222 int idtype18;
6223 val* var19 /* : Array[Object] */;
6224 val* var20 /* : null */;
6225 short int var21 /* : Bool */;
6226 val* var22 /* : AModule */;
6227 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
6228 long var23 /* : Int */;
6229 long var24 /* : Int */;
6230 var_p = p0;
6231 var = NULL;
6232 var_node_list = var;
6233 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6234 var_nodearraylist4 = var1;
6235 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6236 var_nodearraylist3 = var2;
6237 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6238 var_nodearraylist2 = var3;
6239 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6240 var_nodearraylist1 = var4;
6241 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
6242 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
6243 CHECK_NEW_array__Array(var5);
6244 var_listnode3 = var5;
6245 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
6246 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
6247 CHECK_NEW_array__Array(var6);
6248 var_listnode5 = var6;
6249 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
6250 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
6251 CHECK_NEW_array__Array(var7);
6252 var_listnode8 = var7;
6253 var_pmoduledeclnode2 = var_nodearraylist1;
6254 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
6255 cltype = type_nullable_parser_nodes__AModuledecl.color;
6256 idtype = type_nullable_parser_nodes__AModuledecl.id;
6257 if(var_pmoduledeclnode2 == NULL) {
6258 var8 = 1;
6259 } else {
6260 if(cltype >= var_pmoduledeclnode2->type->table_size) {
6261 var8 = 0;
6262 } else {
6263 var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
6264 }
6265 }
6266 if (!var8) {
6267 fprintf(stderr, "Runtime error: %s", "Assert failed");
6268 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3222);
6269 exit(1);
6270 }
6271 var_listnode4 = var_nodearraylist2;
6272 /* <var_listnode4:nullable Object> isa Array[Object] */
6273 cltype10 = type_array__Arraykernel__Object.color;
6274 idtype11 = type_array__Arraykernel__Object.id;
6275 if(var_listnode4 == NULL) {
6276 var9 = 0;
6277 } else {
6278 if(cltype10 >= var_listnode4->type->table_size) {
6279 var9 = 0;
6280 } else {
6281 var9 = var_listnode4->type->type_table[cltype10] == idtype11;
6282 }
6283 }
6284 if (!var9) {
6285 fprintf(stderr, "Runtime error: %s", "Assert failed");
6286 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3224);
6287 exit(1);
6288 }
6289 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction45>*/;
6290 var_listnode5 = var12;
6291 var_listnode6 = var_nodearraylist3;
6292 /* <var_listnode6:nullable Object> isa Array[Object] */
6293 cltype14 = type_array__Arraykernel__Object.color;
6294 idtype15 = type_array__Arraykernel__Object.id;
6295 if(var_listnode6 == NULL) {
6296 var13 = 0;
6297 } else {
6298 if(cltype14 >= var_listnode6->type->table_size) {
6299 var13 = 0;
6300 } else {
6301 var13 = var_listnode6->type->type_table[cltype14] == idtype15;
6302 }
6303 }
6304 if (!var13) {
6305 fprintf(stderr, "Runtime error: %s", "Assert failed");
6306 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3227);
6307 exit(1);
6308 }
6309 var_pclassdefnode7 = var_nodearraylist4;
6310 /* <var_pclassdefnode7:nullable Object> isa nullable AClassdef */
6311 cltype17 = type_nullable_parser_nodes__AClassdef.color;
6312 idtype18 = type_nullable_parser_nodes__AClassdef.id;
6313 if(var_pclassdefnode7 == NULL) {
6314 var16 = 1;
6315 } else {
6316 if(cltype17 >= var_pclassdefnode7->type->table_size) {
6317 var16 = 0;
6318 } else {
6319 var16 = var_pclassdefnode7->type->type_table[cltype17] == idtype18;
6320 }
6321 }
6322 if (!var16) {
6323 fprintf(stderr, "Runtime error: %s", "Assert failed");
6324 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3229);
6325 exit(1);
6326 }
6327 var19 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode6) /* concat on <self:ReduceAction45>*/;
6328 var_listnode8 = var19;
6329 var20 = NULL;
6330 if (var_pclassdefnode7 == NULL) {
6331 var21 = 0; /* is null */
6332 } else {
6333 var21 = 1; /* arg is null and recv is not */
6334 }
6335 if (var21){
6336 ((void (*)(val*, val*))(var_listnode8->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode8, var_pclassdefnode7) /* add on <var_listnode8:Array[Object]>*/;
6337 } else {
6338 }
6339 var22 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
6340 ((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>*/;
6341 CHECK_NEW_parser_nodes__AModule(var22);
6342 var_pmodulenode1 = var22;
6343 var_node_list = var_pmodulenode1;
6344 var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction45> */
6345 var24 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var23) /* go_to on <var_p:Parser>*/;
6346 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var24, var_node_list) /* push on <var_p:Parser>*/;
6347 RET_LABEL:;
6348 }
6349 /* method parser#ReduceAction45#action for (self: Object, Parser) */
6350 void VIRTUAL_parser__ReduceAction45__action(val* self, val* p0) {
6351 parser__ReduceAction45__action(self, p0);
6352 RET_LABEL:;
6353 }
6354 /* method parser#ReduceAction46#action for (self: ReduceAction46, Parser) */
6355 void parser__ReduceAction46__action(val* self, val* p0) {
6356 val* var_p /* var p: Parser */;
6357 val* var /* : null */;
6358 val* var_node_list /* var node_list: nullable Object */;
6359 val* var1 /* : nullable Object */;
6360 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6361 val* var2 /* : nullable Object */;
6362 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6363 val* var3 /* : nullable Object */;
6364 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6365 val* var4 /* : nullable Object */;
6366 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6367 val* var5 /* : Array[Object] */;
6368 val* var_listnode4 /* var listnode4: Array[Object] */;
6369 val* var6 /* : Array[Object] */;
6370 val* var_listnode6 /* var listnode6: Array[Object] */;
6371 val* var7 /* : Array[Object] */;
6372 val* var_listnode9 /* var listnode9: Array[Object] */;
6373 val* var_listnode3 /* var listnode3: nullable Object */;
6374 short int var8 /* : Bool */;
6375 int cltype;
6376 int idtype;
6377 val* var9 /* : Array[Object] */;
6378 val* var_listnode5 /* var listnode5: nullable Object */;
6379 short int var10 /* : Bool */;
6380 int cltype11;
6381 int idtype12;
6382 val* var13 /* : Array[Object] */;
6383 val* var_listnode7 /* var listnode7: nullable Object */;
6384 short int var14 /* : Bool */;
6385 int cltype15;
6386 int idtype16;
6387 val* var_pclassdefnode8 /* var pclassdefnode8: nullable Object */;
6388 short int var17 /* : Bool */;
6389 int cltype18;
6390 int idtype19;
6391 val* var20 /* : Array[Object] */;
6392 val* var21 /* : null */;
6393 short int var22 /* : Bool */;
6394 val* var23 /* : AModule */;
6395 val* var24 /* : null */;
6396 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
6397 long var25 /* : Int */;
6398 long var26 /* : Int */;
6399 var_p = p0;
6400 var = NULL;
6401 var_node_list = var;
6402 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6403 var_nodearraylist4 = var1;
6404 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6405 var_nodearraylist3 = var2;
6406 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6407 var_nodearraylist2 = var3;
6408 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6409 var_nodearraylist1 = var4;
6410 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
6411 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
6412 CHECK_NEW_array__Array(var5);
6413 var_listnode4 = var5;
6414 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
6415 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
6416 CHECK_NEW_array__Array(var6);
6417 var_listnode6 = var6;
6418 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
6419 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
6420 CHECK_NEW_array__Array(var7);
6421 var_listnode9 = var7;
6422 var_listnode3 = var_nodearraylist1;
6423 /* <var_listnode3:nullable Object> isa Array[Object] */
6424 cltype = type_array__Arraykernel__Object.color;
6425 idtype = type_array__Arraykernel__Object.id;
6426 if(var_listnode3 == NULL) {
6427 var8 = 0;
6428 } else {
6429 if(cltype >= var_listnode3->type->table_size) {
6430 var8 = 0;
6431 } else {
6432 var8 = var_listnode3->type->type_table[cltype] == idtype;
6433 }
6434 }
6435 if (!var8) {
6436 fprintf(stderr, "Runtime error: %s", "Assert failed");
6437 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3257);
6438 exit(1);
6439 }
6440 var9 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction46>*/;
6441 var_listnode4 = var9;
6442 var_listnode5 = var_nodearraylist2;
6443 /* <var_listnode5:nullable Object> isa Array[Object] */
6444 cltype11 = type_array__Arraykernel__Object.color;
6445 idtype12 = type_array__Arraykernel__Object.id;
6446 if(var_listnode5 == NULL) {
6447 var10 = 0;
6448 } else {
6449 if(cltype11 >= var_listnode5->type->table_size) {
6450 var10 = 0;
6451 } else {
6452 var10 = var_listnode5->type->type_table[cltype11] == idtype12;
6453 }
6454 }
6455 if (!var10) {
6456 fprintf(stderr, "Runtime error: %s", "Assert failed");
6457 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3260);
6458 exit(1);
6459 }
6460 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction46>*/;
6461 var_listnode6 = var13;
6462 var_listnode7 = var_nodearraylist3;
6463 /* <var_listnode7:nullable Object> isa Array[Object] */
6464 cltype15 = type_array__Arraykernel__Object.color;
6465 idtype16 = type_array__Arraykernel__Object.id;
6466 if(var_listnode7 == NULL) {
6467 var14 = 0;
6468 } else {
6469 if(cltype15 >= var_listnode7->type->table_size) {
6470 var14 = 0;
6471 } else {
6472 var14 = var_listnode7->type->type_table[cltype15] == idtype16;
6473 }
6474 }
6475 if (!var14) {
6476 fprintf(stderr, "Runtime error: %s", "Assert failed");
6477 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3263);
6478 exit(1);
6479 }
6480 var_pclassdefnode8 = var_nodearraylist4;
6481 /* <var_pclassdefnode8:nullable Object> isa nullable AClassdef */
6482 cltype18 = type_nullable_parser_nodes__AClassdef.color;
6483 idtype19 = type_nullable_parser_nodes__AClassdef.id;
6484 if(var_pclassdefnode8 == NULL) {
6485 var17 = 1;
6486 } else {
6487 if(cltype18 >= var_pclassdefnode8->type->table_size) {
6488 var17 = 0;
6489 } else {
6490 var17 = var_pclassdefnode8->type->type_table[cltype18] == idtype19;
6491 }
6492 }
6493 if (!var17) {
6494 fprintf(stderr, "Runtime error: %s", "Assert failed");
6495 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3265);
6496 exit(1);
6497 }
6498 var20 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode7) /* concat on <self:ReduceAction46>*/;
6499 var_listnode9 = var20;
6500 var21 = NULL;
6501 if (var_pclassdefnode8 == NULL) {
6502 var22 = 0; /* is null */
6503 } else {
6504 var22 = 1; /* arg is null and recv is not */
6505 }
6506 if (var22){
6507 ((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode8) /* add on <var_listnode9:Array[Object]>*/;
6508 } else {
6509 }
6510 var23 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
6511 var24 = NULL;
6512 ((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>*/;
6513 CHECK_NEW_parser_nodes__AModule(var23);
6514 var_pmodulenode1 = var23;
6515 var_node_list = var_pmodulenode1;
6516 var25 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction46> */
6517 var26 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var25) /* go_to on <var_p:Parser>*/;
6518 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var26, var_node_list) /* push on <var_p:Parser>*/;
6519 RET_LABEL:;
6520 }
6521 /* method parser#ReduceAction46#action for (self: Object, Parser) */
6522 void VIRTUAL_parser__ReduceAction46__action(val* self, val* p0) {
6523 parser__ReduceAction46__action(self, p0);
6524 RET_LABEL:;
6525 }
6526 /* method parser#ReduceAction47#action for (self: ReduceAction47, Parser) */
6527 void parser__ReduceAction47__action(val* self, val* p0) {
6528 val* var_p /* var p: Parser */;
6529 val* var /* : null */;
6530 val* var_node_list /* var node_list: nullable Object */;
6531 val* var1 /* : nullable Object */;
6532 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6533 val* var2 /* : nullable Object */;
6534 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6535 val* var3 /* : nullable Object */;
6536 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6537 val* var4 /* : nullable Object */;
6538 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6539 val* var5 /* : nullable Object */;
6540 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6541 val* var6 /* : Array[Object] */;
6542 val* var_listnode4 /* var listnode4: Array[Object] */;
6543 val* var7 /* : Array[Object] */;
6544 val* var_listnode6 /* var listnode6: Array[Object] */;
6545 val* var8 /* : Array[Object] */;
6546 val* var_listnode9 /* var listnode9: Array[Object] */;
6547 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
6548 short int var9 /* : Bool */;
6549 int cltype;
6550 int idtype;
6551 val* var_listnode3 /* var listnode3: nullable Object */;
6552 short int var10 /* : Bool */;
6553 int cltype11;
6554 int idtype12;
6555 val* var13 /* : Array[Object] */;
6556 val* var_listnode5 /* var listnode5: nullable Object */;
6557 short int var14 /* : Bool */;
6558 int cltype15;
6559 int idtype16;
6560 val* var17 /* : Array[Object] */;
6561 val* var_listnode7 /* var listnode7: nullable Object */;
6562 short int var18 /* : Bool */;
6563 int cltype19;
6564 int idtype20;
6565 val* var_pclassdefnode8 /* var pclassdefnode8: nullable Object */;
6566 short int var21 /* : Bool */;
6567 int cltype22;
6568 int idtype23;
6569 val* var24 /* : Array[Object] */;
6570 val* var25 /* : null */;
6571 short int var26 /* : Bool */;
6572 val* var27 /* : AModule */;
6573 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
6574 long var28 /* : Int */;
6575 long var29 /* : Int */;
6576 var_p = p0;
6577 var = NULL;
6578 var_node_list = var;
6579 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6580 var_nodearraylist5 = var1;
6581 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6582 var_nodearraylist4 = var2;
6583 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6584 var_nodearraylist3 = var3;
6585 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6586 var_nodearraylist2 = var4;
6587 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6588 var_nodearraylist1 = var5;
6589 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
6590 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
6591 CHECK_NEW_array__Array(var6);
6592 var_listnode4 = var6;
6593 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
6594 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
6595 CHECK_NEW_array__Array(var7);
6596 var_listnode6 = var7;
6597 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
6598 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
6599 CHECK_NEW_array__Array(var8);
6600 var_listnode9 = var8;
6601 var_pmoduledeclnode2 = var_nodearraylist1;
6602 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
6603 cltype = type_nullable_parser_nodes__AModuledecl.color;
6604 idtype = type_nullable_parser_nodes__AModuledecl.id;
6605 if(var_pmoduledeclnode2 == NULL) {
6606 var9 = 1;
6607 } else {
6608 if(cltype >= var_pmoduledeclnode2->type->table_size) {
6609 var9 = 0;
6610 } else {
6611 var9 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
6612 }
6613 }
6614 if (!var9) {
6615 fprintf(stderr, "Runtime error: %s", "Assert failed");
6616 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3294);
6617 exit(1);
6618 }
6619 var_listnode3 = var_nodearraylist2;
6620 /* <var_listnode3:nullable Object> isa Array[Object] */
6621 cltype11 = type_array__Arraykernel__Object.color;
6622 idtype12 = type_array__Arraykernel__Object.id;
6623 if(var_listnode3 == NULL) {
6624 var10 = 0;
6625 } else {
6626 if(cltype11 >= var_listnode3->type->table_size) {
6627 var10 = 0;
6628 } else {
6629 var10 = var_listnode3->type->type_table[cltype11] == idtype12;
6630 }
6631 }
6632 if (!var10) {
6633 fprintf(stderr, "Runtime error: %s", "Assert failed");
6634 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3296);
6635 exit(1);
6636 }
6637 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction47>*/;
6638 var_listnode4 = var13;
6639 var_listnode5 = var_nodearraylist3;
6640 /* <var_listnode5:nullable Object> isa Array[Object] */
6641 cltype15 = type_array__Arraykernel__Object.color;
6642 idtype16 = type_array__Arraykernel__Object.id;
6643 if(var_listnode5 == NULL) {
6644 var14 = 0;
6645 } else {
6646 if(cltype15 >= var_listnode5->type->table_size) {
6647 var14 = 0;
6648 } else {
6649 var14 = var_listnode5->type->type_table[cltype15] == idtype16;
6650 }
6651 }
6652 if (!var14) {
6653 fprintf(stderr, "Runtime error: %s", "Assert failed");
6654 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3299);
6655 exit(1);
6656 }
6657 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction47>*/;
6658 var_listnode6 = var17;
6659 var_listnode7 = var_nodearraylist4;
6660 /* <var_listnode7:nullable Object> isa Array[Object] */
6661 cltype19 = type_array__Arraykernel__Object.color;
6662 idtype20 = type_array__Arraykernel__Object.id;
6663 if(var_listnode7 == NULL) {
6664 var18 = 0;
6665 } else {
6666 if(cltype19 >= var_listnode7->type->table_size) {
6667 var18 = 0;
6668 } else {
6669 var18 = var_listnode7->type->type_table[cltype19] == idtype20;
6670 }
6671 }
6672 if (!var18) {
6673 fprintf(stderr, "Runtime error: %s", "Assert failed");
6674 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3302);
6675 exit(1);
6676 }
6677 var_pclassdefnode8 = var_nodearraylist5;
6678 /* <var_pclassdefnode8:nullable Object> isa nullable AClassdef */
6679 cltype22 = type_nullable_parser_nodes__AClassdef.color;
6680 idtype23 = type_nullable_parser_nodes__AClassdef.id;
6681 if(var_pclassdefnode8 == NULL) {
6682 var21 = 1;
6683 } else {
6684 if(cltype22 >= var_pclassdefnode8->type->table_size) {
6685 var21 = 0;
6686 } else {
6687 var21 = var_pclassdefnode8->type->type_table[cltype22] == idtype23;
6688 }
6689 }
6690 if (!var21) {
6691 fprintf(stderr, "Runtime error: %s", "Assert failed");
6692 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3304);
6693 exit(1);
6694 }
6695 var24 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode7) /* concat on <self:ReduceAction47>*/;
6696 var_listnode9 = var24;
6697 var25 = NULL;
6698 if (var_pclassdefnode8 == NULL) {
6699 var26 = 0; /* is null */
6700 } else {
6701 var26 = 1; /* arg is null and recv is not */
6702 }
6703 if (var26){
6704 ((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode8) /* add on <var_listnode9:Array[Object]>*/;
6705 } else {
6706 }
6707 var27 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
6708 ((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>*/;
6709 CHECK_NEW_parser_nodes__AModule(var27);
6710 var_pmodulenode1 = var27;
6711 var_node_list = var_pmodulenode1;
6712 var28 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction47> */
6713 var29 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var28) /* go_to on <var_p:Parser>*/;
6714 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var29, var_node_list) /* push on <var_p:Parser>*/;
6715 RET_LABEL:;
6716 }
6717 /* method parser#ReduceAction47#action for (self: Object, Parser) */
6718 void VIRTUAL_parser__ReduceAction47__action(val* self, val* p0) {
6719 parser__ReduceAction47__action(self, p0);
6720 RET_LABEL:;
6721 }
6722 /* method parser#ReduceAction48#action for (self: ReduceAction48, Parser) */
6723 void parser__ReduceAction48__action(val* self, val* p0) {
6724 val* var_p /* var p: Parser */;
6725 val* var /* : null */;
6726 val* var_node_list /* var node_list: nullable Object */;
6727 val* var1 /* : nullable Object */;
6728 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6729 val* var2 /* : nullable Object */;
6730 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6731 val* var3 /* : Array[Object] */;
6732 val* var_listnode3 /* var listnode3: Array[Object] */;
6733 val* var4 /* : Array[Object] */;
6734 val* var_listnode4 /* var listnode4: Array[Object] */;
6735 val* var5 /* : Array[Object] */;
6736 val* var_listnode9 /* var listnode9: Array[Object] */;
6737 val* var6 /* : Array[Object] */;
6738 val* var_listnode7 /* var listnode7: Array[Object] */;
6739 val* var_listnode6 /* var listnode6: nullable Object */;
6740 short int var7 /* : Bool */;
6741 int cltype;
6742 int idtype;
6743 val* var8 /* : Array[Object] */;
6744 val* var9 /* : ATopClassdef */;
6745 val* var_pclassdefnode5 /* var pclassdefnode5: nullable ATopClassdef */;
6746 val* var_pclassdefnode8 /* var pclassdefnode8: nullable Object */;
6747 short int var10 /* : Bool */;
6748 int cltype11;
6749 int idtype12;
6750 val* var13 /* : null */;
6751 short int var14 /* : Bool */;
6752 val* var15 /* : null */;
6753 short int var16 /* : Bool */;
6754 val* var17 /* : AModule */;
6755 val* var18 /* : null */;
6756 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
6757 long var19 /* : Int */;
6758 long var20 /* : Int */;
6759 var_p = p0;
6760 var = NULL;
6761 var_node_list = var;
6762 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6763 var_nodearraylist2 = var1;
6764 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6765 var_nodearraylist1 = var2;
6766 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
6767 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
6768 CHECK_NEW_array__Array(var3);
6769 var_listnode3 = var3;
6770 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
6771 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
6772 CHECK_NEW_array__Array(var4);
6773 var_listnode4 = var4;
6774 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
6775 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
6776 CHECK_NEW_array__Array(var5);
6777 var_listnode9 = var5;
6778 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
6779 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
6780 CHECK_NEW_array__Array(var6);
6781 var_listnode7 = var6;
6782 var_listnode6 = var_nodearraylist1;
6783 /* <var_listnode6:nullable Object> isa Array[Object] */
6784 cltype = type_array__Arraykernel__Object.color;
6785 idtype = type_array__Arraykernel__Object.id;
6786 if(var_listnode6 == NULL) {
6787 var7 = 0;
6788 } else {
6789 if(cltype >= var_listnode6->type->table_size) {
6790 var7 = 0;
6791 } else {
6792 var7 = var_listnode6->type->type_table[cltype] == idtype;
6793 }
6794 }
6795 if (!var7) {
6796 fprintf(stderr, "Runtime error: %s", "Assert failed");
6797 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3331);
6798 exit(1);
6799 }
6800 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on <self:ReduceAction48>*/;
6801 var_listnode7 = var8;
6802 var9 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
6803 ((void (*)(val*, val*))(var9->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var9, var_listnode7) /* init_atopclassdef on <var9:ATopClassdef>*/;
6804 CHECK_NEW_parser_nodes__ATopClassdef(var9);
6805 var_pclassdefnode5 = var9;
6806 var_pclassdefnode8 = var_nodearraylist2;
6807 /* <var_pclassdefnode8:nullable Object> isa nullable AClassdef */
6808 cltype11 = type_nullable_parser_nodes__AClassdef.color;
6809 idtype12 = type_nullable_parser_nodes__AClassdef.id;
6810 if(var_pclassdefnode8 == NULL) {
6811 var10 = 1;
6812 } else {
6813 if(cltype11 >= var_pclassdefnode8->type->table_size) {
6814 var10 = 0;
6815 } else {
6816 var10 = var_pclassdefnode8->type->type_table[cltype11] == idtype12;
6817 }
6818 }
6819 if (!var10) {
6820 fprintf(stderr, "Runtime error: %s", "Assert failed");
6821 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3337);
6822 exit(1);
6823 }
6824 var13 = NULL;
6825 if (var_pclassdefnode5 == NULL) {
6826 var14 = 0; /* is null */
6827 } else {
6828 var14 = 1; /* arg is null and recv is not */
6829 }
6830 if (var14){
6831 ((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode5) /* add on <var_listnode9:Array[Object]>*/;
6832 } else {
6833 }
6834 var15 = NULL;
6835 if (var_pclassdefnode8 == NULL) {
6836 var16 = 0; /* is null */
6837 } else {
6838 var16 = 1; /* arg is null and recv is not */
6839 }
6840 if (var16){
6841 ((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode8) /* add on <var_listnode9:Array[Object]>*/;
6842 } else {
6843 }
6844 var17 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
6845 var18 = NULL;
6846 ((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>*/;
6847 CHECK_NEW_parser_nodes__AModule(var17);
6848 var_pmodulenode1 = var17;
6849 var_node_list = var_pmodulenode1;
6850 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction48> */
6851 var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
6852 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
6853 RET_LABEL:;
6854 }
6855 /* method parser#ReduceAction48#action for (self: Object, Parser) */
6856 void VIRTUAL_parser__ReduceAction48__action(val* self, val* p0) {
6857 parser__ReduceAction48__action(self, p0);
6858 RET_LABEL:;
6859 }
6860 /* method parser#ReduceAction49#action for (self: ReduceAction49, Parser) */
6861 void parser__ReduceAction49__action(val* self, val* p0) {
6862 val* var_p /* var p: Parser */;
6863 val* var /* : null */;
6864 val* var_node_list /* var node_list: nullable Object */;
6865 val* var1 /* : nullable Object */;
6866 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6867 val* var2 /* : nullable Object */;
6868 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6869 val* var3 /* : nullable Object */;
6870 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6871 val* var4 /* : Array[Object] */;
6872 val* var_listnode3 /* var listnode3: Array[Object] */;
6873 val* var5 /* : Array[Object] */;
6874 val* var_listnode4 /* var listnode4: Array[Object] */;
6875 val* var6 /* : Array[Object] */;
6876 val* var_listnode9 /* var listnode9: Array[Object] */;
6877 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
6878 short int var7 /* : Bool */;
6879 int cltype;
6880 int idtype;
6881 val* var8 /* : Array[Object] */;
6882 val* var_listnode7 /* var listnode7: Array[Object] */;
6883 val* var_listnode6 /* var listnode6: nullable Object */;
6884 short int var9 /* : Bool */;
6885 int cltype10;
6886 int idtype11;
6887 val* var12 /* : Array[Object] */;
6888 val* var13 /* : ATopClassdef */;
6889 val* var_pclassdefnode5 /* var pclassdefnode5: nullable ATopClassdef */;
6890 val* var_pclassdefnode8 /* var pclassdefnode8: nullable Object */;
6891 short int var14 /* : Bool */;
6892 int cltype15;
6893 int idtype16;
6894 val* var17 /* : null */;
6895 short int var18 /* : Bool */;
6896 val* var19 /* : null */;
6897 short int var20 /* : Bool */;
6898 val* var21 /* : AModule */;
6899 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
6900 long var22 /* : Int */;
6901 long var23 /* : Int */;
6902 var_p = p0;
6903 var = NULL;
6904 var_node_list = var;
6905 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6906 var_nodearraylist3 = var1;
6907 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6908 var_nodearraylist2 = var2;
6909 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6910 var_nodearraylist1 = var3;
6911 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
6912 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
6913 CHECK_NEW_array__Array(var4);
6914 var_listnode3 = var4;
6915 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
6916 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
6917 CHECK_NEW_array__Array(var5);
6918 var_listnode4 = var5;
6919 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
6920 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
6921 CHECK_NEW_array__Array(var6);
6922 var_listnode9 = var6;
6923 var_pmoduledeclnode2 = var_nodearraylist1;
6924 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
6925 cltype = type_nullable_parser_nodes__AModuledecl.color;
6926 idtype = type_nullable_parser_nodes__AModuledecl.id;
6927 if(var_pmoduledeclnode2 == NULL) {
6928 var7 = 1;
6929 } else {
6930 if(cltype >= var_pmoduledeclnode2->type->table_size) {
6931 var7 = 0;
6932 } else {
6933 var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
6934 }
6935 }
6936 if (!var7) {
6937 fprintf(stderr, "Runtime error: %s", "Assert failed");
6938 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3366);
6939 exit(1);
6940 }
6941 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
6942 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
6943 CHECK_NEW_array__Array(var8);
6944 var_listnode7 = var8;
6945 var_listnode6 = var_nodearraylist2;
6946 /* <var_listnode6:nullable Object> isa Array[Object] */
6947 cltype10 = type_array__Arraykernel__Object.color;
6948 idtype11 = type_array__Arraykernel__Object.id;
6949 if(var_listnode6 == NULL) {
6950 var9 = 0;
6951 } else {
6952 if(cltype10 >= var_listnode6->type->table_size) {
6953 var9 = 0;
6954 } else {
6955 var9 = var_listnode6->type->type_table[cltype10] == idtype11;
6956 }
6957 }
6958 if (!var9) {
6959 fprintf(stderr, "Runtime error: %s", "Assert failed");
6960 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3369);
6961 exit(1);
6962 }
6963 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on <self:ReduceAction49>*/;
6964 var_listnode7 = var12;
6965 var13 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
6966 ((void (*)(val*, val*))(var13->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var13, var_listnode7) /* init_atopclassdef on <var13:ATopClassdef>*/;
6967 CHECK_NEW_parser_nodes__ATopClassdef(var13);
6968 var_pclassdefnode5 = var13;
6969 var_pclassdefnode8 = var_nodearraylist3;
6970 /* <var_pclassdefnode8:nullable Object> isa nullable AClassdef */
6971 cltype15 = type_nullable_parser_nodes__AClassdef.color;
6972 idtype16 = type_nullable_parser_nodes__AClassdef.id;
6973 if(var_pclassdefnode8 == NULL) {
6974 var14 = 1;
6975 } else {
6976 if(cltype15 >= var_pclassdefnode8->type->table_size) {
6977 var14 = 0;
6978 } else {
6979 var14 = var_pclassdefnode8->type->type_table[cltype15] == idtype16;
6980 }
6981 }
6982 if (!var14) {
6983 fprintf(stderr, "Runtime error: %s", "Assert failed");
6984 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3375);
6985 exit(1);
6986 }
6987 var17 = NULL;
6988 if (var_pclassdefnode5 == NULL) {
6989 var18 = 0; /* is null */
6990 } else {
6991 var18 = 1; /* arg is null and recv is not */
6992 }
6993 if (var18){
6994 ((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode5) /* add on <var_listnode9:Array[Object]>*/;
6995 } else {
6996 }
6997 var19 = NULL;
6998 if (var_pclassdefnode8 == NULL) {
6999 var20 = 0; /* is null */
7000 } else {
7001 var20 = 1; /* arg is null and recv is not */
7002 }
7003 if (var20){
7004 ((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode8) /* add on <var_listnode9:Array[Object]>*/;
7005 } else {
7006 }
7007 var21 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
7008 ((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>*/;
7009 CHECK_NEW_parser_nodes__AModule(var21);
7010 var_pmodulenode1 = var21;
7011 var_node_list = var_pmodulenode1;
7012 var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction49> */
7013 var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
7014 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
7015 RET_LABEL:;
7016 }
7017 /* method parser#ReduceAction49#action for (self: Object, Parser) */
7018 void VIRTUAL_parser__ReduceAction49__action(val* self, val* p0) {
7019 parser__ReduceAction49__action(self, p0);
7020 RET_LABEL:;
7021 }
7022 /* method parser#ReduceAction50#action for (self: ReduceAction50, Parser) */
7023 void parser__ReduceAction50__action(val* self, val* p0) {
7024 val* var_p /* var p: Parser */;
7025 val* var /* : null */;
7026 val* var_node_list /* var node_list: nullable Object */;
7027 val* var1 /* : nullable Object */;
7028 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7029 val* var2 /* : nullable Object */;
7030 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7031 val* var3 /* : nullable Object */;
7032 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7033 val* var4 /* : Array[Object] */;
7034 val* var_listnode4 /* var listnode4: Array[Object] */;
7035 val* var5 /* : Array[Object] */;
7036 val* var_listnode5 /* var listnode5: Array[Object] */;
7037 val* var6 /* : Array[Object] */;
7038 val* var_listnode10 /* var listnode10: Array[Object] */;
7039 val* var_listnode3 /* var listnode3: nullable Object */;
7040 short int var7 /* : Bool */;
7041 int cltype;
7042 int idtype;
7043 val* var8 /* : Array[Object] */;
7044 val* var9 /* : Array[Object] */;
7045 val* var_listnode8 /* var listnode8: Array[Object] */;
7046 val* var_listnode7 /* var listnode7: nullable Object */;
7047 short int var10 /* : Bool */;
7048 int cltype11;
7049 int idtype12;
7050 val* var13 /* : Array[Object] */;
7051 val* var14 /* : ATopClassdef */;
7052 val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */;
7053 val* var_pclassdefnode9 /* var pclassdefnode9: nullable Object */;
7054 short int var15 /* : Bool */;
7055 int cltype16;
7056 int idtype17;
7057 val* var18 /* : null */;
7058 short int var19 /* : Bool */;
7059 val* var20 /* : null */;
7060 short int var21 /* : Bool */;
7061 val* var22 /* : AModule */;
7062 val* var23 /* : null */;
7063 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
7064 long var24 /* : Int */;
7065 long var25 /* : Int */;
7066 var_p = p0;
7067 var = NULL;
7068 var_node_list = var;
7069 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7070 var_nodearraylist3 = var1;
7071 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7072 var_nodearraylist2 = var2;
7073 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7074 var_nodearraylist1 = var3;
7075 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
7076 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
7077 CHECK_NEW_array__Array(var4);
7078 var_listnode4 = var4;
7079 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
7080 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
7081 CHECK_NEW_array__Array(var5);
7082 var_listnode5 = var5;
7083 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
7084 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
7085 CHECK_NEW_array__Array(var6);
7086 var_listnode10 = var6;
7087 var_listnode3 = var_nodearraylist1;
7088 /* <var_listnode3:nullable Object> isa Array[Object] */
7089 cltype = type_array__Arraykernel__Object.color;
7090 idtype = type_array__Arraykernel__Object.id;
7091 if(var_listnode3 == NULL) {
7092 var7 = 0;
7093 } else {
7094 if(cltype >= var_listnode3->type->table_size) {
7095 var7 = 0;
7096 } else {
7097 var7 = var_listnode3->type->type_table[cltype] == idtype;
7098 }
7099 }
7100 if (!var7) {
7101 fprintf(stderr, "Runtime error: %s", "Assert failed");
7102 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3404);
7103 exit(1);
7104 }
7105 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction50>*/;
7106 var_listnode4 = var8;
7107 var9 = NEW_array__Array(&type_array__Arraykernel__Object);
7108 ((void (*)(val*))(var9->class->vft[COLOR_array__Array__init]))(var9) /* init on <var9:Array[Object]>*/;
7109 CHECK_NEW_array__Array(var9);
7110 var_listnode8 = var9;
7111 var_listnode7 = var_nodearraylist2;
7112 /* <var_listnode7:nullable Object> isa Array[Object] */
7113 cltype11 = type_array__Arraykernel__Object.color;
7114 idtype12 = type_array__Arraykernel__Object.id;
7115 if(var_listnode7 == NULL) {
7116 var10 = 0;
7117 } else {
7118 if(cltype11 >= var_listnode7->type->table_size) {
7119 var10 = 0;
7120 } else {
7121 var10 = var_listnode7->type->type_table[cltype11] == idtype12;
7122 }
7123 }
7124 if (!var10) {
7125 fprintf(stderr, "Runtime error: %s", "Assert failed");
7126 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3408);
7127 exit(1);
7128 }
7129 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction50>*/;
7130 var_listnode8 = var13;
7131 var14 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
7132 ((void (*)(val*, val*))(var14->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var14, var_listnode8) /* init_atopclassdef on <var14:ATopClassdef>*/;
7133 CHECK_NEW_parser_nodes__ATopClassdef(var14);
7134 var_pclassdefnode6 = var14;
7135 var_pclassdefnode9 = var_nodearraylist3;
7136 /* <var_pclassdefnode9:nullable Object> isa nullable AClassdef */
7137 cltype16 = type_nullable_parser_nodes__AClassdef.color;
7138 idtype17 = type_nullable_parser_nodes__AClassdef.id;
7139 if(var_pclassdefnode9 == NULL) {
7140 var15 = 1;
7141 } else {
7142 if(cltype16 >= var_pclassdefnode9->type->table_size) {
7143 var15 = 0;
7144 } else {
7145 var15 = var_pclassdefnode9->type->type_table[cltype16] == idtype17;
7146 }
7147 }
7148 if (!var15) {
7149 fprintf(stderr, "Runtime error: %s", "Assert failed");
7150 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3414);
7151 exit(1);
7152 }
7153 var18 = NULL;
7154 if (var_pclassdefnode6 == NULL) {
7155 var19 = 0; /* is null */
7156 } else {
7157 var19 = 1; /* arg is null and recv is not */
7158 }
7159 if (var19){
7160 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode6) /* add on <var_listnode10:Array[Object]>*/;
7161 } else {
7162 }
7163 var20 = NULL;
7164 if (var_pclassdefnode9 == NULL) {
7165 var21 = 0; /* is null */
7166 } else {
7167 var21 = 1; /* arg is null and recv is not */
7168 }
7169 if (var21){
7170 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode9) /* add on <var_listnode10:Array[Object]>*/;
7171 } else {
7172 }
7173 var22 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
7174 var23 = NULL;
7175 ((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>*/;
7176 CHECK_NEW_parser_nodes__AModule(var22);
7177 var_pmodulenode1 = var22;
7178 var_node_list = var_pmodulenode1;
7179 var24 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction50> */
7180 var25 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var24) /* go_to on <var_p:Parser>*/;
7181 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var25, var_node_list) /* push on <var_p:Parser>*/;
7182 RET_LABEL:;
7183 }
7184 /* method parser#ReduceAction50#action for (self: Object, Parser) */
7185 void VIRTUAL_parser__ReduceAction50__action(val* self, val* p0) {
7186 parser__ReduceAction50__action(self, p0);
7187 RET_LABEL:;
7188 }
7189 /* method parser#ReduceAction51#action for (self: ReduceAction51, Parser) */
7190 void parser__ReduceAction51__action(val* self, val* p0) {
7191 val* var_p /* var p: Parser */;
7192 val* var /* : null */;
7193 val* var_node_list /* var node_list: nullable Object */;
7194 val* var1 /* : nullable Object */;
7195 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7196 val* var2 /* : nullable Object */;
7197 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7198 val* var3 /* : nullable Object */;
7199 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7200 val* var4 /* : nullable Object */;
7201 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7202 val* var5 /* : Array[Object] */;
7203 val* var_listnode4 /* var listnode4: Array[Object] */;
7204 val* var6 /* : Array[Object] */;
7205 val* var_listnode5 /* var listnode5: Array[Object] */;
7206 val* var7 /* : Array[Object] */;
7207 val* var_listnode10 /* var listnode10: Array[Object] */;
7208 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
7209 short int var8 /* : Bool */;
7210 int cltype;
7211 int idtype;
7212 val* var_listnode3 /* var listnode3: nullable Object */;
7213 short int var9 /* : Bool */;
7214 int cltype10;
7215 int idtype11;
7216 val* var12 /* : Array[Object] */;
7217 val* var13 /* : Array[Object] */;
7218 val* var_listnode8 /* var listnode8: Array[Object] */;
7219 val* var_listnode7 /* var listnode7: nullable Object */;
7220 short int var14 /* : Bool */;
7221 int cltype15;
7222 int idtype16;
7223 val* var17 /* : Array[Object] */;
7224 val* var18 /* : ATopClassdef */;
7225 val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */;
7226 val* var_pclassdefnode9 /* var pclassdefnode9: nullable Object */;
7227 short int var19 /* : Bool */;
7228 int cltype20;
7229 int idtype21;
7230 val* var22 /* : null */;
7231 short int var23 /* : Bool */;
7232 val* var24 /* : null */;
7233 short int var25 /* : Bool */;
7234 val* var26 /* : AModule */;
7235 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
7236 long var27 /* : Int */;
7237 long var28 /* : Int */;
7238 var_p = p0;
7239 var = NULL;
7240 var_node_list = var;
7241 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7242 var_nodearraylist4 = var1;
7243 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7244 var_nodearraylist3 = var2;
7245 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7246 var_nodearraylist2 = var3;
7247 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7248 var_nodearraylist1 = var4;
7249 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
7250 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
7251 CHECK_NEW_array__Array(var5);
7252 var_listnode4 = var5;
7253 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
7254 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
7255 CHECK_NEW_array__Array(var6);
7256 var_listnode5 = var6;
7257 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
7258 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
7259 CHECK_NEW_array__Array(var7);
7260 var_listnode10 = var7;
7261 var_pmoduledeclnode2 = var_nodearraylist1;
7262 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
7263 cltype = type_nullable_parser_nodes__AModuledecl.color;
7264 idtype = type_nullable_parser_nodes__AModuledecl.id;
7265 if(var_pmoduledeclnode2 == NULL) {
7266 var8 = 1;
7267 } else {
7268 if(cltype >= var_pmoduledeclnode2->type->table_size) {
7269 var8 = 0;
7270 } else {
7271 var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
7272 }
7273 }
7274 if (!var8) {
7275 fprintf(stderr, "Runtime error: %s", "Assert failed");
7276 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3444);
7277 exit(1);
7278 }
7279 var_listnode3 = var_nodearraylist2;
7280 /* <var_listnode3:nullable Object> isa Array[Object] */
7281 cltype10 = type_array__Arraykernel__Object.color;
7282 idtype11 = type_array__Arraykernel__Object.id;
7283 if(var_listnode3 == NULL) {
7284 var9 = 0;
7285 } else {
7286 if(cltype10 >= var_listnode3->type->table_size) {
7287 var9 = 0;
7288 } else {
7289 var9 = var_listnode3->type->type_table[cltype10] == idtype11;
7290 }
7291 }
7292 if (!var9) {
7293 fprintf(stderr, "Runtime error: %s", "Assert failed");
7294 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3446);
7295 exit(1);
7296 }
7297 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction51>*/;
7298 var_listnode4 = var12;
7299 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
7300 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
7301 CHECK_NEW_array__Array(var13);
7302 var_listnode8 = var13;
7303 var_listnode7 = var_nodearraylist3;
7304 /* <var_listnode7:nullable Object> isa Array[Object] */
7305 cltype15 = type_array__Arraykernel__Object.color;
7306 idtype16 = type_array__Arraykernel__Object.id;
7307 if(var_listnode7 == NULL) {
7308 var14 = 0;
7309 } else {
7310 if(cltype15 >= var_listnode7->type->table_size) {
7311 var14 = 0;
7312 } else {
7313 var14 = var_listnode7->type->type_table[cltype15] == idtype16;
7314 }
7315 }
7316 if (!var14) {
7317 fprintf(stderr, "Runtime error: %s", "Assert failed");
7318 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3450);
7319 exit(1);
7320 }
7321 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction51>*/;
7322 var_listnode8 = var17;
7323 var18 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
7324 ((void (*)(val*, val*))(var18->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var18, var_listnode8) /* init_atopclassdef on <var18:ATopClassdef>*/;
7325 CHECK_NEW_parser_nodes__ATopClassdef(var18);
7326 var_pclassdefnode6 = var18;
7327 var_pclassdefnode9 = var_nodearraylist4;
7328 /* <var_pclassdefnode9:nullable Object> isa nullable AClassdef */
7329 cltype20 = type_nullable_parser_nodes__AClassdef.color;
7330 idtype21 = type_nullable_parser_nodes__AClassdef.id;
7331 if(var_pclassdefnode9 == NULL) {
7332 var19 = 1;
7333 } else {
7334 if(cltype20 >= var_pclassdefnode9->type->table_size) {
7335 var19 = 0;
7336 } else {
7337 var19 = var_pclassdefnode9->type->type_table[cltype20] == idtype21;
7338 }
7339 }
7340 if (!var19) {
7341 fprintf(stderr, "Runtime error: %s", "Assert failed");
7342 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3456);
7343 exit(1);
7344 }
7345 var22 = NULL;
7346 if (var_pclassdefnode6 == NULL) {
7347 var23 = 0; /* is null */
7348 } else {
7349 var23 = 1; /* arg is null and recv is not */
7350 }
7351 if (var23){
7352 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode6) /* add on <var_listnode10:Array[Object]>*/;
7353 } else {
7354 }
7355 var24 = NULL;
7356 if (var_pclassdefnode9 == NULL) {
7357 var25 = 0; /* is null */
7358 } else {
7359 var25 = 1; /* arg is null and recv is not */
7360 }
7361 if (var25){
7362 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode9) /* add on <var_listnode10:Array[Object]>*/;
7363 } else {
7364 }
7365 var26 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
7366 ((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>*/;
7367 CHECK_NEW_parser_nodes__AModule(var26);
7368 var_pmodulenode1 = var26;
7369 var_node_list = var_pmodulenode1;
7370 var27 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction51> */
7371 var28 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var27) /* go_to on <var_p:Parser>*/;
7372 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var28, var_node_list) /* push on <var_p:Parser>*/;
7373 RET_LABEL:;
7374 }
7375 /* method parser#ReduceAction51#action for (self: Object, Parser) */
7376 void VIRTUAL_parser__ReduceAction51__action(val* self, val* p0) {
7377 parser__ReduceAction51__action(self, p0);
7378 RET_LABEL:;
7379 }
7380 /* method parser#ReduceAction52#action for (self: ReduceAction52, Parser) */
7381 void parser__ReduceAction52__action(val* self, val* p0) {
7382 val* var_p /* var p: Parser */;
7383 val* var /* : null */;
7384 val* var_node_list /* var node_list: nullable Object */;
7385 val* var1 /* : nullable Object */;
7386 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7387 val* var2 /* : nullable Object */;
7388 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7389 val* var3 /* : nullable Object */;
7390 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7391 val* var4 /* : Array[Object] */;
7392 val* var_listnode3 /* var listnode3: Array[Object] */;
7393 val* var5 /* : Array[Object] */;
7394 val* var_listnode5 /* var listnode5: Array[Object] */;
7395 val* var6 /* : Array[Object] */;
7396 val* var_listnode10 /* var listnode10: Array[Object] */;
7397 val* var_listnode4 /* var listnode4: nullable Object */;
7398 short int var7 /* : Bool */;
7399 int cltype;
7400 int idtype;
7401 val* var8 /* : Array[Object] */;
7402 val* var9 /* : Array[Object] */;
7403 val* var_listnode8 /* var listnode8: Array[Object] */;
7404 val* var_listnode7 /* var listnode7: nullable Object */;
7405 short int var10 /* : Bool */;
7406 int cltype11;
7407 int idtype12;
7408 val* var13 /* : Array[Object] */;
7409 val* var14 /* : ATopClassdef */;
7410 val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */;
7411 val* var_pclassdefnode9 /* var pclassdefnode9: nullable Object */;
7412 short int var15 /* : Bool */;
7413 int cltype16;
7414 int idtype17;
7415 val* var18 /* : null */;
7416 short int var19 /* : Bool */;
7417 val* var20 /* : null */;
7418 short int var21 /* : Bool */;
7419 val* var22 /* : AModule */;
7420 val* var23 /* : null */;
7421 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
7422 long var24 /* : Int */;
7423 long var25 /* : Int */;
7424 var_p = p0;
7425 var = NULL;
7426 var_node_list = var;
7427 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7428 var_nodearraylist3 = var1;
7429 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7430 var_nodearraylist2 = var2;
7431 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7432 var_nodearraylist1 = var3;
7433 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
7434 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
7435 CHECK_NEW_array__Array(var4);
7436 var_listnode3 = var4;
7437 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
7438 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
7439 CHECK_NEW_array__Array(var5);
7440 var_listnode5 = var5;
7441 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
7442 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
7443 CHECK_NEW_array__Array(var6);
7444 var_listnode10 = var6;
7445 var_listnode4 = var_nodearraylist1;
7446 /* <var_listnode4:nullable Object> isa Array[Object] */
7447 cltype = type_array__Arraykernel__Object.color;
7448 idtype = type_array__Arraykernel__Object.id;
7449 if(var_listnode4 == NULL) {
7450 var7 = 0;
7451 } else {
7452 if(cltype >= var_listnode4->type->table_size) {
7453 var7 = 0;
7454 } else {
7455 var7 = var_listnode4->type->type_table[cltype] == idtype;
7456 }
7457 }
7458 if (!var7) {
7459 fprintf(stderr, "Runtime error: %s", "Assert failed");
7460 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3485);
7461 exit(1);
7462 }
7463 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction52>*/;
7464 var_listnode5 = var8;
7465 var9 = NEW_array__Array(&type_array__Arraykernel__Object);
7466 ((void (*)(val*))(var9->class->vft[COLOR_array__Array__init]))(var9) /* init on <var9:Array[Object]>*/;
7467 CHECK_NEW_array__Array(var9);
7468 var_listnode8 = var9;
7469 var_listnode7 = var_nodearraylist2;
7470 /* <var_listnode7:nullable Object> isa Array[Object] */
7471 cltype11 = type_array__Arraykernel__Object.color;
7472 idtype12 = type_array__Arraykernel__Object.id;
7473 if(var_listnode7 == NULL) {
7474 var10 = 0;
7475 } else {
7476 if(cltype11 >= var_listnode7->type->table_size) {
7477 var10 = 0;
7478 } else {
7479 var10 = var_listnode7->type->type_table[cltype11] == idtype12;
7480 }
7481 }
7482 if (!var10) {
7483 fprintf(stderr, "Runtime error: %s", "Assert failed");
7484 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3489);
7485 exit(1);
7486 }
7487 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction52>*/;
7488 var_listnode8 = var13;
7489 var14 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
7490 ((void (*)(val*, val*))(var14->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var14, var_listnode8) /* init_atopclassdef on <var14:ATopClassdef>*/;
7491 CHECK_NEW_parser_nodes__ATopClassdef(var14);
7492 var_pclassdefnode6 = var14;
7493 var_pclassdefnode9 = var_nodearraylist3;
7494 /* <var_pclassdefnode9:nullable Object> isa nullable AClassdef */
7495 cltype16 = type_nullable_parser_nodes__AClassdef.color;
7496 idtype17 = type_nullable_parser_nodes__AClassdef.id;
7497 if(var_pclassdefnode9 == NULL) {
7498 var15 = 1;
7499 } else {
7500 if(cltype16 >= var_pclassdefnode9->type->table_size) {
7501 var15 = 0;
7502 } else {
7503 var15 = var_pclassdefnode9->type->type_table[cltype16] == idtype17;
7504 }
7505 }
7506 if (!var15) {
7507 fprintf(stderr, "Runtime error: %s", "Assert failed");
7508 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3495);
7509 exit(1);
7510 }
7511 var18 = NULL;
7512 if (var_pclassdefnode6 == NULL) {
7513 var19 = 0; /* is null */
7514 } else {
7515 var19 = 1; /* arg is null and recv is not */
7516 }
7517 if (var19){
7518 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode6) /* add on <var_listnode10:Array[Object]>*/;
7519 } else {
7520 }
7521 var20 = NULL;
7522 if (var_pclassdefnode9 == NULL) {
7523 var21 = 0; /* is null */
7524 } else {
7525 var21 = 1; /* arg is null and recv is not */
7526 }
7527 if (var21){
7528 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode9) /* add on <var_listnode10:Array[Object]>*/;
7529 } else {
7530 }
7531 var22 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
7532 var23 = NULL;
7533 ((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>*/;
7534 CHECK_NEW_parser_nodes__AModule(var22);
7535 var_pmodulenode1 = var22;
7536 var_node_list = var_pmodulenode1;
7537 var24 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction52> */
7538 var25 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var24) /* go_to on <var_p:Parser>*/;
7539 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var25, var_node_list) /* push on <var_p:Parser>*/;
7540 RET_LABEL:;
7541 }
7542 /* method parser#ReduceAction52#action for (self: Object, Parser) */
7543 void VIRTUAL_parser__ReduceAction52__action(val* self, val* p0) {
7544 parser__ReduceAction52__action(self, p0);
7545 RET_LABEL:;
7546 }
7547 /* method parser#ReduceAction53#action for (self: ReduceAction53, Parser) */
7548 void parser__ReduceAction53__action(val* self, val* p0) {
7549 val* var_p /* var p: Parser */;
7550 val* var /* : null */;
7551 val* var_node_list /* var node_list: nullable Object */;
7552 val* var1 /* : nullable Object */;
7553 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7554 val* var2 /* : nullable Object */;
7555 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7556 val* var3 /* : nullable Object */;
7557 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7558 val* var4 /* : nullable Object */;
7559 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7560 val* var5 /* : Array[Object] */;
7561 val* var_listnode3 /* var listnode3: Array[Object] */;
7562 val* var6 /* : Array[Object] */;
7563 val* var_listnode5 /* var listnode5: Array[Object] */;
7564 val* var7 /* : Array[Object] */;
7565 val* var_listnode10 /* var listnode10: Array[Object] */;
7566 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
7567 short int var8 /* : Bool */;
7568 int cltype;
7569 int idtype;
7570 val* var_listnode4 /* var listnode4: nullable Object */;
7571 short int var9 /* : Bool */;
7572 int cltype10;
7573 int idtype11;
7574 val* var12 /* : Array[Object] */;
7575 val* var13 /* : Array[Object] */;
7576 val* var_listnode8 /* var listnode8: Array[Object] */;
7577 val* var_listnode7 /* var listnode7: nullable Object */;
7578 short int var14 /* : Bool */;
7579 int cltype15;
7580 int idtype16;
7581 val* var17 /* : Array[Object] */;
7582 val* var18 /* : ATopClassdef */;
7583 val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */;
7584 val* var_pclassdefnode9 /* var pclassdefnode9: nullable Object */;
7585 short int var19 /* : Bool */;
7586 int cltype20;
7587 int idtype21;
7588 val* var22 /* : null */;
7589 short int var23 /* : Bool */;
7590 val* var24 /* : null */;
7591 short int var25 /* : Bool */;
7592 val* var26 /* : AModule */;
7593 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
7594 long var27 /* : Int */;
7595 long var28 /* : Int */;
7596 var_p = p0;
7597 var = NULL;
7598 var_node_list = var;
7599 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7600 var_nodearraylist4 = var1;
7601 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7602 var_nodearraylist3 = var2;
7603 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7604 var_nodearraylist2 = var3;
7605 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7606 var_nodearraylist1 = var4;
7607 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
7608 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
7609 CHECK_NEW_array__Array(var5);
7610 var_listnode3 = var5;
7611 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
7612 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
7613 CHECK_NEW_array__Array(var6);
7614 var_listnode5 = var6;
7615 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
7616 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
7617 CHECK_NEW_array__Array(var7);
7618 var_listnode10 = var7;
7619 var_pmoduledeclnode2 = var_nodearraylist1;
7620 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
7621 cltype = type_nullable_parser_nodes__AModuledecl.color;
7622 idtype = type_nullable_parser_nodes__AModuledecl.id;
7623 if(var_pmoduledeclnode2 == NULL) {
7624 var8 = 1;
7625 } else {
7626 if(cltype >= var_pmoduledeclnode2->type->table_size) {
7627 var8 = 0;
7628 } else {
7629 var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
7630 }
7631 }
7632 if (!var8) {
7633 fprintf(stderr, "Runtime error: %s", "Assert failed");
7634 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3525);
7635 exit(1);
7636 }
7637 var_listnode4 = var_nodearraylist2;
7638 /* <var_listnode4:nullable Object> isa Array[Object] */
7639 cltype10 = type_array__Arraykernel__Object.color;
7640 idtype11 = type_array__Arraykernel__Object.id;
7641 if(var_listnode4 == NULL) {
7642 var9 = 0;
7643 } else {
7644 if(cltype10 >= var_listnode4->type->table_size) {
7645 var9 = 0;
7646 } else {
7647 var9 = var_listnode4->type->type_table[cltype10] == idtype11;
7648 }
7649 }
7650 if (!var9) {
7651 fprintf(stderr, "Runtime error: %s", "Assert failed");
7652 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3527);
7653 exit(1);
7654 }
7655 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction53>*/;
7656 var_listnode5 = var12;
7657 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
7658 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
7659 CHECK_NEW_array__Array(var13);
7660 var_listnode8 = var13;
7661 var_listnode7 = var_nodearraylist3;
7662 /* <var_listnode7:nullable Object> isa Array[Object] */
7663 cltype15 = type_array__Arraykernel__Object.color;
7664 idtype16 = type_array__Arraykernel__Object.id;
7665 if(var_listnode7 == NULL) {
7666 var14 = 0;
7667 } else {
7668 if(cltype15 >= var_listnode7->type->table_size) {
7669 var14 = 0;
7670 } else {
7671 var14 = var_listnode7->type->type_table[cltype15] == idtype16;
7672 }
7673 }
7674 if (!var14) {
7675 fprintf(stderr, "Runtime error: %s", "Assert failed");
7676 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3531);
7677 exit(1);
7678 }
7679 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction53>*/;
7680 var_listnode8 = var17;
7681 var18 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
7682 ((void (*)(val*, val*))(var18->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var18, var_listnode8) /* init_atopclassdef on <var18:ATopClassdef>*/;
7683 CHECK_NEW_parser_nodes__ATopClassdef(var18);
7684 var_pclassdefnode6 = var18;
7685 var_pclassdefnode9 = var_nodearraylist4;
7686 /* <var_pclassdefnode9:nullable Object> isa nullable AClassdef */
7687 cltype20 = type_nullable_parser_nodes__AClassdef.color;
7688 idtype21 = type_nullable_parser_nodes__AClassdef.id;
7689 if(var_pclassdefnode9 == NULL) {
7690 var19 = 1;
7691 } else {
7692 if(cltype20 >= var_pclassdefnode9->type->table_size) {
7693 var19 = 0;
7694 } else {
7695 var19 = var_pclassdefnode9->type->type_table[cltype20] == idtype21;
7696 }
7697 }
7698 if (!var19) {
7699 fprintf(stderr, "Runtime error: %s", "Assert failed");
7700 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3537);
7701 exit(1);
7702 }
7703 var22 = NULL;
7704 if (var_pclassdefnode6 == NULL) {
7705 var23 = 0; /* is null */
7706 } else {
7707 var23 = 1; /* arg is null and recv is not */
7708 }
7709 if (var23){
7710 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode6) /* add on <var_listnode10:Array[Object]>*/;
7711 } else {
7712 }
7713 var24 = NULL;
7714 if (var_pclassdefnode9 == NULL) {
7715 var25 = 0; /* is null */
7716 } else {
7717 var25 = 1; /* arg is null and recv is not */
7718 }
7719 if (var25){
7720 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode9) /* add on <var_listnode10:Array[Object]>*/;
7721 } else {
7722 }
7723 var26 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
7724 ((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>*/;
7725 CHECK_NEW_parser_nodes__AModule(var26);
7726 var_pmodulenode1 = var26;
7727 var_node_list = var_pmodulenode1;
7728 var27 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction53> */
7729 var28 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var27) /* go_to on <var_p:Parser>*/;
7730 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var28, var_node_list) /* push on <var_p:Parser>*/;
7731 RET_LABEL:;
7732 }
7733 /* method parser#ReduceAction53#action for (self: Object, Parser) */
7734 void VIRTUAL_parser__ReduceAction53__action(val* self, val* p0) {
7735 parser__ReduceAction53__action(self, p0);
7736 RET_LABEL:;
7737 }
7738 /* method parser#ReduceAction54#action for (self: ReduceAction54, Parser) */
7739 void parser__ReduceAction54__action(val* self, val* p0) {
7740 val* var_p /* var p: Parser */;
7741 val* var /* : null */;
7742 val* var_node_list /* var node_list: nullable Object */;
7743 val* var1 /* : nullable Object */;
7744 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7745 val* var2 /* : nullable Object */;
7746 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7747 val* var3 /* : nullable Object */;
7748 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7749 val* var4 /* : nullable Object */;
7750 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7751 val* var5 /* : Array[Object] */;
7752 val* var_listnode4 /* var listnode4: Array[Object] */;
7753 val* var6 /* : Array[Object] */;
7754 val* var_listnode6 /* var listnode6: Array[Object] */;
7755 val* var7 /* : Array[Object] */;
7756 val* var_listnode11 /* var listnode11: Array[Object] */;
7757 val* var_listnode3 /* var listnode3: nullable Object */;
7758 short int var8 /* : Bool */;
7759 int cltype;
7760 int idtype;
7761 val* var9 /* : Array[Object] */;
7762 val* var_listnode5 /* var listnode5: nullable Object */;
7763 short int var10 /* : Bool */;
7764 int cltype11;
7765 int idtype12;
7766 val* var13 /* : Array[Object] */;
7767 val* var14 /* : Array[Object] */;
7768 val* var_listnode9 /* var listnode9: Array[Object] */;
7769 val* var_listnode8 /* var listnode8: nullable Object */;
7770 short int var15 /* : Bool */;
7771 int cltype16;
7772 int idtype17;
7773 val* var18 /* : Array[Object] */;
7774 val* var19 /* : ATopClassdef */;
7775 val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */;
7776 val* var_pclassdefnode10 /* var pclassdefnode10: nullable Object */;
7777 short int var20 /* : Bool */;
7778 int cltype21;
7779 int idtype22;
7780 val* var23 /* : null */;
7781 short int var24 /* : Bool */;
7782 val* var25 /* : null */;
7783 short int var26 /* : Bool */;
7784 val* var27 /* : AModule */;
7785 val* var28 /* : null */;
7786 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
7787 long var29 /* : Int */;
7788 long var30 /* : Int */;
7789 var_p = p0;
7790 var = NULL;
7791 var_node_list = var;
7792 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7793 var_nodearraylist4 = var1;
7794 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7795 var_nodearraylist3 = var2;
7796 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7797 var_nodearraylist2 = var3;
7798 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7799 var_nodearraylist1 = var4;
7800 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
7801 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
7802 CHECK_NEW_array__Array(var5);
7803 var_listnode4 = var5;
7804 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
7805 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
7806 CHECK_NEW_array__Array(var6);
7807 var_listnode6 = var6;
7808 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
7809 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
7810 CHECK_NEW_array__Array(var7);
7811 var_listnode11 = var7;
7812 var_listnode3 = var_nodearraylist1;
7813 /* <var_listnode3:nullable Object> isa Array[Object] */
7814 cltype = type_array__Arraykernel__Object.color;
7815 idtype = type_array__Arraykernel__Object.id;
7816 if(var_listnode3 == NULL) {
7817 var8 = 0;
7818 } else {
7819 if(cltype >= var_listnode3->type->table_size) {
7820 var8 = 0;
7821 } else {
7822 var8 = var_listnode3->type->type_table[cltype] == idtype;
7823 }
7824 }
7825 if (!var8) {
7826 fprintf(stderr, "Runtime error: %s", "Assert failed");
7827 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3567);
7828 exit(1);
7829 }
7830 var9 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction54>*/;
7831 var_listnode4 = var9;
7832 var_listnode5 = var_nodearraylist2;
7833 /* <var_listnode5:nullable Object> isa Array[Object] */
7834 cltype11 = type_array__Arraykernel__Object.color;
7835 idtype12 = type_array__Arraykernel__Object.id;
7836 if(var_listnode5 == NULL) {
7837 var10 = 0;
7838 } else {
7839 if(cltype11 >= var_listnode5->type->table_size) {
7840 var10 = 0;
7841 } else {
7842 var10 = var_listnode5->type->type_table[cltype11] == idtype12;
7843 }
7844 }
7845 if (!var10) {
7846 fprintf(stderr, "Runtime error: %s", "Assert failed");
7847 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3570);
7848 exit(1);
7849 }
7850 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction54>*/;
7851 var_listnode6 = var13;
7852 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
7853 ((void (*)(val*))(var14->class->vft[COLOR_array__Array__init]))(var14) /* init on <var14:Array[Object]>*/;
7854 CHECK_NEW_array__Array(var14);
7855 var_listnode9 = var14;
7856 var_listnode8 = var_nodearraylist3;
7857 /* <var_listnode8:nullable Object> isa Array[Object] */
7858 cltype16 = type_array__Arraykernel__Object.color;
7859 idtype17 = type_array__Arraykernel__Object.id;
7860 if(var_listnode8 == NULL) {
7861 var15 = 0;
7862 } else {
7863 if(cltype16 >= var_listnode8->type->table_size) {
7864 var15 = 0;
7865 } else {
7866 var15 = var_listnode8->type->type_table[cltype16] == idtype17;
7867 }
7868 }
7869 if (!var15) {
7870 fprintf(stderr, "Runtime error: %s", "Assert failed");
7871 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3574);
7872 exit(1);
7873 }
7874 var18 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction54>*/;
7875 var_listnode9 = var18;
7876 var19 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
7877 ((void (*)(val*, val*))(var19->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var19, var_listnode9) /* init_atopclassdef on <var19:ATopClassdef>*/;
7878 CHECK_NEW_parser_nodes__ATopClassdef(var19);
7879 var_pclassdefnode7 = var19;
7880 var_pclassdefnode10 = var_nodearraylist4;
7881 /* <var_pclassdefnode10:nullable Object> isa nullable AClassdef */
7882 cltype21 = type_nullable_parser_nodes__AClassdef.color;
7883 idtype22 = type_nullable_parser_nodes__AClassdef.id;
7884 if(var_pclassdefnode10 == NULL) {
7885 var20 = 1;
7886 } else {
7887 if(cltype21 >= var_pclassdefnode10->type->table_size) {
7888 var20 = 0;
7889 } else {
7890 var20 = var_pclassdefnode10->type->type_table[cltype21] == idtype22;
7891 }
7892 }
7893 if (!var20) {
7894 fprintf(stderr, "Runtime error: %s", "Assert failed");
7895 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3580);
7896 exit(1);
7897 }
7898 var23 = NULL;
7899 if (var_pclassdefnode7 == NULL) {
7900 var24 = 0; /* is null */
7901 } else {
7902 var24 = 1; /* arg is null and recv is not */
7903 }
7904 if (var24){
7905 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode7) /* add on <var_listnode11:Array[Object]>*/;
7906 } else {
7907 }
7908 var25 = NULL;
7909 if (var_pclassdefnode10 == NULL) {
7910 var26 = 0; /* is null */
7911 } else {
7912 var26 = 1; /* arg is null and recv is not */
7913 }
7914 if (var26){
7915 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode10) /* add on <var_listnode11:Array[Object]>*/;
7916 } else {
7917 }
7918 var27 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
7919 var28 = NULL;
7920 ((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>*/;
7921 CHECK_NEW_parser_nodes__AModule(var27);
7922 var_pmodulenode1 = var27;
7923 var_node_list = var_pmodulenode1;
7924 var29 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction54> */
7925 var30 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var29) /* go_to on <var_p:Parser>*/;
7926 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var30, var_node_list) /* push on <var_p:Parser>*/;
7927 RET_LABEL:;
7928 }
7929 /* method parser#ReduceAction54#action for (self: Object, Parser) */
7930 void VIRTUAL_parser__ReduceAction54__action(val* self, val* p0) {
7931 parser__ReduceAction54__action(self, p0);
7932 RET_LABEL:;
7933 }
7934 /* method parser#ReduceAction55#action for (self: ReduceAction55, Parser) */
7935 void parser__ReduceAction55__action(val* self, val* p0) {
7936 val* var_p /* var p: Parser */;
7937 val* var /* : null */;
7938 val* var_node_list /* var node_list: nullable Object */;
7939 val* var1 /* : nullable Object */;
7940 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7941 val* var2 /* : nullable Object */;
7942 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7943 val* var3 /* : nullable Object */;
7944 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7945 val* var4 /* : nullable Object */;
7946 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7947 val* var5 /* : nullable Object */;
7948 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7949 val* var6 /* : Array[Object] */;
7950 val* var_listnode4 /* var listnode4: Array[Object] */;
7951 val* var7 /* : Array[Object] */;
7952 val* var_listnode6 /* var listnode6: Array[Object] */;
7953 val* var8 /* : Array[Object] */;
7954 val* var_listnode11 /* var listnode11: Array[Object] */;
7955 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
7956 short int var9 /* : Bool */;
7957 int cltype;
7958 int idtype;
7959 val* var_listnode3 /* var listnode3: nullable Object */;
7960 short int var10 /* : Bool */;
7961 int cltype11;
7962 int idtype12;
7963 val* var13 /* : Array[Object] */;
7964 val* var_listnode5 /* var listnode5: nullable Object */;
7965 short int var14 /* : Bool */;
7966 int cltype15;
7967 int idtype16;
7968 val* var17 /* : Array[Object] */;
7969 val* var18 /* : Array[Object] */;
7970 val* var_listnode9 /* var listnode9: Array[Object] */;
7971 val* var_listnode8 /* var listnode8: nullable Object */;
7972 short int var19 /* : Bool */;
7973 int cltype20;
7974 int idtype21;
7975 val* var22 /* : Array[Object] */;
7976 val* var23 /* : ATopClassdef */;
7977 val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */;
7978 val* var_pclassdefnode10 /* var pclassdefnode10: nullable Object */;
7979 short int var24 /* : Bool */;
7980 int cltype25;
7981 int idtype26;
7982 val* var27 /* : null */;
7983 short int var28 /* : Bool */;
7984 val* var29 /* : null */;
7985 short int var30 /* : Bool */;
7986 val* var31 /* : AModule */;
7987 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
7988 long var32 /* : Int */;
7989 long var33 /* : Int */;
7990 var_p = p0;
7991 var = NULL;
7992 var_node_list = var;
7993 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7994 var_nodearraylist5 = var1;
7995 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7996 var_nodearraylist4 = var2;
7997 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7998 var_nodearraylist3 = var3;
7999 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8000 var_nodearraylist2 = var4;
8001 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8002 var_nodearraylist1 = var5;
8003 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
8004 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
8005 CHECK_NEW_array__Array(var6);
8006 var_listnode4 = var6;
8007 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
8008 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
8009 CHECK_NEW_array__Array(var7);
8010 var_listnode6 = var7;
8011 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
8012 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
8013 CHECK_NEW_array__Array(var8);
8014 var_listnode11 = var8;
8015 var_pmoduledeclnode2 = var_nodearraylist1;
8016 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
8017 cltype = type_nullable_parser_nodes__AModuledecl.color;
8018 idtype = type_nullable_parser_nodes__AModuledecl.id;
8019 if(var_pmoduledeclnode2 == NULL) {
8020 var9 = 1;
8021 } else {
8022 if(cltype >= var_pmoduledeclnode2->type->table_size) {
8023 var9 = 0;
8024 } else {
8025 var9 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
8026 }
8027 }
8028 if (!var9) {
8029 fprintf(stderr, "Runtime error: %s", "Assert failed");
8030 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3611);
8031 exit(1);
8032 }
8033 var_listnode3 = var_nodearraylist2;
8034 /* <var_listnode3:nullable Object> isa Array[Object] */
8035 cltype11 = type_array__Arraykernel__Object.color;
8036 idtype12 = type_array__Arraykernel__Object.id;
8037 if(var_listnode3 == NULL) {
8038 var10 = 0;
8039 } else {
8040 if(cltype11 >= var_listnode3->type->table_size) {
8041 var10 = 0;
8042 } else {
8043 var10 = var_listnode3->type->type_table[cltype11] == idtype12;
8044 }
8045 }
8046 if (!var10) {
8047 fprintf(stderr, "Runtime error: %s", "Assert failed");
8048 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3613);
8049 exit(1);
8050 }
8051 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction55>*/;
8052 var_listnode4 = var13;
8053 var_listnode5 = var_nodearraylist3;
8054 /* <var_listnode5:nullable Object> isa Array[Object] */
8055 cltype15 = type_array__Arraykernel__Object.color;
8056 idtype16 = type_array__Arraykernel__Object.id;
8057 if(var_listnode5 == NULL) {
8058 var14 = 0;
8059 } else {
8060 if(cltype15 >= var_listnode5->type->table_size) {
8061 var14 = 0;
8062 } else {
8063 var14 = var_listnode5->type->type_table[cltype15] == idtype16;
8064 }
8065 }
8066 if (!var14) {
8067 fprintf(stderr, "Runtime error: %s", "Assert failed");
8068 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3616);
8069 exit(1);
8070 }
8071 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction55>*/;
8072 var_listnode6 = var17;
8073 var18 = NEW_array__Array(&type_array__Arraykernel__Object);
8074 ((void (*)(val*))(var18->class->vft[COLOR_array__Array__init]))(var18) /* init on <var18:Array[Object]>*/;
8075 CHECK_NEW_array__Array(var18);
8076 var_listnode9 = var18;
8077 var_listnode8 = var_nodearraylist4;
8078 /* <var_listnode8:nullable Object> isa Array[Object] */
8079 cltype20 = type_array__Arraykernel__Object.color;
8080 idtype21 = type_array__Arraykernel__Object.id;
8081 if(var_listnode8 == NULL) {
8082 var19 = 0;
8083 } else {
8084 if(cltype20 >= var_listnode8->type->table_size) {
8085 var19 = 0;
8086 } else {
8087 var19 = var_listnode8->type->type_table[cltype20] == idtype21;
8088 }
8089 }
8090 if (!var19) {
8091 fprintf(stderr, "Runtime error: %s", "Assert failed");
8092 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3620);
8093 exit(1);
8094 }
8095 var22 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction55>*/;
8096 var_listnode9 = var22;
8097 var23 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
8098 ((void (*)(val*, val*))(var23->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var23, var_listnode9) /* init_atopclassdef on <var23:ATopClassdef>*/;
8099 CHECK_NEW_parser_nodes__ATopClassdef(var23);
8100 var_pclassdefnode7 = var23;
8101 var_pclassdefnode10 = var_nodearraylist5;
8102 /* <var_pclassdefnode10:nullable Object> isa nullable AClassdef */
8103 cltype25 = type_nullable_parser_nodes__AClassdef.color;
8104 idtype26 = type_nullable_parser_nodes__AClassdef.id;
8105 if(var_pclassdefnode10 == NULL) {
8106 var24 = 1;
8107 } else {
8108 if(cltype25 >= var_pclassdefnode10->type->table_size) {
8109 var24 = 0;
8110 } else {
8111 var24 = var_pclassdefnode10->type->type_table[cltype25] == idtype26;
8112 }
8113 }
8114 if (!var24) {
8115 fprintf(stderr, "Runtime error: %s", "Assert failed");
8116 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3626);
8117 exit(1);
8118 }
8119 var27 = NULL;
8120 if (var_pclassdefnode7 == NULL) {
8121 var28 = 0; /* is null */
8122 } else {
8123 var28 = 1; /* arg is null and recv is not */
8124 }
8125 if (var28){
8126 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode7) /* add on <var_listnode11:Array[Object]>*/;
8127 } else {
8128 }
8129 var29 = NULL;
8130 if (var_pclassdefnode10 == NULL) {
8131 var30 = 0; /* is null */
8132 } else {
8133 var30 = 1; /* arg is null and recv is not */
8134 }
8135 if (var30){
8136 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode10) /* add on <var_listnode11:Array[Object]>*/;
8137 } else {
8138 }
8139 var31 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
8140 ((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>*/;
8141 CHECK_NEW_parser_nodes__AModule(var31);
8142 var_pmodulenode1 = var31;
8143 var_node_list = var_pmodulenode1;
8144 var32 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction55> */
8145 var33 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var32) /* go_to on <var_p:Parser>*/;
8146 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var33, var_node_list) /* push on <var_p:Parser>*/;
8147 RET_LABEL:;
8148 }
8149 /* method parser#ReduceAction55#action for (self: Object, Parser) */
8150 void VIRTUAL_parser__ReduceAction55__action(val* self, val* p0) {
8151 parser__ReduceAction55__action(self, p0);
8152 RET_LABEL:;
8153 }
8154 /* method parser#ReduceAction56#action for (self: ReduceAction56, Parser) */
8155 void parser__ReduceAction56__action(val* self, val* p0) {
8156 val* var_p /* var p: Parser */;
8157 val* var /* : null */;
8158 val* var_node_list /* var node_list: nullable Object */;
8159 val* var1 /* : nullable Object */;
8160 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8161 val* var2 /* : nullable Object */;
8162 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8163 val* var3 /* : nullable Object */;
8164 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8165 val* var4 /* : Array[Object] */;
8166 val* var_listnode3 /* var listnode3: Array[Object] */;
8167 val* var5 /* : Array[Object] */;
8168 val* var_listnode4 /* var listnode4: Array[Object] */;
8169 val* var6 /* : Array[Object] */;
8170 val* var_listnode10 /* var listnode10: Array[Object] */;
8171 val* var_listnode5 /* var listnode5: nullable Object */;
8172 short int var7 /* : Bool */;
8173 int cltype;
8174 int idtype;
8175 val* var8 /* : Array[Object] */;
8176 val* var_listnode8 /* var listnode8: Array[Object] */;
8177 val* var_listnode7 /* var listnode7: nullable Object */;
8178 short int var9 /* : Bool */;
8179 int cltype10;
8180 int idtype11;
8181 val* var12 /* : Array[Object] */;
8182 val* var13 /* : ATopClassdef */;
8183 val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */;
8184 val* var_pclassdefnode9 /* var pclassdefnode9: nullable Object */;
8185 short int var14 /* : Bool */;
8186 int cltype15;
8187 int idtype16;
8188 val* var17 /* : Array[Object] */;
8189 val* var18 /* : null */;
8190 short int var19 /* : Bool */;
8191 val* var20 /* : null */;
8192 short int var21 /* : Bool */;
8193 val* var22 /* : AModule */;
8194 val* var23 /* : null */;
8195 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
8196 long var24 /* : Int */;
8197 long var25 /* : Int */;
8198 var_p = p0;
8199 var = NULL;
8200 var_node_list = var;
8201 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8202 var_nodearraylist3 = var1;
8203 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8204 var_nodearraylist2 = var2;
8205 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8206 var_nodearraylist1 = var3;
8207 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
8208 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
8209 CHECK_NEW_array__Array(var4);
8210 var_listnode3 = var4;
8211 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
8212 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
8213 CHECK_NEW_array__Array(var5);
8214 var_listnode4 = var5;
8215 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
8216 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
8217 CHECK_NEW_array__Array(var6);
8218 var_listnode10 = var6;
8219 var_listnode5 = var_nodearraylist1;
8220 /* <var_listnode5:nullable Object> isa Array[Object] */
8221 cltype = type_array__Arraykernel__Object.color;
8222 idtype = type_array__Arraykernel__Object.id;
8223 if(var_listnode5 == NULL) {
8224 var7 = 0;
8225 } else {
8226 if(cltype >= var_listnode5->type->table_size) {
8227 var7 = 0;
8228 } else {
8229 var7 = var_listnode5->type->type_table[cltype] == idtype;
8230 }
8231 }
8232 if (!var7) {
8233 fprintf(stderr, "Runtime error: %s", "Assert failed");
8234 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3655);
8235 exit(1);
8236 }
8237 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
8238 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
8239 CHECK_NEW_array__Array(var8);
8240 var_listnode8 = var8;
8241 var_listnode7 = var_nodearraylist2;
8242 /* <var_listnode7:nullable Object> isa Array[Object] */
8243 cltype10 = type_array__Arraykernel__Object.color;
8244 idtype11 = type_array__Arraykernel__Object.id;
8245 if(var_listnode7 == NULL) {
8246 var9 = 0;
8247 } else {
8248 if(cltype10 >= var_listnode7->type->table_size) {
8249 var9 = 0;
8250 } else {
8251 var9 = var_listnode7->type->type_table[cltype10] == idtype11;
8252 }
8253 }
8254 if (!var9) {
8255 fprintf(stderr, "Runtime error: %s", "Assert failed");
8256 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3658);
8257 exit(1);
8258 }
8259 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction56>*/;
8260 var_listnode8 = var12;
8261 var13 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
8262 ((void (*)(val*, val*))(var13->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var13, var_listnode8) /* init_atopclassdef on <var13:ATopClassdef>*/;
8263 CHECK_NEW_parser_nodes__ATopClassdef(var13);
8264 var_pclassdefnode6 = var13;
8265 var_pclassdefnode9 = var_nodearraylist3;
8266 /* <var_pclassdefnode9:nullable Object> isa nullable AClassdef */
8267 cltype15 = type_nullable_parser_nodes__AClassdef.color;
8268 idtype16 = type_nullable_parser_nodes__AClassdef.id;
8269 if(var_pclassdefnode9 == NULL) {
8270 var14 = 1;
8271 } else {
8272 if(cltype15 >= var_pclassdefnode9->type->table_size) {
8273 var14 = 0;
8274 } else {
8275 var14 = var_pclassdefnode9->type->type_table[cltype15] == idtype16;
8276 }
8277 }
8278 if (!var14) {
8279 fprintf(stderr, "Runtime error: %s", "Assert failed");
8280 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3664);
8281 exit(1);
8282 }
8283 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode5) /* concat on <self:ReduceAction56>*/;
8284 var_listnode10 = var17;
8285 var18 = NULL;
8286 if (var_pclassdefnode6 == NULL) {
8287 var19 = 0; /* is null */
8288 } else {
8289 var19 = 1; /* arg is null and recv is not */
8290 }
8291 if (var19){
8292 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode6) /* add on <var_listnode10:Array[Object]>*/;
8293 } else {
8294 }
8295 var20 = NULL;
8296 if (var_pclassdefnode9 == NULL) {
8297 var21 = 0; /* is null */
8298 } else {
8299 var21 = 1; /* arg is null and recv is not */
8300 }
8301 if (var21){
8302 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode9) /* add on <var_listnode10:Array[Object]>*/;
8303 } else {
8304 }
8305 var22 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
8306 var23 = NULL;
8307 ((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>*/;
8308 CHECK_NEW_parser_nodes__AModule(var22);
8309 var_pmodulenode1 = var22;
8310 var_node_list = var_pmodulenode1;
8311 var24 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction56> */
8312 var25 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var24) /* go_to on <var_p:Parser>*/;
8313 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var25, var_node_list) /* push on <var_p:Parser>*/;
8314 RET_LABEL:;
8315 }
8316 /* method parser#ReduceAction56#action for (self: Object, Parser) */
8317 void VIRTUAL_parser__ReduceAction56__action(val* self, val* p0) {
8318 parser__ReduceAction56__action(self, p0);
8319 RET_LABEL:;
8320 }
8321 /* method parser#ReduceAction57#action for (self: ReduceAction57, Parser) */
8322 void parser__ReduceAction57__action(val* self, val* p0) {
8323 val* var_p /* var p: Parser */;
8324 val* var /* : null */;
8325 val* var_node_list /* var node_list: nullable Object */;
8326 val* var1 /* : nullable Object */;
8327 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8328 val* var2 /* : nullable Object */;
8329 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8330 val* var3 /* : nullable Object */;
8331 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8332 val* var4 /* : nullable Object */;
8333 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8334 val* var5 /* : Array[Object] */;
8335 val* var_listnode3 /* var listnode3: Array[Object] */;
8336 val* var6 /* : Array[Object] */;
8337 val* var_listnode4 /* var listnode4: Array[Object] */;
8338 val* var7 /* : Array[Object] */;
8339 val* var_listnode10 /* var listnode10: Array[Object] */;
8340 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
8341 short int var8 /* : Bool */;
8342 int cltype;
8343 int idtype;
8344 val* var_listnode5 /* var listnode5: nullable Object */;
8345 short int var9 /* : Bool */;
8346 int cltype10;
8347 int idtype11;
8348 val* var12 /* : Array[Object] */;
8349 val* var_listnode8 /* var listnode8: Array[Object] */;
8350 val* var_listnode7 /* var listnode7: nullable Object */;
8351 short int var13 /* : Bool */;
8352 int cltype14;
8353 int idtype15;
8354 val* var16 /* : Array[Object] */;
8355 val* var17 /* : ATopClassdef */;
8356 val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */;
8357 val* var_pclassdefnode9 /* var pclassdefnode9: nullable Object */;
8358 short int var18 /* : Bool */;
8359 int cltype19;
8360 int idtype20;
8361 val* var21 /* : Array[Object] */;
8362 val* var22 /* : null */;
8363 short int var23 /* : Bool */;
8364 val* var24 /* : null */;
8365 short int var25 /* : Bool */;
8366 val* var26 /* : AModule */;
8367 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
8368 long var27 /* : Int */;
8369 long var28 /* : Int */;
8370 var_p = p0;
8371 var = NULL;
8372 var_node_list = var;
8373 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8374 var_nodearraylist4 = var1;
8375 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8376 var_nodearraylist3 = var2;
8377 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8378 var_nodearraylist2 = var3;
8379 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8380 var_nodearraylist1 = var4;
8381 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
8382 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
8383 CHECK_NEW_array__Array(var5);
8384 var_listnode3 = var5;
8385 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
8386 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
8387 CHECK_NEW_array__Array(var6);
8388 var_listnode4 = var6;
8389 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
8390 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
8391 CHECK_NEW_array__Array(var7);
8392 var_listnode10 = var7;
8393 var_pmoduledeclnode2 = var_nodearraylist1;
8394 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
8395 cltype = type_nullable_parser_nodes__AModuledecl.color;
8396 idtype = type_nullable_parser_nodes__AModuledecl.id;
8397 if(var_pmoduledeclnode2 == NULL) {
8398 var8 = 1;
8399 } else {
8400 if(cltype >= var_pmoduledeclnode2->type->table_size) {
8401 var8 = 0;
8402 } else {
8403 var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
8404 }
8405 }
8406 if (!var8) {
8407 fprintf(stderr, "Runtime error: %s", "Assert failed");
8408 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3695);
8409 exit(1);
8410 }
8411 var_listnode5 = var_nodearraylist2;
8412 /* <var_listnode5:nullable Object> isa Array[Object] */
8413 cltype10 = type_array__Arraykernel__Object.color;
8414 idtype11 = type_array__Arraykernel__Object.id;
8415 if(var_listnode5 == NULL) {
8416 var9 = 0;
8417 } else {
8418 if(cltype10 >= var_listnode5->type->table_size) {
8419 var9 = 0;
8420 } else {
8421 var9 = var_listnode5->type->type_table[cltype10] == idtype11;
8422 }
8423 }
8424 if (!var9) {
8425 fprintf(stderr, "Runtime error: %s", "Assert failed");
8426 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3697);
8427 exit(1);
8428 }
8429 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
8430 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
8431 CHECK_NEW_array__Array(var12);
8432 var_listnode8 = var12;
8433 var_listnode7 = var_nodearraylist3;
8434 /* <var_listnode7:nullable Object> isa Array[Object] */
8435 cltype14 = type_array__Arraykernel__Object.color;
8436 idtype15 = type_array__Arraykernel__Object.id;
8437 if(var_listnode7 == NULL) {
8438 var13 = 0;
8439 } else {
8440 if(cltype14 >= var_listnode7->type->table_size) {
8441 var13 = 0;
8442 } else {
8443 var13 = var_listnode7->type->type_table[cltype14] == idtype15;
8444 }
8445 }
8446 if (!var13) {
8447 fprintf(stderr, "Runtime error: %s", "Assert failed");
8448 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3700);
8449 exit(1);
8450 }
8451 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction57>*/;
8452 var_listnode8 = var16;
8453 var17 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
8454 ((void (*)(val*, val*))(var17->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var17, var_listnode8) /* init_atopclassdef on <var17:ATopClassdef>*/;
8455 CHECK_NEW_parser_nodes__ATopClassdef(var17);
8456 var_pclassdefnode6 = var17;
8457 var_pclassdefnode9 = var_nodearraylist4;
8458 /* <var_pclassdefnode9:nullable Object> isa nullable AClassdef */
8459 cltype19 = type_nullable_parser_nodes__AClassdef.color;
8460 idtype20 = type_nullable_parser_nodes__AClassdef.id;
8461 if(var_pclassdefnode9 == NULL) {
8462 var18 = 1;
8463 } else {
8464 if(cltype19 >= var_pclassdefnode9->type->table_size) {
8465 var18 = 0;
8466 } else {
8467 var18 = var_pclassdefnode9->type->type_table[cltype19] == idtype20;
8468 }
8469 }
8470 if (!var18) {
8471 fprintf(stderr, "Runtime error: %s", "Assert failed");
8472 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3706);
8473 exit(1);
8474 }
8475 var21 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode5) /* concat on <self:ReduceAction57>*/;
8476 var_listnode10 = var21;
8477 var22 = NULL;
8478 if (var_pclassdefnode6 == NULL) {
8479 var23 = 0; /* is null */
8480 } else {
8481 var23 = 1; /* arg is null and recv is not */
8482 }
8483 if (var23){
8484 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode6) /* add on <var_listnode10:Array[Object]>*/;
8485 } else {
8486 }
8487 var24 = NULL;
8488 if (var_pclassdefnode9 == NULL) {
8489 var25 = 0; /* is null */
8490 } else {
8491 var25 = 1; /* arg is null and recv is not */
8492 }
8493 if (var25){
8494 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode9) /* add on <var_listnode10:Array[Object]>*/;
8495 } else {
8496 }
8497 var26 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
8498 ((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>*/;
8499 CHECK_NEW_parser_nodes__AModule(var26);
8500 var_pmodulenode1 = var26;
8501 var_node_list = var_pmodulenode1;
8502 var27 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction57> */
8503 var28 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var27) /* go_to on <var_p:Parser>*/;
8504 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var28, var_node_list) /* push on <var_p:Parser>*/;
8505 RET_LABEL:;
8506 }
8507 /* method parser#ReduceAction57#action for (self: Object, Parser) */
8508 void VIRTUAL_parser__ReduceAction57__action(val* self, val* p0) {
8509 parser__ReduceAction57__action(self, p0);
8510 RET_LABEL:;
8511 }
8512 /* method parser#ReduceAction58#action for (self: ReduceAction58, Parser) */
8513 void parser__ReduceAction58__action(val* self, val* p0) {
8514 val* var_p /* var p: Parser */;
8515 val* var /* : null */;
8516 val* var_node_list /* var node_list: nullable Object */;
8517 val* var1 /* : nullable Object */;
8518 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8519 val* var2 /* : nullable Object */;
8520 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8521 val* var3 /* : nullable Object */;
8522 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8523 val* var4 /* : nullable Object */;
8524 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8525 val* var5 /* : Array[Object] */;
8526 val* var_listnode4 /* var listnode4: Array[Object] */;
8527 val* var6 /* : Array[Object] */;
8528 val* var_listnode5 /* var listnode5: Array[Object] */;
8529 val* var7 /* : Array[Object] */;
8530 val* var_listnode11 /* var listnode11: Array[Object] */;
8531 val* var_listnode3 /* var listnode3: nullable Object */;
8532 short int var8 /* : Bool */;
8533 int cltype;
8534 int idtype;
8535 val* var9 /* : Array[Object] */;
8536 val* var_listnode6 /* var listnode6: nullable Object */;
8537 short int var10 /* : Bool */;
8538 int cltype11;
8539 int idtype12;
8540 val* var13 /* : Array[Object] */;
8541 val* var_listnode9 /* var listnode9: Array[Object] */;
8542 val* var_listnode8 /* var listnode8: nullable Object */;
8543 short int var14 /* : Bool */;
8544 int cltype15;
8545 int idtype16;
8546 val* var17 /* : Array[Object] */;
8547 val* var18 /* : ATopClassdef */;
8548 val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */;
8549 val* var_pclassdefnode10 /* var pclassdefnode10: nullable Object */;
8550 short int var19 /* : Bool */;
8551 int cltype20;
8552 int idtype21;
8553 val* var22 /* : Array[Object] */;
8554 val* var23 /* : null */;
8555 short int var24 /* : Bool */;
8556 val* var25 /* : null */;
8557 short int var26 /* : Bool */;
8558 val* var27 /* : AModule */;
8559 val* var28 /* : null */;
8560 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
8561 long var29 /* : Int */;
8562 long var30 /* : Int */;
8563 var_p = p0;
8564 var = NULL;
8565 var_node_list = var;
8566 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8567 var_nodearraylist4 = var1;
8568 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8569 var_nodearraylist3 = var2;
8570 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8571 var_nodearraylist2 = var3;
8572 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8573 var_nodearraylist1 = var4;
8574 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
8575 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
8576 CHECK_NEW_array__Array(var5);
8577 var_listnode4 = var5;
8578 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
8579 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
8580 CHECK_NEW_array__Array(var6);
8581 var_listnode5 = var6;
8582 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
8583 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
8584 CHECK_NEW_array__Array(var7);
8585 var_listnode11 = var7;
8586 var_listnode3 = var_nodearraylist1;
8587 /* <var_listnode3:nullable Object> isa Array[Object] */
8588 cltype = type_array__Arraykernel__Object.color;
8589 idtype = type_array__Arraykernel__Object.id;
8590 if(var_listnode3 == NULL) {
8591 var8 = 0;
8592 } else {
8593 if(cltype >= var_listnode3->type->table_size) {
8594 var8 = 0;
8595 } else {
8596 var8 = var_listnode3->type->type_table[cltype] == idtype;
8597 }
8598 }
8599 if (!var8) {
8600 fprintf(stderr, "Runtime error: %s", "Assert failed");
8601 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3737);
8602 exit(1);
8603 }
8604 var9 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction58>*/;
8605 var_listnode4 = var9;
8606 var_listnode6 = var_nodearraylist2;
8607 /* <var_listnode6:nullable Object> isa Array[Object] */
8608 cltype11 = type_array__Arraykernel__Object.color;
8609 idtype12 = type_array__Arraykernel__Object.id;
8610 if(var_listnode6 == NULL) {
8611 var10 = 0;
8612 } else {
8613 if(cltype11 >= var_listnode6->type->table_size) {
8614 var10 = 0;
8615 } else {
8616 var10 = var_listnode6->type->type_table[cltype11] == idtype12;
8617 }
8618 }
8619 if (!var10) {
8620 fprintf(stderr, "Runtime error: %s", "Assert failed");
8621 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3740);
8622 exit(1);
8623 }
8624 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
8625 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
8626 CHECK_NEW_array__Array(var13);
8627 var_listnode9 = var13;
8628 var_listnode8 = var_nodearraylist3;
8629 /* <var_listnode8:nullable Object> isa Array[Object] */
8630 cltype15 = type_array__Arraykernel__Object.color;
8631 idtype16 = type_array__Arraykernel__Object.id;
8632 if(var_listnode8 == NULL) {
8633 var14 = 0;
8634 } else {
8635 if(cltype15 >= var_listnode8->type->table_size) {
8636 var14 = 0;
8637 } else {
8638 var14 = var_listnode8->type->type_table[cltype15] == idtype16;
8639 }
8640 }
8641 if (!var14) {
8642 fprintf(stderr, "Runtime error: %s", "Assert failed");
8643 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3743);
8644 exit(1);
8645 }
8646 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction58>*/;
8647 var_listnode9 = var17;
8648 var18 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
8649 ((void (*)(val*, val*))(var18->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var18, var_listnode9) /* init_atopclassdef on <var18:ATopClassdef>*/;
8650 CHECK_NEW_parser_nodes__ATopClassdef(var18);
8651 var_pclassdefnode7 = var18;
8652 var_pclassdefnode10 = var_nodearraylist4;
8653 /* <var_pclassdefnode10:nullable Object> isa nullable AClassdef */
8654 cltype20 = type_nullable_parser_nodes__AClassdef.color;
8655 idtype21 = type_nullable_parser_nodes__AClassdef.id;
8656 if(var_pclassdefnode10 == NULL) {
8657 var19 = 1;
8658 } else {
8659 if(cltype20 >= var_pclassdefnode10->type->table_size) {
8660 var19 = 0;
8661 } else {
8662 var19 = var_pclassdefnode10->type->type_table[cltype20] == idtype21;
8663 }
8664 }
8665 if (!var19) {
8666 fprintf(stderr, "Runtime error: %s", "Assert failed");
8667 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3749);
8668 exit(1);
8669 }
8670 var22 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode11, var_listnode6) /* concat on <self:ReduceAction58>*/;
8671 var_listnode11 = var22;
8672 var23 = NULL;
8673 if (var_pclassdefnode7 == NULL) {
8674 var24 = 0; /* is null */
8675 } else {
8676 var24 = 1; /* arg is null and recv is not */
8677 }
8678 if (var24){
8679 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode7) /* add on <var_listnode11:Array[Object]>*/;
8680 } else {
8681 }
8682 var25 = NULL;
8683 if (var_pclassdefnode10 == NULL) {
8684 var26 = 0; /* is null */
8685 } else {
8686 var26 = 1; /* arg is null and recv is not */
8687 }
8688 if (var26){
8689 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode10) /* add on <var_listnode11:Array[Object]>*/;
8690 } else {
8691 }
8692 var27 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
8693 var28 = NULL;
8694 ((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>*/;
8695 CHECK_NEW_parser_nodes__AModule(var27);
8696 var_pmodulenode1 = var27;
8697 var_node_list = var_pmodulenode1;
8698 var29 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction58> */
8699 var30 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var29) /* go_to on <var_p:Parser>*/;
8700 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var30, var_node_list) /* push on <var_p:Parser>*/;
8701 RET_LABEL:;
8702 }
8703 /* method parser#ReduceAction58#action for (self: Object, Parser) */
8704 void VIRTUAL_parser__ReduceAction58__action(val* self, val* p0) {
8705 parser__ReduceAction58__action(self, p0);
8706 RET_LABEL:;
8707 }
8708 /* method parser#ReduceAction59#action for (self: ReduceAction59, Parser) */
8709 void parser__ReduceAction59__action(val* self, val* p0) {
8710 val* var_p /* var p: Parser */;
8711 val* var /* : null */;
8712 val* var_node_list /* var node_list: nullable Object */;
8713 val* var1 /* : nullable Object */;
8714 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
8715 val* var2 /* : nullable Object */;
8716 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8717 val* var3 /* : nullable Object */;
8718 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8719 val* var4 /* : nullable Object */;
8720 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8721 val* var5 /* : nullable Object */;
8722 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8723 val* var6 /* : Array[Object] */;
8724 val* var_listnode4 /* var listnode4: Array[Object] */;
8725 val* var7 /* : Array[Object] */;
8726 val* var_listnode5 /* var listnode5: Array[Object] */;
8727 val* var8 /* : Array[Object] */;
8728 val* var_listnode11 /* var listnode11: Array[Object] */;
8729 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
8730 short int var9 /* : Bool */;
8731 int cltype;
8732 int idtype;
8733 val* var_listnode3 /* var listnode3: nullable Object */;
8734 short int var10 /* : Bool */;
8735 int cltype11;
8736 int idtype12;
8737 val* var13 /* : Array[Object] */;
8738 val* var_listnode6 /* var listnode6: nullable Object */;
8739 short int var14 /* : Bool */;
8740 int cltype15;
8741 int idtype16;
8742 val* var17 /* : Array[Object] */;
8743 val* var_listnode9 /* var listnode9: Array[Object] */;
8744 val* var_listnode8 /* var listnode8: nullable Object */;
8745 short int var18 /* : Bool */;
8746 int cltype19;
8747 int idtype20;
8748 val* var21 /* : Array[Object] */;
8749 val* var22 /* : ATopClassdef */;
8750 val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */;
8751 val* var_pclassdefnode10 /* var pclassdefnode10: nullable Object */;
8752 short int var23 /* : Bool */;
8753 int cltype24;
8754 int idtype25;
8755 val* var26 /* : Array[Object] */;
8756 val* var27 /* : null */;
8757 short int var28 /* : Bool */;
8758 val* var29 /* : null */;
8759 short int var30 /* : Bool */;
8760 val* var31 /* : AModule */;
8761 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
8762 long var32 /* : Int */;
8763 long var33 /* : Int */;
8764 var_p = p0;
8765 var = NULL;
8766 var_node_list = var;
8767 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8768 var_nodearraylist5 = var1;
8769 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8770 var_nodearraylist4 = var2;
8771 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8772 var_nodearraylist3 = var3;
8773 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8774 var_nodearraylist2 = var4;
8775 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8776 var_nodearraylist1 = var5;
8777 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
8778 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
8779 CHECK_NEW_array__Array(var6);
8780 var_listnode4 = var6;
8781 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
8782 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
8783 CHECK_NEW_array__Array(var7);
8784 var_listnode5 = var7;
8785 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
8786 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
8787 CHECK_NEW_array__Array(var8);
8788 var_listnode11 = var8;
8789 var_pmoduledeclnode2 = var_nodearraylist1;
8790 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
8791 cltype = type_nullable_parser_nodes__AModuledecl.color;
8792 idtype = type_nullable_parser_nodes__AModuledecl.id;
8793 if(var_pmoduledeclnode2 == NULL) {
8794 var9 = 1;
8795 } else {
8796 if(cltype >= var_pmoduledeclnode2->type->table_size) {
8797 var9 = 0;
8798 } else {
8799 var9 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
8800 }
8801 }
8802 if (!var9) {
8803 fprintf(stderr, "Runtime error: %s", "Assert failed");
8804 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3781);
8805 exit(1);
8806 }
8807 var_listnode3 = var_nodearraylist2;
8808 /* <var_listnode3:nullable Object> isa Array[Object] */
8809 cltype11 = type_array__Arraykernel__Object.color;
8810 idtype12 = type_array__Arraykernel__Object.id;
8811 if(var_listnode3 == NULL) {
8812 var10 = 0;
8813 } else {
8814 if(cltype11 >= var_listnode3->type->table_size) {
8815 var10 = 0;
8816 } else {
8817 var10 = var_listnode3->type->type_table[cltype11] == idtype12;
8818 }
8819 }
8820 if (!var10) {
8821 fprintf(stderr, "Runtime error: %s", "Assert failed");
8822 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3783);
8823 exit(1);
8824 }
8825 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction59>*/;
8826 var_listnode4 = var13;
8827 var_listnode6 = var_nodearraylist3;
8828 /* <var_listnode6:nullable Object> isa Array[Object] */
8829 cltype15 = type_array__Arraykernel__Object.color;
8830 idtype16 = type_array__Arraykernel__Object.id;
8831 if(var_listnode6 == NULL) {
8832 var14 = 0;
8833 } else {
8834 if(cltype15 >= var_listnode6->type->table_size) {
8835 var14 = 0;
8836 } else {
8837 var14 = var_listnode6->type->type_table[cltype15] == idtype16;
8838 }
8839 }
8840 if (!var14) {
8841 fprintf(stderr, "Runtime error: %s", "Assert failed");
8842 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3786);
8843 exit(1);
8844 }
8845 var17 = NEW_array__Array(&type_array__Arraykernel__Object);
8846 ((void (*)(val*))(var17->class->vft[COLOR_array__Array__init]))(var17) /* init on <var17:Array[Object]>*/;
8847 CHECK_NEW_array__Array(var17);
8848 var_listnode9 = var17;
8849 var_listnode8 = var_nodearraylist4;
8850 /* <var_listnode8:nullable Object> isa Array[Object] */
8851 cltype19 = type_array__Arraykernel__Object.color;
8852 idtype20 = type_array__Arraykernel__Object.id;
8853 if(var_listnode8 == NULL) {
8854 var18 = 0;
8855 } else {
8856 if(cltype19 >= var_listnode8->type->table_size) {
8857 var18 = 0;
8858 } else {
8859 var18 = var_listnode8->type->type_table[cltype19] == idtype20;
8860 }
8861 }
8862 if (!var18) {
8863 fprintf(stderr, "Runtime error: %s", "Assert failed");
8864 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3789);
8865 exit(1);
8866 }
8867 var21 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction59>*/;
8868 var_listnode9 = var21;
8869 var22 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
8870 ((void (*)(val*, val*))(var22->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var22, var_listnode9) /* init_atopclassdef on <var22:ATopClassdef>*/;
8871 CHECK_NEW_parser_nodes__ATopClassdef(var22);
8872 var_pclassdefnode7 = var22;
8873 var_pclassdefnode10 = var_nodearraylist5;
8874 /* <var_pclassdefnode10:nullable Object> isa nullable AClassdef */
8875 cltype24 = type_nullable_parser_nodes__AClassdef.color;
8876 idtype25 = type_nullable_parser_nodes__AClassdef.id;
8877 if(var_pclassdefnode10 == NULL) {
8878 var23 = 1;
8879 } else {
8880 if(cltype24 >= var_pclassdefnode10->type->table_size) {
8881 var23 = 0;
8882 } else {
8883 var23 = var_pclassdefnode10->type->type_table[cltype24] == idtype25;
8884 }
8885 }
8886 if (!var23) {
8887 fprintf(stderr, "Runtime error: %s", "Assert failed");
8888 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3795);
8889 exit(1);
8890 }
8891 var26 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode11, var_listnode6) /* concat on <self:ReduceAction59>*/;
8892 var_listnode11 = var26;
8893 var27 = NULL;
8894 if (var_pclassdefnode7 == NULL) {
8895 var28 = 0; /* is null */
8896 } else {
8897 var28 = 1; /* arg is null and recv is not */
8898 }
8899 if (var28){
8900 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode7) /* add on <var_listnode11:Array[Object]>*/;
8901 } else {
8902 }
8903 var29 = NULL;
8904 if (var_pclassdefnode10 == NULL) {
8905 var30 = 0; /* is null */
8906 } else {
8907 var30 = 1; /* arg is null and recv is not */
8908 }
8909 if (var30){
8910 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode10) /* add on <var_listnode11:Array[Object]>*/;
8911 } else {
8912 }
8913 var31 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
8914 ((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>*/;
8915 CHECK_NEW_parser_nodes__AModule(var31);
8916 var_pmodulenode1 = var31;
8917 var_node_list = var_pmodulenode1;
8918 var32 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction59> */
8919 var33 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var32) /* go_to on <var_p:Parser>*/;
8920 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var33, var_node_list) /* push on <var_p:Parser>*/;
8921 RET_LABEL:;
8922 }
8923 /* method parser#ReduceAction59#action for (self: Object, Parser) */
8924 void VIRTUAL_parser__ReduceAction59__action(val* self, val* p0) {
8925 parser__ReduceAction59__action(self, p0);
8926 RET_LABEL:;
8927 }
8928 /* method parser#ReduceAction60#action for (self: ReduceAction60, Parser) */
8929 void parser__ReduceAction60__action(val* self, val* p0) {
8930 val* var_p /* var p: Parser */;
8931 val* var /* : null */;
8932 val* var_node_list /* var node_list: nullable Object */;
8933 val* var1 /* : nullable Object */;
8934 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8935 val* var2 /* : nullable Object */;
8936 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8937 val* var3 /* : nullable Object */;
8938 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8939 val* var4 /* : nullable Object */;
8940 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8941 val* var5 /* : Array[Object] */;
8942 val* var_listnode3 /* var listnode3: Array[Object] */;
8943 val* var6 /* : Array[Object] */;
8944 val* var_listnode5 /* var listnode5: Array[Object] */;
8945 val* var7 /* : Array[Object] */;
8946 val* var_listnode11 /* var listnode11: Array[Object] */;
8947 val* var_listnode4 /* var listnode4: nullable Object */;
8948 short int var8 /* : Bool */;
8949 int cltype;
8950 int idtype;
8951 val* var9 /* : Array[Object] */;
8952 val* var_listnode6 /* var listnode6: nullable Object */;
8953 short int var10 /* : Bool */;
8954 int cltype11;
8955 int idtype12;
8956 val* var13 /* : Array[Object] */;
8957 val* var_listnode9 /* var listnode9: Array[Object] */;
8958 val* var_listnode8 /* var listnode8: nullable Object */;
8959 short int var14 /* : Bool */;
8960 int cltype15;
8961 int idtype16;
8962 val* var17 /* : Array[Object] */;
8963 val* var18 /* : ATopClassdef */;
8964 val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */;
8965 val* var_pclassdefnode10 /* var pclassdefnode10: nullable Object */;
8966 short int var19 /* : Bool */;
8967 int cltype20;
8968 int idtype21;
8969 val* var22 /* : Array[Object] */;
8970 val* var23 /* : null */;
8971 short int var24 /* : Bool */;
8972 val* var25 /* : null */;
8973 short int var26 /* : Bool */;
8974 val* var27 /* : AModule */;
8975 val* var28 /* : null */;
8976 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
8977 long var29 /* : Int */;
8978 long var30 /* : Int */;
8979 var_p = p0;
8980 var = NULL;
8981 var_node_list = var;
8982 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8983 var_nodearraylist4 = var1;
8984 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8985 var_nodearraylist3 = var2;
8986 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8987 var_nodearraylist2 = var3;
8988 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8989 var_nodearraylist1 = var4;
8990 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
8991 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
8992 CHECK_NEW_array__Array(var5);
8993 var_listnode3 = var5;
8994 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
8995 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
8996 CHECK_NEW_array__Array(var6);
8997 var_listnode5 = var6;
8998 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
8999 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
9000 CHECK_NEW_array__Array(var7);
9001 var_listnode11 = var7;
9002 var_listnode4 = var_nodearraylist1;
9003 /* <var_listnode4:nullable Object> isa Array[Object] */
9004 cltype = type_array__Arraykernel__Object.color;
9005 idtype = type_array__Arraykernel__Object.id;
9006 if(var_listnode4 == NULL) {
9007 var8 = 0;
9008 } else {
9009 if(cltype >= var_listnode4->type->table_size) {
9010 var8 = 0;
9011 } else {
9012 var8 = var_listnode4->type->type_table[cltype] == idtype;
9013 }
9014 }
9015 if (!var8) {
9016 fprintf(stderr, "Runtime error: %s", "Assert failed");
9017 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3826);
9018 exit(1);
9019 }
9020 var9 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction60>*/;
9021 var_listnode5 = var9;
9022 var_listnode6 = var_nodearraylist2;
9023 /* <var_listnode6:nullable Object> isa Array[Object] */
9024 cltype11 = type_array__Arraykernel__Object.color;
9025 idtype12 = type_array__Arraykernel__Object.id;
9026 if(var_listnode6 == NULL) {
9027 var10 = 0;
9028 } else {
9029 if(cltype11 >= var_listnode6->type->table_size) {
9030 var10 = 0;
9031 } else {
9032 var10 = var_listnode6->type->type_table[cltype11] == idtype12;
9033 }
9034 }
9035 if (!var10) {
9036 fprintf(stderr, "Runtime error: %s", "Assert failed");
9037 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3829);
9038 exit(1);
9039 }
9040 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
9041 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
9042 CHECK_NEW_array__Array(var13);
9043 var_listnode9 = var13;
9044 var_listnode8 = var_nodearraylist3;
9045 /* <var_listnode8:nullable Object> isa Array[Object] */
9046 cltype15 = type_array__Arraykernel__Object.color;
9047 idtype16 = type_array__Arraykernel__Object.id;
9048 if(var_listnode8 == NULL) {
9049 var14 = 0;
9050 } else {
9051 if(cltype15 >= var_listnode8->type->table_size) {
9052 var14 = 0;
9053 } else {
9054 var14 = var_listnode8->type->type_table[cltype15] == idtype16;
9055 }
9056 }
9057 if (!var14) {
9058 fprintf(stderr, "Runtime error: %s", "Assert failed");
9059 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3832);
9060 exit(1);
9061 }
9062 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction60>*/;
9063 var_listnode9 = var17;
9064 var18 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
9065 ((void (*)(val*, val*))(var18->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var18, var_listnode9) /* init_atopclassdef on <var18:ATopClassdef>*/;
9066 CHECK_NEW_parser_nodes__ATopClassdef(var18);
9067 var_pclassdefnode7 = var18;
9068 var_pclassdefnode10 = var_nodearraylist4;
9069 /* <var_pclassdefnode10:nullable Object> isa nullable AClassdef */
9070 cltype20 = type_nullable_parser_nodes__AClassdef.color;
9071 idtype21 = type_nullable_parser_nodes__AClassdef.id;
9072 if(var_pclassdefnode10 == NULL) {
9073 var19 = 1;
9074 } else {
9075 if(cltype20 >= var_pclassdefnode10->type->table_size) {
9076 var19 = 0;
9077 } else {
9078 var19 = var_pclassdefnode10->type->type_table[cltype20] == idtype21;
9079 }
9080 }
9081 if (!var19) {
9082 fprintf(stderr, "Runtime error: %s", "Assert failed");
9083 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3838);
9084 exit(1);
9085 }
9086 var22 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode11, var_listnode6) /* concat on <self:ReduceAction60>*/;
9087 var_listnode11 = var22;
9088 var23 = NULL;
9089 if (var_pclassdefnode7 == NULL) {
9090 var24 = 0; /* is null */
9091 } else {
9092 var24 = 1; /* arg is null and recv is not */
9093 }
9094 if (var24){
9095 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode7) /* add on <var_listnode11:Array[Object]>*/;
9096 } else {
9097 }
9098 var25 = NULL;
9099 if (var_pclassdefnode10 == NULL) {
9100 var26 = 0; /* is null */
9101 } else {
9102 var26 = 1; /* arg is null and recv is not */
9103 }
9104 if (var26){
9105 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode10) /* add on <var_listnode11:Array[Object]>*/;
9106 } else {
9107 }
9108 var27 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
9109 var28 = NULL;
9110 ((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>*/;
9111 CHECK_NEW_parser_nodes__AModule(var27);
9112 var_pmodulenode1 = var27;
9113 var_node_list = var_pmodulenode1;
9114 var29 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction60> */
9115 var30 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var29) /* go_to on <var_p:Parser>*/;
9116 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var30, var_node_list) /* push on <var_p:Parser>*/;
9117 RET_LABEL:;
9118 }
9119 /* method parser#ReduceAction60#action for (self: Object, Parser) */
9120 void VIRTUAL_parser__ReduceAction60__action(val* self, val* p0) {
9121 parser__ReduceAction60__action(self, p0);
9122 RET_LABEL:;
9123 }
9124 /* method parser#ReduceAction61#action for (self: ReduceAction61, Parser) */
9125 void parser__ReduceAction61__action(val* self, val* p0) {
9126 val* var_p /* var p: Parser */;
9127 val* var /* : null */;
9128 val* var_node_list /* var node_list: nullable Object */;
9129 val* var1 /* : nullable Object */;
9130 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9131 val* var2 /* : nullable Object */;
9132 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9133 val* var3 /* : nullable Object */;
9134 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9135 val* var4 /* : nullable Object */;
9136 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9137 val* var5 /* : nullable Object */;
9138 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9139 val* var6 /* : Array[Object] */;
9140 val* var_listnode3 /* var listnode3: Array[Object] */;
9141 val* var7 /* : Array[Object] */;
9142 val* var_listnode5 /* var listnode5: Array[Object] */;
9143 val* var8 /* : Array[Object] */;
9144 val* var_listnode11 /* var listnode11: Array[Object] */;
9145 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
9146 short int var9 /* : Bool */;
9147 int cltype;
9148 int idtype;
9149 val* var_listnode4 /* var listnode4: nullable Object */;
9150 short int var10 /* : Bool */;
9151 int cltype11;
9152 int idtype12;
9153 val* var13 /* : Array[Object] */;
9154 val* var_listnode6 /* var listnode6: nullable Object */;
9155 short int var14 /* : Bool */;
9156 int cltype15;
9157 int idtype16;
9158 val* var17 /* : Array[Object] */;
9159 val* var_listnode9 /* var listnode9: Array[Object] */;
9160 val* var_listnode8 /* var listnode8: nullable Object */;
9161 short int var18 /* : Bool */;
9162 int cltype19;
9163 int idtype20;
9164 val* var21 /* : Array[Object] */;
9165 val* var22 /* : ATopClassdef */;
9166 val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */;
9167 val* var_pclassdefnode10 /* var pclassdefnode10: nullable Object */;
9168 short int var23 /* : Bool */;
9169 int cltype24;
9170 int idtype25;
9171 val* var26 /* : Array[Object] */;
9172 val* var27 /* : null */;
9173 short int var28 /* : Bool */;
9174 val* var29 /* : null */;
9175 short int var30 /* : Bool */;
9176 val* var31 /* : AModule */;
9177 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
9178 long var32 /* : Int */;
9179 long var33 /* : Int */;
9180 var_p = p0;
9181 var = NULL;
9182 var_node_list = var;
9183 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9184 var_nodearraylist5 = var1;
9185 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9186 var_nodearraylist4 = var2;
9187 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9188 var_nodearraylist3 = var3;
9189 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9190 var_nodearraylist2 = var4;
9191 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9192 var_nodearraylist1 = var5;
9193 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
9194 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
9195 CHECK_NEW_array__Array(var6);
9196 var_listnode3 = var6;
9197 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
9198 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
9199 CHECK_NEW_array__Array(var7);
9200 var_listnode5 = var7;
9201 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
9202 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
9203 CHECK_NEW_array__Array(var8);
9204 var_listnode11 = var8;
9205 var_pmoduledeclnode2 = var_nodearraylist1;
9206 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
9207 cltype = type_nullable_parser_nodes__AModuledecl.color;
9208 idtype = type_nullable_parser_nodes__AModuledecl.id;
9209 if(var_pmoduledeclnode2 == NULL) {
9210 var9 = 1;
9211 } else {
9212 if(cltype >= var_pmoduledeclnode2->type->table_size) {
9213 var9 = 0;
9214 } else {
9215 var9 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
9216 }
9217 }
9218 if (!var9) {
9219 fprintf(stderr, "Runtime error: %s", "Assert failed");
9220 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3870);
9221 exit(1);
9222 }
9223 var_listnode4 = var_nodearraylist2;
9224 /* <var_listnode4:nullable Object> isa Array[Object] */
9225 cltype11 = type_array__Arraykernel__Object.color;
9226 idtype12 = type_array__Arraykernel__Object.id;
9227 if(var_listnode4 == NULL) {
9228 var10 = 0;
9229 } else {
9230 if(cltype11 >= var_listnode4->type->table_size) {
9231 var10 = 0;
9232 } else {
9233 var10 = var_listnode4->type->type_table[cltype11] == idtype12;
9234 }
9235 }
9236 if (!var10) {
9237 fprintf(stderr, "Runtime error: %s", "Assert failed");
9238 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3872);
9239 exit(1);
9240 }
9241 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction61>*/;
9242 var_listnode5 = var13;
9243 var_listnode6 = var_nodearraylist3;
9244 /* <var_listnode6:nullable Object> isa Array[Object] */
9245 cltype15 = type_array__Arraykernel__Object.color;
9246 idtype16 = type_array__Arraykernel__Object.id;
9247 if(var_listnode6 == NULL) {
9248 var14 = 0;
9249 } else {
9250 if(cltype15 >= var_listnode6->type->table_size) {
9251 var14 = 0;
9252 } else {
9253 var14 = var_listnode6->type->type_table[cltype15] == idtype16;
9254 }
9255 }
9256 if (!var14) {
9257 fprintf(stderr, "Runtime error: %s", "Assert failed");
9258 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3875);
9259 exit(1);
9260 }
9261 var17 = NEW_array__Array(&type_array__Arraykernel__Object);
9262 ((void (*)(val*))(var17->class->vft[COLOR_array__Array__init]))(var17) /* init on <var17:Array[Object]>*/;
9263 CHECK_NEW_array__Array(var17);
9264 var_listnode9 = var17;
9265 var_listnode8 = var_nodearraylist4;
9266 /* <var_listnode8:nullable Object> isa Array[Object] */
9267 cltype19 = type_array__Arraykernel__Object.color;
9268 idtype20 = type_array__Arraykernel__Object.id;
9269 if(var_listnode8 == NULL) {
9270 var18 = 0;
9271 } else {
9272 if(cltype19 >= var_listnode8->type->table_size) {
9273 var18 = 0;
9274 } else {
9275 var18 = var_listnode8->type->type_table[cltype19] == idtype20;
9276 }
9277 }
9278 if (!var18) {
9279 fprintf(stderr, "Runtime error: %s", "Assert failed");
9280 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3878);
9281 exit(1);
9282 }
9283 var21 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction61>*/;
9284 var_listnode9 = var21;
9285 var22 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
9286 ((void (*)(val*, val*))(var22->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var22, var_listnode9) /* init_atopclassdef on <var22:ATopClassdef>*/;
9287 CHECK_NEW_parser_nodes__ATopClassdef(var22);
9288 var_pclassdefnode7 = var22;
9289 var_pclassdefnode10 = var_nodearraylist5;
9290 /* <var_pclassdefnode10:nullable Object> isa nullable AClassdef */
9291 cltype24 = type_nullable_parser_nodes__AClassdef.color;
9292 idtype25 = type_nullable_parser_nodes__AClassdef.id;
9293 if(var_pclassdefnode10 == NULL) {
9294 var23 = 1;
9295 } else {
9296 if(cltype24 >= var_pclassdefnode10->type->table_size) {
9297 var23 = 0;
9298 } else {
9299 var23 = var_pclassdefnode10->type->type_table[cltype24] == idtype25;
9300 }
9301 }
9302 if (!var23) {
9303 fprintf(stderr, "Runtime error: %s", "Assert failed");
9304 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3884);
9305 exit(1);
9306 }
9307 var26 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode11, var_listnode6) /* concat on <self:ReduceAction61>*/;
9308 var_listnode11 = var26;
9309 var27 = NULL;
9310 if (var_pclassdefnode7 == NULL) {
9311 var28 = 0; /* is null */
9312 } else {
9313 var28 = 1; /* arg is null and recv is not */
9314 }
9315 if (var28){
9316 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode7) /* add on <var_listnode11:Array[Object]>*/;
9317 } else {
9318 }
9319 var29 = NULL;
9320 if (var_pclassdefnode10 == NULL) {
9321 var30 = 0; /* is null */
9322 } else {
9323 var30 = 1; /* arg is null and recv is not */
9324 }
9325 if (var30){
9326 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode10) /* add on <var_listnode11:Array[Object]>*/;
9327 } else {
9328 }
9329 var31 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
9330 ((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>*/;
9331 CHECK_NEW_parser_nodes__AModule(var31);
9332 var_pmodulenode1 = var31;
9333 var_node_list = var_pmodulenode1;
9334 var32 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction61> */
9335 var33 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var32) /* go_to on <var_p:Parser>*/;
9336 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var33, var_node_list) /* push on <var_p:Parser>*/;
9337 RET_LABEL:;
9338 }
9339 /* method parser#ReduceAction61#action for (self: Object, Parser) */
9340 void VIRTUAL_parser__ReduceAction61__action(val* self, val* p0) {
9341 parser__ReduceAction61__action(self, p0);
9342 RET_LABEL:;
9343 }
9344 /* method parser#ReduceAction62#action for (self: ReduceAction62, Parser) */
9345 void parser__ReduceAction62__action(val* self, val* p0) {
9346 val* var_p /* var p: Parser */;
9347 val* var /* : null */;
9348 val* var_node_list /* var node_list: nullable Object */;
9349 val* var1 /* : nullable Object */;
9350 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9351 val* var2 /* : nullable Object */;
9352 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9353 val* var3 /* : nullable Object */;
9354 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9355 val* var4 /* : nullable Object */;
9356 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9357 val* var5 /* : nullable Object */;
9358 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9359 val* var6 /* : Array[Object] */;
9360 val* var_listnode4 /* var listnode4: Array[Object] */;
9361 val* var7 /* : Array[Object] */;
9362 val* var_listnode6 /* var listnode6: Array[Object] */;
9363 val* var8 /* : Array[Object] */;
9364 val* var_listnode12 /* var listnode12: Array[Object] */;
9365 val* var_listnode3 /* var listnode3: nullable Object */;
9366 short int var9 /* : Bool */;
9367 int cltype;
9368 int idtype;
9369 val* var10 /* : Array[Object] */;
9370 val* var_listnode5 /* var listnode5: nullable Object */;
9371 short int var11 /* : Bool */;
9372 int cltype12;
9373 int idtype13;
9374 val* var14 /* : Array[Object] */;
9375 val* var_listnode7 /* var listnode7: nullable Object */;
9376 short int var15 /* : Bool */;
9377 int cltype16;
9378 int idtype17;
9379 val* var18 /* : Array[Object] */;
9380 val* var_listnode10 /* var listnode10: Array[Object] */;
9381 val* var_listnode9 /* var listnode9: nullable Object */;
9382 short int var19 /* : Bool */;
9383 int cltype20;
9384 int idtype21;
9385 val* var22 /* : Array[Object] */;
9386 val* var23 /* : ATopClassdef */;
9387 val* var_pclassdefnode8 /* var pclassdefnode8: nullable ATopClassdef */;
9388 val* var_pclassdefnode11 /* var pclassdefnode11: nullable Object */;
9389 short int var24 /* : Bool */;
9390 int cltype25;
9391 int idtype26;
9392 val* var27 /* : Array[Object] */;
9393 val* var28 /* : null */;
9394 short int var29 /* : Bool */;
9395 val* var30 /* : null */;
9396 short int var31 /* : Bool */;
9397 val* var32 /* : AModule */;
9398 val* var33 /* : null */;
9399 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
9400 long var34 /* : Int */;
9401 long var35 /* : Int */;
9402 var_p = p0;
9403 var = NULL;
9404 var_node_list = var;
9405 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9406 var_nodearraylist5 = var1;
9407 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9408 var_nodearraylist4 = var2;
9409 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9410 var_nodearraylist3 = var3;
9411 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9412 var_nodearraylist2 = var4;
9413 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9414 var_nodearraylist1 = var5;
9415 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
9416 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
9417 CHECK_NEW_array__Array(var6);
9418 var_listnode4 = var6;
9419 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
9420 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
9421 CHECK_NEW_array__Array(var7);
9422 var_listnode6 = var7;
9423 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
9424 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
9425 CHECK_NEW_array__Array(var8);
9426 var_listnode12 = var8;
9427 var_listnode3 = var_nodearraylist1;
9428 /* <var_listnode3:nullable Object> isa Array[Object] */
9429 cltype = type_array__Arraykernel__Object.color;
9430 idtype = type_array__Arraykernel__Object.id;
9431 if(var_listnode3 == NULL) {
9432 var9 = 0;
9433 } else {
9434 if(cltype >= var_listnode3->type->table_size) {
9435 var9 = 0;
9436 } else {
9437 var9 = var_listnode3->type->type_table[cltype] == idtype;
9438 }
9439 }
9440 if (!var9) {
9441 fprintf(stderr, "Runtime error: %s", "Assert failed");
9442 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3916);
9443 exit(1);
9444 }
9445 var10 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction62>*/;
9446 var_listnode4 = var10;
9447 var_listnode5 = var_nodearraylist2;
9448 /* <var_listnode5:nullable Object> isa Array[Object] */
9449 cltype12 = type_array__Arraykernel__Object.color;
9450 idtype13 = type_array__Arraykernel__Object.id;
9451 if(var_listnode5 == NULL) {
9452 var11 = 0;
9453 } else {
9454 if(cltype12 >= var_listnode5->type->table_size) {
9455 var11 = 0;
9456 } else {
9457 var11 = var_listnode5->type->type_table[cltype12] == idtype13;
9458 }
9459 }
9460 if (!var11) {
9461 fprintf(stderr, "Runtime error: %s", "Assert failed");
9462 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3919);
9463 exit(1);
9464 }
9465 var14 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction62>*/;
9466 var_listnode6 = var14;
9467 var_listnode7 = var_nodearraylist3;
9468 /* <var_listnode7:nullable Object> isa Array[Object] */
9469 cltype16 = type_array__Arraykernel__Object.color;
9470 idtype17 = type_array__Arraykernel__Object.id;
9471 if(var_listnode7 == NULL) {
9472 var15 = 0;
9473 } else {
9474 if(cltype16 >= var_listnode7->type->table_size) {
9475 var15 = 0;
9476 } else {
9477 var15 = var_listnode7->type->type_table[cltype16] == idtype17;
9478 }
9479 }
9480 if (!var15) {
9481 fprintf(stderr, "Runtime error: %s", "Assert failed");
9482 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3922);
9483 exit(1);
9484 }
9485 var18 = NEW_array__Array(&type_array__Arraykernel__Object);
9486 ((void (*)(val*))(var18->class->vft[COLOR_array__Array__init]))(var18) /* init on <var18:Array[Object]>*/;
9487 CHECK_NEW_array__Array(var18);
9488 var_listnode10 = var18;
9489 var_listnode9 = var_nodearraylist4;
9490 /* <var_listnode9:nullable Object> isa Array[Object] */
9491 cltype20 = type_array__Arraykernel__Object.color;
9492 idtype21 = type_array__Arraykernel__Object.id;
9493 if(var_listnode9 == NULL) {
9494 var19 = 0;
9495 } else {
9496 if(cltype20 >= var_listnode9->type->table_size) {
9497 var19 = 0;
9498 } else {
9499 var19 = var_listnode9->type->type_table[cltype20] == idtype21;
9500 }
9501 }
9502 if (!var19) {
9503 fprintf(stderr, "Runtime error: %s", "Assert failed");
9504 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3925);
9505 exit(1);
9506 }
9507 var22 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode9) /* concat on <self:ReduceAction62>*/;
9508 var_listnode10 = var22;
9509 var23 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
9510 ((void (*)(val*, val*))(var23->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var23, var_listnode10) /* init_atopclassdef on <var23:ATopClassdef>*/;
9511 CHECK_NEW_parser_nodes__ATopClassdef(var23);
9512 var_pclassdefnode8 = var23;
9513 var_pclassdefnode11 = var_nodearraylist5;
9514 /* <var_pclassdefnode11:nullable Object> isa nullable AClassdef */
9515 cltype25 = type_nullable_parser_nodes__AClassdef.color;
9516 idtype26 = type_nullable_parser_nodes__AClassdef.id;
9517 if(var_pclassdefnode11 == NULL) {
9518 var24 = 1;
9519 } else {
9520 if(cltype25 >= var_pclassdefnode11->type->table_size) {
9521 var24 = 0;
9522 } else {
9523 var24 = var_pclassdefnode11->type->type_table[cltype25] == idtype26;
9524 }
9525 }
9526 if (!var24) {
9527 fprintf(stderr, "Runtime error: %s", "Assert failed");
9528 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3931);
9529 exit(1);
9530 }
9531 var27 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode7) /* concat on <self:ReduceAction62>*/;
9532 var_listnode12 = var27;
9533 var28 = NULL;
9534 if (var_pclassdefnode8 == NULL) {
9535 var29 = 0; /* is null */
9536 } else {
9537 var29 = 1; /* arg is null and recv is not */
9538 }
9539 if (var29){
9540 ((void (*)(val*, val*))(var_listnode12->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode12, var_pclassdefnode8) /* add on <var_listnode12:Array[Object]>*/;
9541 } else {
9542 }
9543 var30 = NULL;
9544 if (var_pclassdefnode11 == NULL) {
9545 var31 = 0; /* is null */
9546 } else {
9547 var31 = 1; /* arg is null and recv is not */
9548 }
9549 if (var31){
9550 ((void (*)(val*, val*))(var_listnode12->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode12, var_pclassdefnode11) /* add on <var_listnode12:Array[Object]>*/;
9551 } else {
9552 }
9553 var32 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
9554 var33 = NULL;
9555 ((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>*/;
9556 CHECK_NEW_parser_nodes__AModule(var32);
9557 var_pmodulenode1 = var32;
9558 var_node_list = var_pmodulenode1;
9559 var34 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction62> */
9560 var35 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var34) /* go_to on <var_p:Parser>*/;
9561 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var35, var_node_list) /* push on <var_p:Parser>*/;
9562 RET_LABEL:;
9563 }
9564 /* method parser#ReduceAction62#action for (self: Object, Parser) */
9565 void VIRTUAL_parser__ReduceAction62__action(val* self, val* p0) {
9566 parser__ReduceAction62__action(self, p0);
9567 RET_LABEL:;
9568 }
9569 /* method parser#ReduceAction63#action for (self: ReduceAction63, Parser) */
9570 void parser__ReduceAction63__action(val* self, val* p0) {
9571 val* var_p /* var p: Parser */;
9572 val* var /* : null */;
9573 val* var_node_list /* var node_list: nullable Object */;
9574 val* var1 /* : nullable Object */;
9575 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
9576 val* var2 /* : nullable Object */;
9577 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9578 val* var3 /* : nullable Object */;
9579 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9580 val* var4 /* : nullable Object */;
9581 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9582 val* var5 /* : nullable Object */;
9583 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9584 val* var6 /* : nullable Object */;
9585 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9586 val* var7 /* : Array[Object] */;
9587 val* var_listnode4 /* var listnode4: Array[Object] */;
9588 val* var8 /* : Array[Object] */;
9589 val* var_listnode6 /* var listnode6: Array[Object] */;
9590 val* var9 /* : Array[Object] */;
9591 val* var_listnode12 /* var listnode12: Array[Object] */;
9592 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
9593 short int var10 /* : Bool */;
9594 int cltype;
9595 int idtype;
9596 val* var_listnode3 /* var listnode3: nullable Object */;
9597 short int var11 /* : Bool */;
9598 int cltype12;
9599 int idtype13;
9600 val* var14 /* : Array[Object] */;
9601 val* var_listnode5 /* var listnode5: nullable Object */;
9602 short int var15 /* : Bool */;
9603 int cltype16;
9604 int idtype17;
9605 val* var18 /* : Array[Object] */;
9606 val* var_listnode7 /* var listnode7: nullable Object */;
9607 short int var19 /* : Bool */;
9608 int cltype20;
9609 int idtype21;
9610 val* var22 /* : Array[Object] */;
9611 val* var_listnode10 /* var listnode10: Array[Object] */;
9612 val* var_listnode9 /* var listnode9: nullable Object */;
9613 short int var23 /* : Bool */;
9614 int cltype24;
9615 int idtype25;
9616 val* var26 /* : Array[Object] */;
9617 val* var27 /* : ATopClassdef */;
9618 val* var_pclassdefnode8 /* var pclassdefnode8: nullable ATopClassdef */;
9619 val* var_pclassdefnode11 /* var pclassdefnode11: nullable Object */;
9620 short int var28 /* : Bool */;
9621 int cltype29;
9622 int idtype30;
9623 val* var31 /* : Array[Object] */;
9624 val* var32 /* : null */;
9625 short int var33 /* : Bool */;
9626 val* var34 /* : null */;
9627 short int var35 /* : Bool */;
9628 val* var36 /* : AModule */;
9629 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
9630 long var37 /* : Int */;
9631 long var38 /* : Int */;
9632 var_p = p0;
9633 var = NULL;
9634 var_node_list = var;
9635 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9636 var_nodearraylist6 = var1;
9637 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9638 var_nodearraylist5 = var2;
9639 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9640 var_nodearraylist4 = var3;
9641 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9642 var_nodearraylist3 = var4;
9643 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9644 var_nodearraylist2 = var5;
9645 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9646 var_nodearraylist1 = var6;
9647 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
9648 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
9649 CHECK_NEW_array__Array(var7);
9650 var_listnode4 = var7;
9651 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
9652 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
9653 CHECK_NEW_array__Array(var8);
9654 var_listnode6 = var8;
9655 var9 = NEW_array__Array(&type_array__Arraykernel__Object);
9656 ((void (*)(val*))(var9->class->vft[COLOR_array__Array__init]))(var9) /* init on <var9:Array[Object]>*/;
9657 CHECK_NEW_array__Array(var9);
9658 var_listnode12 = var9;
9659 var_pmoduledeclnode2 = var_nodearraylist1;
9660 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
9661 cltype = type_nullable_parser_nodes__AModuledecl.color;
9662 idtype = type_nullable_parser_nodes__AModuledecl.id;
9663 if(var_pmoduledeclnode2 == NULL) {
9664 var10 = 1;
9665 } else {
9666 if(cltype >= var_pmoduledeclnode2->type->table_size) {
9667 var10 = 0;
9668 } else {
9669 var10 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
9670 }
9671 }
9672 if (!var10) {
9673 fprintf(stderr, "Runtime error: %s", "Assert failed");
9674 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3964);
9675 exit(1);
9676 }
9677 var_listnode3 = var_nodearraylist2;
9678 /* <var_listnode3:nullable Object> isa Array[Object] */
9679 cltype12 = type_array__Arraykernel__Object.color;
9680 idtype13 = type_array__Arraykernel__Object.id;
9681 if(var_listnode3 == NULL) {
9682 var11 = 0;
9683 } else {
9684 if(cltype12 >= var_listnode3->type->table_size) {
9685 var11 = 0;
9686 } else {
9687 var11 = var_listnode3->type->type_table[cltype12] == idtype13;
9688 }
9689 }
9690 if (!var11) {
9691 fprintf(stderr, "Runtime error: %s", "Assert failed");
9692 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3966);
9693 exit(1);
9694 }
9695 var14 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction63>*/;
9696 var_listnode4 = var14;
9697 var_listnode5 = var_nodearraylist3;
9698 /* <var_listnode5:nullable Object> isa Array[Object] */
9699 cltype16 = type_array__Arraykernel__Object.color;
9700 idtype17 = type_array__Arraykernel__Object.id;
9701 if(var_listnode5 == NULL) {
9702 var15 = 0;
9703 } else {
9704 if(cltype16 >= var_listnode5->type->table_size) {
9705 var15 = 0;
9706 } else {
9707 var15 = var_listnode5->type->type_table[cltype16] == idtype17;
9708 }
9709 }
9710 if (!var15) {
9711 fprintf(stderr, "Runtime error: %s", "Assert failed");
9712 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3969);
9713 exit(1);
9714 }
9715 var18 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction63>*/;
9716 var_listnode6 = var18;
9717 var_listnode7 = var_nodearraylist4;
9718 /* <var_listnode7:nullable Object> isa Array[Object] */
9719 cltype20 = type_array__Arraykernel__Object.color;
9720 idtype21 = type_array__Arraykernel__Object.id;
9721 if(var_listnode7 == NULL) {
9722 var19 = 0;
9723 } else {
9724 if(cltype20 >= var_listnode7->type->table_size) {
9725 var19 = 0;
9726 } else {
9727 var19 = var_listnode7->type->type_table[cltype20] == idtype21;
9728 }
9729 }
9730 if (!var19) {
9731 fprintf(stderr, "Runtime error: %s", "Assert failed");
9732 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3972);
9733 exit(1);
9734 }
9735 var22 = NEW_array__Array(&type_array__Arraykernel__Object);
9736 ((void (*)(val*))(var22->class->vft[COLOR_array__Array__init]))(var22) /* init on <var22:Array[Object]>*/;
9737 CHECK_NEW_array__Array(var22);
9738 var_listnode10 = var22;
9739 var_listnode9 = var_nodearraylist5;
9740 /* <var_listnode9:nullable Object> isa Array[Object] */
9741 cltype24 = type_array__Arraykernel__Object.color;
9742 idtype25 = type_array__Arraykernel__Object.id;
9743 if(var_listnode9 == NULL) {
9744 var23 = 0;
9745 } else {
9746 if(cltype24 >= var_listnode9->type->table_size) {
9747 var23 = 0;
9748 } else {
9749 var23 = var_listnode9->type->type_table[cltype24] == idtype25;
9750 }
9751 }
9752 if (!var23) {
9753 fprintf(stderr, "Runtime error: %s", "Assert failed");
9754 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3975);
9755 exit(1);
9756 }
9757 var26 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode9) /* concat on <self:ReduceAction63>*/;
9758 var_listnode10 = var26;
9759 var27 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
9760 ((void (*)(val*, val*))(var27->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var27, var_listnode10) /* init_atopclassdef on <var27:ATopClassdef>*/;
9761 CHECK_NEW_parser_nodes__ATopClassdef(var27);
9762 var_pclassdefnode8 = var27;
9763 var_pclassdefnode11 = var_nodearraylist6;
9764 /* <var_pclassdefnode11:nullable Object> isa nullable AClassdef */
9765 cltype29 = type_nullable_parser_nodes__AClassdef.color;
9766 idtype30 = type_nullable_parser_nodes__AClassdef.id;
9767 if(var_pclassdefnode11 == NULL) {
9768 var28 = 1;
9769 } else {
9770 if(cltype29 >= var_pclassdefnode11->type->table_size) {
9771 var28 = 0;
9772 } else {
9773 var28 = var_pclassdefnode11->type->type_table[cltype29] == idtype30;
9774 }
9775 }
9776 if (!var28) {
9777 fprintf(stderr, "Runtime error: %s", "Assert failed");
9778 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 3981);
9779 exit(1);
9780 }
9781 var31 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode7) /* concat on <self:ReduceAction63>*/;
9782 var_listnode12 = var31;
9783 var32 = NULL;
9784 if (var_pclassdefnode8 == NULL) {
9785 var33 = 0; /* is null */
9786 } else {
9787 var33 = 1; /* arg is null and recv is not */
9788 }
9789 if (var33){
9790 ((void (*)(val*, val*))(var_listnode12->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode12, var_pclassdefnode8) /* add on <var_listnode12:Array[Object]>*/;
9791 } else {
9792 }
9793 var34 = NULL;
9794 if (var_pclassdefnode11 == NULL) {
9795 var35 = 0; /* is null */
9796 } else {
9797 var35 = 1; /* arg is null and recv is not */
9798 }
9799 if (var35){
9800 ((void (*)(val*, val*))(var_listnode12->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode12, var_pclassdefnode11) /* add on <var_listnode12:Array[Object]>*/;
9801 } else {
9802 }
9803 var36 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
9804 ((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>*/;
9805 CHECK_NEW_parser_nodes__AModule(var36);
9806 var_pmodulenode1 = var36;
9807 var_node_list = var_pmodulenode1;
9808 var37 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction63> */
9809 var38 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var37) /* go_to on <var_p:Parser>*/;
9810 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var38, var_node_list) /* push on <var_p:Parser>*/;
9811 RET_LABEL:;
9812 }
9813 /* method parser#ReduceAction63#action for (self: Object, Parser) */
9814 void VIRTUAL_parser__ReduceAction63__action(val* self, val* p0) {
9815 parser__ReduceAction63__action(self, p0);
9816 RET_LABEL:;
9817 }
9818 /* method parser#ReduceAction64#action for (self: ReduceAction64, Parser) */
9819 void parser__ReduceAction64__action(val* self, val* p0) {
9820 val* var_p /* var p: Parser */;
9821 val* var /* : null */;
9822 val* var_node_list /* var node_list: nullable Object */;
9823 val* var1 /* : nullable Object */;
9824 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9825 val* var2 /* : nullable Object */;
9826 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9827 val* var3 /* : nullable Object */;
9828 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9829 val* var4 /* : nullable Object */;
9830 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9831 val* var5 /* : nullable Object */;
9832 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9833 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
9834 short int var6 /* : Bool */;
9835 int cltype;
9836 int idtype;
9837 val* var_tkwmodulenode3 /* var tkwmodulenode3: nullable Object */;
9838 short int var7 /* : Bool */;
9839 int cltype8;
9840 int idtype9;
9841 val* var_pmodulenamenode4 /* var pmodulenamenode4: nullable Object */;
9842 short int var10 /* : Bool */;
9843 int cltype11;
9844 int idtype12;
9845 val* var13 /* : AModuledecl */;
9846 val* var14 /* : null */;
9847 val* var_pmoduledeclnode1 /* var pmoduledeclnode1: nullable AModuledecl */;
9848 long var15 /* : Int */;
9849 long var16 /* : Int */;
9850 var_p = p0;
9851 var = NULL;
9852 var_node_list = var;
9853 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9854 var_nodearraylist5 = var1;
9855 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9856 var_nodearraylist4 = var2;
9857 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9858 var_nodearraylist3 = var3;
9859 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9860 var_nodearraylist2 = var4;
9861 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9862 var_nodearraylist1 = var5;
9863 var_pdocnode2 = var_nodearraylist1;
9864 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
9865 cltype = type_nullable_parser_nodes__ADoc.color;
9866 idtype = type_nullable_parser_nodes__ADoc.id;
9867 if(var_pdocnode2 == NULL) {
9868 var6 = 1;
9869 } else {
9870 if(cltype >= var_pdocnode2->type->table_size) {
9871 var6 = 0;
9872 } else {
9873 var6 = var_pdocnode2->type->type_table[cltype] == idtype;
9874 }
9875 }
9876 if (!var6) {
9877 fprintf(stderr, "Runtime error: %s", "Assert failed");
9878 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4010);
9879 exit(1);
9880 }
9881 var_tkwmodulenode3 = var_nodearraylist2;
9882 /* <var_tkwmodulenode3:nullable Object> isa nullable TKwmodule */
9883 cltype8 = type_nullable_parser_nodes__TKwmodule.color;
9884 idtype9 = type_nullable_parser_nodes__TKwmodule.id;
9885 if(var_tkwmodulenode3 == NULL) {
9886 var7 = 1;
9887 } else {
9888 if(cltype8 >= var_tkwmodulenode3->type->table_size) {
9889 var7 = 0;
9890 } else {
9891 var7 = var_tkwmodulenode3->type->type_table[cltype8] == idtype9;
9892 }
9893 }
9894 if (!var7) {
9895 fprintf(stderr, "Runtime error: %s", "Assert failed");
9896 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4012);
9897 exit(1);
9898 }
9899 var_pmodulenamenode4 = var_nodearraylist4;
9900 /* <var_pmodulenamenode4:nullable Object> isa nullable AModuleName */
9901 cltype11 = type_nullable_parser_nodes__AModuleName.color;
9902 idtype12 = type_nullable_parser_nodes__AModuleName.id;
9903 if(var_pmodulenamenode4 == NULL) {
9904 var10 = 1;
9905 } else {
9906 if(cltype11 >= var_pmodulenamenode4->type->table_size) {
9907 var10 = 0;
9908 } else {
9909 var10 = var_pmodulenamenode4->type->type_table[cltype11] == idtype12;
9910 }
9911 }
9912 if (!var10) {
9913 fprintf(stderr, "Runtime error: %s", "Assert failed");
9914 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 4014);
9915 exit(1);
9916 }
9917 var13 = NEW_parser_nodes__AModuledecl(&type_parser_nodes__AModuledecl);
9918 var14 = NULL;
9919 ((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>*/;
9920 CHECK_NEW_parser_nodes__AModuledecl(var13);
9921 var_pmoduledeclnode1 = var13;
9922 var_node_list = var_pmoduledeclnode1;
9923 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction64> */
9924 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
9925 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
9926 RET_LABEL:;
9927 }
9928 /* method parser#ReduceAction64#action for (self: Object, Parser) */
9929 void VIRTUAL_parser__ReduceAction64__action(val* self, val* p0) {
9930 parser__ReduceAction64__action(self, p0);
9931 RET_LABEL:;
9932 }