8d7cab42e230fdb2c665426d9ba5f874c55572ef
[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 (%s:%d)\n", "Uninitialized attribute _need_first_prods", "src/parser/parser.nit", 1999);
91 exit(1);
92 }
93 var3 = ((short int (*)(val*))(var2->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var2) /* is_empty on <var2:Array[Prod]>*/;
94 var4 = !var3;
95 if (var4){
96 var5 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_first_prods].val; /* _need_first_prods on <self:ComputeProdLocationVisitor> */
97 if (var5 == NULL) {
98 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _need_first_prods", "src/parser/parser.nit", 2000);
99 exit(1);
100 }
101 var6 = ((val* (*)(val*))(var5->class->vft[COLOR_abstract_collection__Collection__iterator]))(var5) /* iterator on <var5:Array[Prod]>*/;
102 for(;;) {
103 var7 = ((short int (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var6) /* is_ok on <var6:Iterator[nullable Object]>*/;
104 if(!var7) break;
105 var8 = ((val* (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__item]))(var6) /* item on <var6:Iterator[nullable Object]>*/;
106 var_no = var8;
107 var_no->attrs[COLOR_parser__Prod___first_location].val = var_loc; /* _first_location on <var_no:Prod> */
108 CONTINUE_label: (void)0;
109 ((void (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__next]))(var6) /* next on <var6:Iterator[nullable Object]>*/;
110 }
111 BREAK_label: (void)0;
112 var9 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_first_prods].val; /* _need_first_prods on <self:ComputeProdLocationVisitor> */
113 if (var9 == NULL) {
114 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _need_first_prods", "src/parser/parser.nit", 2003);
115 exit(1);
116 }
117 ((void (*)(val*))(var9->class->vft[COLOR_abstract_collection__RemovableCollection__clear]))(var9) /* clear on <var9:Array[Prod]>*/;
118 } else {
119 }
120 var10 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
121 if (var10 == NULL) {
122 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _need_after_epsilons", "src/parser/parser.nit", 2007);
123 exit(1);
124 }
125 var11 = ((short int (*)(val*))(var10->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var10) /* is_empty on <var10:Array[Prod]>*/;
126 var12 = !var11;
127 if (var12){
128 var13 = NEW_location__Location(&type_location__Location);
129 var14 = ((val* (*)(val*))(var_loc->class->vft[COLOR_location__Location__file]))(var_loc) /* file on <var_loc:Location>*/;
130 var15 = ((long (*)(val*))(var_loc->class->vft[COLOR_location__Location__line_start]))(var_loc) /* line_start on <var_loc:Location>*/;
131 var16 = ((long (*)(val*))(var_loc->class->vft[COLOR_location__Location__line_start]))(var_loc) /* line_start on <var_loc:Location>*/;
132 var17 = ((long (*)(val*))(var_loc->class->vft[COLOR_location__Location__column_start]))(var_loc) /* column_start on <var_loc:Location>*/;
133 var18 = ((long (*)(val*))(var_loc->class->vft[COLOR_location__Location__column_start]))(var_loc) /* column_start on <var_loc:Location>*/;
134 ((void (*)(val*, val*, long, long, long, long))(var13->class->vft[COLOR_location__Location__init]))(var13, var14, var15, var16, var17, var18) /* init on <var13:Location>*/;
135 CHECK_NEW_location__Location(var13);
136 var_loco = var13;
137 var19 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
138 if (var19 == NULL) {
139 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _need_after_epsilons", "src/parser/parser.nit", 2009);
140 exit(1);
141 }
142 var20 = ((val* (*)(val*))(var19->class->vft[COLOR_abstract_collection__Collection__iterator]))(var19) /* iterator on <var19:Array[Prod]>*/;
143 for(;;) {
144 var21 = ((short int (*)(val*))(var20->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var20) /* is_ok on <var20:Iterator[nullable Object]>*/;
145 if(!var21) break;
146 var22 = ((val* (*)(val*))(var20->class->vft[COLOR_abstract_collection__Iterator__item]))(var20) /* item on <var20:Iterator[nullable Object]>*/;
147 var_no23 = var22;
148 ((void (*)(val*, val*))(var_no23->class->vft[COLOR_parser_nodes__Prod__location_61d]))(var_no23, var_loco) /* location= on <var_no23:Prod>*/;
149 CONTINUE_label24: (void)0;
150 ((void (*)(val*))(var20->class->vft[COLOR_abstract_collection__Iterator__next]))(var20) /* next on <var20:Iterator[nullable Object]>*/;
151 }
152 BREAK_label24: (void)0;
153 var25 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
154 if (var25 == NULL) {
155 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _need_after_epsilons", "src/parser/parser.nit", 2012);
156 exit(1);
157 }
158 ((void (*)(val*))(var25->class->vft[COLOR_abstract_collection__RemovableCollection__clear]))(var25) /* clear on <var25:Array[Prod]>*/;
159 } else {
160 }
161 } else {
162 /* <var_n:ANode> isa Prod */
163 cltype27 = type_parser_nodes__Prod.color;
164 idtype28 = type_parser_nodes__Prod.id;
165 if(cltype27 >= var_n->type->table_size) {
166 var26 = 0;
167 } else {
168 var26 = var_n->type->type_table[cltype27] == idtype28;
169 }
170 if (!var26) {
171 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2015);
172 exit(1);
173 }
174 var29 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_first_prods].val; /* _need_first_prods on <self:ComputeProdLocationVisitor> */
175 if (var29 == NULL) {
176 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _need_first_prods", "src/parser/parser.nit", 2016);
177 exit(1);
178 }
179 ((void (*)(val*, val*))(var29->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var29, var_n) /* add on <var29:Array[Prod]>*/;
180 ((void (*)(val*, val*))(var_n->class->vft[COLOR_parser_nodes__ANode__visit_all]))(var_n, self) /* visit_all on <var_n:ANode(Prod)>*/;
181 var30 = var_n->attrs[COLOR_parser__Prod___first_location].val; /* _first_location on <var_n:ANode(Prod)> */
182 var_startl = var30;
183 var31 = NULL;
184 if (var_startl == NULL) {
185 var32 = 0; /* is null */
186 } else {
187 var32 = 1; /* arg is null and recv is not */
188 }
189 if (var32){
190 var33 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___last_location].val; /* _last_location on <self:ComputeProdLocationVisitor> */
191 var_endl = var33;
192 var34 = NULL;
193 if (var_endl == NULL) {
194 var35 = 0; /* is null */
195 } else {
196 var35 = 1; /* arg is null and recv is not */
197 }
198 if (!var35) {
199 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2024);
200 exit(1);
201 }
202 var36 = NEW_location__Location(&type_location__Location);
203 var37 = ((val* (*)(val*))(var_startl->class->vft[COLOR_location__Location__file]))(var_startl) /* file on <var_startl:nullable Location(Location)>*/;
204 var38 = ((long (*)(val*))(var_startl->class->vft[COLOR_location__Location__line_start]))(var_startl) /* line_start on <var_startl:nullable Location(Location)>*/;
205 var39 = ((long (*)(val*))(var_endl->class->vft[COLOR_location__Location__line_end]))(var_endl) /* line_end on <var_endl:nullable Location(Location)>*/;
206 var40 = ((long (*)(val*))(var_startl->class->vft[COLOR_location__Location__column_start]))(var_startl) /* column_start on <var_startl:nullable Location(Location)>*/;
207 var41 = ((long (*)(val*))(var_endl->class->vft[COLOR_location__Location__column_end]))(var_endl) /* column_end on <var_endl:nullable Location(Location)>*/;
208 ((void (*)(val*, val*, long, long, long, long))(var36->class->vft[COLOR_location__Location__init]))(var36, var37, var38, var39, var40, var41) /* init on <var36:Location>*/;
209 CHECK_NEW_location__Location(var36);
210 ((void (*)(val*, val*))(var_n->class->vft[COLOR_parser_nodes__Prod__location_61d]))(var_n, var36) /* location= on <var_n:ANode(Prod)>*/;
211 var42 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
212 if (var42 == NULL) {
213 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _need_after_epsilons", "src/parser/parser.nit", 2028);
214 exit(1);
215 }
216 var43 = ((short int (*)(val*))(var42->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var42) /* is_empty on <var42:Array[Prod]>*/;
217 var44 = !var43;
218 if (var44){
219 var45 = NEW_location__Location(&type_location__Location);
220 var46 = ((val* (*)(val*))(var_endl->class->vft[COLOR_location__Location__file]))(var_endl) /* file on <var_endl:nullable Location(Location)>*/;
221 var47 = ((long (*)(val*))(var_endl->class->vft[COLOR_location__Location__line_end]))(var_endl) /* line_end on <var_endl:nullable Location(Location)>*/;
222 var48 = ((long (*)(val*))(var_endl->class->vft[COLOR_location__Location__line_end]))(var_endl) /* line_end on <var_endl:nullable Location(Location)>*/;
223 var49 = ((long (*)(val*))(var_endl->class->vft[COLOR_location__Location__column_end]))(var_endl) /* column_end on <var_endl:nullable Location(Location)>*/;
224 var50 = ((long (*)(val*))(var_endl->class->vft[COLOR_location__Location__column_end]))(var_endl) /* column_end on <var_endl:nullable Location(Location)>*/;
225 ((void (*)(val*, val*, long, long, long, long))(var45->class->vft[COLOR_location__Location__init]))(var45, var46, var47, var48, var49, var50) /* init on <var45:Location>*/;
226 CHECK_NEW_location__Location(var45);
227 var_loc51 = var45;
228 var52 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
229 if (var52 == NULL) {
230 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _need_after_epsilons", "src/parser/parser.nit", 2030);
231 exit(1);
232 }
233 var53 = ((val* (*)(val*))(var52->class->vft[COLOR_abstract_collection__Collection__iterator]))(var52) /* iterator on <var52:Array[Prod]>*/;
234 for(;;) {
235 var54 = ((short int (*)(val*))(var53->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var53) /* is_ok on <var53:Iterator[nullable Object]>*/;
236 if(!var54) break;
237 var55 = ((val* (*)(val*))(var53->class->vft[COLOR_abstract_collection__Iterator__item]))(var53) /* item on <var53:Iterator[nullable Object]>*/;
238 var_no56 = var55;
239 ((void (*)(val*, val*))(var_no56->class->vft[COLOR_parser_nodes__Prod__location_61d]))(var_no56, var_loc51) /* location= on <var_no56:Prod>*/;
240 CONTINUE_label57: (void)0;
241 ((void (*)(val*))(var53->class->vft[COLOR_abstract_collection__Iterator__next]))(var53) /* next on <var53:Iterator[nullable Object]>*/;
242 }
243 BREAK_label57: (void)0;
244 var58 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
245 if (var58 == NULL) {
246 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _need_after_epsilons", "src/parser/parser.nit", 2034);
247 exit(1);
248 }
249 ((void (*)(val*))(var58->class->vft[COLOR_abstract_collection__RemovableCollection__clear]))(var58) /* clear on <var58:Array[Prod]>*/;
250 } else {
251 }
252 } else {
253 var59 = self->attrs[COLOR_parser__ComputeProdLocationVisitor___need_after_epsilons].val; /* _need_after_epsilons on <self:ComputeProdLocationVisitor> */
254 if (var59 == NULL) {
255 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _need_after_epsilons", "src/parser/parser.nit", 2038);
256 exit(1);
257 }
258 ((void (*)(val*, val*))(var59->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var59, var_n) /* add on <var59:Array[Prod]>*/;
259 }
260 }
261 RET_LABEL:;
262 }
263 /* method parser#ComputeProdLocationVisitor#visit for (self: Object, ANode) */
264 void VIRTUAL_parser__ComputeProdLocationVisitor__visit(val* self, val* p0) {
265 parser__ComputeProdLocationVisitor__visit(self, p0);
266 RET_LABEL:;
267 }
268 /* method parser#ComputeProdLocationVisitor#init for (self: ComputeProdLocationVisitor) */
269 void parser__ComputeProdLocationVisitor__init(val* self) {
270 ((void (*)(val*))(self->class->vft[COLOR_parser_nodes__Visitor__init]))(self) /* init on <self:ComputeProdLocationVisitor>*/;
271 RET_LABEL:;
272 }
273 /* method parser#ComputeProdLocationVisitor#init for (self: Object) */
274 void VIRTUAL_parser__ComputeProdLocationVisitor__init(val* self) {
275 parser__ComputeProdLocationVisitor__init(self);
276 RET_LABEL:;
277 }
278 /* method parser#ReduceAction#action for (self: ReduceAction, Parser) */
279 void parser__ReduceAction__action(val* self, val* p0) {
280 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "src/parser/parser.nit", 2048);
281 exit(1);
282 RET_LABEL:;
283 }
284 /* method parser#ReduceAction#action for (self: Object, Parser) */
285 void VIRTUAL_parser__ReduceAction__action(val* self, val* p0) {
286 parser__ReduceAction__action(self, p0);
287 RET_LABEL:;
288 }
289 /* method parser#ReduceAction#concat for (self: ReduceAction, Array[Object], Array[Object]): Array[Object] */
290 val* parser__ReduceAction__concat(val* self, val* p0, val* p1) {
291 val* var /* : Array[Object] */;
292 val* var_l1 /* var l1: Array[Object] */;
293 val* var_l2 /* var l2: Array[Object] */;
294 short int var1 /* : Bool */;
295 var_l1 = p0;
296 var_l2 = p1;
297 var1 = ((short int (*)(val*))(var_l1->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var_l1) /* is_empty on <var_l1:Array[Object]>*/;
298 if (var1){
299 var = var_l2;
300 goto RET_LABEL;
301 } else {
302 }
303 ((void (*)(val*, val*))(var_l1->class->vft[COLOR_abstract_collection__Sequence__append]))(var_l1, var_l2) /* append on <var_l1:Array[Object]>*/;
304 var = var_l1;
305 goto RET_LABEL;
306 RET_LABEL:;
307 return var;
308 }
309 /* method parser#ReduceAction#concat for (self: Object, Array[Object], Array[Object]): Array[Object] */
310 val* VIRTUAL_parser__ReduceAction__concat(val* self, val* p0, val* p1) {
311 val* var /* : Array[Object] */;
312 val* var1 /* : Array[Object] */;
313 var1 = parser__ReduceAction__concat(self, p0, p1);
314 var = var1;
315 RET_LABEL:;
316 return var;
317 }
318 /* method parser#ReduceAction#init for (self: ReduceAction, Int) */
319 void parser__ReduceAction__init(val* self, long p0) {
320 long var_g /* var g: Int */;
321 var_g = p0;
322 self->attrs[COLOR_parser__ReduceAction___goto].l = var_g; /* _goto on <self:ReduceAction> */
323 RET_LABEL:;
324 }
325 /* method parser#ReduceAction#init for (self: Object, Int) */
326 void VIRTUAL_parser__ReduceAction__init(val* self, long p0) {
327 parser__ReduceAction__init(self, p0);
328 RET_LABEL:;
329 }
330 /* method parser#ReduceAction0#action for (self: ReduceAction0, Parser) */
331 void parser__ReduceAction0__action(val* self, val* p0) {
332 val* var_p /* var p: Parser */;
333 val* var /* : null */;
334 val* var_node_list /* var node_list: nullable Object */;
335 val* var1 /* : Array[Object] */;
336 val* var_listnode3 /* var listnode3: Array[Object] */;
337 val* var2 /* : Array[Object] */;
338 val* var_listnode4 /* var listnode4: Array[Object] */;
339 val* var3 /* : Array[Object] */;
340 val* var_listnode5 /* var listnode5: Array[Object] */;
341 val* var4 /* : AModule */;
342 val* var5 /* : null */;
343 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
344 long var6 /* : Int */;
345 long var7 /* : Int */;
346 var_p = p0;
347 var = NULL;
348 var_node_list = var;
349 var1 = NEW_array__Array(&type_array__Arraykernel__Object);
350 ((void (*)(val*))(var1->class->vft[COLOR_array__Array__init]))(var1) /* init on <var1:Array[Object]>*/;
351 CHECK_NEW_array__Array(var1);
352 var_listnode3 = var1;
353 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
354 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
355 CHECK_NEW_array__Array(var2);
356 var_listnode4 = var2;
357 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
358 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
359 CHECK_NEW_array__Array(var3);
360 var_listnode5 = var3;
361 var4 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
362 var5 = NULL;
363 ((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>*/;
364 CHECK_NEW_parser_nodes__AModule(var4);
365 var_pmodulenode1 = var4;
366 var_node_list = var_pmodulenode1;
367 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction0> */
368 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
369 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
370 RET_LABEL:;
371 }
372 /* method parser#ReduceAction0#action for (self: Object, Parser) */
373 void VIRTUAL_parser__ReduceAction0__action(val* self, val* p0) {
374 parser__ReduceAction0__action(self, p0);
375 RET_LABEL:;
376 }
377 /* method parser#ReduceAction1#action for (self: ReduceAction1, Parser) */
378 void parser__ReduceAction1__action(val* self, val* p0) {
379 val* var_p /* var p: Parser */;
380 val* var /* : null */;
381 val* var_node_list /* var node_list: nullable Object */;
382 val* var1 /* : nullable Object */;
383 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
384 val* var2 /* : Array[Object] */;
385 val* var_listnode3 /* var listnode3: Array[Object] */;
386 val* var3 /* : Array[Object] */;
387 val* var_listnode4 /* var listnode4: Array[Object] */;
388 val* var4 /* : Array[Object] */;
389 val* var_listnode5 /* var listnode5: Array[Object] */;
390 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
391 short int var5 /* : Bool */;
392 int cltype;
393 int idtype;
394 val* var6 /* : AModule */;
395 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
396 long var7 /* : Int */;
397 long var8 /* : Int */;
398 var_p = p0;
399 var = NULL;
400 var_node_list = var;
401 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
402 var_nodearraylist1 = var1;
403 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
404 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
405 CHECK_NEW_array__Array(var2);
406 var_listnode3 = var2;
407 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
408 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
409 CHECK_NEW_array__Array(var3);
410 var_listnode4 = var3;
411 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
412 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
413 CHECK_NEW_array__Array(var4);
414 var_listnode5 = var4;
415 var_pmoduledeclnode2 = var_nodearraylist1;
416 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
417 cltype = type_nullable_parser_nodes__AModuledecl.color;
418 idtype = type_nullable_parser_nodes__AModuledecl.id;
419 if(var_pmoduledeclnode2 == NULL) {
420 var5 = 1;
421 } else {
422 if(cltype >= var_pmoduledeclnode2->type->table_size) {
423 var5 = 0;
424 } else {
425 var5 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
426 }
427 }
428 if (!var5) {
429 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2087);
430 exit(1);
431 }
432 var6 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
433 ((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>*/;
434 CHECK_NEW_parser_nodes__AModule(var6);
435 var_pmodulenode1 = var6;
436 var_node_list = var_pmodulenode1;
437 var7 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1> */
438 var8 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var7) /* go_to on <var_p:Parser>*/;
439 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var8, var_node_list) /* push on <var_p:Parser>*/;
440 RET_LABEL:;
441 }
442 /* method parser#ReduceAction1#action for (self: Object, Parser) */
443 void VIRTUAL_parser__ReduceAction1__action(val* self, val* p0) {
444 parser__ReduceAction1__action(self, p0);
445 RET_LABEL:;
446 }
447 /* method parser#ReduceAction2#action for (self: ReduceAction2, Parser) */
448 void parser__ReduceAction2__action(val* self, val* p0) {
449 val* var_p /* var p: Parser */;
450 val* var /* : null */;
451 val* var_node_list /* var node_list: nullable Object */;
452 val* var1 /* : nullable Object */;
453 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
454 val* var2 /* : Array[Object] */;
455 val* var_listnode4 /* var listnode4: Array[Object] */;
456 val* var3 /* : Array[Object] */;
457 val* var_listnode5 /* var listnode5: Array[Object] */;
458 val* var4 /* : Array[Object] */;
459 val* var_listnode6 /* var listnode6: Array[Object] */;
460 val* var_listnode3 /* var listnode3: nullable Object */;
461 short int var5 /* : Bool */;
462 int cltype;
463 int idtype;
464 val* var6 /* : Array[Object] */;
465 val* var7 /* : AModule */;
466 val* var8 /* : null */;
467 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
468 long var9 /* : Int */;
469 long var10 /* : Int */;
470 var_p = p0;
471 var = NULL;
472 var_node_list = var;
473 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
474 var_nodearraylist1 = var1;
475 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
476 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
477 CHECK_NEW_array__Array(var2);
478 var_listnode4 = var2;
479 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
480 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
481 CHECK_NEW_array__Array(var3);
482 var_listnode5 = var3;
483 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
484 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
485 CHECK_NEW_array__Array(var4);
486 var_listnode6 = var4;
487 var_listnode3 = var_nodearraylist1;
488 /* <var_listnode3:nullable Object> isa Array[Object] */
489 cltype = type_array__Arraykernel__Object.color;
490 idtype = type_array__Arraykernel__Object.id;
491 if(var_listnode3 == NULL) {
492 var5 = 0;
493 } else {
494 if(cltype >= var_listnode3->type->table_size) {
495 var5 = 0;
496 } else {
497 var5 = var_listnode3->type->type_table[cltype] == idtype;
498 }
499 }
500 if (!var5) {
501 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2108);
502 exit(1);
503 }
504 var6 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction2>*/;
505 var_listnode4 = var6;
506 var7 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
507 var8 = NULL;
508 ((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>*/;
509 CHECK_NEW_parser_nodes__AModule(var7);
510 var_pmodulenode1 = var7;
511 var_node_list = var_pmodulenode1;
512 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction2> */
513 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
514 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
515 RET_LABEL:;
516 }
517 /* method parser#ReduceAction2#action for (self: Object, Parser) */
518 void VIRTUAL_parser__ReduceAction2__action(val* self, val* p0) {
519 parser__ReduceAction2__action(self, p0);
520 RET_LABEL:;
521 }
522 /* method parser#ReduceAction3#action for (self: ReduceAction3, Parser) */
523 void parser__ReduceAction3__action(val* self, val* p0) {
524 val* var_p /* var p: Parser */;
525 val* var /* : null */;
526 val* var_node_list /* var node_list: nullable Object */;
527 val* var1 /* : nullable Object */;
528 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
529 val* var2 /* : nullable Object */;
530 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
531 val* var3 /* : Array[Object] */;
532 val* var_listnode4 /* var listnode4: Array[Object] */;
533 val* var4 /* : Array[Object] */;
534 val* var_listnode5 /* var listnode5: Array[Object] */;
535 val* var5 /* : Array[Object] */;
536 val* var_listnode6 /* var listnode6: Array[Object] */;
537 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
538 short int var6 /* : Bool */;
539 int cltype;
540 int idtype;
541 val* var_listnode3 /* var listnode3: nullable Object */;
542 short int var7 /* : Bool */;
543 int cltype8;
544 int idtype9;
545 val* var10 /* : Array[Object] */;
546 val* var11 /* : AModule */;
547 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
548 long var12 /* : Int */;
549 long var13 /* : Int */;
550 var_p = p0;
551 var = NULL;
552 var_node_list = var;
553 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
554 var_nodearraylist2 = var1;
555 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
556 var_nodearraylist1 = var2;
557 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
558 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
559 CHECK_NEW_array__Array(var3);
560 var_listnode4 = var3;
561 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
562 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
563 CHECK_NEW_array__Array(var4);
564 var_listnode5 = var4;
565 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
566 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
567 CHECK_NEW_array__Array(var5);
568 var_listnode6 = var5;
569 var_pmoduledeclnode2 = var_nodearraylist1;
570 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
571 cltype = type_nullable_parser_nodes__AModuledecl.color;
572 idtype = type_nullable_parser_nodes__AModuledecl.id;
573 if(var_pmoduledeclnode2 == NULL) {
574 var6 = 1;
575 } else {
576 if(cltype >= var_pmoduledeclnode2->type->table_size) {
577 var6 = 0;
578 } else {
579 var6 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
580 }
581 }
582 if (!var6) {
583 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2131);
584 exit(1);
585 }
586 var_listnode3 = var_nodearraylist2;
587 /* <var_listnode3:nullable Object> isa Array[Object] */
588 cltype8 = type_array__Arraykernel__Object.color;
589 idtype9 = type_array__Arraykernel__Object.id;
590 if(var_listnode3 == NULL) {
591 var7 = 0;
592 } else {
593 if(cltype8 >= var_listnode3->type->table_size) {
594 var7 = 0;
595 } else {
596 var7 = var_listnode3->type->type_table[cltype8] == idtype9;
597 }
598 }
599 if (!var7) {
600 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2133);
601 exit(1);
602 }
603 var10 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction3>*/;
604 var_listnode4 = var10;
605 var11 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
606 ((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>*/;
607 CHECK_NEW_parser_nodes__AModule(var11);
608 var_pmodulenode1 = var11;
609 var_node_list = var_pmodulenode1;
610 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction3> */
611 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
612 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
613 RET_LABEL:;
614 }
615 /* method parser#ReduceAction3#action for (self: Object, Parser) */
616 void VIRTUAL_parser__ReduceAction3__action(val* self, val* p0) {
617 parser__ReduceAction3__action(self, p0);
618 RET_LABEL:;
619 }
620 /* method parser#ReduceAction4#action for (self: ReduceAction4, Parser) */
621 void parser__ReduceAction4__action(val* self, val* p0) {
622 val* var_p /* var p: Parser */;
623 val* var /* : null */;
624 val* var_node_list /* var node_list: nullable Object */;
625 val* var1 /* : nullable Object */;
626 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
627 val* var2 /* : Array[Object] */;
628 val* var_listnode3 /* var listnode3: Array[Object] */;
629 val* var3 /* : Array[Object] */;
630 val* var_listnode5 /* var listnode5: Array[Object] */;
631 val* var4 /* : Array[Object] */;
632 val* var_listnode6 /* var listnode6: Array[Object] */;
633 val* var_listnode4 /* var listnode4: nullable Object */;
634 short int var5 /* : Bool */;
635 int cltype;
636 int idtype;
637 val* var6 /* : Array[Object] */;
638 val* var7 /* : AModule */;
639 val* var8 /* : null */;
640 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
641 long var9 /* : Int */;
642 long var10 /* : Int */;
643 var_p = p0;
644 var = NULL;
645 var_node_list = var;
646 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
647 var_nodearraylist1 = var1;
648 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
649 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
650 CHECK_NEW_array__Array(var2);
651 var_listnode3 = var2;
652 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
653 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
654 CHECK_NEW_array__Array(var3);
655 var_listnode5 = var3;
656 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
657 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
658 CHECK_NEW_array__Array(var4);
659 var_listnode6 = var4;
660 var_listnode4 = var_nodearraylist1;
661 /* <var_listnode4:nullable Object> isa Array[Object] */
662 cltype = type_array__Arraykernel__Object.color;
663 idtype = type_array__Arraykernel__Object.id;
664 if(var_listnode4 == NULL) {
665 var5 = 0;
666 } else {
667 if(cltype >= var_listnode4->type->table_size) {
668 var5 = 0;
669 } else {
670 var5 = var_listnode4->type->type_table[cltype] == idtype;
671 }
672 }
673 if (!var5) {
674 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2155);
675 exit(1);
676 }
677 var6 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction4>*/;
678 var_listnode5 = var6;
679 var7 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
680 var8 = NULL;
681 ((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>*/;
682 CHECK_NEW_parser_nodes__AModule(var7);
683 var_pmodulenode1 = var7;
684 var_node_list = var_pmodulenode1;
685 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction4> */
686 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
687 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
688 RET_LABEL:;
689 }
690 /* method parser#ReduceAction4#action for (self: Object, Parser) */
691 void VIRTUAL_parser__ReduceAction4__action(val* self, val* p0) {
692 parser__ReduceAction4__action(self, p0);
693 RET_LABEL:;
694 }
695 /* method parser#ReduceAction5#action for (self: ReduceAction5, Parser) */
696 void parser__ReduceAction5__action(val* self, val* p0) {
697 val* var_p /* var p: Parser */;
698 val* var /* : null */;
699 val* var_node_list /* var node_list: nullable Object */;
700 val* var1 /* : nullable Object */;
701 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
702 val* var2 /* : nullable Object */;
703 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
704 val* var3 /* : Array[Object] */;
705 val* var_listnode3 /* var listnode3: Array[Object] */;
706 val* var4 /* : Array[Object] */;
707 val* var_listnode5 /* var listnode5: Array[Object] */;
708 val* var5 /* : Array[Object] */;
709 val* var_listnode6 /* var listnode6: Array[Object] */;
710 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
711 short int var6 /* : Bool */;
712 int cltype;
713 int idtype;
714 val* var_listnode4 /* var listnode4: nullable Object */;
715 short int var7 /* : Bool */;
716 int cltype8;
717 int idtype9;
718 val* var10 /* : Array[Object] */;
719 val* var11 /* : AModule */;
720 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
721 long var12 /* : Int */;
722 long var13 /* : Int */;
723 var_p = p0;
724 var = NULL;
725 var_node_list = var;
726 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
727 var_nodearraylist2 = var1;
728 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
729 var_nodearraylist1 = var2;
730 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
731 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
732 CHECK_NEW_array__Array(var3);
733 var_listnode3 = var3;
734 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
735 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
736 CHECK_NEW_array__Array(var4);
737 var_listnode5 = var4;
738 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
739 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
740 CHECK_NEW_array__Array(var5);
741 var_listnode6 = var5;
742 var_pmoduledeclnode2 = var_nodearraylist1;
743 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
744 cltype = type_nullable_parser_nodes__AModuledecl.color;
745 idtype = type_nullable_parser_nodes__AModuledecl.id;
746 if(var_pmoduledeclnode2 == NULL) {
747 var6 = 1;
748 } else {
749 if(cltype >= var_pmoduledeclnode2->type->table_size) {
750 var6 = 0;
751 } else {
752 var6 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
753 }
754 }
755 if (!var6) {
756 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2178);
757 exit(1);
758 }
759 var_listnode4 = var_nodearraylist2;
760 /* <var_listnode4:nullable Object> isa Array[Object] */
761 cltype8 = type_array__Arraykernel__Object.color;
762 idtype9 = type_array__Arraykernel__Object.id;
763 if(var_listnode4 == NULL) {
764 var7 = 0;
765 } else {
766 if(cltype8 >= var_listnode4->type->table_size) {
767 var7 = 0;
768 } else {
769 var7 = var_listnode4->type->type_table[cltype8] == idtype9;
770 }
771 }
772 if (!var7) {
773 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2180);
774 exit(1);
775 }
776 var10 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction5>*/;
777 var_listnode5 = var10;
778 var11 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
779 ((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>*/;
780 CHECK_NEW_parser_nodes__AModule(var11);
781 var_pmodulenode1 = var11;
782 var_node_list = var_pmodulenode1;
783 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction5> */
784 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
785 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
786 RET_LABEL:;
787 }
788 /* method parser#ReduceAction5#action for (self: Object, Parser) */
789 void VIRTUAL_parser__ReduceAction5__action(val* self, val* p0) {
790 parser__ReduceAction5__action(self, p0);
791 RET_LABEL:;
792 }
793 /* method parser#ReduceAction6#action for (self: ReduceAction6, Parser) */
794 void parser__ReduceAction6__action(val* self, val* p0) {
795 val* var_p /* var p: Parser */;
796 val* var /* : null */;
797 val* var_node_list /* var node_list: nullable Object */;
798 val* var1 /* : nullable Object */;
799 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
800 val* var2 /* : nullable Object */;
801 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
802 val* var3 /* : Array[Object] */;
803 val* var_listnode4 /* var listnode4: Array[Object] */;
804 val* var4 /* : Array[Object] */;
805 val* var_listnode6 /* var listnode6: Array[Object] */;
806 val* var5 /* : Array[Object] */;
807 val* var_listnode7 /* var listnode7: Array[Object] */;
808 val* var_listnode3 /* var listnode3: nullable Object */;
809 short int var6 /* : Bool */;
810 int cltype;
811 int idtype;
812 val* var7 /* : Array[Object] */;
813 val* var_listnode5 /* var listnode5: nullable Object */;
814 short int var8 /* : Bool */;
815 int cltype9;
816 int idtype10;
817 val* var11 /* : Array[Object] */;
818 val* var12 /* : AModule */;
819 val* var13 /* : null */;
820 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
821 long var14 /* : Int */;
822 long var15 /* : Int */;
823 var_p = p0;
824 var = NULL;
825 var_node_list = var;
826 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
827 var_nodearraylist2 = var1;
828 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
829 var_nodearraylist1 = var2;
830 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
831 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
832 CHECK_NEW_array__Array(var3);
833 var_listnode4 = var3;
834 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
835 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
836 CHECK_NEW_array__Array(var4);
837 var_listnode6 = var4;
838 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
839 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
840 CHECK_NEW_array__Array(var5);
841 var_listnode7 = var5;
842 var_listnode3 = var_nodearraylist1;
843 /* <var_listnode3:nullable Object> isa Array[Object] */
844 cltype = type_array__Arraykernel__Object.color;
845 idtype = type_array__Arraykernel__Object.id;
846 if(var_listnode3 == NULL) {
847 var6 = 0;
848 } else {
849 if(cltype >= var_listnode3->type->table_size) {
850 var6 = 0;
851 } else {
852 var6 = var_listnode3->type->type_table[cltype] == idtype;
853 }
854 }
855 if (!var6) {
856 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2203);
857 exit(1);
858 }
859 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction6>*/;
860 var_listnode4 = var7;
861 var_listnode5 = var_nodearraylist2;
862 /* <var_listnode5:nullable Object> isa Array[Object] */
863 cltype9 = type_array__Arraykernel__Object.color;
864 idtype10 = type_array__Arraykernel__Object.id;
865 if(var_listnode5 == NULL) {
866 var8 = 0;
867 } else {
868 if(cltype9 >= var_listnode5->type->table_size) {
869 var8 = 0;
870 } else {
871 var8 = var_listnode5->type->type_table[cltype9] == idtype10;
872 }
873 }
874 if (!var8) {
875 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2206);
876 exit(1);
877 }
878 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction6>*/;
879 var_listnode6 = var11;
880 var12 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
881 var13 = NULL;
882 ((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>*/;
883 CHECK_NEW_parser_nodes__AModule(var12);
884 var_pmodulenode1 = var12;
885 var_node_list = var_pmodulenode1;
886 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction6> */
887 var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
888 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
889 RET_LABEL:;
890 }
891 /* method parser#ReduceAction6#action for (self: Object, Parser) */
892 void VIRTUAL_parser__ReduceAction6__action(val* self, val* p0) {
893 parser__ReduceAction6__action(self, p0);
894 RET_LABEL:;
895 }
896 /* method parser#ReduceAction7#action for (self: ReduceAction7, Parser) */
897 void parser__ReduceAction7__action(val* self, val* p0) {
898 val* var_p /* var p: Parser */;
899 val* var /* : null */;
900 val* var_node_list /* var node_list: nullable Object */;
901 val* var1 /* : nullable Object */;
902 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
903 val* var2 /* : nullable Object */;
904 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
905 val* var3 /* : nullable Object */;
906 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
907 val* var4 /* : Array[Object] */;
908 val* var_listnode4 /* var listnode4: Array[Object] */;
909 val* var5 /* : Array[Object] */;
910 val* var_listnode6 /* var listnode6: Array[Object] */;
911 val* var6 /* : Array[Object] */;
912 val* var_listnode7 /* var listnode7: Array[Object] */;
913 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
914 short int var7 /* : Bool */;
915 int cltype;
916 int idtype;
917 val* var_listnode3 /* var listnode3: nullable Object */;
918 short int var8 /* : Bool */;
919 int cltype9;
920 int idtype10;
921 val* var11 /* : Array[Object] */;
922 val* var_listnode5 /* var listnode5: nullable Object */;
923 short int var12 /* : Bool */;
924 int cltype13;
925 int idtype14;
926 val* var15 /* : Array[Object] */;
927 val* var16 /* : AModule */;
928 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
929 long var17 /* : Int */;
930 long var18 /* : Int */;
931 var_p = p0;
932 var = NULL;
933 var_node_list = var;
934 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
935 var_nodearraylist3 = var1;
936 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
937 var_nodearraylist2 = var2;
938 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
939 var_nodearraylist1 = var3;
940 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
941 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
942 CHECK_NEW_array__Array(var4);
943 var_listnode4 = var4;
944 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
945 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
946 CHECK_NEW_array__Array(var5);
947 var_listnode6 = var5;
948 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
949 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
950 CHECK_NEW_array__Array(var6);
951 var_listnode7 = var6;
952 var_pmoduledeclnode2 = var_nodearraylist1;
953 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
954 cltype = type_nullable_parser_nodes__AModuledecl.color;
955 idtype = type_nullable_parser_nodes__AModuledecl.id;
956 if(var_pmoduledeclnode2 == NULL) {
957 var7 = 1;
958 } else {
959 if(cltype >= var_pmoduledeclnode2->type->table_size) {
960 var7 = 0;
961 } else {
962 var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
963 }
964 }
965 if (!var7) {
966 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2230);
967 exit(1);
968 }
969 var_listnode3 = var_nodearraylist2;
970 /* <var_listnode3:nullable Object> isa Array[Object] */
971 cltype9 = type_array__Arraykernel__Object.color;
972 idtype10 = type_array__Arraykernel__Object.id;
973 if(var_listnode3 == NULL) {
974 var8 = 0;
975 } else {
976 if(cltype9 >= var_listnode3->type->table_size) {
977 var8 = 0;
978 } else {
979 var8 = var_listnode3->type->type_table[cltype9] == idtype10;
980 }
981 }
982 if (!var8) {
983 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2232);
984 exit(1);
985 }
986 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction7>*/;
987 var_listnode4 = var11;
988 var_listnode5 = var_nodearraylist3;
989 /* <var_listnode5:nullable Object> isa Array[Object] */
990 cltype13 = type_array__Arraykernel__Object.color;
991 idtype14 = type_array__Arraykernel__Object.id;
992 if(var_listnode5 == NULL) {
993 var12 = 0;
994 } else {
995 if(cltype13 >= var_listnode5->type->table_size) {
996 var12 = 0;
997 } else {
998 var12 = var_listnode5->type->type_table[cltype13] == idtype14;
999 }
1000 }
1001 if (!var12) {
1002 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2235);
1003 exit(1);
1004 }
1005 var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction7>*/;
1006 var_listnode6 = var15;
1007 var16 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
1008 ((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>*/;
1009 CHECK_NEW_parser_nodes__AModule(var16);
1010 var_pmodulenode1 = var16;
1011 var_node_list = var_pmodulenode1;
1012 var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction7> */
1013 var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
1014 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
1015 RET_LABEL:;
1016 }
1017 /* method parser#ReduceAction7#action for (self: Object, Parser) */
1018 void VIRTUAL_parser__ReduceAction7__action(val* self, val* p0) {
1019 parser__ReduceAction7__action(self, p0);
1020 RET_LABEL:;
1021 }
1022 /* method parser#ReduceAction8#action for (self: ReduceAction8, Parser) */
1023 void parser__ReduceAction8__action(val* self, val* p0) {
1024 val* var_p /* var p: Parser */;
1025 val* var /* : null */;
1026 val* var_node_list /* var node_list: nullable Object */;
1027 val* var1 /* : nullable Object */;
1028 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1029 val* var2 /* : Array[Object] */;
1030 val* var_listnode3 /* var listnode3: Array[Object] */;
1031 val* var3 /* : Array[Object] */;
1032 val* var_listnode4 /* var listnode4: Array[Object] */;
1033 val* var4 /* : Array[Object] */;
1034 val* var_listnode6 /* var listnode6: Array[Object] */;
1035 val* var_listnode5 /* var listnode5: nullable Object */;
1036 short int var5 /* : Bool */;
1037 int cltype;
1038 int idtype;
1039 val* var6 /* : Array[Object] */;
1040 val* var7 /* : AModule */;
1041 val* var8 /* : null */;
1042 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
1043 long var9 /* : Int */;
1044 long var10 /* : Int */;
1045 var_p = p0;
1046 var = NULL;
1047 var_node_list = var;
1048 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1049 var_nodearraylist1 = var1;
1050 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
1051 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
1052 CHECK_NEW_array__Array(var2);
1053 var_listnode3 = var2;
1054 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
1055 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
1056 CHECK_NEW_array__Array(var3);
1057 var_listnode4 = var3;
1058 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
1059 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
1060 CHECK_NEW_array__Array(var4);
1061 var_listnode6 = var4;
1062 var_listnode5 = var_nodearraylist1;
1063 /* <var_listnode5:nullable Object> isa Array[Object] */
1064 cltype = type_array__Arraykernel__Object.color;
1065 idtype = type_array__Arraykernel__Object.id;
1066 if(var_listnode5 == NULL) {
1067 var5 = 0;
1068 } else {
1069 if(cltype >= var_listnode5->type->table_size) {
1070 var5 = 0;
1071 } else {
1072 var5 = var_listnode5->type->type_table[cltype] == idtype;
1073 }
1074 }
1075 if (!var5) {
1076 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2257);
1077 exit(1);
1078 }
1079 var6 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction8>*/;
1080 var_listnode6 = var6;
1081 var7 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
1082 var8 = NULL;
1083 ((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>*/;
1084 CHECK_NEW_parser_nodes__AModule(var7);
1085 var_pmodulenode1 = var7;
1086 var_node_list = var_pmodulenode1;
1087 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction8> */
1088 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
1089 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
1090 RET_LABEL:;
1091 }
1092 /* method parser#ReduceAction8#action for (self: Object, Parser) */
1093 void VIRTUAL_parser__ReduceAction8__action(val* self, val* p0) {
1094 parser__ReduceAction8__action(self, p0);
1095 RET_LABEL:;
1096 }
1097 /* method parser#ReduceAction9#action for (self: ReduceAction9, Parser) */
1098 void parser__ReduceAction9__action(val* self, val* p0) {
1099 val* var_p /* var p: Parser */;
1100 val* var /* : null */;
1101 val* var_node_list /* var node_list: nullable Object */;
1102 val* var1 /* : nullable Object */;
1103 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1104 val* var2 /* : nullable Object */;
1105 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1106 val* var3 /* : Array[Object] */;
1107 val* var_listnode3 /* var listnode3: Array[Object] */;
1108 val* var4 /* : Array[Object] */;
1109 val* var_listnode4 /* var listnode4: Array[Object] */;
1110 val* var5 /* : Array[Object] */;
1111 val* var_listnode6 /* var listnode6: Array[Object] */;
1112 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
1113 short int var6 /* : Bool */;
1114 int cltype;
1115 int idtype;
1116 val* var_listnode5 /* var listnode5: nullable Object */;
1117 short int var7 /* : Bool */;
1118 int cltype8;
1119 int idtype9;
1120 val* var10 /* : Array[Object] */;
1121 val* var11 /* : AModule */;
1122 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
1123 long var12 /* : Int */;
1124 long var13 /* : Int */;
1125 var_p = p0;
1126 var = NULL;
1127 var_node_list = var;
1128 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1129 var_nodearraylist2 = var1;
1130 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1131 var_nodearraylist1 = var2;
1132 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
1133 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
1134 CHECK_NEW_array__Array(var3);
1135 var_listnode3 = var3;
1136 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
1137 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
1138 CHECK_NEW_array__Array(var4);
1139 var_listnode4 = var4;
1140 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
1141 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
1142 CHECK_NEW_array__Array(var5);
1143 var_listnode6 = var5;
1144 var_pmoduledeclnode2 = var_nodearraylist1;
1145 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
1146 cltype = type_nullable_parser_nodes__AModuledecl.color;
1147 idtype = type_nullable_parser_nodes__AModuledecl.id;
1148 if(var_pmoduledeclnode2 == NULL) {
1149 var6 = 1;
1150 } else {
1151 if(cltype >= var_pmoduledeclnode2->type->table_size) {
1152 var6 = 0;
1153 } else {
1154 var6 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
1155 }
1156 }
1157 if (!var6) {
1158 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2280);
1159 exit(1);
1160 }
1161 var_listnode5 = var_nodearraylist2;
1162 /* <var_listnode5:nullable Object> isa Array[Object] */
1163 cltype8 = type_array__Arraykernel__Object.color;
1164 idtype9 = type_array__Arraykernel__Object.id;
1165 if(var_listnode5 == NULL) {
1166 var7 = 0;
1167 } else {
1168 if(cltype8 >= var_listnode5->type->table_size) {
1169 var7 = 0;
1170 } else {
1171 var7 = var_listnode5->type->type_table[cltype8] == idtype9;
1172 }
1173 }
1174 if (!var7) {
1175 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2282);
1176 exit(1);
1177 }
1178 var10 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction9>*/;
1179 var_listnode6 = var10;
1180 var11 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
1181 ((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>*/;
1182 CHECK_NEW_parser_nodes__AModule(var11);
1183 var_pmodulenode1 = var11;
1184 var_node_list = var_pmodulenode1;
1185 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction9> */
1186 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
1187 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
1188 RET_LABEL:;
1189 }
1190 /* method parser#ReduceAction9#action for (self: Object, Parser) */
1191 void VIRTUAL_parser__ReduceAction9__action(val* self, val* p0) {
1192 parser__ReduceAction9__action(self, p0);
1193 RET_LABEL:;
1194 }
1195 /* method parser#ReduceAction10#action for (self: ReduceAction10, Parser) */
1196 void parser__ReduceAction10__action(val* self, val* p0) {
1197 val* var_p /* var p: Parser */;
1198 val* var /* : null */;
1199 val* var_node_list /* var node_list: nullable Object */;
1200 val* var1 /* : nullable Object */;
1201 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1202 val* var2 /* : nullable Object */;
1203 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1204 val* var3 /* : Array[Object] */;
1205 val* var_listnode4 /* var listnode4: Array[Object] */;
1206 val* var4 /* : Array[Object] */;
1207 val* var_listnode5 /* var listnode5: Array[Object] */;
1208 val* var5 /* : Array[Object] */;
1209 val* var_listnode7 /* var listnode7: Array[Object] */;
1210 val* var_listnode3 /* var listnode3: nullable Object */;
1211 short int var6 /* : Bool */;
1212 int cltype;
1213 int idtype;
1214 val* var7 /* : Array[Object] */;
1215 val* var_listnode6 /* var listnode6: nullable Object */;
1216 short int var8 /* : Bool */;
1217 int cltype9;
1218 int idtype10;
1219 val* var11 /* : Array[Object] */;
1220 val* var12 /* : AModule */;
1221 val* var13 /* : null */;
1222 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
1223 long var14 /* : Int */;
1224 long var15 /* : Int */;
1225 var_p = p0;
1226 var = NULL;
1227 var_node_list = var;
1228 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1229 var_nodearraylist2 = var1;
1230 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1231 var_nodearraylist1 = var2;
1232 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
1233 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
1234 CHECK_NEW_array__Array(var3);
1235 var_listnode4 = var3;
1236 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
1237 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
1238 CHECK_NEW_array__Array(var4);
1239 var_listnode5 = var4;
1240 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
1241 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
1242 CHECK_NEW_array__Array(var5);
1243 var_listnode7 = var5;
1244 var_listnode3 = var_nodearraylist1;
1245 /* <var_listnode3:nullable Object> isa Array[Object] */
1246 cltype = type_array__Arraykernel__Object.color;
1247 idtype = type_array__Arraykernel__Object.id;
1248 if(var_listnode3 == NULL) {
1249 var6 = 0;
1250 } else {
1251 if(cltype >= var_listnode3->type->table_size) {
1252 var6 = 0;
1253 } else {
1254 var6 = var_listnode3->type->type_table[cltype] == idtype;
1255 }
1256 }
1257 if (!var6) {
1258 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2305);
1259 exit(1);
1260 }
1261 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction10>*/;
1262 var_listnode4 = var7;
1263 var_listnode6 = var_nodearraylist2;
1264 /* <var_listnode6:nullable Object> isa Array[Object] */
1265 cltype9 = type_array__Arraykernel__Object.color;
1266 idtype10 = type_array__Arraykernel__Object.id;
1267 if(var_listnode6 == NULL) {
1268 var8 = 0;
1269 } else {
1270 if(cltype9 >= var_listnode6->type->table_size) {
1271 var8 = 0;
1272 } else {
1273 var8 = var_listnode6->type->type_table[cltype9] == idtype10;
1274 }
1275 }
1276 if (!var8) {
1277 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2308);
1278 exit(1);
1279 }
1280 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on <self:ReduceAction10>*/;
1281 var_listnode7 = var11;
1282 var12 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
1283 var13 = NULL;
1284 ((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>*/;
1285 CHECK_NEW_parser_nodes__AModule(var12);
1286 var_pmodulenode1 = var12;
1287 var_node_list = var_pmodulenode1;
1288 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction10> */
1289 var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
1290 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
1291 RET_LABEL:;
1292 }
1293 /* method parser#ReduceAction10#action for (self: Object, Parser) */
1294 void VIRTUAL_parser__ReduceAction10__action(val* self, val* p0) {
1295 parser__ReduceAction10__action(self, p0);
1296 RET_LABEL:;
1297 }
1298 /* method parser#ReduceAction11#action for (self: ReduceAction11, Parser) */
1299 void parser__ReduceAction11__action(val* self, val* p0) {
1300 val* var_p /* var p: Parser */;
1301 val* var /* : null */;
1302 val* var_node_list /* var node_list: nullable Object */;
1303 val* var1 /* : nullable Object */;
1304 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1305 val* var2 /* : nullable Object */;
1306 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1307 val* var3 /* : nullable Object */;
1308 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1309 val* var4 /* : Array[Object] */;
1310 val* var_listnode4 /* var listnode4: Array[Object] */;
1311 val* var5 /* : Array[Object] */;
1312 val* var_listnode5 /* var listnode5: Array[Object] */;
1313 val* var6 /* : Array[Object] */;
1314 val* var_listnode7 /* var listnode7: Array[Object] */;
1315 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
1316 short int var7 /* : Bool */;
1317 int cltype;
1318 int idtype;
1319 val* var_listnode3 /* var listnode3: nullable Object */;
1320 short int var8 /* : Bool */;
1321 int cltype9;
1322 int idtype10;
1323 val* var11 /* : Array[Object] */;
1324 val* var_listnode6 /* var listnode6: nullable Object */;
1325 short int var12 /* : Bool */;
1326 int cltype13;
1327 int idtype14;
1328 val* var15 /* : Array[Object] */;
1329 val* var16 /* : AModule */;
1330 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
1331 long var17 /* : Int */;
1332 long var18 /* : Int */;
1333 var_p = p0;
1334 var = NULL;
1335 var_node_list = var;
1336 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1337 var_nodearraylist3 = var1;
1338 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1339 var_nodearraylist2 = var2;
1340 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1341 var_nodearraylist1 = var3;
1342 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
1343 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
1344 CHECK_NEW_array__Array(var4);
1345 var_listnode4 = var4;
1346 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
1347 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
1348 CHECK_NEW_array__Array(var5);
1349 var_listnode5 = var5;
1350 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
1351 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
1352 CHECK_NEW_array__Array(var6);
1353 var_listnode7 = var6;
1354 var_pmoduledeclnode2 = var_nodearraylist1;
1355 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
1356 cltype = type_nullable_parser_nodes__AModuledecl.color;
1357 idtype = type_nullable_parser_nodes__AModuledecl.id;
1358 if(var_pmoduledeclnode2 == NULL) {
1359 var7 = 1;
1360 } else {
1361 if(cltype >= var_pmoduledeclnode2->type->table_size) {
1362 var7 = 0;
1363 } else {
1364 var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
1365 }
1366 }
1367 if (!var7) {
1368 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2332);
1369 exit(1);
1370 }
1371 var_listnode3 = var_nodearraylist2;
1372 /* <var_listnode3:nullable Object> isa Array[Object] */
1373 cltype9 = type_array__Arraykernel__Object.color;
1374 idtype10 = type_array__Arraykernel__Object.id;
1375 if(var_listnode3 == NULL) {
1376 var8 = 0;
1377 } else {
1378 if(cltype9 >= var_listnode3->type->table_size) {
1379 var8 = 0;
1380 } else {
1381 var8 = var_listnode3->type->type_table[cltype9] == idtype10;
1382 }
1383 }
1384 if (!var8) {
1385 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2334);
1386 exit(1);
1387 }
1388 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction11>*/;
1389 var_listnode4 = var11;
1390 var_listnode6 = var_nodearraylist3;
1391 /* <var_listnode6:nullable Object> isa Array[Object] */
1392 cltype13 = type_array__Arraykernel__Object.color;
1393 idtype14 = type_array__Arraykernel__Object.id;
1394 if(var_listnode6 == NULL) {
1395 var12 = 0;
1396 } else {
1397 if(cltype13 >= var_listnode6->type->table_size) {
1398 var12 = 0;
1399 } else {
1400 var12 = var_listnode6->type->type_table[cltype13] == idtype14;
1401 }
1402 }
1403 if (!var12) {
1404 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2337);
1405 exit(1);
1406 }
1407 var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on <self:ReduceAction11>*/;
1408 var_listnode7 = var15;
1409 var16 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
1410 ((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>*/;
1411 CHECK_NEW_parser_nodes__AModule(var16);
1412 var_pmodulenode1 = var16;
1413 var_node_list = var_pmodulenode1;
1414 var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction11> */
1415 var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
1416 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
1417 RET_LABEL:;
1418 }
1419 /* method parser#ReduceAction11#action for (self: Object, Parser) */
1420 void VIRTUAL_parser__ReduceAction11__action(val* self, val* p0) {
1421 parser__ReduceAction11__action(self, p0);
1422 RET_LABEL:;
1423 }
1424 /* method parser#ReduceAction12#action for (self: ReduceAction12, Parser) */
1425 void parser__ReduceAction12__action(val* self, val* p0) {
1426 val* var_p /* var p: Parser */;
1427 val* var /* : null */;
1428 val* var_node_list /* var node_list: nullable Object */;
1429 val* var1 /* : nullable Object */;
1430 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1431 val* var2 /* : nullable Object */;
1432 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1433 val* var3 /* : Array[Object] */;
1434 val* var_listnode3 /* var listnode3: Array[Object] */;
1435 val* var4 /* : Array[Object] */;
1436 val* var_listnode5 /* var listnode5: Array[Object] */;
1437 val* var5 /* : Array[Object] */;
1438 val* var_listnode7 /* var listnode7: Array[Object] */;
1439 val* var_listnode4 /* var listnode4: nullable Object */;
1440 short int var6 /* : Bool */;
1441 int cltype;
1442 int idtype;
1443 val* var7 /* : Array[Object] */;
1444 val* var_listnode6 /* var listnode6: nullable Object */;
1445 short int var8 /* : Bool */;
1446 int cltype9;
1447 int idtype10;
1448 val* var11 /* : Array[Object] */;
1449 val* var12 /* : AModule */;
1450 val* var13 /* : null */;
1451 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
1452 long var14 /* : Int */;
1453 long var15 /* : Int */;
1454 var_p = p0;
1455 var = NULL;
1456 var_node_list = var;
1457 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1458 var_nodearraylist2 = var1;
1459 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1460 var_nodearraylist1 = var2;
1461 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
1462 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
1463 CHECK_NEW_array__Array(var3);
1464 var_listnode3 = var3;
1465 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
1466 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
1467 CHECK_NEW_array__Array(var4);
1468 var_listnode5 = var4;
1469 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
1470 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
1471 CHECK_NEW_array__Array(var5);
1472 var_listnode7 = var5;
1473 var_listnode4 = var_nodearraylist1;
1474 /* <var_listnode4:nullable Object> isa Array[Object] */
1475 cltype = type_array__Arraykernel__Object.color;
1476 idtype = type_array__Arraykernel__Object.id;
1477 if(var_listnode4 == NULL) {
1478 var6 = 0;
1479 } else {
1480 if(cltype >= var_listnode4->type->table_size) {
1481 var6 = 0;
1482 } else {
1483 var6 = var_listnode4->type->type_table[cltype] == idtype;
1484 }
1485 }
1486 if (!var6) {
1487 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2360);
1488 exit(1);
1489 }
1490 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction12>*/;
1491 var_listnode5 = var7;
1492 var_listnode6 = var_nodearraylist2;
1493 /* <var_listnode6:nullable Object> isa Array[Object] */
1494 cltype9 = type_array__Arraykernel__Object.color;
1495 idtype10 = type_array__Arraykernel__Object.id;
1496 if(var_listnode6 == NULL) {
1497 var8 = 0;
1498 } else {
1499 if(cltype9 >= var_listnode6->type->table_size) {
1500 var8 = 0;
1501 } else {
1502 var8 = var_listnode6->type->type_table[cltype9] == idtype10;
1503 }
1504 }
1505 if (!var8) {
1506 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2363);
1507 exit(1);
1508 }
1509 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on <self:ReduceAction12>*/;
1510 var_listnode7 = var11;
1511 var12 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
1512 var13 = NULL;
1513 ((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>*/;
1514 CHECK_NEW_parser_nodes__AModule(var12);
1515 var_pmodulenode1 = var12;
1516 var_node_list = var_pmodulenode1;
1517 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction12> */
1518 var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
1519 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
1520 RET_LABEL:;
1521 }
1522 /* method parser#ReduceAction12#action for (self: Object, Parser) */
1523 void VIRTUAL_parser__ReduceAction12__action(val* self, val* p0) {
1524 parser__ReduceAction12__action(self, p0);
1525 RET_LABEL:;
1526 }
1527 /* method parser#ReduceAction13#action for (self: ReduceAction13, Parser) */
1528 void parser__ReduceAction13__action(val* self, val* p0) {
1529 val* var_p /* var p: Parser */;
1530 val* var /* : null */;
1531 val* var_node_list /* var node_list: nullable Object */;
1532 val* var1 /* : nullable Object */;
1533 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1534 val* var2 /* : nullable Object */;
1535 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1536 val* var3 /* : nullable Object */;
1537 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1538 val* var4 /* : Array[Object] */;
1539 val* var_listnode3 /* var listnode3: Array[Object] */;
1540 val* var5 /* : Array[Object] */;
1541 val* var_listnode5 /* var listnode5: Array[Object] */;
1542 val* var6 /* : Array[Object] */;
1543 val* var_listnode7 /* var listnode7: Array[Object] */;
1544 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
1545 short int var7 /* : Bool */;
1546 int cltype;
1547 int idtype;
1548 val* var_listnode4 /* var listnode4: nullable Object */;
1549 short int var8 /* : Bool */;
1550 int cltype9;
1551 int idtype10;
1552 val* var11 /* : Array[Object] */;
1553 val* var_listnode6 /* var listnode6: nullable Object */;
1554 short int var12 /* : Bool */;
1555 int cltype13;
1556 int idtype14;
1557 val* var15 /* : Array[Object] */;
1558 val* var16 /* : AModule */;
1559 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
1560 long var17 /* : Int */;
1561 long var18 /* : Int */;
1562 var_p = p0;
1563 var = NULL;
1564 var_node_list = var;
1565 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1566 var_nodearraylist3 = var1;
1567 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1568 var_nodearraylist2 = var2;
1569 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1570 var_nodearraylist1 = var3;
1571 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
1572 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
1573 CHECK_NEW_array__Array(var4);
1574 var_listnode3 = var4;
1575 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
1576 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
1577 CHECK_NEW_array__Array(var5);
1578 var_listnode5 = var5;
1579 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
1580 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
1581 CHECK_NEW_array__Array(var6);
1582 var_listnode7 = var6;
1583 var_pmoduledeclnode2 = var_nodearraylist1;
1584 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
1585 cltype = type_nullable_parser_nodes__AModuledecl.color;
1586 idtype = type_nullable_parser_nodes__AModuledecl.id;
1587 if(var_pmoduledeclnode2 == NULL) {
1588 var7 = 1;
1589 } else {
1590 if(cltype >= var_pmoduledeclnode2->type->table_size) {
1591 var7 = 0;
1592 } else {
1593 var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
1594 }
1595 }
1596 if (!var7) {
1597 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2387);
1598 exit(1);
1599 }
1600 var_listnode4 = var_nodearraylist2;
1601 /* <var_listnode4:nullable Object> isa Array[Object] */
1602 cltype9 = type_array__Arraykernel__Object.color;
1603 idtype10 = type_array__Arraykernel__Object.id;
1604 if(var_listnode4 == NULL) {
1605 var8 = 0;
1606 } else {
1607 if(cltype9 >= var_listnode4->type->table_size) {
1608 var8 = 0;
1609 } else {
1610 var8 = var_listnode4->type->type_table[cltype9] == idtype10;
1611 }
1612 }
1613 if (!var8) {
1614 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2389);
1615 exit(1);
1616 }
1617 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction13>*/;
1618 var_listnode5 = var11;
1619 var_listnode6 = var_nodearraylist3;
1620 /* <var_listnode6:nullable Object> isa Array[Object] */
1621 cltype13 = type_array__Arraykernel__Object.color;
1622 idtype14 = type_array__Arraykernel__Object.id;
1623 if(var_listnode6 == NULL) {
1624 var12 = 0;
1625 } else {
1626 if(cltype13 >= var_listnode6->type->table_size) {
1627 var12 = 0;
1628 } else {
1629 var12 = var_listnode6->type->type_table[cltype13] == idtype14;
1630 }
1631 }
1632 if (!var12) {
1633 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2392);
1634 exit(1);
1635 }
1636 var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on <self:ReduceAction13>*/;
1637 var_listnode7 = var15;
1638 var16 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
1639 ((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>*/;
1640 CHECK_NEW_parser_nodes__AModule(var16);
1641 var_pmodulenode1 = var16;
1642 var_node_list = var_pmodulenode1;
1643 var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction13> */
1644 var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
1645 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
1646 RET_LABEL:;
1647 }
1648 /* method parser#ReduceAction13#action for (self: Object, Parser) */
1649 void VIRTUAL_parser__ReduceAction13__action(val* self, val* p0) {
1650 parser__ReduceAction13__action(self, p0);
1651 RET_LABEL:;
1652 }
1653 /* method parser#ReduceAction14#action for (self: ReduceAction14, Parser) */
1654 void parser__ReduceAction14__action(val* self, val* p0) {
1655 val* var_p /* var p: Parser */;
1656 val* var /* : null */;
1657 val* var_node_list /* var node_list: nullable Object */;
1658 val* var1 /* : nullable Object */;
1659 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1660 val* var2 /* : nullable Object */;
1661 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1662 val* var3 /* : nullable Object */;
1663 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1664 val* var4 /* : Array[Object] */;
1665 val* var_listnode4 /* var listnode4: Array[Object] */;
1666 val* var5 /* : Array[Object] */;
1667 val* var_listnode6 /* var listnode6: Array[Object] */;
1668 val* var6 /* : Array[Object] */;
1669 val* var_listnode8 /* var listnode8: Array[Object] */;
1670 val* var_listnode3 /* var listnode3: nullable Object */;
1671 short int var7 /* : Bool */;
1672 int cltype;
1673 int idtype;
1674 val* var8 /* : Array[Object] */;
1675 val* var_listnode5 /* var listnode5: nullable Object */;
1676 short int var9 /* : Bool */;
1677 int cltype10;
1678 int idtype11;
1679 val* var12 /* : Array[Object] */;
1680 val* var_listnode7 /* var listnode7: nullable Object */;
1681 short int var13 /* : Bool */;
1682 int cltype14;
1683 int idtype15;
1684 val* var16 /* : Array[Object] */;
1685 val* var17 /* : AModule */;
1686 val* var18 /* : null */;
1687 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
1688 long var19 /* : Int */;
1689 long var20 /* : Int */;
1690 var_p = p0;
1691 var = NULL;
1692 var_node_list = var;
1693 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1694 var_nodearraylist3 = var1;
1695 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1696 var_nodearraylist2 = var2;
1697 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1698 var_nodearraylist1 = var3;
1699 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
1700 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
1701 CHECK_NEW_array__Array(var4);
1702 var_listnode4 = var4;
1703 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
1704 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
1705 CHECK_NEW_array__Array(var5);
1706 var_listnode6 = var5;
1707 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
1708 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
1709 CHECK_NEW_array__Array(var6);
1710 var_listnode8 = var6;
1711 var_listnode3 = var_nodearraylist1;
1712 /* <var_listnode3:nullable Object> isa Array[Object] */
1713 cltype = type_array__Arraykernel__Object.color;
1714 idtype = type_array__Arraykernel__Object.id;
1715 if(var_listnode3 == NULL) {
1716 var7 = 0;
1717 } else {
1718 if(cltype >= var_listnode3->type->table_size) {
1719 var7 = 0;
1720 } else {
1721 var7 = var_listnode3->type->type_table[cltype] == idtype;
1722 }
1723 }
1724 if (!var7) {
1725 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2416);
1726 exit(1);
1727 }
1728 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction14>*/;
1729 var_listnode4 = var8;
1730 var_listnode5 = var_nodearraylist2;
1731 /* <var_listnode5:nullable Object> isa Array[Object] */
1732 cltype10 = type_array__Arraykernel__Object.color;
1733 idtype11 = type_array__Arraykernel__Object.id;
1734 if(var_listnode5 == NULL) {
1735 var9 = 0;
1736 } else {
1737 if(cltype10 >= var_listnode5->type->table_size) {
1738 var9 = 0;
1739 } else {
1740 var9 = var_listnode5->type->type_table[cltype10] == idtype11;
1741 }
1742 }
1743 if (!var9) {
1744 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2419);
1745 exit(1);
1746 }
1747 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction14>*/;
1748 var_listnode6 = var12;
1749 var_listnode7 = var_nodearraylist3;
1750 /* <var_listnode7:nullable Object> isa Array[Object] */
1751 cltype14 = type_array__Arraykernel__Object.color;
1752 idtype15 = type_array__Arraykernel__Object.id;
1753 if(var_listnode7 == NULL) {
1754 var13 = 0;
1755 } else {
1756 if(cltype14 >= var_listnode7->type->table_size) {
1757 var13 = 0;
1758 } else {
1759 var13 = var_listnode7->type->type_table[cltype14] == idtype15;
1760 }
1761 }
1762 if (!var13) {
1763 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2422);
1764 exit(1);
1765 }
1766 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction14>*/;
1767 var_listnode8 = var16;
1768 var17 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
1769 var18 = NULL;
1770 ((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>*/;
1771 CHECK_NEW_parser_nodes__AModule(var17);
1772 var_pmodulenode1 = var17;
1773 var_node_list = var_pmodulenode1;
1774 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction14> */
1775 var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
1776 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
1777 RET_LABEL:;
1778 }
1779 /* method parser#ReduceAction14#action for (self: Object, Parser) */
1780 void VIRTUAL_parser__ReduceAction14__action(val* self, val* p0) {
1781 parser__ReduceAction14__action(self, p0);
1782 RET_LABEL:;
1783 }
1784 /* method parser#ReduceAction15#action for (self: ReduceAction15, Parser) */
1785 void parser__ReduceAction15__action(val* self, val* p0) {
1786 val* var_p /* var p: Parser */;
1787 val* var /* : null */;
1788 val* var_node_list /* var node_list: nullable Object */;
1789 val* var1 /* : nullable Object */;
1790 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1791 val* var2 /* : nullable Object */;
1792 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1793 val* var3 /* : nullable Object */;
1794 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1795 val* var4 /* : nullable Object */;
1796 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1797 val* var5 /* : Array[Object] */;
1798 val* var_listnode4 /* var listnode4: Array[Object] */;
1799 val* var6 /* : Array[Object] */;
1800 val* var_listnode6 /* var listnode6: Array[Object] */;
1801 val* var7 /* : Array[Object] */;
1802 val* var_listnode8 /* var listnode8: Array[Object] */;
1803 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
1804 short int var8 /* : Bool */;
1805 int cltype;
1806 int idtype;
1807 val* var_listnode3 /* var listnode3: nullable Object */;
1808 short int var9 /* : Bool */;
1809 int cltype10;
1810 int idtype11;
1811 val* var12 /* : Array[Object] */;
1812 val* var_listnode5 /* var listnode5: nullable Object */;
1813 short int var13 /* : Bool */;
1814 int cltype14;
1815 int idtype15;
1816 val* var16 /* : Array[Object] */;
1817 val* var_listnode7 /* var listnode7: nullable Object */;
1818 short int var17 /* : Bool */;
1819 int cltype18;
1820 int idtype19;
1821 val* var20 /* : Array[Object] */;
1822 val* var21 /* : AModule */;
1823 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
1824 long var22 /* : Int */;
1825 long var23 /* : Int */;
1826 var_p = p0;
1827 var = NULL;
1828 var_node_list = var;
1829 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1830 var_nodearraylist4 = var1;
1831 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1832 var_nodearraylist3 = var2;
1833 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1834 var_nodearraylist2 = var3;
1835 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1836 var_nodearraylist1 = var4;
1837 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
1838 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
1839 CHECK_NEW_array__Array(var5);
1840 var_listnode4 = var5;
1841 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
1842 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
1843 CHECK_NEW_array__Array(var6);
1844 var_listnode6 = var6;
1845 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
1846 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
1847 CHECK_NEW_array__Array(var7);
1848 var_listnode8 = var7;
1849 var_pmoduledeclnode2 = var_nodearraylist1;
1850 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
1851 cltype = type_nullable_parser_nodes__AModuledecl.color;
1852 idtype = type_nullable_parser_nodes__AModuledecl.id;
1853 if(var_pmoduledeclnode2 == NULL) {
1854 var8 = 1;
1855 } else {
1856 if(cltype >= var_pmoduledeclnode2->type->table_size) {
1857 var8 = 0;
1858 } else {
1859 var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
1860 }
1861 }
1862 if (!var8) {
1863 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2447);
1864 exit(1);
1865 }
1866 var_listnode3 = var_nodearraylist2;
1867 /* <var_listnode3:nullable Object> isa Array[Object] */
1868 cltype10 = type_array__Arraykernel__Object.color;
1869 idtype11 = type_array__Arraykernel__Object.id;
1870 if(var_listnode3 == NULL) {
1871 var9 = 0;
1872 } else {
1873 if(cltype10 >= var_listnode3->type->table_size) {
1874 var9 = 0;
1875 } else {
1876 var9 = var_listnode3->type->type_table[cltype10] == idtype11;
1877 }
1878 }
1879 if (!var9) {
1880 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2449);
1881 exit(1);
1882 }
1883 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction15>*/;
1884 var_listnode4 = var12;
1885 var_listnode5 = var_nodearraylist3;
1886 /* <var_listnode5:nullable Object> isa Array[Object] */
1887 cltype14 = type_array__Arraykernel__Object.color;
1888 idtype15 = type_array__Arraykernel__Object.id;
1889 if(var_listnode5 == NULL) {
1890 var13 = 0;
1891 } else {
1892 if(cltype14 >= var_listnode5->type->table_size) {
1893 var13 = 0;
1894 } else {
1895 var13 = var_listnode5->type->type_table[cltype14] == idtype15;
1896 }
1897 }
1898 if (!var13) {
1899 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2452);
1900 exit(1);
1901 }
1902 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction15>*/;
1903 var_listnode6 = var16;
1904 var_listnode7 = var_nodearraylist4;
1905 /* <var_listnode7:nullable Object> isa Array[Object] */
1906 cltype18 = type_array__Arraykernel__Object.color;
1907 idtype19 = type_array__Arraykernel__Object.id;
1908 if(var_listnode7 == NULL) {
1909 var17 = 0;
1910 } else {
1911 if(cltype18 >= var_listnode7->type->table_size) {
1912 var17 = 0;
1913 } else {
1914 var17 = var_listnode7->type->type_table[cltype18] == idtype19;
1915 }
1916 }
1917 if (!var17) {
1918 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2455);
1919 exit(1);
1920 }
1921 var20 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction15>*/;
1922 var_listnode8 = var20;
1923 var21 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
1924 ((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>*/;
1925 CHECK_NEW_parser_nodes__AModule(var21);
1926 var_pmodulenode1 = var21;
1927 var_node_list = var_pmodulenode1;
1928 var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction15> */
1929 var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
1930 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
1931 RET_LABEL:;
1932 }
1933 /* method parser#ReduceAction15#action for (self: Object, Parser) */
1934 void VIRTUAL_parser__ReduceAction15__action(val* self, val* p0) {
1935 parser__ReduceAction15__action(self, p0);
1936 RET_LABEL:;
1937 }
1938 /* method parser#ReduceAction16#action for (self: ReduceAction16, Parser) */
1939 void parser__ReduceAction16__action(val* self, val* p0) {
1940 val* var_p /* var p: Parser */;
1941 val* var /* : null */;
1942 val* var_node_list /* var node_list: nullable Object */;
1943 val* var1 /* : nullable Object */;
1944 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1945 val* var2 /* : Array[Object] */;
1946 val* var_listnode3 /* var listnode3: Array[Object] */;
1947 val* var3 /* : Array[Object] */;
1948 val* var_listnode4 /* var listnode4: Array[Object] */;
1949 val* var4 /* : Array[Object] */;
1950 val* var_listnode8 /* var listnode8: Array[Object] */;
1951 val* var5 /* : Array[Object] */;
1952 val* var_listnode7 /* var listnode7: Array[Object] */;
1953 val* var_listnode6 /* var listnode6: nullable Object */;
1954 short int var6 /* : Bool */;
1955 int cltype;
1956 int idtype;
1957 val* var7 /* : Array[Object] */;
1958 val* var8 /* : ATopClassdef */;
1959 val* var_pclassdefnode5 /* var pclassdefnode5: nullable ATopClassdef */;
1960 val* var9 /* : null */;
1961 short int var10 /* : Bool */;
1962 val* var11 /* : AModule */;
1963 val* var12 /* : null */;
1964 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
1965 long var13 /* : Int */;
1966 long var14 /* : Int */;
1967 var_p = p0;
1968 var = NULL;
1969 var_node_list = var;
1970 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1971 var_nodearraylist1 = var1;
1972 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
1973 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
1974 CHECK_NEW_array__Array(var2);
1975 var_listnode3 = var2;
1976 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
1977 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
1978 CHECK_NEW_array__Array(var3);
1979 var_listnode4 = var3;
1980 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
1981 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
1982 CHECK_NEW_array__Array(var4);
1983 var_listnode8 = var4;
1984 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
1985 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
1986 CHECK_NEW_array__Array(var5);
1987 var_listnode7 = var5;
1988 var_listnode6 = var_nodearraylist1;
1989 /* <var_listnode6:nullable Object> isa Array[Object] */
1990 cltype = type_array__Arraykernel__Object.color;
1991 idtype = type_array__Arraykernel__Object.id;
1992 if(var_listnode6 == NULL) {
1993 var6 = 0;
1994 } else {
1995 if(cltype >= var_listnode6->type->table_size) {
1996 var6 = 0;
1997 } else {
1998 var6 = var_listnode6->type->type_table[cltype] == idtype;
1999 }
2000 }
2001 if (!var6) {
2002 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2478);
2003 exit(1);
2004 }
2005 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on <self:ReduceAction16>*/;
2006 var_listnode7 = var7;
2007 var8 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
2008 ((void (*)(val*, val*))(var8->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var8, var_listnode7) /* init_atopclassdef on <var8:ATopClassdef>*/;
2009 CHECK_NEW_parser_nodes__ATopClassdef(var8);
2010 var_pclassdefnode5 = var8;
2011 var9 = NULL;
2012 if (var_pclassdefnode5 == NULL) {
2013 var10 = 0; /* is null */
2014 } else {
2015 var10 = 1; /* arg is null and recv is not */
2016 }
2017 if (var10){
2018 ((void (*)(val*, val*))(var_listnode8->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode8, var_pclassdefnode5) /* add on <var_listnode8:Array[Object]>*/;
2019 } else {
2020 }
2021 var11 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
2022 var12 = NULL;
2023 ((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>*/;
2024 CHECK_NEW_parser_nodes__AModule(var11);
2025 var_pmodulenode1 = var11;
2026 var_node_list = var_pmodulenode1;
2027 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction16> */
2028 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
2029 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
2030 RET_LABEL:;
2031 }
2032 /* method parser#ReduceAction16#action for (self: Object, Parser) */
2033 void VIRTUAL_parser__ReduceAction16__action(val* self, val* p0) {
2034 parser__ReduceAction16__action(self, p0);
2035 RET_LABEL:;
2036 }
2037 /* method parser#ReduceAction17#action for (self: ReduceAction17, Parser) */
2038 void parser__ReduceAction17__action(val* self, val* p0) {
2039 val* var_p /* var p: Parser */;
2040 val* var /* : null */;
2041 val* var_node_list /* var node_list: nullable Object */;
2042 val* var1 /* : nullable Object */;
2043 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2044 val* var2 /* : nullable Object */;
2045 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2046 val* var3 /* : Array[Object] */;
2047 val* var_listnode3 /* var listnode3: Array[Object] */;
2048 val* var4 /* : Array[Object] */;
2049 val* var_listnode4 /* var listnode4: Array[Object] */;
2050 val* var5 /* : Array[Object] */;
2051 val* var_listnode8 /* var listnode8: Array[Object] */;
2052 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
2053 short int var6 /* : Bool */;
2054 int cltype;
2055 int idtype;
2056 val* var7 /* : Array[Object] */;
2057 val* var_listnode7 /* var listnode7: Array[Object] */;
2058 val* var_listnode6 /* var listnode6: nullable Object */;
2059 short int var8 /* : Bool */;
2060 int cltype9;
2061 int idtype10;
2062 val* var11 /* : Array[Object] */;
2063 val* var12 /* : ATopClassdef */;
2064 val* var_pclassdefnode5 /* var pclassdefnode5: nullable ATopClassdef */;
2065 val* var13 /* : null */;
2066 short int var14 /* : Bool */;
2067 val* var15 /* : AModule */;
2068 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
2069 long var16 /* : Int */;
2070 long var17 /* : Int */;
2071 var_p = p0;
2072 var = NULL;
2073 var_node_list = var;
2074 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2075 var_nodearraylist2 = var1;
2076 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2077 var_nodearraylist1 = var2;
2078 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
2079 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
2080 CHECK_NEW_array__Array(var3);
2081 var_listnode3 = var3;
2082 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
2083 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
2084 CHECK_NEW_array__Array(var4);
2085 var_listnode4 = var4;
2086 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
2087 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
2088 CHECK_NEW_array__Array(var5);
2089 var_listnode8 = var5;
2090 var_pmoduledeclnode2 = var_nodearraylist1;
2091 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
2092 cltype = type_nullable_parser_nodes__AModuledecl.color;
2093 idtype = type_nullable_parser_nodes__AModuledecl.id;
2094 if(var_pmoduledeclnode2 == NULL) {
2095 var6 = 1;
2096 } else {
2097 if(cltype >= var_pmoduledeclnode2->type->table_size) {
2098 var6 = 0;
2099 } else {
2100 var6 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
2101 }
2102 }
2103 if (!var6) {
2104 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2507);
2105 exit(1);
2106 }
2107 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
2108 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
2109 CHECK_NEW_array__Array(var7);
2110 var_listnode7 = var7;
2111 var_listnode6 = var_nodearraylist2;
2112 /* <var_listnode6:nullable Object> isa Array[Object] */
2113 cltype9 = type_array__Arraykernel__Object.color;
2114 idtype10 = type_array__Arraykernel__Object.id;
2115 if(var_listnode6 == NULL) {
2116 var8 = 0;
2117 } else {
2118 if(cltype9 >= var_listnode6->type->table_size) {
2119 var8 = 0;
2120 } else {
2121 var8 = var_listnode6->type->type_table[cltype9] == idtype10;
2122 }
2123 }
2124 if (!var8) {
2125 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2510);
2126 exit(1);
2127 }
2128 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on <self:ReduceAction17>*/;
2129 var_listnode7 = var11;
2130 var12 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
2131 ((void (*)(val*, val*))(var12->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var12, var_listnode7) /* init_atopclassdef on <var12:ATopClassdef>*/;
2132 CHECK_NEW_parser_nodes__ATopClassdef(var12);
2133 var_pclassdefnode5 = var12;
2134 var13 = NULL;
2135 if (var_pclassdefnode5 == NULL) {
2136 var14 = 0; /* is null */
2137 } else {
2138 var14 = 1; /* arg is null and recv is not */
2139 }
2140 if (var14){
2141 ((void (*)(val*, val*))(var_listnode8->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode8, var_pclassdefnode5) /* add on <var_listnode8:Array[Object]>*/;
2142 } else {
2143 }
2144 var15 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
2145 ((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>*/;
2146 CHECK_NEW_parser_nodes__AModule(var15);
2147 var_pmodulenode1 = var15;
2148 var_node_list = var_pmodulenode1;
2149 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction17> */
2150 var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
2151 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
2152 RET_LABEL:;
2153 }
2154 /* method parser#ReduceAction17#action for (self: Object, Parser) */
2155 void VIRTUAL_parser__ReduceAction17__action(val* self, val* p0) {
2156 parser__ReduceAction17__action(self, p0);
2157 RET_LABEL:;
2158 }
2159 /* method parser#ReduceAction18#action for (self: ReduceAction18, Parser) */
2160 void parser__ReduceAction18__action(val* self, val* p0) {
2161 val* var_p /* var p: Parser */;
2162 val* var /* : null */;
2163 val* var_node_list /* var node_list: nullable Object */;
2164 val* var1 /* : nullable Object */;
2165 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2166 val* var2 /* : nullable Object */;
2167 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2168 val* var3 /* : Array[Object] */;
2169 val* var_listnode4 /* var listnode4: Array[Object] */;
2170 val* var4 /* : Array[Object] */;
2171 val* var_listnode5 /* var listnode5: Array[Object] */;
2172 val* var5 /* : Array[Object] */;
2173 val* var_listnode9 /* var listnode9: Array[Object] */;
2174 val* var_listnode3 /* var listnode3: nullable Object */;
2175 short int var6 /* : Bool */;
2176 int cltype;
2177 int idtype;
2178 val* var7 /* : Array[Object] */;
2179 val* var8 /* : Array[Object] */;
2180 val* var_listnode8 /* var listnode8: Array[Object] */;
2181 val* var_listnode7 /* var listnode7: nullable Object */;
2182 short int var9 /* : Bool */;
2183 int cltype10;
2184 int idtype11;
2185 val* var12 /* : Array[Object] */;
2186 val* var13 /* : ATopClassdef */;
2187 val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */;
2188 val* var14 /* : null */;
2189 short int var15 /* : Bool */;
2190 val* var16 /* : AModule */;
2191 val* var17 /* : null */;
2192 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
2193 long var18 /* : Int */;
2194 long var19 /* : Int */;
2195 var_p = p0;
2196 var = NULL;
2197 var_node_list = var;
2198 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2199 var_nodearraylist2 = var1;
2200 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2201 var_nodearraylist1 = var2;
2202 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
2203 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
2204 CHECK_NEW_array__Array(var3);
2205 var_listnode4 = var3;
2206 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
2207 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
2208 CHECK_NEW_array__Array(var4);
2209 var_listnode5 = var4;
2210 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
2211 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
2212 CHECK_NEW_array__Array(var5);
2213 var_listnode9 = var5;
2214 var_listnode3 = var_nodearraylist1;
2215 /* <var_listnode3:nullable Object> isa Array[Object] */
2216 cltype = type_array__Arraykernel__Object.color;
2217 idtype = type_array__Arraykernel__Object.id;
2218 if(var_listnode3 == NULL) {
2219 var6 = 0;
2220 } else {
2221 if(cltype >= var_listnode3->type->table_size) {
2222 var6 = 0;
2223 } else {
2224 var6 = var_listnode3->type->type_table[cltype] == idtype;
2225 }
2226 }
2227 if (!var6) {
2228 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2539);
2229 exit(1);
2230 }
2231 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction18>*/;
2232 var_listnode4 = var7;
2233 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
2234 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
2235 CHECK_NEW_array__Array(var8);
2236 var_listnode8 = var8;
2237 var_listnode7 = var_nodearraylist2;
2238 /* <var_listnode7:nullable Object> isa Array[Object] */
2239 cltype10 = type_array__Arraykernel__Object.color;
2240 idtype11 = type_array__Arraykernel__Object.id;
2241 if(var_listnode7 == NULL) {
2242 var9 = 0;
2243 } else {
2244 if(cltype10 >= var_listnode7->type->table_size) {
2245 var9 = 0;
2246 } else {
2247 var9 = var_listnode7->type->type_table[cltype10] == idtype11;
2248 }
2249 }
2250 if (!var9) {
2251 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2543);
2252 exit(1);
2253 }
2254 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction18>*/;
2255 var_listnode8 = var12;
2256 var13 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
2257 ((void (*)(val*, val*))(var13->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var13, var_listnode8) /* init_atopclassdef on <var13:ATopClassdef>*/;
2258 CHECK_NEW_parser_nodes__ATopClassdef(var13);
2259 var_pclassdefnode6 = var13;
2260 var14 = NULL;
2261 if (var_pclassdefnode6 == NULL) {
2262 var15 = 0; /* is null */
2263 } else {
2264 var15 = 1; /* arg is null and recv is not */
2265 }
2266 if (var15){
2267 ((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode6) /* add on <var_listnode9:Array[Object]>*/;
2268 } else {
2269 }
2270 var16 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
2271 var17 = NULL;
2272 ((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>*/;
2273 CHECK_NEW_parser_nodes__AModule(var16);
2274 var_pmodulenode1 = var16;
2275 var_node_list = var_pmodulenode1;
2276 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction18> */
2277 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
2278 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
2279 RET_LABEL:;
2280 }
2281 /* method parser#ReduceAction18#action for (self: Object, Parser) */
2282 void VIRTUAL_parser__ReduceAction18__action(val* self, val* p0) {
2283 parser__ReduceAction18__action(self, p0);
2284 RET_LABEL:;
2285 }
2286 /* method parser#ReduceAction19#action for (self: ReduceAction19, Parser) */
2287 void parser__ReduceAction19__action(val* self, val* p0) {
2288 val* var_p /* var p: Parser */;
2289 val* var /* : null */;
2290 val* var_node_list /* var node_list: nullable Object */;
2291 val* var1 /* : nullable Object */;
2292 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2293 val* var2 /* : nullable Object */;
2294 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2295 val* var3 /* : nullable Object */;
2296 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2297 val* var4 /* : Array[Object] */;
2298 val* var_listnode4 /* var listnode4: Array[Object] */;
2299 val* var5 /* : Array[Object] */;
2300 val* var_listnode5 /* var listnode5: Array[Object] */;
2301 val* var6 /* : Array[Object] */;
2302 val* var_listnode9 /* var listnode9: Array[Object] */;
2303 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
2304 short int var7 /* : Bool */;
2305 int cltype;
2306 int idtype;
2307 val* var_listnode3 /* var listnode3: nullable Object */;
2308 short int var8 /* : Bool */;
2309 int cltype9;
2310 int idtype10;
2311 val* var11 /* : Array[Object] */;
2312 val* var12 /* : Array[Object] */;
2313 val* var_listnode8 /* var listnode8: Array[Object] */;
2314 val* var_listnode7 /* var listnode7: nullable Object */;
2315 short int var13 /* : Bool */;
2316 int cltype14;
2317 int idtype15;
2318 val* var16 /* : Array[Object] */;
2319 val* var17 /* : ATopClassdef */;
2320 val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */;
2321 val* var18 /* : null */;
2322 short int var19 /* : Bool */;
2323 val* var20 /* : AModule */;
2324 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
2325 long var21 /* : Int */;
2326 long var22 /* : Int */;
2327 var_p = p0;
2328 var = NULL;
2329 var_node_list = var;
2330 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2331 var_nodearraylist3 = var1;
2332 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2333 var_nodearraylist2 = var2;
2334 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2335 var_nodearraylist1 = var3;
2336 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
2337 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
2338 CHECK_NEW_array__Array(var4);
2339 var_listnode4 = var4;
2340 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
2341 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
2342 CHECK_NEW_array__Array(var5);
2343 var_listnode5 = var5;
2344 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
2345 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
2346 CHECK_NEW_array__Array(var6);
2347 var_listnode9 = var6;
2348 var_pmoduledeclnode2 = var_nodearraylist1;
2349 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
2350 cltype = type_nullable_parser_nodes__AModuledecl.color;
2351 idtype = type_nullable_parser_nodes__AModuledecl.id;
2352 if(var_pmoduledeclnode2 == NULL) {
2353 var7 = 1;
2354 } else {
2355 if(cltype >= var_pmoduledeclnode2->type->table_size) {
2356 var7 = 0;
2357 } else {
2358 var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
2359 }
2360 }
2361 if (!var7) {
2362 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2573);
2363 exit(1);
2364 }
2365 var_listnode3 = var_nodearraylist2;
2366 /* <var_listnode3:nullable Object> isa Array[Object] */
2367 cltype9 = type_array__Arraykernel__Object.color;
2368 idtype10 = type_array__Arraykernel__Object.id;
2369 if(var_listnode3 == NULL) {
2370 var8 = 0;
2371 } else {
2372 if(cltype9 >= var_listnode3->type->table_size) {
2373 var8 = 0;
2374 } else {
2375 var8 = var_listnode3->type->type_table[cltype9] == idtype10;
2376 }
2377 }
2378 if (!var8) {
2379 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2575);
2380 exit(1);
2381 }
2382 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction19>*/;
2383 var_listnode4 = var11;
2384 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
2385 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
2386 CHECK_NEW_array__Array(var12);
2387 var_listnode8 = var12;
2388 var_listnode7 = var_nodearraylist3;
2389 /* <var_listnode7:nullable Object> isa Array[Object] */
2390 cltype14 = type_array__Arraykernel__Object.color;
2391 idtype15 = type_array__Arraykernel__Object.id;
2392 if(var_listnode7 == NULL) {
2393 var13 = 0;
2394 } else {
2395 if(cltype14 >= var_listnode7->type->table_size) {
2396 var13 = 0;
2397 } else {
2398 var13 = var_listnode7->type->type_table[cltype14] == idtype15;
2399 }
2400 }
2401 if (!var13) {
2402 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2579);
2403 exit(1);
2404 }
2405 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction19>*/;
2406 var_listnode8 = var16;
2407 var17 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
2408 ((void (*)(val*, val*))(var17->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var17, var_listnode8) /* init_atopclassdef on <var17:ATopClassdef>*/;
2409 CHECK_NEW_parser_nodes__ATopClassdef(var17);
2410 var_pclassdefnode6 = var17;
2411 var18 = NULL;
2412 if (var_pclassdefnode6 == NULL) {
2413 var19 = 0; /* is null */
2414 } else {
2415 var19 = 1; /* arg is null and recv is not */
2416 }
2417 if (var19){
2418 ((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode6) /* add on <var_listnode9:Array[Object]>*/;
2419 } else {
2420 }
2421 var20 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
2422 ((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>*/;
2423 CHECK_NEW_parser_nodes__AModule(var20);
2424 var_pmodulenode1 = var20;
2425 var_node_list = var_pmodulenode1;
2426 var21 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction19> */
2427 var22 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var21) /* go_to on <var_p:Parser>*/;
2428 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var22, var_node_list) /* push on <var_p:Parser>*/;
2429 RET_LABEL:;
2430 }
2431 /* method parser#ReduceAction19#action for (self: Object, Parser) */
2432 void VIRTUAL_parser__ReduceAction19__action(val* self, val* p0) {
2433 parser__ReduceAction19__action(self, p0);
2434 RET_LABEL:;
2435 }
2436 /* method parser#ReduceAction20#action for (self: ReduceAction20, Parser) */
2437 void parser__ReduceAction20__action(val* self, val* p0) {
2438 val* var_p /* var p: Parser */;
2439 val* var /* : null */;
2440 val* var_node_list /* var node_list: nullable Object */;
2441 val* var1 /* : nullable Object */;
2442 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2443 val* var2 /* : nullable Object */;
2444 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2445 val* var3 /* : Array[Object] */;
2446 val* var_listnode3 /* var listnode3: Array[Object] */;
2447 val* var4 /* : Array[Object] */;
2448 val* var_listnode5 /* var listnode5: Array[Object] */;
2449 val* var5 /* : Array[Object] */;
2450 val* var_listnode9 /* var listnode9: Array[Object] */;
2451 val* var_listnode4 /* var listnode4: nullable Object */;
2452 short int var6 /* : Bool */;
2453 int cltype;
2454 int idtype;
2455 val* var7 /* : Array[Object] */;
2456 val* var8 /* : Array[Object] */;
2457 val* var_listnode8 /* var listnode8: Array[Object] */;
2458 val* var_listnode7 /* var listnode7: nullable Object */;
2459 short int var9 /* : Bool */;
2460 int cltype10;
2461 int idtype11;
2462 val* var12 /* : Array[Object] */;
2463 val* var13 /* : ATopClassdef */;
2464 val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */;
2465 val* var14 /* : null */;
2466 short int var15 /* : Bool */;
2467 val* var16 /* : AModule */;
2468 val* var17 /* : null */;
2469 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
2470 long var18 /* : Int */;
2471 long var19 /* : Int */;
2472 var_p = p0;
2473 var = NULL;
2474 var_node_list = var;
2475 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2476 var_nodearraylist2 = var1;
2477 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2478 var_nodearraylist1 = var2;
2479 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
2480 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
2481 CHECK_NEW_array__Array(var3);
2482 var_listnode3 = var3;
2483 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
2484 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
2485 CHECK_NEW_array__Array(var4);
2486 var_listnode5 = var4;
2487 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
2488 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
2489 CHECK_NEW_array__Array(var5);
2490 var_listnode9 = var5;
2491 var_listnode4 = var_nodearraylist1;
2492 /* <var_listnode4:nullable Object> isa Array[Object] */
2493 cltype = type_array__Arraykernel__Object.color;
2494 idtype = type_array__Arraykernel__Object.id;
2495 if(var_listnode4 == NULL) {
2496 var6 = 0;
2497 } else {
2498 if(cltype >= var_listnode4->type->table_size) {
2499 var6 = 0;
2500 } else {
2501 var6 = var_listnode4->type->type_table[cltype] == idtype;
2502 }
2503 }
2504 if (!var6) {
2505 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2608);
2506 exit(1);
2507 }
2508 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction20>*/;
2509 var_listnode5 = var7;
2510 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
2511 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
2512 CHECK_NEW_array__Array(var8);
2513 var_listnode8 = var8;
2514 var_listnode7 = var_nodearraylist2;
2515 /* <var_listnode7:nullable Object> isa Array[Object] */
2516 cltype10 = type_array__Arraykernel__Object.color;
2517 idtype11 = type_array__Arraykernel__Object.id;
2518 if(var_listnode7 == NULL) {
2519 var9 = 0;
2520 } else {
2521 if(cltype10 >= var_listnode7->type->table_size) {
2522 var9 = 0;
2523 } else {
2524 var9 = var_listnode7->type->type_table[cltype10] == idtype11;
2525 }
2526 }
2527 if (!var9) {
2528 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2612);
2529 exit(1);
2530 }
2531 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction20>*/;
2532 var_listnode8 = var12;
2533 var13 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
2534 ((void (*)(val*, val*))(var13->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var13, var_listnode8) /* init_atopclassdef on <var13:ATopClassdef>*/;
2535 CHECK_NEW_parser_nodes__ATopClassdef(var13);
2536 var_pclassdefnode6 = var13;
2537 var14 = NULL;
2538 if (var_pclassdefnode6 == NULL) {
2539 var15 = 0; /* is null */
2540 } else {
2541 var15 = 1; /* arg is null and recv is not */
2542 }
2543 if (var15){
2544 ((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode6) /* add on <var_listnode9:Array[Object]>*/;
2545 } else {
2546 }
2547 var16 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
2548 var17 = NULL;
2549 ((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>*/;
2550 CHECK_NEW_parser_nodes__AModule(var16);
2551 var_pmodulenode1 = var16;
2552 var_node_list = var_pmodulenode1;
2553 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction20> */
2554 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
2555 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
2556 RET_LABEL:;
2557 }
2558 /* method parser#ReduceAction20#action for (self: Object, Parser) */
2559 void VIRTUAL_parser__ReduceAction20__action(val* self, val* p0) {
2560 parser__ReduceAction20__action(self, p0);
2561 RET_LABEL:;
2562 }
2563 /* method parser#ReduceAction21#action for (self: ReduceAction21, Parser) */
2564 void parser__ReduceAction21__action(val* self, val* p0) {
2565 val* var_p /* var p: Parser */;
2566 val* var /* : null */;
2567 val* var_node_list /* var node_list: nullable Object */;
2568 val* var1 /* : nullable Object */;
2569 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2570 val* var2 /* : nullable Object */;
2571 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2572 val* var3 /* : nullable Object */;
2573 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2574 val* var4 /* : Array[Object] */;
2575 val* var_listnode3 /* var listnode3: Array[Object] */;
2576 val* var5 /* : Array[Object] */;
2577 val* var_listnode5 /* var listnode5: Array[Object] */;
2578 val* var6 /* : Array[Object] */;
2579 val* var_listnode9 /* var listnode9: Array[Object] */;
2580 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
2581 short int var7 /* : Bool */;
2582 int cltype;
2583 int idtype;
2584 val* var_listnode4 /* var listnode4: nullable Object */;
2585 short int var8 /* : Bool */;
2586 int cltype9;
2587 int idtype10;
2588 val* var11 /* : Array[Object] */;
2589 val* var12 /* : Array[Object] */;
2590 val* var_listnode8 /* var listnode8: Array[Object] */;
2591 val* var_listnode7 /* var listnode7: nullable Object */;
2592 short int var13 /* : Bool */;
2593 int cltype14;
2594 int idtype15;
2595 val* var16 /* : Array[Object] */;
2596 val* var17 /* : ATopClassdef */;
2597 val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */;
2598 val* var18 /* : null */;
2599 short int var19 /* : Bool */;
2600 val* var20 /* : AModule */;
2601 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
2602 long var21 /* : Int */;
2603 long var22 /* : Int */;
2604 var_p = p0;
2605 var = NULL;
2606 var_node_list = var;
2607 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2608 var_nodearraylist3 = var1;
2609 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2610 var_nodearraylist2 = var2;
2611 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2612 var_nodearraylist1 = var3;
2613 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
2614 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
2615 CHECK_NEW_array__Array(var4);
2616 var_listnode3 = var4;
2617 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
2618 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
2619 CHECK_NEW_array__Array(var5);
2620 var_listnode5 = var5;
2621 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
2622 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
2623 CHECK_NEW_array__Array(var6);
2624 var_listnode9 = var6;
2625 var_pmoduledeclnode2 = var_nodearraylist1;
2626 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
2627 cltype = type_nullable_parser_nodes__AModuledecl.color;
2628 idtype = type_nullable_parser_nodes__AModuledecl.id;
2629 if(var_pmoduledeclnode2 == NULL) {
2630 var7 = 1;
2631 } else {
2632 if(cltype >= var_pmoduledeclnode2->type->table_size) {
2633 var7 = 0;
2634 } else {
2635 var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
2636 }
2637 }
2638 if (!var7) {
2639 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2642);
2640 exit(1);
2641 }
2642 var_listnode4 = var_nodearraylist2;
2643 /* <var_listnode4:nullable Object> isa Array[Object] */
2644 cltype9 = type_array__Arraykernel__Object.color;
2645 idtype10 = type_array__Arraykernel__Object.id;
2646 if(var_listnode4 == NULL) {
2647 var8 = 0;
2648 } else {
2649 if(cltype9 >= var_listnode4->type->table_size) {
2650 var8 = 0;
2651 } else {
2652 var8 = var_listnode4->type->type_table[cltype9] == idtype10;
2653 }
2654 }
2655 if (!var8) {
2656 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2644);
2657 exit(1);
2658 }
2659 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction21>*/;
2660 var_listnode5 = var11;
2661 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
2662 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
2663 CHECK_NEW_array__Array(var12);
2664 var_listnode8 = var12;
2665 var_listnode7 = var_nodearraylist3;
2666 /* <var_listnode7:nullable Object> isa Array[Object] */
2667 cltype14 = type_array__Arraykernel__Object.color;
2668 idtype15 = type_array__Arraykernel__Object.id;
2669 if(var_listnode7 == NULL) {
2670 var13 = 0;
2671 } else {
2672 if(cltype14 >= var_listnode7->type->table_size) {
2673 var13 = 0;
2674 } else {
2675 var13 = var_listnode7->type->type_table[cltype14] == idtype15;
2676 }
2677 }
2678 if (!var13) {
2679 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2648);
2680 exit(1);
2681 }
2682 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction21>*/;
2683 var_listnode8 = var16;
2684 var17 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
2685 ((void (*)(val*, val*))(var17->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var17, var_listnode8) /* init_atopclassdef on <var17:ATopClassdef>*/;
2686 CHECK_NEW_parser_nodes__ATopClassdef(var17);
2687 var_pclassdefnode6 = var17;
2688 var18 = NULL;
2689 if (var_pclassdefnode6 == NULL) {
2690 var19 = 0; /* is null */
2691 } else {
2692 var19 = 1; /* arg is null and recv is not */
2693 }
2694 if (var19){
2695 ((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode6) /* add on <var_listnode9:Array[Object]>*/;
2696 } else {
2697 }
2698 var20 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
2699 ((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>*/;
2700 CHECK_NEW_parser_nodes__AModule(var20);
2701 var_pmodulenode1 = var20;
2702 var_node_list = var_pmodulenode1;
2703 var21 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction21> */
2704 var22 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var21) /* go_to on <var_p:Parser>*/;
2705 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var22, var_node_list) /* push on <var_p:Parser>*/;
2706 RET_LABEL:;
2707 }
2708 /* method parser#ReduceAction21#action for (self: Object, Parser) */
2709 void VIRTUAL_parser__ReduceAction21__action(val* self, val* p0) {
2710 parser__ReduceAction21__action(self, p0);
2711 RET_LABEL:;
2712 }
2713 /* method parser#ReduceAction22#action for (self: ReduceAction22, Parser) */
2714 void parser__ReduceAction22__action(val* self, val* p0) {
2715 val* var_p /* var p: Parser */;
2716 val* var /* : null */;
2717 val* var_node_list /* var node_list: nullable Object */;
2718 val* var1 /* : nullable Object */;
2719 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2720 val* var2 /* : nullable Object */;
2721 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2722 val* var3 /* : nullable Object */;
2723 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2724 val* var4 /* : Array[Object] */;
2725 val* var_listnode4 /* var listnode4: Array[Object] */;
2726 val* var5 /* : Array[Object] */;
2727 val* var_listnode6 /* var listnode6: Array[Object] */;
2728 val* var6 /* : Array[Object] */;
2729 val* var_listnode10 /* var listnode10: Array[Object] */;
2730 val* var_listnode3 /* var listnode3: nullable Object */;
2731 short int var7 /* : Bool */;
2732 int cltype;
2733 int idtype;
2734 val* var8 /* : Array[Object] */;
2735 val* var_listnode5 /* var listnode5: nullable Object */;
2736 short int var9 /* : Bool */;
2737 int cltype10;
2738 int idtype11;
2739 val* var12 /* : Array[Object] */;
2740 val* var13 /* : Array[Object] */;
2741 val* var_listnode9 /* var listnode9: Array[Object] */;
2742 val* var_listnode8 /* var listnode8: nullable Object */;
2743 short int var14 /* : Bool */;
2744 int cltype15;
2745 int idtype16;
2746 val* var17 /* : Array[Object] */;
2747 val* var18 /* : ATopClassdef */;
2748 val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */;
2749 val* var19 /* : null */;
2750 short int var20 /* : Bool */;
2751 val* var21 /* : AModule */;
2752 val* var22 /* : null */;
2753 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
2754 long var23 /* : Int */;
2755 long var24 /* : Int */;
2756 var_p = p0;
2757 var = NULL;
2758 var_node_list = var;
2759 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2760 var_nodearraylist3 = var1;
2761 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2762 var_nodearraylist2 = var2;
2763 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2764 var_nodearraylist1 = var3;
2765 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
2766 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
2767 CHECK_NEW_array__Array(var4);
2768 var_listnode4 = var4;
2769 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
2770 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
2771 CHECK_NEW_array__Array(var5);
2772 var_listnode6 = var5;
2773 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
2774 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
2775 CHECK_NEW_array__Array(var6);
2776 var_listnode10 = var6;
2777 var_listnode3 = var_nodearraylist1;
2778 /* <var_listnode3:nullable Object> isa Array[Object] */
2779 cltype = type_array__Arraykernel__Object.color;
2780 idtype = type_array__Arraykernel__Object.id;
2781 if(var_listnode3 == NULL) {
2782 var7 = 0;
2783 } else {
2784 if(cltype >= var_listnode3->type->table_size) {
2785 var7 = 0;
2786 } else {
2787 var7 = var_listnode3->type->type_table[cltype] == idtype;
2788 }
2789 }
2790 if (!var7) {
2791 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2678);
2792 exit(1);
2793 }
2794 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction22>*/;
2795 var_listnode4 = var8;
2796 var_listnode5 = var_nodearraylist2;
2797 /* <var_listnode5:nullable Object> isa Array[Object] */
2798 cltype10 = type_array__Arraykernel__Object.color;
2799 idtype11 = type_array__Arraykernel__Object.id;
2800 if(var_listnode5 == NULL) {
2801 var9 = 0;
2802 } else {
2803 if(cltype10 >= var_listnode5->type->table_size) {
2804 var9 = 0;
2805 } else {
2806 var9 = var_listnode5->type->type_table[cltype10] == idtype11;
2807 }
2808 }
2809 if (!var9) {
2810 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2681);
2811 exit(1);
2812 }
2813 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction22>*/;
2814 var_listnode6 = var12;
2815 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
2816 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
2817 CHECK_NEW_array__Array(var13);
2818 var_listnode9 = var13;
2819 var_listnode8 = var_nodearraylist3;
2820 /* <var_listnode8:nullable Object> isa Array[Object] */
2821 cltype15 = type_array__Arraykernel__Object.color;
2822 idtype16 = type_array__Arraykernel__Object.id;
2823 if(var_listnode8 == NULL) {
2824 var14 = 0;
2825 } else {
2826 if(cltype15 >= var_listnode8->type->table_size) {
2827 var14 = 0;
2828 } else {
2829 var14 = var_listnode8->type->type_table[cltype15] == idtype16;
2830 }
2831 }
2832 if (!var14) {
2833 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2685);
2834 exit(1);
2835 }
2836 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction22>*/;
2837 var_listnode9 = var17;
2838 var18 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
2839 ((void (*)(val*, val*))(var18->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var18, var_listnode9) /* init_atopclassdef on <var18:ATopClassdef>*/;
2840 CHECK_NEW_parser_nodes__ATopClassdef(var18);
2841 var_pclassdefnode7 = var18;
2842 var19 = NULL;
2843 if (var_pclassdefnode7 == NULL) {
2844 var20 = 0; /* is null */
2845 } else {
2846 var20 = 1; /* arg is null and recv is not */
2847 }
2848 if (var20){
2849 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode7) /* add on <var_listnode10:Array[Object]>*/;
2850 } else {
2851 }
2852 var21 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
2853 var22 = NULL;
2854 ((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>*/;
2855 CHECK_NEW_parser_nodes__AModule(var21);
2856 var_pmodulenode1 = var21;
2857 var_node_list = var_pmodulenode1;
2858 var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction22> */
2859 var24 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var23) /* go_to on <var_p:Parser>*/;
2860 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var24, var_node_list) /* push on <var_p:Parser>*/;
2861 RET_LABEL:;
2862 }
2863 /* method parser#ReduceAction22#action for (self: Object, Parser) */
2864 void VIRTUAL_parser__ReduceAction22__action(val* self, val* p0) {
2865 parser__ReduceAction22__action(self, p0);
2866 RET_LABEL:;
2867 }
2868 /* method parser#ReduceAction23#action for (self: ReduceAction23, Parser) */
2869 void parser__ReduceAction23__action(val* self, val* p0) {
2870 val* var_p /* var p: Parser */;
2871 val* var /* : null */;
2872 val* var_node_list /* var node_list: nullable Object */;
2873 val* var1 /* : nullable Object */;
2874 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2875 val* var2 /* : nullable Object */;
2876 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2877 val* var3 /* : nullable Object */;
2878 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2879 val* var4 /* : nullable Object */;
2880 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2881 val* var5 /* : Array[Object] */;
2882 val* var_listnode4 /* var listnode4: Array[Object] */;
2883 val* var6 /* : Array[Object] */;
2884 val* var_listnode6 /* var listnode6: Array[Object] */;
2885 val* var7 /* : Array[Object] */;
2886 val* var_listnode10 /* var listnode10: Array[Object] */;
2887 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
2888 short int var8 /* : Bool */;
2889 int cltype;
2890 int idtype;
2891 val* var_listnode3 /* var listnode3: nullable Object */;
2892 short int var9 /* : Bool */;
2893 int cltype10;
2894 int idtype11;
2895 val* var12 /* : Array[Object] */;
2896 val* var_listnode5 /* var listnode5: nullable Object */;
2897 short int var13 /* : Bool */;
2898 int cltype14;
2899 int idtype15;
2900 val* var16 /* : Array[Object] */;
2901 val* var17 /* : Array[Object] */;
2902 val* var_listnode9 /* var listnode9: Array[Object] */;
2903 val* var_listnode8 /* var listnode8: nullable Object */;
2904 short int var18 /* : Bool */;
2905 int cltype19;
2906 int idtype20;
2907 val* var21 /* : Array[Object] */;
2908 val* var22 /* : ATopClassdef */;
2909 val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */;
2910 val* var23 /* : null */;
2911 short int var24 /* : Bool */;
2912 val* var25 /* : AModule */;
2913 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
2914 long var26 /* : Int */;
2915 long var27 /* : Int */;
2916 var_p = p0;
2917 var = NULL;
2918 var_node_list = var;
2919 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2920 var_nodearraylist4 = var1;
2921 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2922 var_nodearraylist3 = var2;
2923 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2924 var_nodearraylist2 = var3;
2925 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2926 var_nodearraylist1 = var4;
2927 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
2928 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
2929 CHECK_NEW_array__Array(var5);
2930 var_listnode4 = var5;
2931 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
2932 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
2933 CHECK_NEW_array__Array(var6);
2934 var_listnode6 = var6;
2935 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
2936 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
2937 CHECK_NEW_array__Array(var7);
2938 var_listnode10 = var7;
2939 var_pmoduledeclnode2 = var_nodearraylist1;
2940 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
2941 cltype = type_nullable_parser_nodes__AModuledecl.color;
2942 idtype = type_nullable_parser_nodes__AModuledecl.id;
2943 if(var_pmoduledeclnode2 == NULL) {
2944 var8 = 1;
2945 } else {
2946 if(cltype >= var_pmoduledeclnode2->type->table_size) {
2947 var8 = 0;
2948 } else {
2949 var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
2950 }
2951 }
2952 if (!var8) {
2953 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2716);
2954 exit(1);
2955 }
2956 var_listnode3 = var_nodearraylist2;
2957 /* <var_listnode3:nullable Object> isa Array[Object] */
2958 cltype10 = type_array__Arraykernel__Object.color;
2959 idtype11 = type_array__Arraykernel__Object.id;
2960 if(var_listnode3 == NULL) {
2961 var9 = 0;
2962 } else {
2963 if(cltype10 >= var_listnode3->type->table_size) {
2964 var9 = 0;
2965 } else {
2966 var9 = var_listnode3->type->type_table[cltype10] == idtype11;
2967 }
2968 }
2969 if (!var9) {
2970 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2718);
2971 exit(1);
2972 }
2973 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction23>*/;
2974 var_listnode4 = var12;
2975 var_listnode5 = var_nodearraylist3;
2976 /* <var_listnode5:nullable Object> isa Array[Object] */
2977 cltype14 = type_array__Arraykernel__Object.color;
2978 idtype15 = type_array__Arraykernel__Object.id;
2979 if(var_listnode5 == NULL) {
2980 var13 = 0;
2981 } else {
2982 if(cltype14 >= var_listnode5->type->table_size) {
2983 var13 = 0;
2984 } else {
2985 var13 = var_listnode5->type->type_table[cltype14] == idtype15;
2986 }
2987 }
2988 if (!var13) {
2989 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2721);
2990 exit(1);
2991 }
2992 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction23>*/;
2993 var_listnode6 = var16;
2994 var17 = NEW_array__Array(&type_array__Arraykernel__Object);
2995 ((void (*)(val*))(var17->class->vft[COLOR_array__Array__init]))(var17) /* init on <var17:Array[Object]>*/;
2996 CHECK_NEW_array__Array(var17);
2997 var_listnode9 = var17;
2998 var_listnode8 = var_nodearraylist4;
2999 /* <var_listnode8:nullable Object> isa Array[Object] */
3000 cltype19 = type_array__Arraykernel__Object.color;
3001 idtype20 = type_array__Arraykernel__Object.id;
3002 if(var_listnode8 == NULL) {
3003 var18 = 0;
3004 } else {
3005 if(cltype19 >= var_listnode8->type->table_size) {
3006 var18 = 0;
3007 } else {
3008 var18 = var_listnode8->type->type_table[cltype19] == idtype20;
3009 }
3010 }
3011 if (!var18) {
3012 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2725);
3013 exit(1);
3014 }
3015 var21 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction23>*/;
3016 var_listnode9 = var21;
3017 var22 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
3018 ((void (*)(val*, val*))(var22->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var22, var_listnode9) /* init_atopclassdef on <var22:ATopClassdef>*/;
3019 CHECK_NEW_parser_nodes__ATopClassdef(var22);
3020 var_pclassdefnode7 = var22;
3021 var23 = NULL;
3022 if (var_pclassdefnode7 == NULL) {
3023 var24 = 0; /* is null */
3024 } else {
3025 var24 = 1; /* arg is null and recv is not */
3026 }
3027 if (var24){
3028 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode7) /* add on <var_listnode10:Array[Object]>*/;
3029 } else {
3030 }
3031 var25 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
3032 ((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>*/;
3033 CHECK_NEW_parser_nodes__AModule(var25);
3034 var_pmodulenode1 = var25;
3035 var_node_list = var_pmodulenode1;
3036 var26 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction23> */
3037 var27 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var26) /* go_to on <var_p:Parser>*/;
3038 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var27, var_node_list) /* push on <var_p:Parser>*/;
3039 RET_LABEL:;
3040 }
3041 /* method parser#ReduceAction23#action for (self: Object, Parser) */
3042 void VIRTUAL_parser__ReduceAction23__action(val* self, val* p0) {
3043 parser__ReduceAction23__action(self, p0);
3044 RET_LABEL:;
3045 }
3046 /* method parser#ReduceAction24#action for (self: ReduceAction24, Parser) */
3047 void parser__ReduceAction24__action(val* self, val* p0) {
3048 val* var_p /* var p: Parser */;
3049 val* var /* : null */;
3050 val* var_node_list /* var node_list: nullable Object */;
3051 val* var1 /* : nullable Object */;
3052 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3053 val* var2 /* : nullable Object */;
3054 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3055 val* var3 /* : Array[Object] */;
3056 val* var_listnode3 /* var listnode3: Array[Object] */;
3057 val* var4 /* : Array[Object] */;
3058 val* var_listnode4 /* var listnode4: Array[Object] */;
3059 val* var5 /* : Array[Object] */;
3060 val* var_listnode9 /* var listnode9: Array[Object] */;
3061 val* var_listnode5 /* var listnode5: nullable Object */;
3062 short int var6 /* : Bool */;
3063 int cltype;
3064 int idtype;
3065 val* var7 /* : Array[Object] */;
3066 val* var_listnode8 /* var listnode8: Array[Object] */;
3067 val* var_listnode7 /* var listnode7: nullable Object */;
3068 short int var8 /* : Bool */;
3069 int cltype9;
3070 int idtype10;
3071 val* var11 /* : Array[Object] */;
3072 val* var12 /* : ATopClassdef */;
3073 val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */;
3074 val* var13 /* : Array[Object] */;
3075 val* var14 /* : null */;
3076 short int var15 /* : Bool */;
3077 val* var16 /* : AModule */;
3078 val* var17 /* : null */;
3079 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
3080 long var18 /* : Int */;
3081 long var19 /* : Int */;
3082 var_p = p0;
3083 var = NULL;
3084 var_node_list = var;
3085 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3086 var_nodearraylist2 = var1;
3087 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3088 var_nodearraylist1 = var2;
3089 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
3090 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
3091 CHECK_NEW_array__Array(var3);
3092 var_listnode3 = var3;
3093 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
3094 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
3095 CHECK_NEW_array__Array(var4);
3096 var_listnode4 = var4;
3097 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
3098 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
3099 CHECK_NEW_array__Array(var5);
3100 var_listnode9 = var5;
3101 var_listnode5 = var_nodearraylist1;
3102 /* <var_listnode5:nullable Object> isa Array[Object] */
3103 cltype = type_array__Arraykernel__Object.color;
3104 idtype = type_array__Arraykernel__Object.id;
3105 if(var_listnode5 == NULL) {
3106 var6 = 0;
3107 } else {
3108 if(cltype >= var_listnode5->type->table_size) {
3109 var6 = 0;
3110 } else {
3111 var6 = var_listnode5->type->type_table[cltype] == idtype;
3112 }
3113 }
3114 if (!var6) {
3115 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2754);
3116 exit(1);
3117 }
3118 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
3119 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
3120 CHECK_NEW_array__Array(var7);
3121 var_listnode8 = var7;
3122 var_listnode7 = var_nodearraylist2;
3123 /* <var_listnode7:nullable Object> isa Array[Object] */
3124 cltype9 = type_array__Arraykernel__Object.color;
3125 idtype10 = type_array__Arraykernel__Object.id;
3126 if(var_listnode7 == NULL) {
3127 var8 = 0;
3128 } else {
3129 if(cltype9 >= var_listnode7->type->table_size) {
3130 var8 = 0;
3131 } else {
3132 var8 = var_listnode7->type->type_table[cltype9] == idtype10;
3133 }
3134 }
3135 if (!var8) {
3136 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2757);
3137 exit(1);
3138 }
3139 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction24>*/;
3140 var_listnode8 = var11;
3141 var12 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
3142 ((void (*)(val*, val*))(var12->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var12, var_listnode8) /* init_atopclassdef on <var12:ATopClassdef>*/;
3143 CHECK_NEW_parser_nodes__ATopClassdef(var12);
3144 var_pclassdefnode6 = var12;
3145 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode5) /* concat on <self:ReduceAction24>*/;
3146 var_listnode9 = var13;
3147 var14 = NULL;
3148 if (var_pclassdefnode6 == NULL) {
3149 var15 = 0; /* is null */
3150 } else {
3151 var15 = 1; /* arg is null and recv is not */
3152 }
3153 if (var15){
3154 ((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode6) /* add on <var_listnode9:Array[Object]>*/;
3155 } else {
3156 }
3157 var16 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
3158 var17 = NULL;
3159 ((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>*/;
3160 CHECK_NEW_parser_nodes__AModule(var16);
3161 var_pmodulenode1 = var16;
3162 var_node_list = var_pmodulenode1;
3163 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction24> */
3164 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
3165 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
3166 RET_LABEL:;
3167 }
3168 /* method parser#ReduceAction24#action for (self: Object, Parser) */
3169 void VIRTUAL_parser__ReduceAction24__action(val* self, val* p0) {
3170 parser__ReduceAction24__action(self, p0);
3171 RET_LABEL:;
3172 }
3173 /* method parser#ReduceAction25#action for (self: ReduceAction25, Parser) */
3174 void parser__ReduceAction25__action(val* self, val* p0) {
3175 val* var_p /* var p: Parser */;
3176 val* var /* : null */;
3177 val* var_node_list /* var node_list: nullable Object */;
3178 val* var1 /* : nullable Object */;
3179 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3180 val* var2 /* : nullable Object */;
3181 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3182 val* var3 /* : nullable Object */;
3183 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3184 val* var4 /* : Array[Object] */;
3185 val* var_listnode3 /* var listnode3: Array[Object] */;
3186 val* var5 /* : Array[Object] */;
3187 val* var_listnode4 /* var listnode4: Array[Object] */;
3188 val* var6 /* : Array[Object] */;
3189 val* var_listnode9 /* var listnode9: Array[Object] */;
3190 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
3191 short int var7 /* : Bool */;
3192 int cltype;
3193 int idtype;
3194 val* var_listnode5 /* var listnode5: nullable Object */;
3195 short int var8 /* : Bool */;
3196 int cltype9;
3197 int idtype10;
3198 val* var11 /* : Array[Object] */;
3199 val* var_listnode8 /* var listnode8: Array[Object] */;
3200 val* var_listnode7 /* var listnode7: nullable Object */;
3201 short int var12 /* : Bool */;
3202 int cltype13;
3203 int idtype14;
3204 val* var15 /* : Array[Object] */;
3205 val* var16 /* : ATopClassdef */;
3206 val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */;
3207 val* var17 /* : Array[Object] */;
3208 val* var18 /* : null */;
3209 short int var19 /* : Bool */;
3210 val* var20 /* : AModule */;
3211 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
3212 long var21 /* : Int */;
3213 long var22 /* : Int */;
3214 var_p = p0;
3215 var = NULL;
3216 var_node_list = var;
3217 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3218 var_nodearraylist3 = var1;
3219 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3220 var_nodearraylist2 = var2;
3221 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3222 var_nodearraylist1 = var3;
3223 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
3224 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
3225 CHECK_NEW_array__Array(var4);
3226 var_listnode3 = var4;
3227 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
3228 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
3229 CHECK_NEW_array__Array(var5);
3230 var_listnode4 = var5;
3231 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
3232 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
3233 CHECK_NEW_array__Array(var6);
3234 var_listnode9 = var6;
3235 var_pmoduledeclnode2 = var_nodearraylist1;
3236 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
3237 cltype = type_nullable_parser_nodes__AModuledecl.color;
3238 idtype = type_nullable_parser_nodes__AModuledecl.id;
3239 if(var_pmoduledeclnode2 == NULL) {
3240 var7 = 1;
3241 } else {
3242 if(cltype >= var_pmoduledeclnode2->type->table_size) {
3243 var7 = 0;
3244 } else {
3245 var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
3246 }
3247 }
3248 if (!var7) {
3249 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2788);
3250 exit(1);
3251 }
3252 var_listnode5 = var_nodearraylist2;
3253 /* <var_listnode5:nullable Object> isa Array[Object] */
3254 cltype9 = type_array__Arraykernel__Object.color;
3255 idtype10 = type_array__Arraykernel__Object.id;
3256 if(var_listnode5 == NULL) {
3257 var8 = 0;
3258 } else {
3259 if(cltype9 >= var_listnode5->type->table_size) {
3260 var8 = 0;
3261 } else {
3262 var8 = var_listnode5->type->type_table[cltype9] == idtype10;
3263 }
3264 }
3265 if (!var8) {
3266 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2790);
3267 exit(1);
3268 }
3269 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
3270 ((void (*)(val*))(var11->class->vft[COLOR_array__Array__init]))(var11) /* init on <var11:Array[Object]>*/;
3271 CHECK_NEW_array__Array(var11);
3272 var_listnode8 = var11;
3273 var_listnode7 = var_nodearraylist3;
3274 /* <var_listnode7:nullable Object> isa Array[Object] */
3275 cltype13 = type_array__Arraykernel__Object.color;
3276 idtype14 = type_array__Arraykernel__Object.id;
3277 if(var_listnode7 == NULL) {
3278 var12 = 0;
3279 } else {
3280 if(cltype13 >= var_listnode7->type->table_size) {
3281 var12 = 0;
3282 } else {
3283 var12 = var_listnode7->type->type_table[cltype13] == idtype14;
3284 }
3285 }
3286 if (!var12) {
3287 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2793);
3288 exit(1);
3289 }
3290 var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction25>*/;
3291 var_listnode8 = var15;
3292 var16 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
3293 ((void (*)(val*, val*))(var16->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var16, var_listnode8) /* init_atopclassdef on <var16:ATopClassdef>*/;
3294 CHECK_NEW_parser_nodes__ATopClassdef(var16);
3295 var_pclassdefnode6 = var16;
3296 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode5) /* concat on <self:ReduceAction25>*/;
3297 var_listnode9 = var17;
3298 var18 = NULL;
3299 if (var_pclassdefnode6 == NULL) {
3300 var19 = 0; /* is null */
3301 } else {
3302 var19 = 1; /* arg is null and recv is not */
3303 }
3304 if (var19){
3305 ((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode6) /* add on <var_listnode9:Array[Object]>*/;
3306 } else {
3307 }
3308 var20 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
3309 ((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>*/;
3310 CHECK_NEW_parser_nodes__AModule(var20);
3311 var_pmodulenode1 = var20;
3312 var_node_list = var_pmodulenode1;
3313 var21 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction25> */
3314 var22 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var21) /* go_to on <var_p:Parser>*/;
3315 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var22, var_node_list) /* push on <var_p:Parser>*/;
3316 RET_LABEL:;
3317 }
3318 /* method parser#ReduceAction25#action for (self: Object, Parser) */
3319 void VIRTUAL_parser__ReduceAction25__action(val* self, val* p0) {
3320 parser__ReduceAction25__action(self, p0);
3321 RET_LABEL:;
3322 }
3323 /* method parser#ReduceAction26#action for (self: ReduceAction26, Parser) */
3324 void parser__ReduceAction26__action(val* self, val* p0) {
3325 val* var_p /* var p: Parser */;
3326 val* var /* : null */;
3327 val* var_node_list /* var node_list: nullable Object */;
3328 val* var1 /* : nullable Object */;
3329 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3330 val* var2 /* : nullable Object */;
3331 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3332 val* var3 /* : nullable Object */;
3333 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3334 val* var4 /* : Array[Object] */;
3335 val* var_listnode4 /* var listnode4: Array[Object] */;
3336 val* var5 /* : Array[Object] */;
3337 val* var_listnode5 /* var listnode5: Array[Object] */;
3338 val* var6 /* : Array[Object] */;
3339 val* var_listnode10 /* var listnode10: Array[Object] */;
3340 val* var_listnode3 /* var listnode3: nullable Object */;
3341 short int var7 /* : Bool */;
3342 int cltype;
3343 int idtype;
3344 val* var8 /* : Array[Object] */;
3345 val* var_listnode6 /* var listnode6: nullable Object */;
3346 short int var9 /* : Bool */;
3347 int cltype10;
3348 int idtype11;
3349 val* var12 /* : Array[Object] */;
3350 val* var_listnode9 /* var listnode9: Array[Object] */;
3351 val* var_listnode8 /* var listnode8: nullable Object */;
3352 short int var13 /* : Bool */;
3353 int cltype14;
3354 int idtype15;
3355 val* var16 /* : Array[Object] */;
3356 val* var17 /* : ATopClassdef */;
3357 val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */;
3358 val* var18 /* : Array[Object] */;
3359 val* var19 /* : null */;
3360 short int var20 /* : Bool */;
3361 val* var21 /* : AModule */;
3362 val* var22 /* : null */;
3363 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
3364 long var23 /* : Int */;
3365 long var24 /* : Int */;
3366 var_p = p0;
3367 var = NULL;
3368 var_node_list = var;
3369 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3370 var_nodearraylist3 = var1;
3371 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3372 var_nodearraylist2 = var2;
3373 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3374 var_nodearraylist1 = var3;
3375 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
3376 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
3377 CHECK_NEW_array__Array(var4);
3378 var_listnode4 = var4;
3379 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
3380 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
3381 CHECK_NEW_array__Array(var5);
3382 var_listnode5 = var5;
3383 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
3384 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
3385 CHECK_NEW_array__Array(var6);
3386 var_listnode10 = var6;
3387 var_listnode3 = var_nodearraylist1;
3388 /* <var_listnode3:nullable Object> isa Array[Object] */
3389 cltype = type_array__Arraykernel__Object.color;
3390 idtype = type_array__Arraykernel__Object.id;
3391 if(var_listnode3 == NULL) {
3392 var7 = 0;
3393 } else {
3394 if(cltype >= var_listnode3->type->table_size) {
3395 var7 = 0;
3396 } else {
3397 var7 = var_listnode3->type->type_table[cltype] == idtype;
3398 }
3399 }
3400 if (!var7) {
3401 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2824);
3402 exit(1);
3403 }
3404 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction26>*/;
3405 var_listnode4 = var8;
3406 var_listnode6 = var_nodearraylist2;
3407 /* <var_listnode6:nullable Object> isa Array[Object] */
3408 cltype10 = type_array__Arraykernel__Object.color;
3409 idtype11 = type_array__Arraykernel__Object.id;
3410 if(var_listnode6 == NULL) {
3411 var9 = 0;
3412 } else {
3413 if(cltype10 >= var_listnode6->type->table_size) {
3414 var9 = 0;
3415 } else {
3416 var9 = var_listnode6->type->type_table[cltype10] == idtype11;
3417 }
3418 }
3419 if (!var9) {
3420 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2827);
3421 exit(1);
3422 }
3423 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
3424 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
3425 CHECK_NEW_array__Array(var12);
3426 var_listnode9 = var12;
3427 var_listnode8 = var_nodearraylist3;
3428 /* <var_listnode8:nullable Object> isa Array[Object] */
3429 cltype14 = type_array__Arraykernel__Object.color;
3430 idtype15 = type_array__Arraykernel__Object.id;
3431 if(var_listnode8 == NULL) {
3432 var13 = 0;
3433 } else {
3434 if(cltype14 >= var_listnode8->type->table_size) {
3435 var13 = 0;
3436 } else {
3437 var13 = var_listnode8->type->type_table[cltype14] == idtype15;
3438 }
3439 }
3440 if (!var13) {
3441 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2830);
3442 exit(1);
3443 }
3444 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction26>*/;
3445 var_listnode9 = var16;
3446 var17 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
3447 ((void (*)(val*, val*))(var17->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var17, var_listnode9) /* init_atopclassdef on <var17:ATopClassdef>*/;
3448 CHECK_NEW_parser_nodes__ATopClassdef(var17);
3449 var_pclassdefnode7 = var17;
3450 var18 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode6) /* concat on <self:ReduceAction26>*/;
3451 var_listnode10 = var18;
3452 var19 = NULL;
3453 if (var_pclassdefnode7 == NULL) {
3454 var20 = 0; /* is null */
3455 } else {
3456 var20 = 1; /* arg is null and recv is not */
3457 }
3458 if (var20){
3459 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode7) /* add on <var_listnode10:Array[Object]>*/;
3460 } else {
3461 }
3462 var21 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
3463 var22 = NULL;
3464 ((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>*/;
3465 CHECK_NEW_parser_nodes__AModule(var21);
3466 var_pmodulenode1 = var21;
3467 var_node_list = var_pmodulenode1;
3468 var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction26> */
3469 var24 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var23) /* go_to on <var_p:Parser>*/;
3470 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var24, var_node_list) /* push on <var_p:Parser>*/;
3471 RET_LABEL:;
3472 }
3473 /* method parser#ReduceAction26#action for (self: Object, Parser) */
3474 void VIRTUAL_parser__ReduceAction26__action(val* self, val* p0) {
3475 parser__ReduceAction26__action(self, p0);
3476 RET_LABEL:;
3477 }
3478 /* method parser#ReduceAction27#action for (self: ReduceAction27, Parser) */
3479 void parser__ReduceAction27__action(val* self, val* p0) {
3480 val* var_p /* var p: Parser */;
3481 val* var /* : null */;
3482 val* var_node_list /* var node_list: nullable Object */;
3483 val* var1 /* : nullable Object */;
3484 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3485 val* var2 /* : nullable Object */;
3486 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3487 val* var3 /* : nullable Object */;
3488 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3489 val* var4 /* : nullable Object */;
3490 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3491 val* var5 /* : Array[Object] */;
3492 val* var_listnode4 /* var listnode4: Array[Object] */;
3493 val* var6 /* : Array[Object] */;
3494 val* var_listnode5 /* var listnode5: Array[Object] */;
3495 val* var7 /* : Array[Object] */;
3496 val* var_listnode10 /* var listnode10: Array[Object] */;
3497 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
3498 short int var8 /* : Bool */;
3499 int cltype;
3500 int idtype;
3501 val* var_listnode3 /* var listnode3: nullable Object */;
3502 short int var9 /* : Bool */;
3503 int cltype10;
3504 int idtype11;
3505 val* var12 /* : Array[Object] */;
3506 val* var_listnode6 /* var listnode6: nullable Object */;
3507 short int var13 /* : Bool */;
3508 int cltype14;
3509 int idtype15;
3510 val* var16 /* : Array[Object] */;
3511 val* var_listnode9 /* var listnode9: Array[Object] */;
3512 val* var_listnode8 /* var listnode8: nullable Object */;
3513 short int var17 /* : Bool */;
3514 int cltype18;
3515 int idtype19;
3516 val* var20 /* : Array[Object] */;
3517 val* var21 /* : ATopClassdef */;
3518 val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */;
3519 val* var22 /* : Array[Object] */;
3520 val* var23 /* : null */;
3521 short int var24 /* : Bool */;
3522 val* var25 /* : AModule */;
3523 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
3524 long var26 /* : Int */;
3525 long var27 /* : Int */;
3526 var_p = p0;
3527 var = NULL;
3528 var_node_list = var;
3529 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3530 var_nodearraylist4 = var1;
3531 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3532 var_nodearraylist3 = var2;
3533 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3534 var_nodearraylist2 = var3;
3535 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3536 var_nodearraylist1 = var4;
3537 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
3538 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
3539 CHECK_NEW_array__Array(var5);
3540 var_listnode4 = var5;
3541 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
3542 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
3543 CHECK_NEW_array__Array(var6);
3544 var_listnode5 = var6;
3545 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
3546 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
3547 CHECK_NEW_array__Array(var7);
3548 var_listnode10 = var7;
3549 var_pmoduledeclnode2 = var_nodearraylist1;
3550 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
3551 cltype = type_nullable_parser_nodes__AModuledecl.color;
3552 idtype = type_nullable_parser_nodes__AModuledecl.id;
3553 if(var_pmoduledeclnode2 == NULL) {
3554 var8 = 1;
3555 } else {
3556 if(cltype >= var_pmoduledeclnode2->type->table_size) {
3557 var8 = 0;
3558 } else {
3559 var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
3560 }
3561 }
3562 if (!var8) {
3563 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2862);
3564 exit(1);
3565 }
3566 var_listnode3 = var_nodearraylist2;
3567 /* <var_listnode3:nullable Object> isa Array[Object] */
3568 cltype10 = type_array__Arraykernel__Object.color;
3569 idtype11 = type_array__Arraykernel__Object.id;
3570 if(var_listnode3 == NULL) {
3571 var9 = 0;
3572 } else {
3573 if(cltype10 >= var_listnode3->type->table_size) {
3574 var9 = 0;
3575 } else {
3576 var9 = var_listnode3->type->type_table[cltype10] == idtype11;
3577 }
3578 }
3579 if (!var9) {
3580 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2864);
3581 exit(1);
3582 }
3583 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction27>*/;
3584 var_listnode4 = var12;
3585 var_listnode6 = var_nodearraylist3;
3586 /* <var_listnode6:nullable Object> isa Array[Object] */
3587 cltype14 = type_array__Arraykernel__Object.color;
3588 idtype15 = type_array__Arraykernel__Object.id;
3589 if(var_listnode6 == NULL) {
3590 var13 = 0;
3591 } else {
3592 if(cltype14 >= var_listnode6->type->table_size) {
3593 var13 = 0;
3594 } else {
3595 var13 = var_listnode6->type->type_table[cltype14] == idtype15;
3596 }
3597 }
3598 if (!var13) {
3599 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2867);
3600 exit(1);
3601 }
3602 var16 = NEW_array__Array(&type_array__Arraykernel__Object);
3603 ((void (*)(val*))(var16->class->vft[COLOR_array__Array__init]))(var16) /* init on <var16:Array[Object]>*/;
3604 CHECK_NEW_array__Array(var16);
3605 var_listnode9 = var16;
3606 var_listnode8 = var_nodearraylist4;
3607 /* <var_listnode8:nullable Object> isa Array[Object] */
3608 cltype18 = type_array__Arraykernel__Object.color;
3609 idtype19 = type_array__Arraykernel__Object.id;
3610 if(var_listnode8 == NULL) {
3611 var17 = 0;
3612 } else {
3613 if(cltype18 >= var_listnode8->type->table_size) {
3614 var17 = 0;
3615 } else {
3616 var17 = var_listnode8->type->type_table[cltype18] == idtype19;
3617 }
3618 }
3619 if (!var17) {
3620 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2870);
3621 exit(1);
3622 }
3623 var20 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction27>*/;
3624 var_listnode9 = var20;
3625 var21 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
3626 ((void (*)(val*, val*))(var21->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var21, var_listnode9) /* init_atopclassdef on <var21:ATopClassdef>*/;
3627 CHECK_NEW_parser_nodes__ATopClassdef(var21);
3628 var_pclassdefnode7 = var21;
3629 var22 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode6) /* concat on <self:ReduceAction27>*/;
3630 var_listnode10 = var22;
3631 var23 = NULL;
3632 if (var_pclassdefnode7 == NULL) {
3633 var24 = 0; /* is null */
3634 } else {
3635 var24 = 1; /* arg is null and recv is not */
3636 }
3637 if (var24){
3638 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode7) /* add on <var_listnode10:Array[Object]>*/;
3639 } else {
3640 }
3641 var25 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
3642 ((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>*/;
3643 CHECK_NEW_parser_nodes__AModule(var25);
3644 var_pmodulenode1 = var25;
3645 var_node_list = var_pmodulenode1;
3646 var26 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction27> */
3647 var27 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var26) /* go_to on <var_p:Parser>*/;
3648 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var27, var_node_list) /* push on <var_p:Parser>*/;
3649 RET_LABEL:;
3650 }
3651 /* method parser#ReduceAction27#action for (self: Object, Parser) */
3652 void VIRTUAL_parser__ReduceAction27__action(val* self, val* p0) {
3653 parser__ReduceAction27__action(self, p0);
3654 RET_LABEL:;
3655 }
3656 /* method parser#ReduceAction28#action for (self: ReduceAction28, Parser) */
3657 void parser__ReduceAction28__action(val* self, val* p0) {
3658 val* var_p /* var p: Parser */;
3659 val* var /* : null */;
3660 val* var_node_list /* var node_list: nullable Object */;
3661 val* var1 /* : nullable Object */;
3662 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3663 val* var2 /* : nullable Object */;
3664 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3665 val* var3 /* : nullable Object */;
3666 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3667 val* var4 /* : Array[Object] */;
3668 val* var_listnode3 /* var listnode3: Array[Object] */;
3669 val* var5 /* : Array[Object] */;
3670 val* var_listnode5 /* var listnode5: Array[Object] */;
3671 val* var6 /* : Array[Object] */;
3672 val* var_listnode10 /* var listnode10: Array[Object] */;
3673 val* var_listnode4 /* var listnode4: nullable Object */;
3674 short int var7 /* : Bool */;
3675 int cltype;
3676 int idtype;
3677 val* var8 /* : Array[Object] */;
3678 val* var_listnode6 /* var listnode6: nullable Object */;
3679 short int var9 /* : Bool */;
3680 int cltype10;
3681 int idtype11;
3682 val* var12 /* : Array[Object] */;
3683 val* var_listnode9 /* var listnode9: Array[Object] */;
3684 val* var_listnode8 /* var listnode8: nullable Object */;
3685 short int var13 /* : Bool */;
3686 int cltype14;
3687 int idtype15;
3688 val* var16 /* : Array[Object] */;
3689 val* var17 /* : ATopClassdef */;
3690 val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */;
3691 val* var18 /* : Array[Object] */;
3692 val* var19 /* : null */;
3693 short int var20 /* : Bool */;
3694 val* var21 /* : AModule */;
3695 val* var22 /* : null */;
3696 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
3697 long var23 /* : Int */;
3698 long var24 /* : Int */;
3699 var_p = p0;
3700 var = NULL;
3701 var_node_list = var;
3702 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3703 var_nodearraylist3 = var1;
3704 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3705 var_nodearraylist2 = var2;
3706 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3707 var_nodearraylist1 = var3;
3708 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
3709 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
3710 CHECK_NEW_array__Array(var4);
3711 var_listnode3 = var4;
3712 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
3713 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
3714 CHECK_NEW_array__Array(var5);
3715 var_listnode5 = var5;
3716 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
3717 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
3718 CHECK_NEW_array__Array(var6);
3719 var_listnode10 = var6;
3720 var_listnode4 = var_nodearraylist1;
3721 /* <var_listnode4:nullable Object> isa Array[Object] */
3722 cltype = type_array__Arraykernel__Object.color;
3723 idtype = type_array__Arraykernel__Object.id;
3724 if(var_listnode4 == NULL) {
3725 var7 = 0;
3726 } else {
3727 if(cltype >= var_listnode4->type->table_size) {
3728 var7 = 0;
3729 } else {
3730 var7 = var_listnode4->type->type_table[cltype] == idtype;
3731 }
3732 }
3733 if (!var7) {
3734 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2901);
3735 exit(1);
3736 }
3737 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction28>*/;
3738 var_listnode5 = var8;
3739 var_listnode6 = var_nodearraylist2;
3740 /* <var_listnode6:nullable Object> isa Array[Object] */
3741 cltype10 = type_array__Arraykernel__Object.color;
3742 idtype11 = type_array__Arraykernel__Object.id;
3743 if(var_listnode6 == NULL) {
3744 var9 = 0;
3745 } else {
3746 if(cltype10 >= var_listnode6->type->table_size) {
3747 var9 = 0;
3748 } else {
3749 var9 = var_listnode6->type->type_table[cltype10] == idtype11;
3750 }
3751 }
3752 if (!var9) {
3753 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2904);
3754 exit(1);
3755 }
3756 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
3757 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
3758 CHECK_NEW_array__Array(var12);
3759 var_listnode9 = var12;
3760 var_listnode8 = var_nodearraylist3;
3761 /* <var_listnode8:nullable Object> isa Array[Object] */
3762 cltype14 = type_array__Arraykernel__Object.color;
3763 idtype15 = type_array__Arraykernel__Object.id;
3764 if(var_listnode8 == NULL) {
3765 var13 = 0;
3766 } else {
3767 if(cltype14 >= var_listnode8->type->table_size) {
3768 var13 = 0;
3769 } else {
3770 var13 = var_listnode8->type->type_table[cltype14] == idtype15;
3771 }
3772 }
3773 if (!var13) {
3774 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2907);
3775 exit(1);
3776 }
3777 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction28>*/;
3778 var_listnode9 = var16;
3779 var17 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
3780 ((void (*)(val*, val*))(var17->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var17, var_listnode9) /* init_atopclassdef on <var17:ATopClassdef>*/;
3781 CHECK_NEW_parser_nodes__ATopClassdef(var17);
3782 var_pclassdefnode7 = var17;
3783 var18 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode6) /* concat on <self:ReduceAction28>*/;
3784 var_listnode10 = var18;
3785 var19 = NULL;
3786 if (var_pclassdefnode7 == NULL) {
3787 var20 = 0; /* is null */
3788 } else {
3789 var20 = 1; /* arg is null and recv is not */
3790 }
3791 if (var20){
3792 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode7) /* add on <var_listnode10:Array[Object]>*/;
3793 } else {
3794 }
3795 var21 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
3796 var22 = NULL;
3797 ((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>*/;
3798 CHECK_NEW_parser_nodes__AModule(var21);
3799 var_pmodulenode1 = var21;
3800 var_node_list = var_pmodulenode1;
3801 var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction28> */
3802 var24 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var23) /* go_to on <var_p:Parser>*/;
3803 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var24, var_node_list) /* push on <var_p:Parser>*/;
3804 RET_LABEL:;
3805 }
3806 /* method parser#ReduceAction28#action for (self: Object, Parser) */
3807 void VIRTUAL_parser__ReduceAction28__action(val* self, val* p0) {
3808 parser__ReduceAction28__action(self, p0);
3809 RET_LABEL:;
3810 }
3811 /* method parser#ReduceAction29#action for (self: ReduceAction29, Parser) */
3812 void parser__ReduceAction29__action(val* self, val* p0) {
3813 val* var_p /* var p: Parser */;
3814 val* var /* : null */;
3815 val* var_node_list /* var node_list: nullable Object */;
3816 val* var1 /* : nullable Object */;
3817 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3818 val* var2 /* : nullable Object */;
3819 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3820 val* var3 /* : nullable Object */;
3821 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3822 val* var4 /* : nullable Object */;
3823 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3824 val* var5 /* : Array[Object] */;
3825 val* var_listnode3 /* var listnode3: Array[Object] */;
3826 val* var6 /* : Array[Object] */;
3827 val* var_listnode5 /* var listnode5: Array[Object] */;
3828 val* var7 /* : Array[Object] */;
3829 val* var_listnode10 /* var listnode10: Array[Object] */;
3830 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
3831 short int var8 /* : Bool */;
3832 int cltype;
3833 int idtype;
3834 val* var_listnode4 /* var listnode4: nullable Object */;
3835 short int var9 /* : Bool */;
3836 int cltype10;
3837 int idtype11;
3838 val* var12 /* : Array[Object] */;
3839 val* var_listnode6 /* var listnode6: nullable Object */;
3840 short int var13 /* : Bool */;
3841 int cltype14;
3842 int idtype15;
3843 val* var16 /* : Array[Object] */;
3844 val* var_listnode9 /* var listnode9: Array[Object] */;
3845 val* var_listnode8 /* var listnode8: nullable Object */;
3846 short int var17 /* : Bool */;
3847 int cltype18;
3848 int idtype19;
3849 val* var20 /* : Array[Object] */;
3850 val* var21 /* : ATopClassdef */;
3851 val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */;
3852 val* var22 /* : Array[Object] */;
3853 val* var23 /* : null */;
3854 short int var24 /* : Bool */;
3855 val* var25 /* : AModule */;
3856 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
3857 long var26 /* : Int */;
3858 long var27 /* : Int */;
3859 var_p = p0;
3860 var = NULL;
3861 var_node_list = var;
3862 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3863 var_nodearraylist4 = var1;
3864 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3865 var_nodearraylist3 = var2;
3866 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3867 var_nodearraylist2 = var3;
3868 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3869 var_nodearraylist1 = var4;
3870 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
3871 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
3872 CHECK_NEW_array__Array(var5);
3873 var_listnode3 = var5;
3874 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
3875 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
3876 CHECK_NEW_array__Array(var6);
3877 var_listnode5 = var6;
3878 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
3879 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
3880 CHECK_NEW_array__Array(var7);
3881 var_listnode10 = var7;
3882 var_pmoduledeclnode2 = var_nodearraylist1;
3883 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
3884 cltype = type_nullable_parser_nodes__AModuledecl.color;
3885 idtype = type_nullable_parser_nodes__AModuledecl.id;
3886 if(var_pmoduledeclnode2 == NULL) {
3887 var8 = 1;
3888 } else {
3889 if(cltype >= var_pmoduledeclnode2->type->table_size) {
3890 var8 = 0;
3891 } else {
3892 var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
3893 }
3894 }
3895 if (!var8) {
3896 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2939);
3897 exit(1);
3898 }
3899 var_listnode4 = var_nodearraylist2;
3900 /* <var_listnode4:nullable Object> isa Array[Object] */
3901 cltype10 = type_array__Arraykernel__Object.color;
3902 idtype11 = type_array__Arraykernel__Object.id;
3903 if(var_listnode4 == NULL) {
3904 var9 = 0;
3905 } else {
3906 if(cltype10 >= var_listnode4->type->table_size) {
3907 var9 = 0;
3908 } else {
3909 var9 = var_listnode4->type->type_table[cltype10] == idtype11;
3910 }
3911 }
3912 if (!var9) {
3913 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2941);
3914 exit(1);
3915 }
3916 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction29>*/;
3917 var_listnode5 = var12;
3918 var_listnode6 = var_nodearraylist3;
3919 /* <var_listnode6:nullable Object> isa Array[Object] */
3920 cltype14 = type_array__Arraykernel__Object.color;
3921 idtype15 = type_array__Arraykernel__Object.id;
3922 if(var_listnode6 == NULL) {
3923 var13 = 0;
3924 } else {
3925 if(cltype14 >= var_listnode6->type->table_size) {
3926 var13 = 0;
3927 } else {
3928 var13 = var_listnode6->type->type_table[cltype14] == idtype15;
3929 }
3930 }
3931 if (!var13) {
3932 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2944);
3933 exit(1);
3934 }
3935 var16 = NEW_array__Array(&type_array__Arraykernel__Object);
3936 ((void (*)(val*))(var16->class->vft[COLOR_array__Array__init]))(var16) /* init on <var16:Array[Object]>*/;
3937 CHECK_NEW_array__Array(var16);
3938 var_listnode9 = var16;
3939 var_listnode8 = var_nodearraylist4;
3940 /* <var_listnode8:nullable Object> isa Array[Object] */
3941 cltype18 = type_array__Arraykernel__Object.color;
3942 idtype19 = type_array__Arraykernel__Object.id;
3943 if(var_listnode8 == NULL) {
3944 var17 = 0;
3945 } else {
3946 if(cltype18 >= var_listnode8->type->table_size) {
3947 var17 = 0;
3948 } else {
3949 var17 = var_listnode8->type->type_table[cltype18] == idtype19;
3950 }
3951 }
3952 if (!var17) {
3953 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2947);
3954 exit(1);
3955 }
3956 var20 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction29>*/;
3957 var_listnode9 = var20;
3958 var21 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
3959 ((void (*)(val*, val*))(var21->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var21, var_listnode9) /* init_atopclassdef on <var21:ATopClassdef>*/;
3960 CHECK_NEW_parser_nodes__ATopClassdef(var21);
3961 var_pclassdefnode7 = var21;
3962 var22 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode6) /* concat on <self:ReduceAction29>*/;
3963 var_listnode10 = var22;
3964 var23 = NULL;
3965 if (var_pclassdefnode7 == NULL) {
3966 var24 = 0; /* is null */
3967 } else {
3968 var24 = 1; /* arg is null and recv is not */
3969 }
3970 if (var24){
3971 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode7) /* add on <var_listnode10:Array[Object]>*/;
3972 } else {
3973 }
3974 var25 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
3975 ((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>*/;
3976 CHECK_NEW_parser_nodes__AModule(var25);
3977 var_pmodulenode1 = var25;
3978 var_node_list = var_pmodulenode1;
3979 var26 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction29> */
3980 var27 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var26) /* go_to on <var_p:Parser>*/;
3981 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var27, var_node_list) /* push on <var_p:Parser>*/;
3982 RET_LABEL:;
3983 }
3984 /* method parser#ReduceAction29#action for (self: Object, Parser) */
3985 void VIRTUAL_parser__ReduceAction29__action(val* self, val* p0) {
3986 parser__ReduceAction29__action(self, p0);
3987 RET_LABEL:;
3988 }
3989 /* method parser#ReduceAction30#action for (self: ReduceAction30, Parser) */
3990 void parser__ReduceAction30__action(val* self, val* p0) {
3991 val* var_p /* var p: Parser */;
3992 val* var /* : null */;
3993 val* var_node_list /* var node_list: nullable Object */;
3994 val* var1 /* : nullable Object */;
3995 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3996 val* var2 /* : nullable Object */;
3997 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3998 val* var3 /* : nullable Object */;
3999 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4000 val* var4 /* : nullable Object */;
4001 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4002 val* var5 /* : Array[Object] */;
4003 val* var_listnode4 /* var listnode4: Array[Object] */;
4004 val* var6 /* : Array[Object] */;
4005 val* var_listnode6 /* var listnode6: Array[Object] */;
4006 val* var7 /* : Array[Object] */;
4007 val* var_listnode11 /* var listnode11: Array[Object] */;
4008 val* var_listnode3 /* var listnode3: nullable Object */;
4009 short int var8 /* : Bool */;
4010 int cltype;
4011 int idtype;
4012 val* var9 /* : Array[Object] */;
4013 val* var_listnode5 /* var listnode5: nullable Object */;
4014 short int var10 /* : Bool */;
4015 int cltype11;
4016 int idtype12;
4017 val* var13 /* : Array[Object] */;
4018 val* var_listnode7 /* var listnode7: nullable Object */;
4019 short int var14 /* : Bool */;
4020 int cltype15;
4021 int idtype16;
4022 val* var17 /* : Array[Object] */;
4023 val* var_listnode10 /* var listnode10: Array[Object] */;
4024 val* var_listnode9 /* var listnode9: nullable Object */;
4025 short int var18 /* : Bool */;
4026 int cltype19;
4027 int idtype20;
4028 val* var21 /* : Array[Object] */;
4029 val* var22 /* : ATopClassdef */;
4030 val* var_pclassdefnode8 /* var pclassdefnode8: nullable ATopClassdef */;
4031 val* var23 /* : Array[Object] */;
4032 val* var24 /* : null */;
4033 short int var25 /* : Bool */;
4034 val* var26 /* : AModule */;
4035 val* var27 /* : null */;
4036 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
4037 long var28 /* : Int */;
4038 long var29 /* : Int */;
4039 var_p = p0;
4040 var = NULL;
4041 var_node_list = var;
4042 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4043 var_nodearraylist4 = var1;
4044 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4045 var_nodearraylist3 = var2;
4046 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4047 var_nodearraylist2 = var3;
4048 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4049 var_nodearraylist1 = var4;
4050 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
4051 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
4052 CHECK_NEW_array__Array(var5);
4053 var_listnode4 = var5;
4054 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
4055 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
4056 CHECK_NEW_array__Array(var6);
4057 var_listnode6 = var6;
4058 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
4059 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
4060 CHECK_NEW_array__Array(var7);
4061 var_listnode11 = var7;
4062 var_listnode3 = var_nodearraylist1;
4063 /* <var_listnode3:nullable Object> isa Array[Object] */
4064 cltype = type_array__Arraykernel__Object.color;
4065 idtype = type_array__Arraykernel__Object.id;
4066 if(var_listnode3 == NULL) {
4067 var8 = 0;
4068 } else {
4069 if(cltype >= var_listnode3->type->table_size) {
4070 var8 = 0;
4071 } else {
4072 var8 = var_listnode3->type->type_table[cltype] == idtype;
4073 }
4074 }
4075 if (!var8) {
4076 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2979);
4077 exit(1);
4078 }
4079 var9 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction30>*/;
4080 var_listnode4 = var9;
4081 var_listnode5 = var_nodearraylist2;
4082 /* <var_listnode5:nullable Object> isa Array[Object] */
4083 cltype11 = type_array__Arraykernel__Object.color;
4084 idtype12 = type_array__Arraykernel__Object.id;
4085 if(var_listnode5 == NULL) {
4086 var10 = 0;
4087 } else {
4088 if(cltype11 >= var_listnode5->type->table_size) {
4089 var10 = 0;
4090 } else {
4091 var10 = var_listnode5->type->type_table[cltype11] == idtype12;
4092 }
4093 }
4094 if (!var10) {
4095 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2982);
4096 exit(1);
4097 }
4098 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction30>*/;
4099 var_listnode6 = var13;
4100 var_listnode7 = var_nodearraylist3;
4101 /* <var_listnode7:nullable Object> isa Array[Object] */
4102 cltype15 = type_array__Arraykernel__Object.color;
4103 idtype16 = type_array__Arraykernel__Object.id;
4104 if(var_listnode7 == NULL) {
4105 var14 = 0;
4106 } else {
4107 if(cltype15 >= var_listnode7->type->table_size) {
4108 var14 = 0;
4109 } else {
4110 var14 = var_listnode7->type->type_table[cltype15] == idtype16;
4111 }
4112 }
4113 if (!var14) {
4114 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2985);
4115 exit(1);
4116 }
4117 var17 = NEW_array__Array(&type_array__Arraykernel__Object);
4118 ((void (*)(val*))(var17->class->vft[COLOR_array__Array__init]))(var17) /* init on <var17:Array[Object]>*/;
4119 CHECK_NEW_array__Array(var17);
4120 var_listnode10 = var17;
4121 var_listnode9 = var_nodearraylist4;
4122 /* <var_listnode9:nullable Object> isa Array[Object] */
4123 cltype19 = type_array__Arraykernel__Object.color;
4124 idtype20 = type_array__Arraykernel__Object.id;
4125 if(var_listnode9 == NULL) {
4126 var18 = 0;
4127 } else {
4128 if(cltype19 >= var_listnode9->type->table_size) {
4129 var18 = 0;
4130 } else {
4131 var18 = var_listnode9->type->type_table[cltype19] == idtype20;
4132 }
4133 }
4134 if (!var18) {
4135 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 2988);
4136 exit(1);
4137 }
4138 var21 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode9) /* concat on <self:ReduceAction30>*/;
4139 var_listnode10 = var21;
4140 var22 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
4141 ((void (*)(val*, val*))(var22->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var22, var_listnode10) /* init_atopclassdef on <var22:ATopClassdef>*/;
4142 CHECK_NEW_parser_nodes__ATopClassdef(var22);
4143 var_pclassdefnode8 = var22;
4144 var23 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode11, var_listnode7) /* concat on <self:ReduceAction30>*/;
4145 var_listnode11 = var23;
4146 var24 = NULL;
4147 if (var_pclassdefnode8 == NULL) {
4148 var25 = 0; /* is null */
4149 } else {
4150 var25 = 1; /* arg is null and recv is not */
4151 }
4152 if (var25){
4153 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode8) /* add on <var_listnode11:Array[Object]>*/;
4154 } else {
4155 }
4156 var26 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
4157 var27 = NULL;
4158 ((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>*/;
4159 CHECK_NEW_parser_nodes__AModule(var26);
4160 var_pmodulenode1 = var26;
4161 var_node_list = var_pmodulenode1;
4162 var28 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction30> */
4163 var29 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var28) /* go_to on <var_p:Parser>*/;
4164 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var29, var_node_list) /* push on <var_p:Parser>*/;
4165 RET_LABEL:;
4166 }
4167 /* method parser#ReduceAction30#action for (self: Object, Parser) */
4168 void VIRTUAL_parser__ReduceAction30__action(val* self, val* p0) {
4169 parser__ReduceAction30__action(self, p0);
4170 RET_LABEL:;
4171 }
4172 /* method parser#ReduceAction31#action for (self: ReduceAction31, Parser) */
4173 void parser__ReduceAction31__action(val* self, val* p0) {
4174 val* var_p /* var p: Parser */;
4175 val* var /* : null */;
4176 val* var_node_list /* var node_list: nullable Object */;
4177 val* var1 /* : nullable Object */;
4178 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4179 val* var2 /* : nullable Object */;
4180 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4181 val* var3 /* : nullable Object */;
4182 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4183 val* var4 /* : nullable Object */;
4184 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4185 val* var5 /* : nullable Object */;
4186 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4187 val* var6 /* : Array[Object] */;
4188 val* var_listnode4 /* var listnode4: Array[Object] */;
4189 val* var7 /* : Array[Object] */;
4190 val* var_listnode6 /* var listnode6: Array[Object] */;
4191 val* var8 /* : Array[Object] */;
4192 val* var_listnode11 /* var listnode11: Array[Object] */;
4193 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
4194 short int var9 /* : Bool */;
4195 int cltype;
4196 int idtype;
4197 val* var_listnode3 /* var listnode3: nullable Object */;
4198 short int var10 /* : Bool */;
4199 int cltype11;
4200 int idtype12;
4201 val* var13 /* : Array[Object] */;
4202 val* var_listnode5 /* var listnode5: nullable Object */;
4203 short int var14 /* : Bool */;
4204 int cltype15;
4205 int idtype16;
4206 val* var17 /* : Array[Object] */;
4207 val* var_listnode7 /* var listnode7: nullable Object */;
4208 short int var18 /* : Bool */;
4209 int cltype19;
4210 int idtype20;
4211 val* var21 /* : Array[Object] */;
4212 val* var_listnode10 /* var listnode10: Array[Object] */;
4213 val* var_listnode9 /* var listnode9: nullable Object */;
4214 short int var22 /* : Bool */;
4215 int cltype23;
4216 int idtype24;
4217 val* var25 /* : Array[Object] */;
4218 val* var26 /* : ATopClassdef */;
4219 val* var_pclassdefnode8 /* var pclassdefnode8: nullable ATopClassdef */;
4220 val* var27 /* : Array[Object] */;
4221 val* var28 /* : null */;
4222 short int var29 /* : Bool */;
4223 val* var30 /* : AModule */;
4224 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
4225 long var31 /* : Int */;
4226 long var32 /* : Int */;
4227 var_p = p0;
4228 var = NULL;
4229 var_node_list = var;
4230 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4231 var_nodearraylist5 = var1;
4232 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4233 var_nodearraylist4 = var2;
4234 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4235 var_nodearraylist3 = var3;
4236 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4237 var_nodearraylist2 = var4;
4238 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4239 var_nodearraylist1 = var5;
4240 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
4241 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
4242 CHECK_NEW_array__Array(var6);
4243 var_listnode4 = var6;
4244 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
4245 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
4246 CHECK_NEW_array__Array(var7);
4247 var_listnode6 = var7;
4248 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
4249 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
4250 CHECK_NEW_array__Array(var8);
4251 var_listnode11 = var8;
4252 var_pmoduledeclnode2 = var_nodearraylist1;
4253 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
4254 cltype = type_nullable_parser_nodes__AModuledecl.color;
4255 idtype = type_nullable_parser_nodes__AModuledecl.id;
4256 if(var_pmoduledeclnode2 == NULL) {
4257 var9 = 1;
4258 } else {
4259 if(cltype >= var_pmoduledeclnode2->type->table_size) {
4260 var9 = 0;
4261 } else {
4262 var9 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
4263 }
4264 }
4265 if (!var9) {
4266 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3021);
4267 exit(1);
4268 }
4269 var_listnode3 = var_nodearraylist2;
4270 /* <var_listnode3:nullable Object> isa Array[Object] */
4271 cltype11 = type_array__Arraykernel__Object.color;
4272 idtype12 = type_array__Arraykernel__Object.id;
4273 if(var_listnode3 == NULL) {
4274 var10 = 0;
4275 } else {
4276 if(cltype11 >= var_listnode3->type->table_size) {
4277 var10 = 0;
4278 } else {
4279 var10 = var_listnode3->type->type_table[cltype11] == idtype12;
4280 }
4281 }
4282 if (!var10) {
4283 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3023);
4284 exit(1);
4285 }
4286 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction31>*/;
4287 var_listnode4 = var13;
4288 var_listnode5 = var_nodearraylist3;
4289 /* <var_listnode5:nullable Object> isa Array[Object] */
4290 cltype15 = type_array__Arraykernel__Object.color;
4291 idtype16 = type_array__Arraykernel__Object.id;
4292 if(var_listnode5 == NULL) {
4293 var14 = 0;
4294 } else {
4295 if(cltype15 >= var_listnode5->type->table_size) {
4296 var14 = 0;
4297 } else {
4298 var14 = var_listnode5->type->type_table[cltype15] == idtype16;
4299 }
4300 }
4301 if (!var14) {
4302 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3026);
4303 exit(1);
4304 }
4305 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction31>*/;
4306 var_listnode6 = var17;
4307 var_listnode7 = var_nodearraylist4;
4308 /* <var_listnode7:nullable Object> isa Array[Object] */
4309 cltype19 = type_array__Arraykernel__Object.color;
4310 idtype20 = type_array__Arraykernel__Object.id;
4311 if(var_listnode7 == NULL) {
4312 var18 = 0;
4313 } else {
4314 if(cltype19 >= var_listnode7->type->table_size) {
4315 var18 = 0;
4316 } else {
4317 var18 = var_listnode7->type->type_table[cltype19] == idtype20;
4318 }
4319 }
4320 if (!var18) {
4321 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3029);
4322 exit(1);
4323 }
4324 var21 = NEW_array__Array(&type_array__Arraykernel__Object);
4325 ((void (*)(val*))(var21->class->vft[COLOR_array__Array__init]))(var21) /* init on <var21:Array[Object]>*/;
4326 CHECK_NEW_array__Array(var21);
4327 var_listnode10 = var21;
4328 var_listnode9 = var_nodearraylist5;
4329 /* <var_listnode9:nullable Object> isa Array[Object] */
4330 cltype23 = type_array__Arraykernel__Object.color;
4331 idtype24 = type_array__Arraykernel__Object.id;
4332 if(var_listnode9 == NULL) {
4333 var22 = 0;
4334 } else {
4335 if(cltype23 >= var_listnode9->type->table_size) {
4336 var22 = 0;
4337 } else {
4338 var22 = var_listnode9->type->type_table[cltype23] == idtype24;
4339 }
4340 }
4341 if (!var22) {
4342 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3032);
4343 exit(1);
4344 }
4345 var25 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode9) /* concat on <self:ReduceAction31>*/;
4346 var_listnode10 = var25;
4347 var26 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
4348 ((void (*)(val*, val*))(var26->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var26, var_listnode10) /* init_atopclassdef on <var26:ATopClassdef>*/;
4349 CHECK_NEW_parser_nodes__ATopClassdef(var26);
4350 var_pclassdefnode8 = var26;
4351 var27 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode11, var_listnode7) /* concat on <self:ReduceAction31>*/;
4352 var_listnode11 = var27;
4353 var28 = NULL;
4354 if (var_pclassdefnode8 == NULL) {
4355 var29 = 0; /* is null */
4356 } else {
4357 var29 = 1; /* arg is null and recv is not */
4358 }
4359 if (var29){
4360 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode8) /* add on <var_listnode11:Array[Object]>*/;
4361 } else {
4362 }
4363 var30 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
4364 ((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>*/;
4365 CHECK_NEW_parser_nodes__AModule(var30);
4366 var_pmodulenode1 = var30;
4367 var_node_list = var_pmodulenode1;
4368 var31 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction31> */
4369 var32 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var31) /* go_to on <var_p:Parser>*/;
4370 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var32, var_node_list) /* push on <var_p:Parser>*/;
4371 RET_LABEL:;
4372 }
4373 /* method parser#ReduceAction31#action for (self: Object, Parser) */
4374 void VIRTUAL_parser__ReduceAction31__action(val* self, val* p0) {
4375 parser__ReduceAction31__action(self, p0);
4376 RET_LABEL:;
4377 }
4378 /* method parser#ReduceAction32#action for (self: ReduceAction32, Parser) */
4379 void parser__ReduceAction32__action(val* self, val* p0) {
4380 val* var_p /* var p: Parser */;
4381 val* var /* : null */;
4382 val* var_node_list /* var node_list: nullable Object */;
4383 val* var1 /* : nullable Object */;
4384 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4385 val* var2 /* : Array[Object] */;
4386 val* var_listnode3 /* var listnode3: Array[Object] */;
4387 val* var3 /* : Array[Object] */;
4388 val* var_listnode4 /* var listnode4: Array[Object] */;
4389 val* var4 /* : Array[Object] */;
4390 val* var_listnode6 /* var listnode6: Array[Object] */;
4391 val* var_pclassdefnode5 /* var pclassdefnode5: nullable Object */;
4392 short int var5 /* : Bool */;
4393 int cltype;
4394 int idtype;
4395 val* var6 /* : null */;
4396 short int var7 /* : Bool */;
4397 val* var8 /* : AModule */;
4398 val* var9 /* : null */;
4399 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
4400 long var10 /* : Int */;
4401 long var11 /* : Int */;
4402 var_p = p0;
4403 var = NULL;
4404 var_node_list = var;
4405 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4406 var_nodearraylist1 = var1;
4407 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
4408 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
4409 CHECK_NEW_array__Array(var2);
4410 var_listnode3 = var2;
4411 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
4412 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
4413 CHECK_NEW_array__Array(var3);
4414 var_listnode4 = var3;
4415 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
4416 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
4417 CHECK_NEW_array__Array(var4);
4418 var_listnode6 = var4;
4419 var_pclassdefnode5 = var_nodearraylist1;
4420 /* <var_pclassdefnode5:nullable Object> isa nullable AClassdef */
4421 cltype = type_nullable_parser_nodes__AClassdef.color;
4422 idtype = type_nullable_parser_nodes__AClassdef.id;
4423 if(var_pclassdefnode5 == NULL) {
4424 var5 = 1;
4425 } else {
4426 if(cltype >= var_pclassdefnode5->type->table_size) {
4427 var5 = 0;
4428 } else {
4429 var5 = var_pclassdefnode5->type->type_table[cltype] == idtype;
4430 }
4431 }
4432 if (!var5) {
4433 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3061);
4434 exit(1);
4435 }
4436 var6 = NULL;
4437 if (var_pclassdefnode5 == NULL) {
4438 var7 = 0; /* is null */
4439 } else {
4440 var7 = 1; /* arg is null and recv is not */
4441 }
4442 if (var7){
4443 ((void (*)(val*, val*))(var_listnode6->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode6, var_pclassdefnode5) /* add on <var_listnode6:Array[Object]>*/;
4444 } else {
4445 }
4446 var8 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
4447 var9 = NULL;
4448 ((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>*/;
4449 CHECK_NEW_parser_nodes__AModule(var8);
4450 var_pmodulenode1 = var8;
4451 var_node_list = var_pmodulenode1;
4452 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction32> */
4453 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
4454 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
4455 RET_LABEL:;
4456 }
4457 /* method parser#ReduceAction32#action for (self: Object, Parser) */
4458 void VIRTUAL_parser__ReduceAction32__action(val* self, val* p0) {
4459 parser__ReduceAction32__action(self, p0);
4460 RET_LABEL:;
4461 }
4462 /* method parser#ReduceAction33#action for (self: ReduceAction33, Parser) */
4463 void parser__ReduceAction33__action(val* self, val* p0) {
4464 val* var_p /* var p: Parser */;
4465 val* var /* : null */;
4466 val* var_node_list /* var node_list: nullable Object */;
4467 val* var1 /* : nullable Object */;
4468 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4469 val* var2 /* : nullable Object */;
4470 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4471 val* var3 /* : Array[Object] */;
4472 val* var_listnode3 /* var listnode3: Array[Object] */;
4473 val* var4 /* : Array[Object] */;
4474 val* var_listnode4 /* var listnode4: Array[Object] */;
4475 val* var5 /* : Array[Object] */;
4476 val* var_listnode6 /* var listnode6: Array[Object] */;
4477 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
4478 short int var6 /* : Bool */;
4479 int cltype;
4480 int idtype;
4481 val* var_pclassdefnode5 /* var pclassdefnode5: nullable Object */;
4482 short int var7 /* : Bool */;
4483 int cltype8;
4484 int idtype9;
4485 val* var10 /* : null */;
4486 short int var11 /* : Bool */;
4487 val* var12 /* : AModule */;
4488 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
4489 long var13 /* : Int */;
4490 long var14 /* : Int */;
4491 var_p = p0;
4492 var = NULL;
4493 var_node_list = var;
4494 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4495 var_nodearraylist2 = var1;
4496 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4497 var_nodearraylist1 = var2;
4498 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
4499 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
4500 CHECK_NEW_array__Array(var3);
4501 var_listnode3 = var3;
4502 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
4503 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
4504 CHECK_NEW_array__Array(var4);
4505 var_listnode4 = var4;
4506 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
4507 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
4508 CHECK_NEW_array__Array(var5);
4509 var_listnode6 = var5;
4510 var_pmoduledeclnode2 = var_nodearraylist1;
4511 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
4512 cltype = type_nullable_parser_nodes__AModuledecl.color;
4513 idtype = type_nullable_parser_nodes__AModuledecl.id;
4514 if(var_pmoduledeclnode2 == NULL) {
4515 var6 = 1;
4516 } else {
4517 if(cltype >= var_pmoduledeclnode2->type->table_size) {
4518 var6 = 0;
4519 } else {
4520 var6 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
4521 }
4522 }
4523 if (!var6) {
4524 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3086);
4525 exit(1);
4526 }
4527 var_pclassdefnode5 = var_nodearraylist2;
4528 /* <var_pclassdefnode5:nullable Object> isa nullable AClassdef */
4529 cltype8 = type_nullable_parser_nodes__AClassdef.color;
4530 idtype9 = type_nullable_parser_nodes__AClassdef.id;
4531 if(var_pclassdefnode5 == NULL) {
4532 var7 = 1;
4533 } else {
4534 if(cltype8 >= var_pclassdefnode5->type->table_size) {
4535 var7 = 0;
4536 } else {
4537 var7 = var_pclassdefnode5->type->type_table[cltype8] == idtype9;
4538 }
4539 }
4540 if (!var7) {
4541 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3088);
4542 exit(1);
4543 }
4544 var10 = NULL;
4545 if (var_pclassdefnode5 == NULL) {
4546 var11 = 0; /* is null */
4547 } else {
4548 var11 = 1; /* arg is null and recv is not */
4549 }
4550 if (var11){
4551 ((void (*)(val*, val*))(var_listnode6->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode6, var_pclassdefnode5) /* add on <var_listnode6:Array[Object]>*/;
4552 } else {
4553 }
4554 var12 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
4555 ((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>*/;
4556 CHECK_NEW_parser_nodes__AModule(var12);
4557 var_pmodulenode1 = var12;
4558 var_node_list = var_pmodulenode1;
4559 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction33> */
4560 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
4561 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
4562 RET_LABEL:;
4563 }
4564 /* method parser#ReduceAction33#action for (self: Object, Parser) */
4565 void VIRTUAL_parser__ReduceAction33__action(val* self, val* p0) {
4566 parser__ReduceAction33__action(self, p0);
4567 RET_LABEL:;
4568 }
4569 /* method parser#ReduceAction34#action for (self: ReduceAction34, Parser) */
4570 void parser__ReduceAction34__action(val* self, val* p0) {
4571 val* var_p /* var p: Parser */;
4572 val* var /* : null */;
4573 val* var_node_list /* var node_list: nullable Object */;
4574 val* var1 /* : nullable Object */;
4575 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4576 val* var2 /* : nullable Object */;
4577 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4578 val* var3 /* : Array[Object] */;
4579 val* var_listnode4 /* var listnode4: Array[Object] */;
4580 val* var4 /* : Array[Object] */;
4581 val* var_listnode5 /* var listnode5: Array[Object] */;
4582 val* var5 /* : Array[Object] */;
4583 val* var_listnode7 /* var listnode7: Array[Object] */;
4584 val* var_listnode3 /* var listnode3: nullable Object */;
4585 short int var6 /* : Bool */;
4586 int cltype;
4587 int idtype;
4588 val* var7 /* : Array[Object] */;
4589 val* var_pclassdefnode6 /* var pclassdefnode6: nullable Object */;
4590 short int var8 /* : Bool */;
4591 int cltype9;
4592 int idtype10;
4593 val* var11 /* : null */;
4594 short int var12 /* : Bool */;
4595 val* var13 /* : AModule */;
4596 val* var14 /* : null */;
4597 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
4598 long var15 /* : Int */;
4599 long var16 /* : Int */;
4600 var_p = p0;
4601 var = NULL;
4602 var_node_list = var;
4603 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4604 var_nodearraylist2 = var1;
4605 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4606 var_nodearraylist1 = var2;
4607 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
4608 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
4609 CHECK_NEW_array__Array(var3);
4610 var_listnode4 = var3;
4611 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
4612 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
4613 CHECK_NEW_array__Array(var4);
4614 var_listnode5 = var4;
4615 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
4616 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
4617 CHECK_NEW_array__Array(var5);
4618 var_listnode7 = var5;
4619 var_listnode3 = var_nodearraylist1;
4620 /* <var_listnode3:nullable Object> isa Array[Object] */
4621 cltype = type_array__Arraykernel__Object.color;
4622 idtype = type_array__Arraykernel__Object.id;
4623 if(var_listnode3 == NULL) {
4624 var6 = 0;
4625 } else {
4626 if(cltype >= var_listnode3->type->table_size) {
4627 var6 = 0;
4628 } else {
4629 var6 = var_listnode3->type->type_table[cltype] == idtype;
4630 }
4631 }
4632 if (!var6) {
4633 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3113);
4634 exit(1);
4635 }
4636 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction34>*/;
4637 var_listnode4 = var7;
4638 var_pclassdefnode6 = var_nodearraylist2;
4639 /* <var_pclassdefnode6:nullable Object> isa nullable AClassdef */
4640 cltype9 = type_nullable_parser_nodes__AClassdef.color;
4641 idtype10 = type_nullable_parser_nodes__AClassdef.id;
4642 if(var_pclassdefnode6 == NULL) {
4643 var8 = 1;
4644 } else {
4645 if(cltype9 >= var_pclassdefnode6->type->table_size) {
4646 var8 = 0;
4647 } else {
4648 var8 = var_pclassdefnode6->type->type_table[cltype9] == idtype10;
4649 }
4650 }
4651 if (!var8) {
4652 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3116);
4653 exit(1);
4654 }
4655 var11 = NULL;
4656 if (var_pclassdefnode6 == NULL) {
4657 var12 = 0; /* is null */
4658 } else {
4659 var12 = 1; /* arg is null and recv is not */
4660 }
4661 if (var12){
4662 ((void (*)(val*, val*))(var_listnode7->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode7, var_pclassdefnode6) /* add on <var_listnode7:Array[Object]>*/;
4663 } else {
4664 }
4665 var13 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
4666 var14 = NULL;
4667 ((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>*/;
4668 CHECK_NEW_parser_nodes__AModule(var13);
4669 var_pmodulenode1 = var13;
4670 var_node_list = var_pmodulenode1;
4671 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction34> */
4672 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
4673 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
4674 RET_LABEL:;
4675 }
4676 /* method parser#ReduceAction34#action for (self: Object, Parser) */
4677 void VIRTUAL_parser__ReduceAction34__action(val* self, val* p0) {
4678 parser__ReduceAction34__action(self, p0);
4679 RET_LABEL:;
4680 }
4681 /* method parser#ReduceAction35#action for (self: ReduceAction35, Parser) */
4682 void parser__ReduceAction35__action(val* self, val* p0) {
4683 val* var_p /* var p: Parser */;
4684 val* var /* : null */;
4685 val* var_node_list /* var node_list: nullable Object */;
4686 val* var1 /* : nullable Object */;
4687 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4688 val* var2 /* : nullable Object */;
4689 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4690 val* var3 /* : nullable Object */;
4691 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4692 val* var4 /* : Array[Object] */;
4693 val* var_listnode4 /* var listnode4: Array[Object] */;
4694 val* var5 /* : Array[Object] */;
4695 val* var_listnode5 /* var listnode5: Array[Object] */;
4696 val* var6 /* : Array[Object] */;
4697 val* var_listnode7 /* var listnode7: Array[Object] */;
4698 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
4699 short int var7 /* : Bool */;
4700 int cltype;
4701 int idtype;
4702 val* var_listnode3 /* var listnode3: nullable Object */;
4703 short int var8 /* : Bool */;
4704 int cltype9;
4705 int idtype10;
4706 val* var11 /* : Array[Object] */;
4707 val* var_pclassdefnode6 /* var pclassdefnode6: nullable Object */;
4708 short int var12 /* : Bool */;
4709 int cltype13;
4710 int idtype14;
4711 val* var15 /* : null */;
4712 short int var16 /* : Bool */;
4713 val* var17 /* : AModule */;
4714 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
4715 long var18 /* : Int */;
4716 long var19 /* : Int */;
4717 var_p = p0;
4718 var = NULL;
4719 var_node_list = var;
4720 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4721 var_nodearraylist3 = var1;
4722 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4723 var_nodearraylist2 = var2;
4724 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4725 var_nodearraylist1 = var3;
4726 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
4727 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
4728 CHECK_NEW_array__Array(var4);
4729 var_listnode4 = var4;
4730 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
4731 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
4732 CHECK_NEW_array__Array(var5);
4733 var_listnode5 = var5;
4734 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
4735 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
4736 CHECK_NEW_array__Array(var6);
4737 var_listnode7 = var6;
4738 var_pmoduledeclnode2 = var_nodearraylist1;
4739 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
4740 cltype = type_nullable_parser_nodes__AModuledecl.color;
4741 idtype = type_nullable_parser_nodes__AModuledecl.id;
4742 if(var_pmoduledeclnode2 == NULL) {
4743 var7 = 1;
4744 } else {
4745 if(cltype >= var_pmoduledeclnode2->type->table_size) {
4746 var7 = 0;
4747 } else {
4748 var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
4749 }
4750 }
4751 if (!var7) {
4752 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3142);
4753 exit(1);
4754 }
4755 var_listnode3 = var_nodearraylist2;
4756 /* <var_listnode3:nullable Object> isa Array[Object] */
4757 cltype9 = type_array__Arraykernel__Object.color;
4758 idtype10 = type_array__Arraykernel__Object.id;
4759 if(var_listnode3 == NULL) {
4760 var8 = 0;
4761 } else {
4762 if(cltype9 >= var_listnode3->type->table_size) {
4763 var8 = 0;
4764 } else {
4765 var8 = var_listnode3->type->type_table[cltype9] == idtype10;
4766 }
4767 }
4768 if (!var8) {
4769 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3144);
4770 exit(1);
4771 }
4772 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction35>*/;
4773 var_listnode4 = var11;
4774 var_pclassdefnode6 = var_nodearraylist3;
4775 /* <var_pclassdefnode6:nullable Object> isa nullable AClassdef */
4776 cltype13 = type_nullable_parser_nodes__AClassdef.color;
4777 idtype14 = type_nullable_parser_nodes__AClassdef.id;
4778 if(var_pclassdefnode6 == NULL) {
4779 var12 = 1;
4780 } else {
4781 if(cltype13 >= var_pclassdefnode6->type->table_size) {
4782 var12 = 0;
4783 } else {
4784 var12 = var_pclassdefnode6->type->type_table[cltype13] == idtype14;
4785 }
4786 }
4787 if (!var12) {
4788 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3147);
4789 exit(1);
4790 }
4791 var15 = NULL;
4792 if (var_pclassdefnode6 == NULL) {
4793 var16 = 0; /* is null */
4794 } else {
4795 var16 = 1; /* arg is null and recv is not */
4796 }
4797 if (var16){
4798 ((void (*)(val*, val*))(var_listnode7->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode7, var_pclassdefnode6) /* add on <var_listnode7:Array[Object]>*/;
4799 } else {
4800 }
4801 var17 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
4802 ((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>*/;
4803 CHECK_NEW_parser_nodes__AModule(var17);
4804 var_pmodulenode1 = var17;
4805 var_node_list = var_pmodulenode1;
4806 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction35> */
4807 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
4808 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
4809 RET_LABEL:;
4810 }
4811 /* method parser#ReduceAction35#action for (self: Object, Parser) */
4812 void VIRTUAL_parser__ReduceAction35__action(val* self, val* p0) {
4813 parser__ReduceAction35__action(self, p0);
4814 RET_LABEL:;
4815 }
4816 /* method parser#ReduceAction36#action for (self: ReduceAction36, Parser) */
4817 void parser__ReduceAction36__action(val* self, val* p0) {
4818 val* var_p /* var p: Parser */;
4819 val* var /* : null */;
4820 val* var_node_list /* var node_list: nullable Object */;
4821 val* var1 /* : nullable Object */;
4822 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4823 val* var2 /* : nullable Object */;
4824 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4825 val* var3 /* : Array[Object] */;
4826 val* var_listnode3 /* var listnode3: Array[Object] */;
4827 val* var4 /* : Array[Object] */;
4828 val* var_listnode5 /* var listnode5: Array[Object] */;
4829 val* var5 /* : Array[Object] */;
4830 val* var_listnode7 /* var listnode7: Array[Object] */;
4831 val* var_listnode4 /* var listnode4: nullable Object */;
4832 short int var6 /* : Bool */;
4833 int cltype;
4834 int idtype;
4835 val* var7 /* : Array[Object] */;
4836 val* var_pclassdefnode6 /* var pclassdefnode6: nullable Object */;
4837 short int var8 /* : Bool */;
4838 int cltype9;
4839 int idtype10;
4840 val* var11 /* : null */;
4841 short int var12 /* : Bool */;
4842 val* var13 /* : AModule */;
4843 val* var14 /* : null */;
4844 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
4845 long var15 /* : Int */;
4846 long var16 /* : Int */;
4847 var_p = p0;
4848 var = NULL;
4849 var_node_list = var;
4850 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4851 var_nodearraylist2 = var1;
4852 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4853 var_nodearraylist1 = var2;
4854 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
4855 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
4856 CHECK_NEW_array__Array(var3);
4857 var_listnode3 = var3;
4858 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
4859 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
4860 CHECK_NEW_array__Array(var4);
4861 var_listnode5 = var4;
4862 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
4863 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
4864 CHECK_NEW_array__Array(var5);
4865 var_listnode7 = var5;
4866 var_listnode4 = var_nodearraylist1;
4867 /* <var_listnode4:nullable Object> isa Array[Object] */
4868 cltype = type_array__Arraykernel__Object.color;
4869 idtype = type_array__Arraykernel__Object.id;
4870 if(var_listnode4 == NULL) {
4871 var6 = 0;
4872 } else {
4873 if(cltype >= var_listnode4->type->table_size) {
4874 var6 = 0;
4875 } else {
4876 var6 = var_listnode4->type->type_table[cltype] == idtype;
4877 }
4878 }
4879 if (!var6) {
4880 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3172);
4881 exit(1);
4882 }
4883 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction36>*/;
4884 var_listnode5 = var7;
4885 var_pclassdefnode6 = var_nodearraylist2;
4886 /* <var_pclassdefnode6:nullable Object> isa nullable AClassdef */
4887 cltype9 = type_nullable_parser_nodes__AClassdef.color;
4888 idtype10 = type_nullable_parser_nodes__AClassdef.id;
4889 if(var_pclassdefnode6 == NULL) {
4890 var8 = 1;
4891 } else {
4892 if(cltype9 >= var_pclassdefnode6->type->table_size) {
4893 var8 = 0;
4894 } else {
4895 var8 = var_pclassdefnode6->type->type_table[cltype9] == idtype10;
4896 }
4897 }
4898 if (!var8) {
4899 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3175);
4900 exit(1);
4901 }
4902 var11 = NULL;
4903 if (var_pclassdefnode6 == NULL) {
4904 var12 = 0; /* is null */
4905 } else {
4906 var12 = 1; /* arg is null and recv is not */
4907 }
4908 if (var12){
4909 ((void (*)(val*, val*))(var_listnode7->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode7, var_pclassdefnode6) /* add on <var_listnode7:Array[Object]>*/;
4910 } else {
4911 }
4912 var13 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
4913 var14 = NULL;
4914 ((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>*/;
4915 CHECK_NEW_parser_nodes__AModule(var13);
4916 var_pmodulenode1 = var13;
4917 var_node_list = var_pmodulenode1;
4918 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction36> */
4919 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
4920 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
4921 RET_LABEL:;
4922 }
4923 /* method parser#ReduceAction36#action for (self: Object, Parser) */
4924 void VIRTUAL_parser__ReduceAction36__action(val* self, val* p0) {
4925 parser__ReduceAction36__action(self, p0);
4926 RET_LABEL:;
4927 }
4928 /* method parser#ReduceAction37#action for (self: ReduceAction37, Parser) */
4929 void parser__ReduceAction37__action(val* self, val* p0) {
4930 val* var_p /* var p: Parser */;
4931 val* var /* : null */;
4932 val* var_node_list /* var node_list: nullable Object */;
4933 val* var1 /* : nullable Object */;
4934 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4935 val* var2 /* : nullable Object */;
4936 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4937 val* var3 /* : nullable Object */;
4938 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4939 val* var4 /* : Array[Object] */;
4940 val* var_listnode3 /* var listnode3: Array[Object] */;
4941 val* var5 /* : Array[Object] */;
4942 val* var_listnode5 /* var listnode5: Array[Object] */;
4943 val* var6 /* : Array[Object] */;
4944 val* var_listnode7 /* var listnode7: Array[Object] */;
4945 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
4946 short int var7 /* : Bool */;
4947 int cltype;
4948 int idtype;
4949 val* var_listnode4 /* var listnode4: nullable Object */;
4950 short int var8 /* : Bool */;
4951 int cltype9;
4952 int idtype10;
4953 val* var11 /* : Array[Object] */;
4954 val* var_pclassdefnode6 /* var pclassdefnode6: nullable Object */;
4955 short int var12 /* : Bool */;
4956 int cltype13;
4957 int idtype14;
4958 val* var15 /* : null */;
4959 short int var16 /* : Bool */;
4960 val* var17 /* : AModule */;
4961 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
4962 long var18 /* : Int */;
4963 long var19 /* : Int */;
4964 var_p = p0;
4965 var = NULL;
4966 var_node_list = var;
4967 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4968 var_nodearraylist3 = var1;
4969 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4970 var_nodearraylist2 = var2;
4971 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4972 var_nodearraylist1 = var3;
4973 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
4974 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
4975 CHECK_NEW_array__Array(var4);
4976 var_listnode3 = var4;
4977 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
4978 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
4979 CHECK_NEW_array__Array(var5);
4980 var_listnode5 = var5;
4981 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
4982 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
4983 CHECK_NEW_array__Array(var6);
4984 var_listnode7 = var6;
4985 var_pmoduledeclnode2 = var_nodearraylist1;
4986 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
4987 cltype = type_nullable_parser_nodes__AModuledecl.color;
4988 idtype = type_nullable_parser_nodes__AModuledecl.id;
4989 if(var_pmoduledeclnode2 == NULL) {
4990 var7 = 1;
4991 } else {
4992 if(cltype >= var_pmoduledeclnode2->type->table_size) {
4993 var7 = 0;
4994 } else {
4995 var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
4996 }
4997 }
4998 if (!var7) {
4999 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3201);
5000 exit(1);
5001 }
5002 var_listnode4 = var_nodearraylist2;
5003 /* <var_listnode4:nullable Object> isa Array[Object] */
5004 cltype9 = type_array__Arraykernel__Object.color;
5005 idtype10 = type_array__Arraykernel__Object.id;
5006 if(var_listnode4 == NULL) {
5007 var8 = 0;
5008 } else {
5009 if(cltype9 >= var_listnode4->type->table_size) {
5010 var8 = 0;
5011 } else {
5012 var8 = var_listnode4->type->type_table[cltype9] == idtype10;
5013 }
5014 }
5015 if (!var8) {
5016 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3203);
5017 exit(1);
5018 }
5019 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction37>*/;
5020 var_listnode5 = var11;
5021 var_pclassdefnode6 = var_nodearraylist3;
5022 /* <var_pclassdefnode6:nullable Object> isa nullable AClassdef */
5023 cltype13 = type_nullable_parser_nodes__AClassdef.color;
5024 idtype14 = type_nullable_parser_nodes__AClassdef.id;
5025 if(var_pclassdefnode6 == NULL) {
5026 var12 = 1;
5027 } else {
5028 if(cltype13 >= var_pclassdefnode6->type->table_size) {
5029 var12 = 0;
5030 } else {
5031 var12 = var_pclassdefnode6->type->type_table[cltype13] == idtype14;
5032 }
5033 }
5034 if (!var12) {
5035 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3206);
5036 exit(1);
5037 }
5038 var15 = NULL;
5039 if (var_pclassdefnode6 == NULL) {
5040 var16 = 0; /* is null */
5041 } else {
5042 var16 = 1; /* arg is null and recv is not */
5043 }
5044 if (var16){
5045 ((void (*)(val*, val*))(var_listnode7->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode7, var_pclassdefnode6) /* add on <var_listnode7:Array[Object]>*/;
5046 } else {
5047 }
5048 var17 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
5049 ((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>*/;
5050 CHECK_NEW_parser_nodes__AModule(var17);
5051 var_pmodulenode1 = var17;
5052 var_node_list = var_pmodulenode1;
5053 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction37> */
5054 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
5055 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
5056 RET_LABEL:;
5057 }
5058 /* method parser#ReduceAction37#action for (self: Object, Parser) */
5059 void VIRTUAL_parser__ReduceAction37__action(val* self, val* p0) {
5060 parser__ReduceAction37__action(self, p0);
5061 RET_LABEL:;
5062 }
5063 /* method parser#ReduceAction38#action for (self: ReduceAction38, Parser) */
5064 void parser__ReduceAction38__action(val* self, val* p0) {
5065 val* var_p /* var p: Parser */;
5066 val* var /* : null */;
5067 val* var_node_list /* var node_list: nullable Object */;
5068 val* var1 /* : nullable Object */;
5069 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5070 val* var2 /* : nullable Object */;
5071 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5072 val* var3 /* : nullable Object */;
5073 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5074 val* var4 /* : Array[Object] */;
5075 val* var_listnode4 /* var listnode4: Array[Object] */;
5076 val* var5 /* : Array[Object] */;
5077 val* var_listnode6 /* var listnode6: Array[Object] */;
5078 val* var6 /* : Array[Object] */;
5079 val* var_listnode8 /* var listnode8: Array[Object] */;
5080 val* var_listnode3 /* var listnode3: nullable Object */;
5081 short int var7 /* : Bool */;
5082 int cltype;
5083 int idtype;
5084 val* var8 /* : Array[Object] */;
5085 val* var_listnode5 /* var listnode5: nullable Object */;
5086 short int var9 /* : Bool */;
5087 int cltype10;
5088 int idtype11;
5089 val* var12 /* : Array[Object] */;
5090 val* var_pclassdefnode7 /* var pclassdefnode7: nullable Object */;
5091 short int var13 /* : Bool */;
5092 int cltype14;
5093 int idtype15;
5094 val* var16 /* : null */;
5095 short int var17 /* : Bool */;
5096 val* var18 /* : AModule */;
5097 val* var19 /* : null */;
5098 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
5099 long var20 /* : Int */;
5100 long var21 /* : Int */;
5101 var_p = p0;
5102 var = NULL;
5103 var_node_list = var;
5104 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5105 var_nodearraylist3 = var1;
5106 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5107 var_nodearraylist2 = var2;
5108 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5109 var_nodearraylist1 = var3;
5110 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
5111 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
5112 CHECK_NEW_array__Array(var4);
5113 var_listnode4 = var4;
5114 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
5115 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
5116 CHECK_NEW_array__Array(var5);
5117 var_listnode6 = var5;
5118 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
5119 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
5120 CHECK_NEW_array__Array(var6);
5121 var_listnode8 = var6;
5122 var_listnode3 = var_nodearraylist1;
5123 /* <var_listnode3:nullable Object> isa Array[Object] */
5124 cltype = type_array__Arraykernel__Object.color;
5125 idtype = type_array__Arraykernel__Object.id;
5126 if(var_listnode3 == NULL) {
5127 var7 = 0;
5128 } else {
5129 if(cltype >= var_listnode3->type->table_size) {
5130 var7 = 0;
5131 } else {
5132 var7 = var_listnode3->type->type_table[cltype] == idtype;
5133 }
5134 }
5135 if (!var7) {
5136 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3232);
5137 exit(1);
5138 }
5139 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction38>*/;
5140 var_listnode4 = var8;
5141 var_listnode5 = var_nodearraylist2;
5142 /* <var_listnode5:nullable Object> isa Array[Object] */
5143 cltype10 = type_array__Arraykernel__Object.color;
5144 idtype11 = type_array__Arraykernel__Object.id;
5145 if(var_listnode5 == NULL) {
5146 var9 = 0;
5147 } else {
5148 if(cltype10 >= var_listnode5->type->table_size) {
5149 var9 = 0;
5150 } else {
5151 var9 = var_listnode5->type->type_table[cltype10] == idtype11;
5152 }
5153 }
5154 if (!var9) {
5155 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3235);
5156 exit(1);
5157 }
5158 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction38>*/;
5159 var_listnode6 = var12;
5160 var_pclassdefnode7 = var_nodearraylist3;
5161 /* <var_pclassdefnode7:nullable Object> isa nullable AClassdef */
5162 cltype14 = type_nullable_parser_nodes__AClassdef.color;
5163 idtype15 = type_nullable_parser_nodes__AClassdef.id;
5164 if(var_pclassdefnode7 == NULL) {
5165 var13 = 1;
5166 } else {
5167 if(cltype14 >= var_pclassdefnode7->type->table_size) {
5168 var13 = 0;
5169 } else {
5170 var13 = var_pclassdefnode7->type->type_table[cltype14] == idtype15;
5171 }
5172 }
5173 if (!var13) {
5174 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3238);
5175 exit(1);
5176 }
5177 var16 = NULL;
5178 if (var_pclassdefnode7 == NULL) {
5179 var17 = 0; /* is null */
5180 } else {
5181 var17 = 1; /* arg is null and recv is not */
5182 }
5183 if (var17){
5184 ((void (*)(val*, val*))(var_listnode8->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode8, var_pclassdefnode7) /* add on <var_listnode8:Array[Object]>*/;
5185 } else {
5186 }
5187 var18 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
5188 var19 = NULL;
5189 ((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>*/;
5190 CHECK_NEW_parser_nodes__AModule(var18);
5191 var_pmodulenode1 = var18;
5192 var_node_list = var_pmodulenode1;
5193 var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction38> */
5194 var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on <var_p:Parser>*/;
5195 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on <var_p:Parser>*/;
5196 RET_LABEL:;
5197 }
5198 /* method parser#ReduceAction38#action for (self: Object, Parser) */
5199 void VIRTUAL_parser__ReduceAction38__action(val* self, val* p0) {
5200 parser__ReduceAction38__action(self, p0);
5201 RET_LABEL:;
5202 }
5203 /* method parser#ReduceAction39#action for (self: ReduceAction39, Parser) */
5204 void parser__ReduceAction39__action(val* self, val* p0) {
5205 val* var_p /* var p: Parser */;
5206 val* var /* : null */;
5207 val* var_node_list /* var node_list: nullable Object */;
5208 val* var1 /* : nullable Object */;
5209 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5210 val* var2 /* : nullable Object */;
5211 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5212 val* var3 /* : nullable Object */;
5213 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5214 val* var4 /* : nullable Object */;
5215 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5216 val* var5 /* : Array[Object] */;
5217 val* var_listnode4 /* var listnode4: Array[Object] */;
5218 val* var6 /* : Array[Object] */;
5219 val* var_listnode6 /* var listnode6: Array[Object] */;
5220 val* var7 /* : Array[Object] */;
5221 val* var_listnode8 /* var listnode8: Array[Object] */;
5222 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
5223 short int var8 /* : Bool */;
5224 int cltype;
5225 int idtype;
5226 val* var_listnode3 /* var listnode3: nullable Object */;
5227 short int var9 /* : Bool */;
5228 int cltype10;
5229 int idtype11;
5230 val* var12 /* : Array[Object] */;
5231 val* var_listnode5 /* var listnode5: nullable Object */;
5232 short int var13 /* : Bool */;
5233 int cltype14;
5234 int idtype15;
5235 val* var16 /* : Array[Object] */;
5236 val* var_pclassdefnode7 /* var pclassdefnode7: nullable Object */;
5237 short int var17 /* : Bool */;
5238 int cltype18;
5239 int idtype19;
5240 val* var20 /* : null */;
5241 short int var21 /* : Bool */;
5242 val* var22 /* : AModule */;
5243 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
5244 long var23 /* : Int */;
5245 long var24 /* : Int */;
5246 var_p = p0;
5247 var = NULL;
5248 var_node_list = var;
5249 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5250 var_nodearraylist4 = var1;
5251 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5252 var_nodearraylist3 = var2;
5253 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5254 var_nodearraylist2 = var3;
5255 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5256 var_nodearraylist1 = var4;
5257 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
5258 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
5259 CHECK_NEW_array__Array(var5);
5260 var_listnode4 = var5;
5261 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
5262 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
5263 CHECK_NEW_array__Array(var6);
5264 var_listnode6 = var6;
5265 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
5266 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
5267 CHECK_NEW_array__Array(var7);
5268 var_listnode8 = var7;
5269 var_pmoduledeclnode2 = var_nodearraylist1;
5270 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
5271 cltype = type_nullable_parser_nodes__AModuledecl.color;
5272 idtype = type_nullable_parser_nodes__AModuledecl.id;
5273 if(var_pmoduledeclnode2 == NULL) {
5274 var8 = 1;
5275 } else {
5276 if(cltype >= var_pmoduledeclnode2->type->table_size) {
5277 var8 = 0;
5278 } else {
5279 var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
5280 }
5281 }
5282 if (!var8) {
5283 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3265);
5284 exit(1);
5285 }
5286 var_listnode3 = var_nodearraylist2;
5287 /* <var_listnode3:nullable Object> isa Array[Object] */
5288 cltype10 = type_array__Arraykernel__Object.color;
5289 idtype11 = type_array__Arraykernel__Object.id;
5290 if(var_listnode3 == NULL) {
5291 var9 = 0;
5292 } else {
5293 if(cltype10 >= var_listnode3->type->table_size) {
5294 var9 = 0;
5295 } else {
5296 var9 = var_listnode3->type->type_table[cltype10] == idtype11;
5297 }
5298 }
5299 if (!var9) {
5300 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3267);
5301 exit(1);
5302 }
5303 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction39>*/;
5304 var_listnode4 = var12;
5305 var_listnode5 = var_nodearraylist3;
5306 /* <var_listnode5:nullable Object> isa Array[Object] */
5307 cltype14 = type_array__Arraykernel__Object.color;
5308 idtype15 = type_array__Arraykernel__Object.id;
5309 if(var_listnode5 == NULL) {
5310 var13 = 0;
5311 } else {
5312 if(cltype14 >= var_listnode5->type->table_size) {
5313 var13 = 0;
5314 } else {
5315 var13 = var_listnode5->type->type_table[cltype14] == idtype15;
5316 }
5317 }
5318 if (!var13) {
5319 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3270);
5320 exit(1);
5321 }
5322 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction39>*/;
5323 var_listnode6 = var16;
5324 var_pclassdefnode7 = var_nodearraylist4;
5325 /* <var_pclassdefnode7:nullable Object> isa nullable AClassdef */
5326 cltype18 = type_nullable_parser_nodes__AClassdef.color;
5327 idtype19 = type_nullable_parser_nodes__AClassdef.id;
5328 if(var_pclassdefnode7 == NULL) {
5329 var17 = 1;
5330 } else {
5331 if(cltype18 >= var_pclassdefnode7->type->table_size) {
5332 var17 = 0;
5333 } else {
5334 var17 = var_pclassdefnode7->type->type_table[cltype18] == idtype19;
5335 }
5336 }
5337 if (!var17) {
5338 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3273);
5339 exit(1);
5340 }
5341 var20 = NULL;
5342 if (var_pclassdefnode7 == NULL) {
5343 var21 = 0; /* is null */
5344 } else {
5345 var21 = 1; /* arg is null and recv is not */
5346 }
5347 if (var21){
5348 ((void (*)(val*, val*))(var_listnode8->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode8, var_pclassdefnode7) /* add on <var_listnode8:Array[Object]>*/;
5349 } else {
5350 }
5351 var22 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
5352 ((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>*/;
5353 CHECK_NEW_parser_nodes__AModule(var22);
5354 var_pmodulenode1 = var22;
5355 var_node_list = var_pmodulenode1;
5356 var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction39> */
5357 var24 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var23) /* go_to on <var_p:Parser>*/;
5358 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var24, var_node_list) /* push on <var_p:Parser>*/;
5359 RET_LABEL:;
5360 }
5361 /* method parser#ReduceAction39#action for (self: Object, Parser) */
5362 void VIRTUAL_parser__ReduceAction39__action(val* self, val* p0) {
5363 parser__ReduceAction39__action(self, p0);
5364 RET_LABEL:;
5365 }
5366 /* method parser#ReduceAction40#action for (self: ReduceAction40, Parser) */
5367 void parser__ReduceAction40__action(val* self, val* p0) {
5368 val* var_p /* var p: Parser */;
5369 val* var /* : null */;
5370 val* var_node_list /* var node_list: nullable Object */;
5371 val* var1 /* : nullable Object */;
5372 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5373 val* var2 /* : nullable Object */;
5374 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5375 val* var3 /* : Array[Object] */;
5376 val* var_listnode3 /* var listnode3: Array[Object] */;
5377 val* var4 /* : Array[Object] */;
5378 val* var_listnode4 /* var listnode4: Array[Object] */;
5379 val* var5 /* : Array[Object] */;
5380 val* var_listnode7 /* var listnode7: Array[Object] */;
5381 val* var_listnode5 /* var listnode5: nullable Object */;
5382 short int var6 /* : Bool */;
5383 int cltype;
5384 int idtype;
5385 val* var_pclassdefnode6 /* var pclassdefnode6: nullable Object */;
5386 short int var7 /* : Bool */;
5387 int cltype8;
5388 int idtype9;
5389 val* var10 /* : Array[Object] */;
5390 val* var11 /* : null */;
5391 short int var12 /* : Bool */;
5392 val* var13 /* : AModule */;
5393 val* var14 /* : null */;
5394 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
5395 long var15 /* : Int */;
5396 long var16 /* : Int */;
5397 var_p = p0;
5398 var = NULL;
5399 var_node_list = var;
5400 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5401 var_nodearraylist2 = var1;
5402 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5403 var_nodearraylist1 = var2;
5404 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
5405 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
5406 CHECK_NEW_array__Array(var3);
5407 var_listnode3 = var3;
5408 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
5409 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
5410 CHECK_NEW_array__Array(var4);
5411 var_listnode4 = var4;
5412 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
5413 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
5414 CHECK_NEW_array__Array(var5);
5415 var_listnode7 = var5;
5416 var_listnode5 = var_nodearraylist1;
5417 /* <var_listnode5:nullable Object> isa Array[Object] */
5418 cltype = type_array__Arraykernel__Object.color;
5419 idtype = type_array__Arraykernel__Object.id;
5420 if(var_listnode5 == NULL) {
5421 var6 = 0;
5422 } else {
5423 if(cltype >= var_listnode5->type->table_size) {
5424 var6 = 0;
5425 } else {
5426 var6 = var_listnode5->type->type_table[cltype] == idtype;
5427 }
5428 }
5429 if (!var6) {
5430 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3298);
5431 exit(1);
5432 }
5433 var_pclassdefnode6 = var_nodearraylist2;
5434 /* <var_pclassdefnode6:nullable Object> isa nullable AClassdef */
5435 cltype8 = type_nullable_parser_nodes__AClassdef.color;
5436 idtype9 = type_nullable_parser_nodes__AClassdef.id;
5437 if(var_pclassdefnode6 == NULL) {
5438 var7 = 1;
5439 } else {
5440 if(cltype8 >= var_pclassdefnode6->type->table_size) {
5441 var7 = 0;
5442 } else {
5443 var7 = var_pclassdefnode6->type->type_table[cltype8] == idtype9;
5444 }
5445 }
5446 if (!var7) {
5447 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3300);
5448 exit(1);
5449 }
5450 var10 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode5) /* concat on <self:ReduceAction40>*/;
5451 var_listnode7 = var10;
5452 var11 = NULL;
5453 if (var_pclassdefnode6 == NULL) {
5454 var12 = 0; /* is null */
5455 } else {
5456 var12 = 1; /* arg is null and recv is not */
5457 }
5458 if (var12){
5459 ((void (*)(val*, val*))(var_listnode7->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode7, var_pclassdefnode6) /* add on <var_listnode7:Array[Object]>*/;
5460 } else {
5461 }
5462 var13 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
5463 var14 = NULL;
5464 ((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>*/;
5465 CHECK_NEW_parser_nodes__AModule(var13);
5466 var_pmodulenode1 = var13;
5467 var_node_list = var_pmodulenode1;
5468 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction40> */
5469 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
5470 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
5471 RET_LABEL:;
5472 }
5473 /* method parser#ReduceAction40#action for (self: Object, Parser) */
5474 void VIRTUAL_parser__ReduceAction40__action(val* self, val* p0) {
5475 parser__ReduceAction40__action(self, p0);
5476 RET_LABEL:;
5477 }
5478 /* method parser#ReduceAction41#action for (self: ReduceAction41, Parser) */
5479 void parser__ReduceAction41__action(val* self, val* p0) {
5480 val* var_p /* var p: Parser */;
5481 val* var /* : null */;
5482 val* var_node_list /* var node_list: nullable Object */;
5483 val* var1 /* : nullable Object */;
5484 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5485 val* var2 /* : nullable Object */;
5486 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5487 val* var3 /* : nullable Object */;
5488 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5489 val* var4 /* : Array[Object] */;
5490 val* var_listnode3 /* var listnode3: Array[Object] */;
5491 val* var5 /* : Array[Object] */;
5492 val* var_listnode4 /* var listnode4: Array[Object] */;
5493 val* var6 /* : Array[Object] */;
5494 val* var_listnode7 /* var listnode7: Array[Object] */;
5495 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
5496 short int var7 /* : Bool */;
5497 int cltype;
5498 int idtype;
5499 val* var_listnode5 /* var listnode5: nullable Object */;
5500 short int var8 /* : Bool */;
5501 int cltype9;
5502 int idtype10;
5503 val* var_pclassdefnode6 /* var pclassdefnode6: nullable Object */;
5504 short int var11 /* : Bool */;
5505 int cltype12;
5506 int idtype13;
5507 val* var14 /* : Array[Object] */;
5508 val* var15 /* : null */;
5509 short int var16 /* : Bool */;
5510 val* var17 /* : AModule */;
5511 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
5512 long var18 /* : Int */;
5513 long var19 /* : Int */;
5514 var_p = p0;
5515 var = NULL;
5516 var_node_list = var;
5517 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5518 var_nodearraylist3 = var1;
5519 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5520 var_nodearraylist2 = var2;
5521 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5522 var_nodearraylist1 = var3;
5523 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
5524 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
5525 CHECK_NEW_array__Array(var4);
5526 var_listnode3 = var4;
5527 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
5528 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
5529 CHECK_NEW_array__Array(var5);
5530 var_listnode4 = var5;
5531 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
5532 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
5533 CHECK_NEW_array__Array(var6);
5534 var_listnode7 = var6;
5535 var_pmoduledeclnode2 = var_nodearraylist1;
5536 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
5537 cltype = type_nullable_parser_nodes__AModuledecl.color;
5538 idtype = type_nullable_parser_nodes__AModuledecl.id;
5539 if(var_pmoduledeclnode2 == NULL) {
5540 var7 = 1;
5541 } else {
5542 if(cltype >= var_pmoduledeclnode2->type->table_size) {
5543 var7 = 0;
5544 } else {
5545 var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
5546 }
5547 }
5548 if (!var7) {
5549 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3327);
5550 exit(1);
5551 }
5552 var_listnode5 = var_nodearraylist2;
5553 /* <var_listnode5:nullable Object> isa Array[Object] */
5554 cltype9 = type_array__Arraykernel__Object.color;
5555 idtype10 = type_array__Arraykernel__Object.id;
5556 if(var_listnode5 == NULL) {
5557 var8 = 0;
5558 } else {
5559 if(cltype9 >= var_listnode5->type->table_size) {
5560 var8 = 0;
5561 } else {
5562 var8 = var_listnode5->type->type_table[cltype9] == idtype10;
5563 }
5564 }
5565 if (!var8) {
5566 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3329);
5567 exit(1);
5568 }
5569 var_pclassdefnode6 = var_nodearraylist3;
5570 /* <var_pclassdefnode6:nullable Object> isa nullable AClassdef */
5571 cltype12 = type_nullable_parser_nodes__AClassdef.color;
5572 idtype13 = type_nullable_parser_nodes__AClassdef.id;
5573 if(var_pclassdefnode6 == NULL) {
5574 var11 = 1;
5575 } else {
5576 if(cltype12 >= var_pclassdefnode6->type->table_size) {
5577 var11 = 0;
5578 } else {
5579 var11 = var_pclassdefnode6->type->type_table[cltype12] == idtype13;
5580 }
5581 }
5582 if (!var11) {
5583 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3331);
5584 exit(1);
5585 }
5586 var14 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode5) /* concat on <self:ReduceAction41>*/;
5587 var_listnode7 = var14;
5588 var15 = NULL;
5589 if (var_pclassdefnode6 == NULL) {
5590 var16 = 0; /* is null */
5591 } else {
5592 var16 = 1; /* arg is null and recv is not */
5593 }
5594 if (var16){
5595 ((void (*)(val*, val*))(var_listnode7->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode7, var_pclassdefnode6) /* add on <var_listnode7:Array[Object]>*/;
5596 } else {
5597 }
5598 var17 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
5599 ((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>*/;
5600 CHECK_NEW_parser_nodes__AModule(var17);
5601 var_pmodulenode1 = var17;
5602 var_node_list = var_pmodulenode1;
5603 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction41> */
5604 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
5605 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
5606 RET_LABEL:;
5607 }
5608 /* method parser#ReduceAction41#action for (self: Object, Parser) */
5609 void VIRTUAL_parser__ReduceAction41__action(val* self, val* p0) {
5610 parser__ReduceAction41__action(self, p0);
5611 RET_LABEL:;
5612 }
5613 /* method parser#ReduceAction42#action for (self: ReduceAction42, Parser) */
5614 void parser__ReduceAction42__action(val* self, val* p0) {
5615 val* var_p /* var p: Parser */;
5616 val* var /* : null */;
5617 val* var_node_list /* var node_list: nullable Object */;
5618 val* var1 /* : nullable Object */;
5619 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5620 val* var2 /* : nullable Object */;
5621 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5622 val* var3 /* : nullable Object */;
5623 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5624 val* var4 /* : Array[Object] */;
5625 val* var_listnode4 /* var listnode4: Array[Object] */;
5626 val* var5 /* : Array[Object] */;
5627 val* var_listnode5 /* var listnode5: Array[Object] */;
5628 val* var6 /* : Array[Object] */;
5629 val* var_listnode8 /* var listnode8: Array[Object] */;
5630 val* var_listnode3 /* var listnode3: nullable Object */;
5631 short int var7 /* : Bool */;
5632 int cltype;
5633 int idtype;
5634 val* var8 /* : Array[Object] */;
5635 val* var_listnode6 /* var listnode6: nullable Object */;
5636 short int var9 /* : Bool */;
5637 int cltype10;
5638 int idtype11;
5639 val* var_pclassdefnode7 /* var pclassdefnode7: nullable Object */;
5640 short int var12 /* : Bool */;
5641 int cltype13;
5642 int idtype14;
5643 val* var15 /* : Array[Object] */;
5644 val* var16 /* : null */;
5645 short int var17 /* : Bool */;
5646 val* var18 /* : AModule */;
5647 val* var19 /* : null */;
5648 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
5649 long var20 /* : Int */;
5650 long var21 /* : Int */;
5651 var_p = p0;
5652 var = NULL;
5653 var_node_list = var;
5654 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5655 var_nodearraylist3 = var1;
5656 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5657 var_nodearraylist2 = var2;
5658 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5659 var_nodearraylist1 = var3;
5660 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
5661 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
5662 CHECK_NEW_array__Array(var4);
5663 var_listnode4 = var4;
5664 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
5665 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
5666 CHECK_NEW_array__Array(var5);
5667 var_listnode5 = var5;
5668 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
5669 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
5670 CHECK_NEW_array__Array(var6);
5671 var_listnode8 = var6;
5672 var_listnode3 = var_nodearraylist1;
5673 /* <var_listnode3:nullable Object> isa Array[Object] */
5674 cltype = type_array__Arraykernel__Object.color;
5675 idtype = type_array__Arraykernel__Object.id;
5676 if(var_listnode3 == NULL) {
5677 var7 = 0;
5678 } else {
5679 if(cltype >= var_listnode3->type->table_size) {
5680 var7 = 0;
5681 } else {
5682 var7 = var_listnode3->type->type_table[cltype] == idtype;
5683 }
5684 }
5685 if (!var7) {
5686 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3358);
5687 exit(1);
5688 }
5689 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction42>*/;
5690 var_listnode4 = var8;
5691 var_listnode6 = var_nodearraylist2;
5692 /* <var_listnode6:nullable Object> isa Array[Object] */
5693 cltype10 = type_array__Arraykernel__Object.color;
5694 idtype11 = type_array__Arraykernel__Object.id;
5695 if(var_listnode6 == NULL) {
5696 var9 = 0;
5697 } else {
5698 if(cltype10 >= var_listnode6->type->table_size) {
5699 var9 = 0;
5700 } else {
5701 var9 = var_listnode6->type->type_table[cltype10] == idtype11;
5702 }
5703 }
5704 if (!var9) {
5705 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3361);
5706 exit(1);
5707 }
5708 var_pclassdefnode7 = var_nodearraylist3;
5709 /* <var_pclassdefnode7:nullable Object> isa nullable AClassdef */
5710 cltype13 = type_nullable_parser_nodes__AClassdef.color;
5711 idtype14 = type_nullable_parser_nodes__AClassdef.id;
5712 if(var_pclassdefnode7 == NULL) {
5713 var12 = 1;
5714 } else {
5715 if(cltype13 >= var_pclassdefnode7->type->table_size) {
5716 var12 = 0;
5717 } else {
5718 var12 = var_pclassdefnode7->type->type_table[cltype13] == idtype14;
5719 }
5720 }
5721 if (!var12) {
5722 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3363);
5723 exit(1);
5724 }
5725 var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode6) /* concat on <self:ReduceAction42>*/;
5726 var_listnode8 = var15;
5727 var16 = NULL;
5728 if (var_pclassdefnode7 == NULL) {
5729 var17 = 0; /* is null */
5730 } else {
5731 var17 = 1; /* arg is null and recv is not */
5732 }
5733 if (var17){
5734 ((void (*)(val*, val*))(var_listnode8->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode8, var_pclassdefnode7) /* add on <var_listnode8:Array[Object]>*/;
5735 } else {
5736 }
5737 var18 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
5738 var19 = NULL;
5739 ((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>*/;
5740 CHECK_NEW_parser_nodes__AModule(var18);
5741 var_pmodulenode1 = var18;
5742 var_node_list = var_pmodulenode1;
5743 var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction42> */
5744 var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on <var_p:Parser>*/;
5745 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on <var_p:Parser>*/;
5746 RET_LABEL:;
5747 }
5748 /* method parser#ReduceAction42#action for (self: Object, Parser) */
5749 void VIRTUAL_parser__ReduceAction42__action(val* self, val* p0) {
5750 parser__ReduceAction42__action(self, p0);
5751 RET_LABEL:;
5752 }
5753 /* method parser#ReduceAction43#action for (self: ReduceAction43, Parser) */
5754 void parser__ReduceAction43__action(val* self, val* p0) {
5755 val* var_p /* var p: Parser */;
5756 val* var /* : null */;
5757 val* var_node_list /* var node_list: nullable Object */;
5758 val* var1 /* : nullable Object */;
5759 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5760 val* var2 /* : nullable Object */;
5761 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5762 val* var3 /* : nullable Object */;
5763 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5764 val* var4 /* : nullable Object */;
5765 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5766 val* var5 /* : Array[Object] */;
5767 val* var_listnode4 /* var listnode4: Array[Object] */;
5768 val* var6 /* : Array[Object] */;
5769 val* var_listnode5 /* var listnode5: Array[Object] */;
5770 val* var7 /* : Array[Object] */;
5771 val* var_listnode8 /* var listnode8: Array[Object] */;
5772 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
5773 short int var8 /* : Bool */;
5774 int cltype;
5775 int idtype;
5776 val* var_listnode3 /* var listnode3: nullable Object */;
5777 short int var9 /* : Bool */;
5778 int cltype10;
5779 int idtype11;
5780 val* var12 /* : Array[Object] */;
5781 val* var_listnode6 /* var listnode6: nullable Object */;
5782 short int var13 /* : Bool */;
5783 int cltype14;
5784 int idtype15;
5785 val* var_pclassdefnode7 /* var pclassdefnode7: nullable Object */;
5786 short int var16 /* : Bool */;
5787 int cltype17;
5788 int idtype18;
5789 val* var19 /* : Array[Object] */;
5790 val* var20 /* : null */;
5791 short int var21 /* : Bool */;
5792 val* var22 /* : AModule */;
5793 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
5794 long var23 /* : Int */;
5795 long var24 /* : Int */;
5796 var_p = p0;
5797 var = NULL;
5798 var_node_list = var;
5799 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5800 var_nodearraylist4 = var1;
5801 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5802 var_nodearraylist3 = var2;
5803 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5804 var_nodearraylist2 = var3;
5805 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5806 var_nodearraylist1 = var4;
5807 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
5808 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
5809 CHECK_NEW_array__Array(var5);
5810 var_listnode4 = var5;
5811 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
5812 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
5813 CHECK_NEW_array__Array(var6);
5814 var_listnode5 = var6;
5815 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
5816 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
5817 CHECK_NEW_array__Array(var7);
5818 var_listnode8 = var7;
5819 var_pmoduledeclnode2 = var_nodearraylist1;
5820 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
5821 cltype = type_nullable_parser_nodes__AModuledecl.color;
5822 idtype = type_nullable_parser_nodes__AModuledecl.id;
5823 if(var_pmoduledeclnode2 == NULL) {
5824 var8 = 1;
5825 } else {
5826 if(cltype >= var_pmoduledeclnode2->type->table_size) {
5827 var8 = 0;
5828 } else {
5829 var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
5830 }
5831 }
5832 if (!var8) {
5833 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3391);
5834 exit(1);
5835 }
5836 var_listnode3 = var_nodearraylist2;
5837 /* <var_listnode3:nullable Object> isa Array[Object] */
5838 cltype10 = type_array__Arraykernel__Object.color;
5839 idtype11 = type_array__Arraykernel__Object.id;
5840 if(var_listnode3 == NULL) {
5841 var9 = 0;
5842 } else {
5843 if(cltype10 >= var_listnode3->type->table_size) {
5844 var9 = 0;
5845 } else {
5846 var9 = var_listnode3->type->type_table[cltype10] == idtype11;
5847 }
5848 }
5849 if (!var9) {
5850 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3393);
5851 exit(1);
5852 }
5853 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction43>*/;
5854 var_listnode4 = var12;
5855 var_listnode6 = var_nodearraylist3;
5856 /* <var_listnode6:nullable Object> isa Array[Object] */
5857 cltype14 = type_array__Arraykernel__Object.color;
5858 idtype15 = type_array__Arraykernel__Object.id;
5859 if(var_listnode6 == NULL) {
5860 var13 = 0;
5861 } else {
5862 if(cltype14 >= var_listnode6->type->table_size) {
5863 var13 = 0;
5864 } else {
5865 var13 = var_listnode6->type->type_table[cltype14] == idtype15;
5866 }
5867 }
5868 if (!var13) {
5869 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3396);
5870 exit(1);
5871 }
5872 var_pclassdefnode7 = var_nodearraylist4;
5873 /* <var_pclassdefnode7:nullable Object> isa nullable AClassdef */
5874 cltype17 = type_nullable_parser_nodes__AClassdef.color;
5875 idtype18 = type_nullable_parser_nodes__AClassdef.id;
5876 if(var_pclassdefnode7 == NULL) {
5877 var16 = 1;
5878 } else {
5879 if(cltype17 >= var_pclassdefnode7->type->table_size) {
5880 var16 = 0;
5881 } else {
5882 var16 = var_pclassdefnode7->type->type_table[cltype17] == idtype18;
5883 }
5884 }
5885 if (!var16) {
5886 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3398);
5887 exit(1);
5888 }
5889 var19 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode6) /* concat on <self:ReduceAction43>*/;
5890 var_listnode8 = var19;
5891 var20 = NULL;
5892 if (var_pclassdefnode7 == NULL) {
5893 var21 = 0; /* is null */
5894 } else {
5895 var21 = 1; /* arg is null and recv is not */
5896 }
5897 if (var21){
5898 ((void (*)(val*, val*))(var_listnode8->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode8, var_pclassdefnode7) /* add on <var_listnode8:Array[Object]>*/;
5899 } else {
5900 }
5901 var22 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
5902 ((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>*/;
5903 CHECK_NEW_parser_nodes__AModule(var22);
5904 var_pmodulenode1 = var22;
5905 var_node_list = var_pmodulenode1;
5906 var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction43> */
5907 var24 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var23) /* go_to on <var_p:Parser>*/;
5908 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var24, var_node_list) /* push on <var_p:Parser>*/;
5909 RET_LABEL:;
5910 }
5911 /* method parser#ReduceAction43#action for (self: Object, Parser) */
5912 void VIRTUAL_parser__ReduceAction43__action(val* self, val* p0) {
5913 parser__ReduceAction43__action(self, p0);
5914 RET_LABEL:;
5915 }
5916 /* method parser#ReduceAction44#action for (self: ReduceAction44, Parser) */
5917 void parser__ReduceAction44__action(val* self, val* p0) {
5918 val* var_p /* var p: Parser */;
5919 val* var /* : null */;
5920 val* var_node_list /* var node_list: nullable Object */;
5921 val* var1 /* : nullable Object */;
5922 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5923 val* var2 /* : nullable Object */;
5924 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5925 val* var3 /* : nullable Object */;
5926 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5927 val* var4 /* : Array[Object] */;
5928 val* var_listnode3 /* var listnode3: Array[Object] */;
5929 val* var5 /* : Array[Object] */;
5930 val* var_listnode5 /* var listnode5: Array[Object] */;
5931 val* var6 /* : Array[Object] */;
5932 val* var_listnode8 /* var listnode8: Array[Object] */;
5933 val* var_listnode4 /* var listnode4: nullable Object */;
5934 short int var7 /* : Bool */;
5935 int cltype;
5936 int idtype;
5937 val* var8 /* : Array[Object] */;
5938 val* var_listnode6 /* var listnode6: nullable Object */;
5939 short int var9 /* : Bool */;
5940 int cltype10;
5941 int idtype11;
5942 val* var_pclassdefnode7 /* var pclassdefnode7: nullable Object */;
5943 short int var12 /* : Bool */;
5944 int cltype13;
5945 int idtype14;
5946 val* var15 /* : Array[Object] */;
5947 val* var16 /* : null */;
5948 short int var17 /* : Bool */;
5949 val* var18 /* : AModule */;
5950 val* var19 /* : null */;
5951 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
5952 long var20 /* : Int */;
5953 long var21 /* : Int */;
5954 var_p = p0;
5955 var = NULL;
5956 var_node_list = var;
5957 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5958 var_nodearraylist3 = var1;
5959 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5960 var_nodearraylist2 = var2;
5961 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5962 var_nodearraylist1 = var3;
5963 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
5964 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
5965 CHECK_NEW_array__Array(var4);
5966 var_listnode3 = var4;
5967 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
5968 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
5969 CHECK_NEW_array__Array(var5);
5970 var_listnode5 = var5;
5971 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
5972 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
5973 CHECK_NEW_array__Array(var6);
5974 var_listnode8 = var6;
5975 var_listnode4 = var_nodearraylist1;
5976 /* <var_listnode4:nullable Object> isa Array[Object] */
5977 cltype = type_array__Arraykernel__Object.color;
5978 idtype = type_array__Arraykernel__Object.id;
5979 if(var_listnode4 == NULL) {
5980 var7 = 0;
5981 } else {
5982 if(cltype >= var_listnode4->type->table_size) {
5983 var7 = 0;
5984 } else {
5985 var7 = var_listnode4->type->type_table[cltype] == idtype;
5986 }
5987 }
5988 if (!var7) {
5989 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3425);
5990 exit(1);
5991 }
5992 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction44>*/;
5993 var_listnode5 = var8;
5994 var_listnode6 = var_nodearraylist2;
5995 /* <var_listnode6:nullable Object> isa Array[Object] */
5996 cltype10 = type_array__Arraykernel__Object.color;
5997 idtype11 = type_array__Arraykernel__Object.id;
5998 if(var_listnode6 == NULL) {
5999 var9 = 0;
6000 } else {
6001 if(cltype10 >= var_listnode6->type->table_size) {
6002 var9 = 0;
6003 } else {
6004 var9 = var_listnode6->type->type_table[cltype10] == idtype11;
6005 }
6006 }
6007 if (!var9) {
6008 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3428);
6009 exit(1);
6010 }
6011 var_pclassdefnode7 = var_nodearraylist3;
6012 /* <var_pclassdefnode7:nullable Object> isa nullable AClassdef */
6013 cltype13 = type_nullable_parser_nodes__AClassdef.color;
6014 idtype14 = type_nullable_parser_nodes__AClassdef.id;
6015 if(var_pclassdefnode7 == NULL) {
6016 var12 = 1;
6017 } else {
6018 if(cltype13 >= var_pclassdefnode7->type->table_size) {
6019 var12 = 0;
6020 } else {
6021 var12 = var_pclassdefnode7->type->type_table[cltype13] == idtype14;
6022 }
6023 }
6024 if (!var12) {
6025 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3430);
6026 exit(1);
6027 }
6028 var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode6) /* concat on <self:ReduceAction44>*/;
6029 var_listnode8 = var15;
6030 var16 = NULL;
6031 if (var_pclassdefnode7 == NULL) {
6032 var17 = 0; /* is null */
6033 } else {
6034 var17 = 1; /* arg is null and recv is not */
6035 }
6036 if (var17){
6037 ((void (*)(val*, val*))(var_listnode8->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode8, var_pclassdefnode7) /* add on <var_listnode8:Array[Object]>*/;
6038 } else {
6039 }
6040 var18 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
6041 var19 = NULL;
6042 ((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>*/;
6043 CHECK_NEW_parser_nodes__AModule(var18);
6044 var_pmodulenode1 = var18;
6045 var_node_list = var_pmodulenode1;
6046 var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction44> */
6047 var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on <var_p:Parser>*/;
6048 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on <var_p:Parser>*/;
6049 RET_LABEL:;
6050 }
6051 /* method parser#ReduceAction44#action for (self: Object, Parser) */
6052 void VIRTUAL_parser__ReduceAction44__action(val* self, val* p0) {
6053 parser__ReduceAction44__action(self, p0);
6054 RET_LABEL:;
6055 }
6056 /* method parser#ReduceAction45#action for (self: ReduceAction45, Parser) */
6057 void parser__ReduceAction45__action(val* self, val* p0) {
6058 val* var_p /* var p: Parser */;
6059 val* var /* : null */;
6060 val* var_node_list /* var node_list: nullable Object */;
6061 val* var1 /* : nullable Object */;
6062 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6063 val* var2 /* : nullable Object */;
6064 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6065 val* var3 /* : nullable Object */;
6066 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6067 val* var4 /* : nullable Object */;
6068 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6069 val* var5 /* : Array[Object] */;
6070 val* var_listnode3 /* var listnode3: Array[Object] */;
6071 val* var6 /* : Array[Object] */;
6072 val* var_listnode5 /* var listnode5: Array[Object] */;
6073 val* var7 /* : Array[Object] */;
6074 val* var_listnode8 /* var listnode8: Array[Object] */;
6075 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
6076 short int var8 /* : Bool */;
6077 int cltype;
6078 int idtype;
6079 val* var_listnode4 /* var listnode4: nullable Object */;
6080 short int var9 /* : Bool */;
6081 int cltype10;
6082 int idtype11;
6083 val* var12 /* : Array[Object] */;
6084 val* var_listnode6 /* var listnode6: nullable Object */;
6085 short int var13 /* : Bool */;
6086 int cltype14;
6087 int idtype15;
6088 val* var_pclassdefnode7 /* var pclassdefnode7: nullable Object */;
6089 short int var16 /* : Bool */;
6090 int cltype17;
6091 int idtype18;
6092 val* var19 /* : Array[Object] */;
6093 val* var20 /* : null */;
6094 short int var21 /* : Bool */;
6095 val* var22 /* : AModule */;
6096 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
6097 long var23 /* : Int */;
6098 long var24 /* : Int */;
6099 var_p = p0;
6100 var = NULL;
6101 var_node_list = var;
6102 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6103 var_nodearraylist4 = var1;
6104 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6105 var_nodearraylist3 = var2;
6106 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6107 var_nodearraylist2 = var3;
6108 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6109 var_nodearraylist1 = var4;
6110 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
6111 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
6112 CHECK_NEW_array__Array(var5);
6113 var_listnode3 = var5;
6114 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
6115 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
6116 CHECK_NEW_array__Array(var6);
6117 var_listnode5 = var6;
6118 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
6119 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
6120 CHECK_NEW_array__Array(var7);
6121 var_listnode8 = var7;
6122 var_pmoduledeclnode2 = var_nodearraylist1;
6123 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
6124 cltype = type_nullable_parser_nodes__AModuledecl.color;
6125 idtype = type_nullable_parser_nodes__AModuledecl.id;
6126 if(var_pmoduledeclnode2 == NULL) {
6127 var8 = 1;
6128 } else {
6129 if(cltype >= var_pmoduledeclnode2->type->table_size) {
6130 var8 = 0;
6131 } else {
6132 var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
6133 }
6134 }
6135 if (!var8) {
6136 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3458);
6137 exit(1);
6138 }
6139 var_listnode4 = var_nodearraylist2;
6140 /* <var_listnode4:nullable Object> isa Array[Object] */
6141 cltype10 = type_array__Arraykernel__Object.color;
6142 idtype11 = type_array__Arraykernel__Object.id;
6143 if(var_listnode4 == NULL) {
6144 var9 = 0;
6145 } else {
6146 if(cltype10 >= var_listnode4->type->table_size) {
6147 var9 = 0;
6148 } else {
6149 var9 = var_listnode4->type->type_table[cltype10] == idtype11;
6150 }
6151 }
6152 if (!var9) {
6153 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3460);
6154 exit(1);
6155 }
6156 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction45>*/;
6157 var_listnode5 = var12;
6158 var_listnode6 = var_nodearraylist3;
6159 /* <var_listnode6:nullable Object> isa Array[Object] */
6160 cltype14 = type_array__Arraykernel__Object.color;
6161 idtype15 = type_array__Arraykernel__Object.id;
6162 if(var_listnode6 == NULL) {
6163 var13 = 0;
6164 } else {
6165 if(cltype14 >= var_listnode6->type->table_size) {
6166 var13 = 0;
6167 } else {
6168 var13 = var_listnode6->type->type_table[cltype14] == idtype15;
6169 }
6170 }
6171 if (!var13) {
6172 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3463);
6173 exit(1);
6174 }
6175 var_pclassdefnode7 = var_nodearraylist4;
6176 /* <var_pclassdefnode7:nullable Object> isa nullable AClassdef */
6177 cltype17 = type_nullable_parser_nodes__AClassdef.color;
6178 idtype18 = type_nullable_parser_nodes__AClassdef.id;
6179 if(var_pclassdefnode7 == NULL) {
6180 var16 = 1;
6181 } else {
6182 if(cltype17 >= var_pclassdefnode7->type->table_size) {
6183 var16 = 0;
6184 } else {
6185 var16 = var_pclassdefnode7->type->type_table[cltype17] == idtype18;
6186 }
6187 }
6188 if (!var16) {
6189 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3465);
6190 exit(1);
6191 }
6192 var19 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode6) /* concat on <self:ReduceAction45>*/;
6193 var_listnode8 = var19;
6194 var20 = NULL;
6195 if (var_pclassdefnode7 == NULL) {
6196 var21 = 0; /* is null */
6197 } else {
6198 var21 = 1; /* arg is null and recv is not */
6199 }
6200 if (var21){
6201 ((void (*)(val*, val*))(var_listnode8->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode8, var_pclassdefnode7) /* add on <var_listnode8:Array[Object]>*/;
6202 } else {
6203 }
6204 var22 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
6205 ((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>*/;
6206 CHECK_NEW_parser_nodes__AModule(var22);
6207 var_pmodulenode1 = var22;
6208 var_node_list = var_pmodulenode1;
6209 var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction45> */
6210 var24 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var23) /* go_to on <var_p:Parser>*/;
6211 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var24, var_node_list) /* push on <var_p:Parser>*/;
6212 RET_LABEL:;
6213 }
6214 /* method parser#ReduceAction45#action for (self: Object, Parser) */
6215 void VIRTUAL_parser__ReduceAction45__action(val* self, val* p0) {
6216 parser__ReduceAction45__action(self, p0);
6217 RET_LABEL:;
6218 }
6219 /* method parser#ReduceAction46#action for (self: ReduceAction46, Parser) */
6220 void parser__ReduceAction46__action(val* self, val* p0) {
6221 val* var_p /* var p: Parser */;
6222 val* var /* : null */;
6223 val* var_node_list /* var node_list: nullable Object */;
6224 val* var1 /* : nullable Object */;
6225 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6226 val* var2 /* : nullable Object */;
6227 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6228 val* var3 /* : nullable Object */;
6229 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6230 val* var4 /* : nullable Object */;
6231 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6232 val* var5 /* : Array[Object] */;
6233 val* var_listnode4 /* var listnode4: Array[Object] */;
6234 val* var6 /* : Array[Object] */;
6235 val* var_listnode6 /* var listnode6: Array[Object] */;
6236 val* var7 /* : Array[Object] */;
6237 val* var_listnode9 /* var listnode9: Array[Object] */;
6238 val* var_listnode3 /* var listnode3: nullable Object */;
6239 short int var8 /* : Bool */;
6240 int cltype;
6241 int idtype;
6242 val* var9 /* : Array[Object] */;
6243 val* var_listnode5 /* var listnode5: nullable Object */;
6244 short int var10 /* : Bool */;
6245 int cltype11;
6246 int idtype12;
6247 val* var13 /* : Array[Object] */;
6248 val* var_listnode7 /* var listnode7: nullable Object */;
6249 short int var14 /* : Bool */;
6250 int cltype15;
6251 int idtype16;
6252 val* var_pclassdefnode8 /* var pclassdefnode8: nullable Object */;
6253 short int var17 /* : Bool */;
6254 int cltype18;
6255 int idtype19;
6256 val* var20 /* : Array[Object] */;
6257 val* var21 /* : null */;
6258 short int var22 /* : Bool */;
6259 val* var23 /* : AModule */;
6260 val* var24 /* : null */;
6261 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
6262 long var25 /* : Int */;
6263 long var26 /* : Int */;
6264 var_p = p0;
6265 var = NULL;
6266 var_node_list = var;
6267 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6268 var_nodearraylist4 = var1;
6269 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6270 var_nodearraylist3 = var2;
6271 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6272 var_nodearraylist2 = var3;
6273 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6274 var_nodearraylist1 = var4;
6275 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
6276 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
6277 CHECK_NEW_array__Array(var5);
6278 var_listnode4 = var5;
6279 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
6280 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
6281 CHECK_NEW_array__Array(var6);
6282 var_listnode6 = var6;
6283 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
6284 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
6285 CHECK_NEW_array__Array(var7);
6286 var_listnode9 = var7;
6287 var_listnode3 = var_nodearraylist1;
6288 /* <var_listnode3:nullable Object> isa Array[Object] */
6289 cltype = type_array__Arraykernel__Object.color;
6290 idtype = type_array__Arraykernel__Object.id;
6291 if(var_listnode3 == NULL) {
6292 var8 = 0;
6293 } else {
6294 if(cltype >= var_listnode3->type->table_size) {
6295 var8 = 0;
6296 } else {
6297 var8 = var_listnode3->type->type_table[cltype] == idtype;
6298 }
6299 }
6300 if (!var8) {
6301 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3493);
6302 exit(1);
6303 }
6304 var9 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction46>*/;
6305 var_listnode4 = var9;
6306 var_listnode5 = var_nodearraylist2;
6307 /* <var_listnode5:nullable Object> isa Array[Object] */
6308 cltype11 = type_array__Arraykernel__Object.color;
6309 idtype12 = type_array__Arraykernel__Object.id;
6310 if(var_listnode5 == NULL) {
6311 var10 = 0;
6312 } else {
6313 if(cltype11 >= var_listnode5->type->table_size) {
6314 var10 = 0;
6315 } else {
6316 var10 = var_listnode5->type->type_table[cltype11] == idtype12;
6317 }
6318 }
6319 if (!var10) {
6320 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3496);
6321 exit(1);
6322 }
6323 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction46>*/;
6324 var_listnode6 = var13;
6325 var_listnode7 = var_nodearraylist3;
6326 /* <var_listnode7:nullable Object> isa Array[Object] */
6327 cltype15 = type_array__Arraykernel__Object.color;
6328 idtype16 = type_array__Arraykernel__Object.id;
6329 if(var_listnode7 == NULL) {
6330 var14 = 0;
6331 } else {
6332 if(cltype15 >= var_listnode7->type->table_size) {
6333 var14 = 0;
6334 } else {
6335 var14 = var_listnode7->type->type_table[cltype15] == idtype16;
6336 }
6337 }
6338 if (!var14) {
6339 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3499);
6340 exit(1);
6341 }
6342 var_pclassdefnode8 = var_nodearraylist4;
6343 /* <var_pclassdefnode8:nullable Object> isa nullable AClassdef */
6344 cltype18 = type_nullable_parser_nodes__AClassdef.color;
6345 idtype19 = type_nullable_parser_nodes__AClassdef.id;
6346 if(var_pclassdefnode8 == NULL) {
6347 var17 = 1;
6348 } else {
6349 if(cltype18 >= var_pclassdefnode8->type->table_size) {
6350 var17 = 0;
6351 } else {
6352 var17 = var_pclassdefnode8->type->type_table[cltype18] == idtype19;
6353 }
6354 }
6355 if (!var17) {
6356 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3501);
6357 exit(1);
6358 }
6359 var20 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode7) /* concat on <self:ReduceAction46>*/;
6360 var_listnode9 = var20;
6361 var21 = NULL;
6362 if (var_pclassdefnode8 == NULL) {
6363 var22 = 0; /* is null */
6364 } else {
6365 var22 = 1; /* arg is null and recv is not */
6366 }
6367 if (var22){
6368 ((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode8) /* add on <var_listnode9:Array[Object]>*/;
6369 } else {
6370 }
6371 var23 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
6372 var24 = NULL;
6373 ((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>*/;
6374 CHECK_NEW_parser_nodes__AModule(var23);
6375 var_pmodulenode1 = var23;
6376 var_node_list = var_pmodulenode1;
6377 var25 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction46> */
6378 var26 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var25) /* go_to on <var_p:Parser>*/;
6379 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var26, var_node_list) /* push on <var_p:Parser>*/;
6380 RET_LABEL:;
6381 }
6382 /* method parser#ReduceAction46#action for (self: Object, Parser) */
6383 void VIRTUAL_parser__ReduceAction46__action(val* self, val* p0) {
6384 parser__ReduceAction46__action(self, p0);
6385 RET_LABEL:;
6386 }
6387 /* method parser#ReduceAction47#action for (self: ReduceAction47, Parser) */
6388 void parser__ReduceAction47__action(val* self, val* p0) {
6389 val* var_p /* var p: Parser */;
6390 val* var /* : null */;
6391 val* var_node_list /* var node_list: nullable Object */;
6392 val* var1 /* : nullable Object */;
6393 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6394 val* var2 /* : nullable Object */;
6395 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6396 val* var3 /* : nullable Object */;
6397 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6398 val* var4 /* : nullable Object */;
6399 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6400 val* var5 /* : nullable Object */;
6401 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6402 val* var6 /* : Array[Object] */;
6403 val* var_listnode4 /* var listnode4: Array[Object] */;
6404 val* var7 /* : Array[Object] */;
6405 val* var_listnode6 /* var listnode6: Array[Object] */;
6406 val* var8 /* : Array[Object] */;
6407 val* var_listnode9 /* var listnode9: Array[Object] */;
6408 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
6409 short int var9 /* : Bool */;
6410 int cltype;
6411 int idtype;
6412 val* var_listnode3 /* var listnode3: nullable Object */;
6413 short int var10 /* : Bool */;
6414 int cltype11;
6415 int idtype12;
6416 val* var13 /* : Array[Object] */;
6417 val* var_listnode5 /* var listnode5: nullable Object */;
6418 short int var14 /* : Bool */;
6419 int cltype15;
6420 int idtype16;
6421 val* var17 /* : Array[Object] */;
6422 val* var_listnode7 /* var listnode7: nullable Object */;
6423 short int var18 /* : Bool */;
6424 int cltype19;
6425 int idtype20;
6426 val* var_pclassdefnode8 /* var pclassdefnode8: nullable Object */;
6427 short int var21 /* : Bool */;
6428 int cltype22;
6429 int idtype23;
6430 val* var24 /* : Array[Object] */;
6431 val* var25 /* : null */;
6432 short int var26 /* : Bool */;
6433 val* var27 /* : AModule */;
6434 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
6435 long var28 /* : Int */;
6436 long var29 /* : Int */;
6437 var_p = p0;
6438 var = NULL;
6439 var_node_list = var;
6440 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6441 var_nodearraylist5 = var1;
6442 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6443 var_nodearraylist4 = var2;
6444 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6445 var_nodearraylist3 = var3;
6446 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6447 var_nodearraylist2 = var4;
6448 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6449 var_nodearraylist1 = var5;
6450 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
6451 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
6452 CHECK_NEW_array__Array(var6);
6453 var_listnode4 = var6;
6454 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
6455 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
6456 CHECK_NEW_array__Array(var7);
6457 var_listnode6 = var7;
6458 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
6459 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
6460 CHECK_NEW_array__Array(var8);
6461 var_listnode9 = var8;
6462 var_pmoduledeclnode2 = var_nodearraylist1;
6463 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
6464 cltype = type_nullable_parser_nodes__AModuledecl.color;
6465 idtype = type_nullable_parser_nodes__AModuledecl.id;
6466 if(var_pmoduledeclnode2 == NULL) {
6467 var9 = 1;
6468 } else {
6469 if(cltype >= var_pmoduledeclnode2->type->table_size) {
6470 var9 = 0;
6471 } else {
6472 var9 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
6473 }
6474 }
6475 if (!var9) {
6476 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3530);
6477 exit(1);
6478 }
6479 var_listnode3 = var_nodearraylist2;
6480 /* <var_listnode3:nullable Object> isa Array[Object] */
6481 cltype11 = type_array__Arraykernel__Object.color;
6482 idtype12 = type_array__Arraykernel__Object.id;
6483 if(var_listnode3 == NULL) {
6484 var10 = 0;
6485 } else {
6486 if(cltype11 >= var_listnode3->type->table_size) {
6487 var10 = 0;
6488 } else {
6489 var10 = var_listnode3->type->type_table[cltype11] == idtype12;
6490 }
6491 }
6492 if (!var10) {
6493 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3532);
6494 exit(1);
6495 }
6496 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction47>*/;
6497 var_listnode4 = var13;
6498 var_listnode5 = var_nodearraylist3;
6499 /* <var_listnode5:nullable Object> isa Array[Object] */
6500 cltype15 = type_array__Arraykernel__Object.color;
6501 idtype16 = type_array__Arraykernel__Object.id;
6502 if(var_listnode5 == NULL) {
6503 var14 = 0;
6504 } else {
6505 if(cltype15 >= var_listnode5->type->table_size) {
6506 var14 = 0;
6507 } else {
6508 var14 = var_listnode5->type->type_table[cltype15] == idtype16;
6509 }
6510 }
6511 if (!var14) {
6512 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3535);
6513 exit(1);
6514 }
6515 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction47>*/;
6516 var_listnode6 = var17;
6517 var_listnode7 = var_nodearraylist4;
6518 /* <var_listnode7:nullable Object> isa Array[Object] */
6519 cltype19 = type_array__Arraykernel__Object.color;
6520 idtype20 = type_array__Arraykernel__Object.id;
6521 if(var_listnode7 == NULL) {
6522 var18 = 0;
6523 } else {
6524 if(cltype19 >= var_listnode7->type->table_size) {
6525 var18 = 0;
6526 } else {
6527 var18 = var_listnode7->type->type_table[cltype19] == idtype20;
6528 }
6529 }
6530 if (!var18) {
6531 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3538);
6532 exit(1);
6533 }
6534 var_pclassdefnode8 = var_nodearraylist5;
6535 /* <var_pclassdefnode8:nullable Object> isa nullable AClassdef */
6536 cltype22 = type_nullable_parser_nodes__AClassdef.color;
6537 idtype23 = type_nullable_parser_nodes__AClassdef.id;
6538 if(var_pclassdefnode8 == NULL) {
6539 var21 = 1;
6540 } else {
6541 if(cltype22 >= var_pclassdefnode8->type->table_size) {
6542 var21 = 0;
6543 } else {
6544 var21 = var_pclassdefnode8->type->type_table[cltype22] == idtype23;
6545 }
6546 }
6547 if (!var21) {
6548 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3540);
6549 exit(1);
6550 }
6551 var24 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode7) /* concat on <self:ReduceAction47>*/;
6552 var_listnode9 = var24;
6553 var25 = NULL;
6554 if (var_pclassdefnode8 == NULL) {
6555 var26 = 0; /* is null */
6556 } else {
6557 var26 = 1; /* arg is null and recv is not */
6558 }
6559 if (var26){
6560 ((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode8) /* add on <var_listnode9:Array[Object]>*/;
6561 } else {
6562 }
6563 var27 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
6564 ((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>*/;
6565 CHECK_NEW_parser_nodes__AModule(var27);
6566 var_pmodulenode1 = var27;
6567 var_node_list = var_pmodulenode1;
6568 var28 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction47> */
6569 var29 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var28) /* go_to on <var_p:Parser>*/;
6570 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var29, var_node_list) /* push on <var_p:Parser>*/;
6571 RET_LABEL:;
6572 }
6573 /* method parser#ReduceAction47#action for (self: Object, Parser) */
6574 void VIRTUAL_parser__ReduceAction47__action(val* self, val* p0) {
6575 parser__ReduceAction47__action(self, p0);
6576 RET_LABEL:;
6577 }
6578 /* method parser#ReduceAction48#action for (self: ReduceAction48, Parser) */
6579 void parser__ReduceAction48__action(val* self, val* p0) {
6580 val* var_p /* var p: Parser */;
6581 val* var /* : null */;
6582 val* var_node_list /* var node_list: nullable Object */;
6583 val* var1 /* : nullable Object */;
6584 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6585 val* var2 /* : nullable Object */;
6586 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6587 val* var3 /* : Array[Object] */;
6588 val* var_listnode3 /* var listnode3: Array[Object] */;
6589 val* var4 /* : Array[Object] */;
6590 val* var_listnode4 /* var listnode4: Array[Object] */;
6591 val* var5 /* : Array[Object] */;
6592 val* var_listnode9 /* var listnode9: Array[Object] */;
6593 val* var6 /* : Array[Object] */;
6594 val* var_listnode7 /* var listnode7: Array[Object] */;
6595 val* var_listnode6 /* var listnode6: nullable Object */;
6596 short int var7 /* : Bool */;
6597 int cltype;
6598 int idtype;
6599 val* var8 /* : Array[Object] */;
6600 val* var9 /* : ATopClassdef */;
6601 val* var_pclassdefnode5 /* var pclassdefnode5: nullable ATopClassdef */;
6602 val* var_pclassdefnode8 /* var pclassdefnode8: nullable Object */;
6603 short int var10 /* : Bool */;
6604 int cltype11;
6605 int idtype12;
6606 val* var13 /* : null */;
6607 short int var14 /* : Bool */;
6608 val* var15 /* : null */;
6609 short int var16 /* : Bool */;
6610 val* var17 /* : AModule */;
6611 val* var18 /* : null */;
6612 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
6613 long var19 /* : Int */;
6614 long var20 /* : Int */;
6615 var_p = p0;
6616 var = NULL;
6617 var_node_list = var;
6618 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6619 var_nodearraylist2 = var1;
6620 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6621 var_nodearraylist1 = var2;
6622 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
6623 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
6624 CHECK_NEW_array__Array(var3);
6625 var_listnode3 = var3;
6626 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
6627 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
6628 CHECK_NEW_array__Array(var4);
6629 var_listnode4 = var4;
6630 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
6631 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
6632 CHECK_NEW_array__Array(var5);
6633 var_listnode9 = var5;
6634 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
6635 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
6636 CHECK_NEW_array__Array(var6);
6637 var_listnode7 = var6;
6638 var_listnode6 = var_nodearraylist1;
6639 /* <var_listnode6:nullable Object> isa Array[Object] */
6640 cltype = type_array__Arraykernel__Object.color;
6641 idtype = type_array__Arraykernel__Object.id;
6642 if(var_listnode6 == NULL) {
6643 var7 = 0;
6644 } else {
6645 if(cltype >= var_listnode6->type->table_size) {
6646 var7 = 0;
6647 } else {
6648 var7 = var_listnode6->type->type_table[cltype] == idtype;
6649 }
6650 }
6651 if (!var7) {
6652 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3567);
6653 exit(1);
6654 }
6655 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on <self:ReduceAction48>*/;
6656 var_listnode7 = var8;
6657 var9 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
6658 ((void (*)(val*, val*))(var9->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var9, var_listnode7) /* init_atopclassdef on <var9:ATopClassdef>*/;
6659 CHECK_NEW_parser_nodes__ATopClassdef(var9);
6660 var_pclassdefnode5 = var9;
6661 var_pclassdefnode8 = var_nodearraylist2;
6662 /* <var_pclassdefnode8:nullable Object> isa nullable AClassdef */
6663 cltype11 = type_nullable_parser_nodes__AClassdef.color;
6664 idtype12 = type_nullable_parser_nodes__AClassdef.id;
6665 if(var_pclassdefnode8 == NULL) {
6666 var10 = 1;
6667 } else {
6668 if(cltype11 >= var_pclassdefnode8->type->table_size) {
6669 var10 = 0;
6670 } else {
6671 var10 = var_pclassdefnode8->type->type_table[cltype11] == idtype12;
6672 }
6673 }
6674 if (!var10) {
6675 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3573);
6676 exit(1);
6677 }
6678 var13 = NULL;
6679 if (var_pclassdefnode5 == NULL) {
6680 var14 = 0; /* is null */
6681 } else {
6682 var14 = 1; /* arg is null and recv is not */
6683 }
6684 if (var14){
6685 ((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode5) /* add on <var_listnode9:Array[Object]>*/;
6686 } else {
6687 }
6688 var15 = NULL;
6689 if (var_pclassdefnode8 == NULL) {
6690 var16 = 0; /* is null */
6691 } else {
6692 var16 = 1; /* arg is null and recv is not */
6693 }
6694 if (var16){
6695 ((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode8) /* add on <var_listnode9:Array[Object]>*/;
6696 } else {
6697 }
6698 var17 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
6699 var18 = NULL;
6700 ((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>*/;
6701 CHECK_NEW_parser_nodes__AModule(var17);
6702 var_pmodulenode1 = var17;
6703 var_node_list = var_pmodulenode1;
6704 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction48> */
6705 var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
6706 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
6707 RET_LABEL:;
6708 }
6709 /* method parser#ReduceAction48#action for (self: Object, Parser) */
6710 void VIRTUAL_parser__ReduceAction48__action(val* self, val* p0) {
6711 parser__ReduceAction48__action(self, p0);
6712 RET_LABEL:;
6713 }
6714 /* method parser#ReduceAction49#action for (self: ReduceAction49, Parser) */
6715 void parser__ReduceAction49__action(val* self, val* p0) {
6716 val* var_p /* var p: Parser */;
6717 val* var /* : null */;
6718 val* var_node_list /* var node_list: nullable Object */;
6719 val* var1 /* : nullable Object */;
6720 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6721 val* var2 /* : nullable Object */;
6722 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6723 val* var3 /* : nullable Object */;
6724 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6725 val* var4 /* : Array[Object] */;
6726 val* var_listnode3 /* var listnode3: Array[Object] */;
6727 val* var5 /* : Array[Object] */;
6728 val* var_listnode4 /* var listnode4: Array[Object] */;
6729 val* var6 /* : Array[Object] */;
6730 val* var_listnode9 /* var listnode9: Array[Object] */;
6731 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
6732 short int var7 /* : Bool */;
6733 int cltype;
6734 int idtype;
6735 val* var8 /* : Array[Object] */;
6736 val* var_listnode7 /* var listnode7: Array[Object] */;
6737 val* var_listnode6 /* var listnode6: nullable Object */;
6738 short int var9 /* : Bool */;
6739 int cltype10;
6740 int idtype11;
6741 val* var12 /* : Array[Object] */;
6742 val* var13 /* : ATopClassdef */;
6743 val* var_pclassdefnode5 /* var pclassdefnode5: nullable ATopClassdef */;
6744 val* var_pclassdefnode8 /* var pclassdefnode8: nullable Object */;
6745 short int var14 /* : Bool */;
6746 int cltype15;
6747 int idtype16;
6748 val* var17 /* : null */;
6749 short int var18 /* : Bool */;
6750 val* var19 /* : null */;
6751 short int var20 /* : Bool */;
6752 val* var21 /* : AModule */;
6753 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
6754 long var22 /* : Int */;
6755 long var23 /* : Int */;
6756 var_p = p0;
6757 var = NULL;
6758 var_node_list = var;
6759 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6760 var_nodearraylist3 = var1;
6761 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6762 var_nodearraylist2 = var2;
6763 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6764 var_nodearraylist1 = var3;
6765 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
6766 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
6767 CHECK_NEW_array__Array(var4);
6768 var_listnode3 = var4;
6769 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
6770 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
6771 CHECK_NEW_array__Array(var5);
6772 var_listnode4 = var5;
6773 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
6774 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
6775 CHECK_NEW_array__Array(var6);
6776 var_listnode9 = var6;
6777 var_pmoduledeclnode2 = var_nodearraylist1;
6778 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
6779 cltype = type_nullable_parser_nodes__AModuledecl.color;
6780 idtype = type_nullable_parser_nodes__AModuledecl.id;
6781 if(var_pmoduledeclnode2 == NULL) {
6782 var7 = 1;
6783 } else {
6784 if(cltype >= var_pmoduledeclnode2->type->table_size) {
6785 var7 = 0;
6786 } else {
6787 var7 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
6788 }
6789 }
6790 if (!var7) {
6791 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3602);
6792 exit(1);
6793 }
6794 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
6795 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
6796 CHECK_NEW_array__Array(var8);
6797 var_listnode7 = var8;
6798 var_listnode6 = var_nodearraylist2;
6799 /* <var_listnode6:nullable Object> isa Array[Object] */
6800 cltype10 = type_array__Arraykernel__Object.color;
6801 idtype11 = type_array__Arraykernel__Object.id;
6802 if(var_listnode6 == NULL) {
6803 var9 = 0;
6804 } else {
6805 if(cltype10 >= var_listnode6->type->table_size) {
6806 var9 = 0;
6807 } else {
6808 var9 = var_listnode6->type->type_table[cltype10] == idtype11;
6809 }
6810 }
6811 if (!var9) {
6812 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3605);
6813 exit(1);
6814 }
6815 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode7, var_listnode6) /* concat on <self:ReduceAction49>*/;
6816 var_listnode7 = var12;
6817 var13 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
6818 ((void (*)(val*, val*))(var13->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var13, var_listnode7) /* init_atopclassdef on <var13:ATopClassdef>*/;
6819 CHECK_NEW_parser_nodes__ATopClassdef(var13);
6820 var_pclassdefnode5 = var13;
6821 var_pclassdefnode8 = var_nodearraylist3;
6822 /* <var_pclassdefnode8:nullable Object> isa nullable AClassdef */
6823 cltype15 = type_nullable_parser_nodes__AClassdef.color;
6824 idtype16 = type_nullable_parser_nodes__AClassdef.id;
6825 if(var_pclassdefnode8 == NULL) {
6826 var14 = 1;
6827 } else {
6828 if(cltype15 >= var_pclassdefnode8->type->table_size) {
6829 var14 = 0;
6830 } else {
6831 var14 = var_pclassdefnode8->type->type_table[cltype15] == idtype16;
6832 }
6833 }
6834 if (!var14) {
6835 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3611);
6836 exit(1);
6837 }
6838 var17 = NULL;
6839 if (var_pclassdefnode5 == NULL) {
6840 var18 = 0; /* is null */
6841 } else {
6842 var18 = 1; /* arg is null and recv is not */
6843 }
6844 if (var18){
6845 ((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode5) /* add on <var_listnode9:Array[Object]>*/;
6846 } else {
6847 }
6848 var19 = NULL;
6849 if (var_pclassdefnode8 == NULL) {
6850 var20 = 0; /* is null */
6851 } else {
6852 var20 = 1; /* arg is null and recv is not */
6853 }
6854 if (var20){
6855 ((void (*)(val*, val*))(var_listnode9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode9, var_pclassdefnode8) /* add on <var_listnode9:Array[Object]>*/;
6856 } else {
6857 }
6858 var21 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
6859 ((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>*/;
6860 CHECK_NEW_parser_nodes__AModule(var21);
6861 var_pmodulenode1 = var21;
6862 var_node_list = var_pmodulenode1;
6863 var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction49> */
6864 var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
6865 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
6866 RET_LABEL:;
6867 }
6868 /* method parser#ReduceAction49#action for (self: Object, Parser) */
6869 void VIRTUAL_parser__ReduceAction49__action(val* self, val* p0) {
6870 parser__ReduceAction49__action(self, p0);
6871 RET_LABEL:;
6872 }
6873 /* method parser#ReduceAction50#action for (self: ReduceAction50, Parser) */
6874 void parser__ReduceAction50__action(val* self, val* p0) {
6875 val* var_p /* var p: Parser */;
6876 val* var /* : null */;
6877 val* var_node_list /* var node_list: nullable Object */;
6878 val* var1 /* : nullable Object */;
6879 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6880 val* var2 /* : nullable Object */;
6881 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6882 val* var3 /* : nullable Object */;
6883 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6884 val* var4 /* : Array[Object] */;
6885 val* var_listnode4 /* var listnode4: Array[Object] */;
6886 val* var5 /* : Array[Object] */;
6887 val* var_listnode5 /* var listnode5: Array[Object] */;
6888 val* var6 /* : Array[Object] */;
6889 val* var_listnode10 /* var listnode10: Array[Object] */;
6890 val* var_listnode3 /* var listnode3: nullable Object */;
6891 short int var7 /* : Bool */;
6892 int cltype;
6893 int idtype;
6894 val* var8 /* : Array[Object] */;
6895 val* var9 /* : Array[Object] */;
6896 val* var_listnode8 /* var listnode8: Array[Object] */;
6897 val* var_listnode7 /* var listnode7: nullable Object */;
6898 short int var10 /* : Bool */;
6899 int cltype11;
6900 int idtype12;
6901 val* var13 /* : Array[Object] */;
6902 val* var14 /* : ATopClassdef */;
6903 val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */;
6904 val* var_pclassdefnode9 /* var pclassdefnode9: nullable Object */;
6905 short int var15 /* : Bool */;
6906 int cltype16;
6907 int idtype17;
6908 val* var18 /* : null */;
6909 short int var19 /* : Bool */;
6910 val* var20 /* : null */;
6911 short int var21 /* : Bool */;
6912 val* var22 /* : AModule */;
6913 val* var23 /* : null */;
6914 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
6915 long var24 /* : Int */;
6916 long var25 /* : Int */;
6917 var_p = p0;
6918 var = NULL;
6919 var_node_list = var;
6920 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6921 var_nodearraylist3 = var1;
6922 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6923 var_nodearraylist2 = var2;
6924 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6925 var_nodearraylist1 = var3;
6926 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
6927 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
6928 CHECK_NEW_array__Array(var4);
6929 var_listnode4 = var4;
6930 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
6931 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
6932 CHECK_NEW_array__Array(var5);
6933 var_listnode5 = var5;
6934 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
6935 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
6936 CHECK_NEW_array__Array(var6);
6937 var_listnode10 = var6;
6938 var_listnode3 = var_nodearraylist1;
6939 /* <var_listnode3:nullable Object> isa Array[Object] */
6940 cltype = type_array__Arraykernel__Object.color;
6941 idtype = type_array__Arraykernel__Object.id;
6942 if(var_listnode3 == NULL) {
6943 var7 = 0;
6944 } else {
6945 if(cltype >= var_listnode3->type->table_size) {
6946 var7 = 0;
6947 } else {
6948 var7 = var_listnode3->type->type_table[cltype] == idtype;
6949 }
6950 }
6951 if (!var7) {
6952 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3640);
6953 exit(1);
6954 }
6955 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction50>*/;
6956 var_listnode4 = var8;
6957 var9 = NEW_array__Array(&type_array__Arraykernel__Object);
6958 ((void (*)(val*))(var9->class->vft[COLOR_array__Array__init]))(var9) /* init on <var9:Array[Object]>*/;
6959 CHECK_NEW_array__Array(var9);
6960 var_listnode8 = var9;
6961 var_listnode7 = var_nodearraylist2;
6962 /* <var_listnode7:nullable Object> isa Array[Object] */
6963 cltype11 = type_array__Arraykernel__Object.color;
6964 idtype12 = type_array__Arraykernel__Object.id;
6965 if(var_listnode7 == NULL) {
6966 var10 = 0;
6967 } else {
6968 if(cltype11 >= var_listnode7->type->table_size) {
6969 var10 = 0;
6970 } else {
6971 var10 = var_listnode7->type->type_table[cltype11] == idtype12;
6972 }
6973 }
6974 if (!var10) {
6975 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3644);
6976 exit(1);
6977 }
6978 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction50>*/;
6979 var_listnode8 = var13;
6980 var14 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
6981 ((void (*)(val*, val*))(var14->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var14, var_listnode8) /* init_atopclassdef on <var14:ATopClassdef>*/;
6982 CHECK_NEW_parser_nodes__ATopClassdef(var14);
6983 var_pclassdefnode6 = var14;
6984 var_pclassdefnode9 = var_nodearraylist3;
6985 /* <var_pclassdefnode9:nullable Object> isa nullable AClassdef */
6986 cltype16 = type_nullable_parser_nodes__AClassdef.color;
6987 idtype17 = type_nullable_parser_nodes__AClassdef.id;
6988 if(var_pclassdefnode9 == NULL) {
6989 var15 = 1;
6990 } else {
6991 if(cltype16 >= var_pclassdefnode9->type->table_size) {
6992 var15 = 0;
6993 } else {
6994 var15 = var_pclassdefnode9->type->type_table[cltype16] == idtype17;
6995 }
6996 }
6997 if (!var15) {
6998 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3650);
6999 exit(1);
7000 }
7001 var18 = NULL;
7002 if (var_pclassdefnode6 == NULL) {
7003 var19 = 0; /* is null */
7004 } else {
7005 var19 = 1; /* arg is null and recv is not */
7006 }
7007 if (var19){
7008 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode6) /* add on <var_listnode10:Array[Object]>*/;
7009 } else {
7010 }
7011 var20 = NULL;
7012 if (var_pclassdefnode9 == NULL) {
7013 var21 = 0; /* is null */
7014 } else {
7015 var21 = 1; /* arg is null and recv is not */
7016 }
7017 if (var21){
7018 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode9) /* add on <var_listnode10:Array[Object]>*/;
7019 } else {
7020 }
7021 var22 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
7022 var23 = NULL;
7023 ((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>*/;
7024 CHECK_NEW_parser_nodes__AModule(var22);
7025 var_pmodulenode1 = var22;
7026 var_node_list = var_pmodulenode1;
7027 var24 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction50> */
7028 var25 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var24) /* go_to on <var_p:Parser>*/;
7029 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var25, var_node_list) /* push on <var_p:Parser>*/;
7030 RET_LABEL:;
7031 }
7032 /* method parser#ReduceAction50#action for (self: Object, Parser) */
7033 void VIRTUAL_parser__ReduceAction50__action(val* self, val* p0) {
7034 parser__ReduceAction50__action(self, p0);
7035 RET_LABEL:;
7036 }
7037 /* method parser#ReduceAction51#action for (self: ReduceAction51, Parser) */
7038 void parser__ReduceAction51__action(val* self, val* p0) {
7039 val* var_p /* var p: Parser */;
7040 val* var /* : null */;
7041 val* var_node_list /* var node_list: nullable Object */;
7042 val* var1 /* : nullable Object */;
7043 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7044 val* var2 /* : nullable Object */;
7045 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7046 val* var3 /* : nullable Object */;
7047 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7048 val* var4 /* : nullable Object */;
7049 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7050 val* var5 /* : Array[Object] */;
7051 val* var_listnode4 /* var listnode4: Array[Object] */;
7052 val* var6 /* : Array[Object] */;
7053 val* var_listnode5 /* var listnode5: Array[Object] */;
7054 val* var7 /* : Array[Object] */;
7055 val* var_listnode10 /* var listnode10: Array[Object] */;
7056 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
7057 short int var8 /* : Bool */;
7058 int cltype;
7059 int idtype;
7060 val* var_listnode3 /* var listnode3: nullable Object */;
7061 short int var9 /* : Bool */;
7062 int cltype10;
7063 int idtype11;
7064 val* var12 /* : Array[Object] */;
7065 val* var13 /* : Array[Object] */;
7066 val* var_listnode8 /* var listnode8: Array[Object] */;
7067 val* var_listnode7 /* var listnode7: nullable Object */;
7068 short int var14 /* : Bool */;
7069 int cltype15;
7070 int idtype16;
7071 val* var17 /* : Array[Object] */;
7072 val* var18 /* : ATopClassdef */;
7073 val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */;
7074 val* var_pclassdefnode9 /* var pclassdefnode9: nullable Object */;
7075 short int var19 /* : Bool */;
7076 int cltype20;
7077 int idtype21;
7078 val* var22 /* : null */;
7079 short int var23 /* : Bool */;
7080 val* var24 /* : null */;
7081 short int var25 /* : Bool */;
7082 val* var26 /* : AModule */;
7083 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
7084 long var27 /* : Int */;
7085 long var28 /* : Int */;
7086 var_p = p0;
7087 var = NULL;
7088 var_node_list = var;
7089 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7090 var_nodearraylist4 = var1;
7091 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7092 var_nodearraylist3 = var2;
7093 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7094 var_nodearraylist2 = var3;
7095 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7096 var_nodearraylist1 = var4;
7097 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
7098 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
7099 CHECK_NEW_array__Array(var5);
7100 var_listnode4 = var5;
7101 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
7102 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
7103 CHECK_NEW_array__Array(var6);
7104 var_listnode5 = var6;
7105 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
7106 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
7107 CHECK_NEW_array__Array(var7);
7108 var_listnode10 = var7;
7109 var_pmoduledeclnode2 = var_nodearraylist1;
7110 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
7111 cltype = type_nullable_parser_nodes__AModuledecl.color;
7112 idtype = type_nullable_parser_nodes__AModuledecl.id;
7113 if(var_pmoduledeclnode2 == NULL) {
7114 var8 = 1;
7115 } else {
7116 if(cltype >= var_pmoduledeclnode2->type->table_size) {
7117 var8 = 0;
7118 } else {
7119 var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
7120 }
7121 }
7122 if (!var8) {
7123 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3680);
7124 exit(1);
7125 }
7126 var_listnode3 = var_nodearraylist2;
7127 /* <var_listnode3:nullable Object> isa Array[Object] */
7128 cltype10 = type_array__Arraykernel__Object.color;
7129 idtype11 = type_array__Arraykernel__Object.id;
7130 if(var_listnode3 == NULL) {
7131 var9 = 0;
7132 } else {
7133 if(cltype10 >= var_listnode3->type->table_size) {
7134 var9 = 0;
7135 } else {
7136 var9 = var_listnode3->type->type_table[cltype10] == idtype11;
7137 }
7138 }
7139 if (!var9) {
7140 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3682);
7141 exit(1);
7142 }
7143 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction51>*/;
7144 var_listnode4 = var12;
7145 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
7146 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
7147 CHECK_NEW_array__Array(var13);
7148 var_listnode8 = var13;
7149 var_listnode7 = var_nodearraylist3;
7150 /* <var_listnode7:nullable Object> isa Array[Object] */
7151 cltype15 = type_array__Arraykernel__Object.color;
7152 idtype16 = type_array__Arraykernel__Object.id;
7153 if(var_listnode7 == NULL) {
7154 var14 = 0;
7155 } else {
7156 if(cltype15 >= var_listnode7->type->table_size) {
7157 var14 = 0;
7158 } else {
7159 var14 = var_listnode7->type->type_table[cltype15] == idtype16;
7160 }
7161 }
7162 if (!var14) {
7163 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3686);
7164 exit(1);
7165 }
7166 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction51>*/;
7167 var_listnode8 = var17;
7168 var18 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
7169 ((void (*)(val*, val*))(var18->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var18, var_listnode8) /* init_atopclassdef on <var18:ATopClassdef>*/;
7170 CHECK_NEW_parser_nodes__ATopClassdef(var18);
7171 var_pclassdefnode6 = var18;
7172 var_pclassdefnode9 = var_nodearraylist4;
7173 /* <var_pclassdefnode9:nullable Object> isa nullable AClassdef */
7174 cltype20 = type_nullable_parser_nodes__AClassdef.color;
7175 idtype21 = type_nullable_parser_nodes__AClassdef.id;
7176 if(var_pclassdefnode9 == NULL) {
7177 var19 = 1;
7178 } else {
7179 if(cltype20 >= var_pclassdefnode9->type->table_size) {
7180 var19 = 0;
7181 } else {
7182 var19 = var_pclassdefnode9->type->type_table[cltype20] == idtype21;
7183 }
7184 }
7185 if (!var19) {
7186 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3692);
7187 exit(1);
7188 }
7189 var22 = NULL;
7190 if (var_pclassdefnode6 == NULL) {
7191 var23 = 0; /* is null */
7192 } else {
7193 var23 = 1; /* arg is null and recv is not */
7194 }
7195 if (var23){
7196 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode6) /* add on <var_listnode10:Array[Object]>*/;
7197 } else {
7198 }
7199 var24 = NULL;
7200 if (var_pclassdefnode9 == NULL) {
7201 var25 = 0; /* is null */
7202 } else {
7203 var25 = 1; /* arg is null and recv is not */
7204 }
7205 if (var25){
7206 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode9) /* add on <var_listnode10:Array[Object]>*/;
7207 } else {
7208 }
7209 var26 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
7210 ((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>*/;
7211 CHECK_NEW_parser_nodes__AModule(var26);
7212 var_pmodulenode1 = var26;
7213 var_node_list = var_pmodulenode1;
7214 var27 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction51> */
7215 var28 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var27) /* go_to on <var_p:Parser>*/;
7216 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var28, var_node_list) /* push on <var_p:Parser>*/;
7217 RET_LABEL:;
7218 }
7219 /* method parser#ReduceAction51#action for (self: Object, Parser) */
7220 void VIRTUAL_parser__ReduceAction51__action(val* self, val* p0) {
7221 parser__ReduceAction51__action(self, p0);
7222 RET_LABEL:;
7223 }
7224 /* method parser#ReduceAction52#action for (self: ReduceAction52, Parser) */
7225 void parser__ReduceAction52__action(val* self, val* p0) {
7226 val* var_p /* var p: Parser */;
7227 val* var /* : null */;
7228 val* var_node_list /* var node_list: nullable Object */;
7229 val* var1 /* : nullable Object */;
7230 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7231 val* var2 /* : nullable Object */;
7232 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7233 val* var3 /* : nullable Object */;
7234 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7235 val* var4 /* : Array[Object] */;
7236 val* var_listnode3 /* var listnode3: Array[Object] */;
7237 val* var5 /* : Array[Object] */;
7238 val* var_listnode5 /* var listnode5: Array[Object] */;
7239 val* var6 /* : Array[Object] */;
7240 val* var_listnode10 /* var listnode10: Array[Object] */;
7241 val* var_listnode4 /* var listnode4: nullable Object */;
7242 short int var7 /* : Bool */;
7243 int cltype;
7244 int idtype;
7245 val* var8 /* : Array[Object] */;
7246 val* var9 /* : Array[Object] */;
7247 val* var_listnode8 /* var listnode8: Array[Object] */;
7248 val* var_listnode7 /* var listnode7: nullable Object */;
7249 short int var10 /* : Bool */;
7250 int cltype11;
7251 int idtype12;
7252 val* var13 /* : Array[Object] */;
7253 val* var14 /* : ATopClassdef */;
7254 val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */;
7255 val* var_pclassdefnode9 /* var pclassdefnode9: nullable Object */;
7256 short int var15 /* : Bool */;
7257 int cltype16;
7258 int idtype17;
7259 val* var18 /* : null */;
7260 short int var19 /* : Bool */;
7261 val* var20 /* : null */;
7262 short int var21 /* : Bool */;
7263 val* var22 /* : AModule */;
7264 val* var23 /* : null */;
7265 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
7266 long var24 /* : Int */;
7267 long var25 /* : Int */;
7268 var_p = p0;
7269 var = NULL;
7270 var_node_list = var;
7271 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7272 var_nodearraylist3 = var1;
7273 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7274 var_nodearraylist2 = var2;
7275 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7276 var_nodearraylist1 = var3;
7277 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
7278 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
7279 CHECK_NEW_array__Array(var4);
7280 var_listnode3 = var4;
7281 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
7282 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
7283 CHECK_NEW_array__Array(var5);
7284 var_listnode5 = var5;
7285 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
7286 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
7287 CHECK_NEW_array__Array(var6);
7288 var_listnode10 = var6;
7289 var_listnode4 = var_nodearraylist1;
7290 /* <var_listnode4:nullable Object> isa Array[Object] */
7291 cltype = type_array__Arraykernel__Object.color;
7292 idtype = type_array__Arraykernel__Object.id;
7293 if(var_listnode4 == NULL) {
7294 var7 = 0;
7295 } else {
7296 if(cltype >= var_listnode4->type->table_size) {
7297 var7 = 0;
7298 } else {
7299 var7 = var_listnode4->type->type_table[cltype] == idtype;
7300 }
7301 }
7302 if (!var7) {
7303 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3721);
7304 exit(1);
7305 }
7306 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction52>*/;
7307 var_listnode5 = var8;
7308 var9 = NEW_array__Array(&type_array__Arraykernel__Object);
7309 ((void (*)(val*))(var9->class->vft[COLOR_array__Array__init]))(var9) /* init on <var9:Array[Object]>*/;
7310 CHECK_NEW_array__Array(var9);
7311 var_listnode8 = var9;
7312 var_listnode7 = var_nodearraylist2;
7313 /* <var_listnode7:nullable Object> isa Array[Object] */
7314 cltype11 = type_array__Arraykernel__Object.color;
7315 idtype12 = type_array__Arraykernel__Object.id;
7316 if(var_listnode7 == NULL) {
7317 var10 = 0;
7318 } else {
7319 if(cltype11 >= var_listnode7->type->table_size) {
7320 var10 = 0;
7321 } else {
7322 var10 = var_listnode7->type->type_table[cltype11] == idtype12;
7323 }
7324 }
7325 if (!var10) {
7326 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3725);
7327 exit(1);
7328 }
7329 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction52>*/;
7330 var_listnode8 = var13;
7331 var14 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
7332 ((void (*)(val*, val*))(var14->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var14, var_listnode8) /* init_atopclassdef on <var14:ATopClassdef>*/;
7333 CHECK_NEW_parser_nodes__ATopClassdef(var14);
7334 var_pclassdefnode6 = var14;
7335 var_pclassdefnode9 = var_nodearraylist3;
7336 /* <var_pclassdefnode9:nullable Object> isa nullable AClassdef */
7337 cltype16 = type_nullable_parser_nodes__AClassdef.color;
7338 idtype17 = type_nullable_parser_nodes__AClassdef.id;
7339 if(var_pclassdefnode9 == NULL) {
7340 var15 = 1;
7341 } else {
7342 if(cltype16 >= var_pclassdefnode9->type->table_size) {
7343 var15 = 0;
7344 } else {
7345 var15 = var_pclassdefnode9->type->type_table[cltype16] == idtype17;
7346 }
7347 }
7348 if (!var15) {
7349 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3731);
7350 exit(1);
7351 }
7352 var18 = NULL;
7353 if (var_pclassdefnode6 == NULL) {
7354 var19 = 0; /* is null */
7355 } else {
7356 var19 = 1; /* arg is null and recv is not */
7357 }
7358 if (var19){
7359 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode6) /* add on <var_listnode10:Array[Object]>*/;
7360 } else {
7361 }
7362 var20 = NULL;
7363 if (var_pclassdefnode9 == NULL) {
7364 var21 = 0; /* is null */
7365 } else {
7366 var21 = 1; /* arg is null and recv is not */
7367 }
7368 if (var21){
7369 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode9) /* add on <var_listnode10:Array[Object]>*/;
7370 } else {
7371 }
7372 var22 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
7373 var23 = NULL;
7374 ((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>*/;
7375 CHECK_NEW_parser_nodes__AModule(var22);
7376 var_pmodulenode1 = var22;
7377 var_node_list = var_pmodulenode1;
7378 var24 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction52> */
7379 var25 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var24) /* go_to on <var_p:Parser>*/;
7380 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var25, var_node_list) /* push on <var_p:Parser>*/;
7381 RET_LABEL:;
7382 }
7383 /* method parser#ReduceAction52#action for (self: Object, Parser) */
7384 void VIRTUAL_parser__ReduceAction52__action(val* self, val* p0) {
7385 parser__ReduceAction52__action(self, p0);
7386 RET_LABEL:;
7387 }
7388 /* method parser#ReduceAction53#action for (self: ReduceAction53, Parser) */
7389 void parser__ReduceAction53__action(val* self, val* p0) {
7390 val* var_p /* var p: Parser */;
7391 val* var /* : null */;
7392 val* var_node_list /* var node_list: nullable Object */;
7393 val* var1 /* : nullable Object */;
7394 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7395 val* var2 /* : nullable Object */;
7396 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7397 val* var3 /* : nullable Object */;
7398 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7399 val* var4 /* : nullable Object */;
7400 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7401 val* var5 /* : Array[Object] */;
7402 val* var_listnode3 /* var listnode3: Array[Object] */;
7403 val* var6 /* : Array[Object] */;
7404 val* var_listnode5 /* var listnode5: Array[Object] */;
7405 val* var7 /* : Array[Object] */;
7406 val* var_listnode10 /* var listnode10: Array[Object] */;
7407 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
7408 short int var8 /* : Bool */;
7409 int cltype;
7410 int idtype;
7411 val* var_listnode4 /* var listnode4: nullable Object */;
7412 short int var9 /* : Bool */;
7413 int cltype10;
7414 int idtype11;
7415 val* var12 /* : Array[Object] */;
7416 val* var13 /* : Array[Object] */;
7417 val* var_listnode8 /* var listnode8: Array[Object] */;
7418 val* var_listnode7 /* var listnode7: nullable Object */;
7419 short int var14 /* : Bool */;
7420 int cltype15;
7421 int idtype16;
7422 val* var17 /* : Array[Object] */;
7423 val* var18 /* : ATopClassdef */;
7424 val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */;
7425 val* var_pclassdefnode9 /* var pclassdefnode9: nullable Object */;
7426 short int var19 /* : Bool */;
7427 int cltype20;
7428 int idtype21;
7429 val* var22 /* : null */;
7430 short int var23 /* : Bool */;
7431 val* var24 /* : null */;
7432 short int var25 /* : Bool */;
7433 val* var26 /* : AModule */;
7434 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
7435 long var27 /* : Int */;
7436 long var28 /* : Int */;
7437 var_p = p0;
7438 var = NULL;
7439 var_node_list = var;
7440 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7441 var_nodearraylist4 = var1;
7442 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7443 var_nodearraylist3 = var2;
7444 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7445 var_nodearraylist2 = var3;
7446 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7447 var_nodearraylist1 = var4;
7448 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
7449 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
7450 CHECK_NEW_array__Array(var5);
7451 var_listnode3 = var5;
7452 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
7453 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
7454 CHECK_NEW_array__Array(var6);
7455 var_listnode5 = var6;
7456 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
7457 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
7458 CHECK_NEW_array__Array(var7);
7459 var_listnode10 = var7;
7460 var_pmoduledeclnode2 = var_nodearraylist1;
7461 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
7462 cltype = type_nullable_parser_nodes__AModuledecl.color;
7463 idtype = type_nullable_parser_nodes__AModuledecl.id;
7464 if(var_pmoduledeclnode2 == NULL) {
7465 var8 = 1;
7466 } else {
7467 if(cltype >= var_pmoduledeclnode2->type->table_size) {
7468 var8 = 0;
7469 } else {
7470 var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
7471 }
7472 }
7473 if (!var8) {
7474 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3761);
7475 exit(1);
7476 }
7477 var_listnode4 = var_nodearraylist2;
7478 /* <var_listnode4:nullable Object> isa Array[Object] */
7479 cltype10 = type_array__Arraykernel__Object.color;
7480 idtype11 = type_array__Arraykernel__Object.id;
7481 if(var_listnode4 == NULL) {
7482 var9 = 0;
7483 } else {
7484 if(cltype10 >= var_listnode4->type->table_size) {
7485 var9 = 0;
7486 } else {
7487 var9 = var_listnode4->type->type_table[cltype10] == idtype11;
7488 }
7489 }
7490 if (!var9) {
7491 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3763);
7492 exit(1);
7493 }
7494 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction53>*/;
7495 var_listnode5 = var12;
7496 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
7497 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
7498 CHECK_NEW_array__Array(var13);
7499 var_listnode8 = var13;
7500 var_listnode7 = var_nodearraylist3;
7501 /* <var_listnode7:nullable Object> isa Array[Object] */
7502 cltype15 = type_array__Arraykernel__Object.color;
7503 idtype16 = type_array__Arraykernel__Object.id;
7504 if(var_listnode7 == NULL) {
7505 var14 = 0;
7506 } else {
7507 if(cltype15 >= var_listnode7->type->table_size) {
7508 var14 = 0;
7509 } else {
7510 var14 = var_listnode7->type->type_table[cltype15] == idtype16;
7511 }
7512 }
7513 if (!var14) {
7514 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3767);
7515 exit(1);
7516 }
7517 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction53>*/;
7518 var_listnode8 = var17;
7519 var18 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
7520 ((void (*)(val*, val*))(var18->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var18, var_listnode8) /* init_atopclassdef on <var18:ATopClassdef>*/;
7521 CHECK_NEW_parser_nodes__ATopClassdef(var18);
7522 var_pclassdefnode6 = var18;
7523 var_pclassdefnode9 = var_nodearraylist4;
7524 /* <var_pclassdefnode9:nullable Object> isa nullable AClassdef */
7525 cltype20 = type_nullable_parser_nodes__AClassdef.color;
7526 idtype21 = type_nullable_parser_nodes__AClassdef.id;
7527 if(var_pclassdefnode9 == NULL) {
7528 var19 = 1;
7529 } else {
7530 if(cltype20 >= var_pclassdefnode9->type->table_size) {
7531 var19 = 0;
7532 } else {
7533 var19 = var_pclassdefnode9->type->type_table[cltype20] == idtype21;
7534 }
7535 }
7536 if (!var19) {
7537 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3773);
7538 exit(1);
7539 }
7540 var22 = NULL;
7541 if (var_pclassdefnode6 == NULL) {
7542 var23 = 0; /* is null */
7543 } else {
7544 var23 = 1; /* arg is null and recv is not */
7545 }
7546 if (var23){
7547 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode6) /* add on <var_listnode10:Array[Object]>*/;
7548 } else {
7549 }
7550 var24 = NULL;
7551 if (var_pclassdefnode9 == NULL) {
7552 var25 = 0; /* is null */
7553 } else {
7554 var25 = 1; /* arg is null and recv is not */
7555 }
7556 if (var25){
7557 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode9) /* add on <var_listnode10:Array[Object]>*/;
7558 } else {
7559 }
7560 var26 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
7561 ((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>*/;
7562 CHECK_NEW_parser_nodes__AModule(var26);
7563 var_pmodulenode1 = var26;
7564 var_node_list = var_pmodulenode1;
7565 var27 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction53> */
7566 var28 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var27) /* go_to on <var_p:Parser>*/;
7567 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var28, var_node_list) /* push on <var_p:Parser>*/;
7568 RET_LABEL:;
7569 }
7570 /* method parser#ReduceAction53#action for (self: Object, Parser) */
7571 void VIRTUAL_parser__ReduceAction53__action(val* self, val* p0) {
7572 parser__ReduceAction53__action(self, p0);
7573 RET_LABEL:;
7574 }
7575 /* method parser#ReduceAction54#action for (self: ReduceAction54, Parser) */
7576 void parser__ReduceAction54__action(val* self, val* p0) {
7577 val* var_p /* var p: Parser */;
7578 val* var /* : null */;
7579 val* var_node_list /* var node_list: nullable Object */;
7580 val* var1 /* : nullable Object */;
7581 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7582 val* var2 /* : nullable Object */;
7583 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7584 val* var3 /* : nullable Object */;
7585 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7586 val* var4 /* : nullable Object */;
7587 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7588 val* var5 /* : Array[Object] */;
7589 val* var_listnode4 /* var listnode4: Array[Object] */;
7590 val* var6 /* : Array[Object] */;
7591 val* var_listnode6 /* var listnode6: Array[Object] */;
7592 val* var7 /* : Array[Object] */;
7593 val* var_listnode11 /* var listnode11: Array[Object] */;
7594 val* var_listnode3 /* var listnode3: nullable Object */;
7595 short int var8 /* : Bool */;
7596 int cltype;
7597 int idtype;
7598 val* var9 /* : Array[Object] */;
7599 val* var_listnode5 /* var listnode5: nullable Object */;
7600 short int var10 /* : Bool */;
7601 int cltype11;
7602 int idtype12;
7603 val* var13 /* : Array[Object] */;
7604 val* var14 /* : Array[Object] */;
7605 val* var_listnode9 /* var listnode9: Array[Object] */;
7606 val* var_listnode8 /* var listnode8: nullable Object */;
7607 short int var15 /* : Bool */;
7608 int cltype16;
7609 int idtype17;
7610 val* var18 /* : Array[Object] */;
7611 val* var19 /* : ATopClassdef */;
7612 val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */;
7613 val* var_pclassdefnode10 /* var pclassdefnode10: nullable Object */;
7614 short int var20 /* : Bool */;
7615 int cltype21;
7616 int idtype22;
7617 val* var23 /* : null */;
7618 short int var24 /* : Bool */;
7619 val* var25 /* : null */;
7620 short int var26 /* : Bool */;
7621 val* var27 /* : AModule */;
7622 val* var28 /* : null */;
7623 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
7624 long var29 /* : Int */;
7625 long var30 /* : Int */;
7626 var_p = p0;
7627 var = NULL;
7628 var_node_list = var;
7629 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7630 var_nodearraylist4 = var1;
7631 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7632 var_nodearraylist3 = var2;
7633 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7634 var_nodearraylist2 = var3;
7635 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7636 var_nodearraylist1 = var4;
7637 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
7638 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
7639 CHECK_NEW_array__Array(var5);
7640 var_listnode4 = var5;
7641 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
7642 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
7643 CHECK_NEW_array__Array(var6);
7644 var_listnode6 = var6;
7645 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
7646 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
7647 CHECK_NEW_array__Array(var7);
7648 var_listnode11 = var7;
7649 var_listnode3 = var_nodearraylist1;
7650 /* <var_listnode3:nullable Object> isa Array[Object] */
7651 cltype = type_array__Arraykernel__Object.color;
7652 idtype = type_array__Arraykernel__Object.id;
7653 if(var_listnode3 == NULL) {
7654 var8 = 0;
7655 } else {
7656 if(cltype >= var_listnode3->type->table_size) {
7657 var8 = 0;
7658 } else {
7659 var8 = var_listnode3->type->type_table[cltype] == idtype;
7660 }
7661 }
7662 if (!var8) {
7663 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3803);
7664 exit(1);
7665 }
7666 var9 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction54>*/;
7667 var_listnode4 = var9;
7668 var_listnode5 = var_nodearraylist2;
7669 /* <var_listnode5:nullable Object> isa Array[Object] */
7670 cltype11 = type_array__Arraykernel__Object.color;
7671 idtype12 = type_array__Arraykernel__Object.id;
7672 if(var_listnode5 == NULL) {
7673 var10 = 0;
7674 } else {
7675 if(cltype11 >= var_listnode5->type->table_size) {
7676 var10 = 0;
7677 } else {
7678 var10 = var_listnode5->type->type_table[cltype11] == idtype12;
7679 }
7680 }
7681 if (!var10) {
7682 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3806);
7683 exit(1);
7684 }
7685 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction54>*/;
7686 var_listnode6 = var13;
7687 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
7688 ((void (*)(val*))(var14->class->vft[COLOR_array__Array__init]))(var14) /* init on <var14:Array[Object]>*/;
7689 CHECK_NEW_array__Array(var14);
7690 var_listnode9 = var14;
7691 var_listnode8 = var_nodearraylist3;
7692 /* <var_listnode8:nullable Object> isa Array[Object] */
7693 cltype16 = type_array__Arraykernel__Object.color;
7694 idtype17 = type_array__Arraykernel__Object.id;
7695 if(var_listnode8 == NULL) {
7696 var15 = 0;
7697 } else {
7698 if(cltype16 >= var_listnode8->type->table_size) {
7699 var15 = 0;
7700 } else {
7701 var15 = var_listnode8->type->type_table[cltype16] == idtype17;
7702 }
7703 }
7704 if (!var15) {
7705 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3810);
7706 exit(1);
7707 }
7708 var18 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction54>*/;
7709 var_listnode9 = var18;
7710 var19 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
7711 ((void (*)(val*, val*))(var19->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var19, var_listnode9) /* init_atopclassdef on <var19:ATopClassdef>*/;
7712 CHECK_NEW_parser_nodes__ATopClassdef(var19);
7713 var_pclassdefnode7 = var19;
7714 var_pclassdefnode10 = var_nodearraylist4;
7715 /* <var_pclassdefnode10:nullable Object> isa nullable AClassdef */
7716 cltype21 = type_nullable_parser_nodes__AClassdef.color;
7717 idtype22 = type_nullable_parser_nodes__AClassdef.id;
7718 if(var_pclassdefnode10 == NULL) {
7719 var20 = 1;
7720 } else {
7721 if(cltype21 >= var_pclassdefnode10->type->table_size) {
7722 var20 = 0;
7723 } else {
7724 var20 = var_pclassdefnode10->type->type_table[cltype21] == idtype22;
7725 }
7726 }
7727 if (!var20) {
7728 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3816);
7729 exit(1);
7730 }
7731 var23 = NULL;
7732 if (var_pclassdefnode7 == NULL) {
7733 var24 = 0; /* is null */
7734 } else {
7735 var24 = 1; /* arg is null and recv is not */
7736 }
7737 if (var24){
7738 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode7) /* add on <var_listnode11:Array[Object]>*/;
7739 } else {
7740 }
7741 var25 = NULL;
7742 if (var_pclassdefnode10 == NULL) {
7743 var26 = 0; /* is null */
7744 } else {
7745 var26 = 1; /* arg is null and recv is not */
7746 }
7747 if (var26){
7748 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode10) /* add on <var_listnode11:Array[Object]>*/;
7749 } else {
7750 }
7751 var27 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
7752 var28 = NULL;
7753 ((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>*/;
7754 CHECK_NEW_parser_nodes__AModule(var27);
7755 var_pmodulenode1 = var27;
7756 var_node_list = var_pmodulenode1;
7757 var29 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction54> */
7758 var30 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var29) /* go_to on <var_p:Parser>*/;
7759 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var30, var_node_list) /* push on <var_p:Parser>*/;
7760 RET_LABEL:;
7761 }
7762 /* method parser#ReduceAction54#action for (self: Object, Parser) */
7763 void VIRTUAL_parser__ReduceAction54__action(val* self, val* p0) {
7764 parser__ReduceAction54__action(self, p0);
7765 RET_LABEL:;
7766 }
7767 /* method parser#ReduceAction55#action for (self: ReduceAction55, Parser) */
7768 void parser__ReduceAction55__action(val* self, val* p0) {
7769 val* var_p /* var p: Parser */;
7770 val* var /* : null */;
7771 val* var_node_list /* var node_list: nullable Object */;
7772 val* var1 /* : nullable Object */;
7773 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7774 val* var2 /* : nullable Object */;
7775 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7776 val* var3 /* : nullable Object */;
7777 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7778 val* var4 /* : nullable Object */;
7779 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7780 val* var5 /* : nullable Object */;
7781 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7782 val* var6 /* : Array[Object] */;
7783 val* var_listnode4 /* var listnode4: Array[Object] */;
7784 val* var7 /* : Array[Object] */;
7785 val* var_listnode6 /* var listnode6: Array[Object] */;
7786 val* var8 /* : Array[Object] */;
7787 val* var_listnode11 /* var listnode11: Array[Object] */;
7788 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
7789 short int var9 /* : Bool */;
7790 int cltype;
7791 int idtype;
7792 val* var_listnode3 /* var listnode3: nullable Object */;
7793 short int var10 /* : Bool */;
7794 int cltype11;
7795 int idtype12;
7796 val* var13 /* : Array[Object] */;
7797 val* var_listnode5 /* var listnode5: nullable Object */;
7798 short int var14 /* : Bool */;
7799 int cltype15;
7800 int idtype16;
7801 val* var17 /* : Array[Object] */;
7802 val* var18 /* : Array[Object] */;
7803 val* var_listnode9 /* var listnode9: Array[Object] */;
7804 val* var_listnode8 /* var listnode8: nullable Object */;
7805 short int var19 /* : Bool */;
7806 int cltype20;
7807 int idtype21;
7808 val* var22 /* : Array[Object] */;
7809 val* var23 /* : ATopClassdef */;
7810 val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */;
7811 val* var_pclassdefnode10 /* var pclassdefnode10: nullable Object */;
7812 short int var24 /* : Bool */;
7813 int cltype25;
7814 int idtype26;
7815 val* var27 /* : null */;
7816 short int var28 /* : Bool */;
7817 val* var29 /* : null */;
7818 short int var30 /* : Bool */;
7819 val* var31 /* : AModule */;
7820 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
7821 long var32 /* : Int */;
7822 long var33 /* : Int */;
7823 var_p = p0;
7824 var = NULL;
7825 var_node_list = var;
7826 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7827 var_nodearraylist5 = var1;
7828 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7829 var_nodearraylist4 = var2;
7830 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7831 var_nodearraylist3 = var3;
7832 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7833 var_nodearraylist2 = var4;
7834 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7835 var_nodearraylist1 = var5;
7836 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
7837 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
7838 CHECK_NEW_array__Array(var6);
7839 var_listnode4 = var6;
7840 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
7841 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
7842 CHECK_NEW_array__Array(var7);
7843 var_listnode6 = var7;
7844 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
7845 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
7846 CHECK_NEW_array__Array(var8);
7847 var_listnode11 = var8;
7848 var_pmoduledeclnode2 = var_nodearraylist1;
7849 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
7850 cltype = type_nullable_parser_nodes__AModuledecl.color;
7851 idtype = type_nullable_parser_nodes__AModuledecl.id;
7852 if(var_pmoduledeclnode2 == NULL) {
7853 var9 = 1;
7854 } else {
7855 if(cltype >= var_pmoduledeclnode2->type->table_size) {
7856 var9 = 0;
7857 } else {
7858 var9 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
7859 }
7860 }
7861 if (!var9) {
7862 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3847);
7863 exit(1);
7864 }
7865 var_listnode3 = var_nodearraylist2;
7866 /* <var_listnode3:nullable Object> isa Array[Object] */
7867 cltype11 = type_array__Arraykernel__Object.color;
7868 idtype12 = type_array__Arraykernel__Object.id;
7869 if(var_listnode3 == NULL) {
7870 var10 = 0;
7871 } else {
7872 if(cltype11 >= var_listnode3->type->table_size) {
7873 var10 = 0;
7874 } else {
7875 var10 = var_listnode3->type->type_table[cltype11] == idtype12;
7876 }
7877 }
7878 if (!var10) {
7879 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3849);
7880 exit(1);
7881 }
7882 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction55>*/;
7883 var_listnode4 = var13;
7884 var_listnode5 = var_nodearraylist3;
7885 /* <var_listnode5:nullable Object> isa Array[Object] */
7886 cltype15 = type_array__Arraykernel__Object.color;
7887 idtype16 = type_array__Arraykernel__Object.id;
7888 if(var_listnode5 == NULL) {
7889 var14 = 0;
7890 } else {
7891 if(cltype15 >= var_listnode5->type->table_size) {
7892 var14 = 0;
7893 } else {
7894 var14 = var_listnode5->type->type_table[cltype15] == idtype16;
7895 }
7896 }
7897 if (!var14) {
7898 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3852);
7899 exit(1);
7900 }
7901 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction55>*/;
7902 var_listnode6 = var17;
7903 var18 = NEW_array__Array(&type_array__Arraykernel__Object);
7904 ((void (*)(val*))(var18->class->vft[COLOR_array__Array__init]))(var18) /* init on <var18:Array[Object]>*/;
7905 CHECK_NEW_array__Array(var18);
7906 var_listnode9 = var18;
7907 var_listnode8 = var_nodearraylist4;
7908 /* <var_listnode8:nullable Object> isa Array[Object] */
7909 cltype20 = type_array__Arraykernel__Object.color;
7910 idtype21 = type_array__Arraykernel__Object.id;
7911 if(var_listnode8 == NULL) {
7912 var19 = 0;
7913 } else {
7914 if(cltype20 >= var_listnode8->type->table_size) {
7915 var19 = 0;
7916 } else {
7917 var19 = var_listnode8->type->type_table[cltype20] == idtype21;
7918 }
7919 }
7920 if (!var19) {
7921 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3856);
7922 exit(1);
7923 }
7924 var22 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction55>*/;
7925 var_listnode9 = var22;
7926 var23 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
7927 ((void (*)(val*, val*))(var23->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var23, var_listnode9) /* init_atopclassdef on <var23:ATopClassdef>*/;
7928 CHECK_NEW_parser_nodes__ATopClassdef(var23);
7929 var_pclassdefnode7 = var23;
7930 var_pclassdefnode10 = var_nodearraylist5;
7931 /* <var_pclassdefnode10:nullable Object> isa nullable AClassdef */
7932 cltype25 = type_nullable_parser_nodes__AClassdef.color;
7933 idtype26 = type_nullable_parser_nodes__AClassdef.id;
7934 if(var_pclassdefnode10 == NULL) {
7935 var24 = 1;
7936 } else {
7937 if(cltype25 >= var_pclassdefnode10->type->table_size) {
7938 var24 = 0;
7939 } else {
7940 var24 = var_pclassdefnode10->type->type_table[cltype25] == idtype26;
7941 }
7942 }
7943 if (!var24) {
7944 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3862);
7945 exit(1);
7946 }
7947 var27 = NULL;
7948 if (var_pclassdefnode7 == NULL) {
7949 var28 = 0; /* is null */
7950 } else {
7951 var28 = 1; /* arg is null and recv is not */
7952 }
7953 if (var28){
7954 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode7) /* add on <var_listnode11:Array[Object]>*/;
7955 } else {
7956 }
7957 var29 = NULL;
7958 if (var_pclassdefnode10 == NULL) {
7959 var30 = 0; /* is null */
7960 } else {
7961 var30 = 1; /* arg is null and recv is not */
7962 }
7963 if (var30){
7964 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode10) /* add on <var_listnode11:Array[Object]>*/;
7965 } else {
7966 }
7967 var31 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
7968 ((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>*/;
7969 CHECK_NEW_parser_nodes__AModule(var31);
7970 var_pmodulenode1 = var31;
7971 var_node_list = var_pmodulenode1;
7972 var32 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction55> */
7973 var33 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var32) /* go_to on <var_p:Parser>*/;
7974 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var33, var_node_list) /* push on <var_p:Parser>*/;
7975 RET_LABEL:;
7976 }
7977 /* method parser#ReduceAction55#action for (self: Object, Parser) */
7978 void VIRTUAL_parser__ReduceAction55__action(val* self, val* p0) {
7979 parser__ReduceAction55__action(self, p0);
7980 RET_LABEL:;
7981 }
7982 /* method parser#ReduceAction56#action for (self: ReduceAction56, Parser) */
7983 void parser__ReduceAction56__action(val* self, val* p0) {
7984 val* var_p /* var p: Parser */;
7985 val* var /* : null */;
7986 val* var_node_list /* var node_list: nullable Object */;
7987 val* var1 /* : nullable Object */;
7988 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7989 val* var2 /* : nullable Object */;
7990 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7991 val* var3 /* : nullable Object */;
7992 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7993 val* var4 /* : Array[Object] */;
7994 val* var_listnode3 /* var listnode3: Array[Object] */;
7995 val* var5 /* : Array[Object] */;
7996 val* var_listnode4 /* var listnode4: Array[Object] */;
7997 val* var6 /* : Array[Object] */;
7998 val* var_listnode10 /* var listnode10: Array[Object] */;
7999 val* var_listnode5 /* var listnode5: nullable Object */;
8000 short int var7 /* : Bool */;
8001 int cltype;
8002 int idtype;
8003 val* var8 /* : Array[Object] */;
8004 val* var_listnode8 /* var listnode8: Array[Object] */;
8005 val* var_listnode7 /* var listnode7: nullable Object */;
8006 short int var9 /* : Bool */;
8007 int cltype10;
8008 int idtype11;
8009 val* var12 /* : Array[Object] */;
8010 val* var13 /* : ATopClassdef */;
8011 val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */;
8012 val* var_pclassdefnode9 /* var pclassdefnode9: nullable Object */;
8013 short int var14 /* : Bool */;
8014 int cltype15;
8015 int idtype16;
8016 val* var17 /* : Array[Object] */;
8017 val* var18 /* : null */;
8018 short int var19 /* : Bool */;
8019 val* var20 /* : null */;
8020 short int var21 /* : Bool */;
8021 val* var22 /* : AModule */;
8022 val* var23 /* : null */;
8023 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
8024 long var24 /* : Int */;
8025 long var25 /* : Int */;
8026 var_p = p0;
8027 var = NULL;
8028 var_node_list = var;
8029 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8030 var_nodearraylist3 = var1;
8031 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8032 var_nodearraylist2 = var2;
8033 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8034 var_nodearraylist1 = var3;
8035 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
8036 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
8037 CHECK_NEW_array__Array(var4);
8038 var_listnode3 = var4;
8039 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
8040 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
8041 CHECK_NEW_array__Array(var5);
8042 var_listnode4 = var5;
8043 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
8044 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
8045 CHECK_NEW_array__Array(var6);
8046 var_listnode10 = var6;
8047 var_listnode5 = var_nodearraylist1;
8048 /* <var_listnode5:nullable Object> isa Array[Object] */
8049 cltype = type_array__Arraykernel__Object.color;
8050 idtype = type_array__Arraykernel__Object.id;
8051 if(var_listnode5 == NULL) {
8052 var7 = 0;
8053 } else {
8054 if(cltype >= var_listnode5->type->table_size) {
8055 var7 = 0;
8056 } else {
8057 var7 = var_listnode5->type->type_table[cltype] == idtype;
8058 }
8059 }
8060 if (!var7) {
8061 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3891);
8062 exit(1);
8063 }
8064 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
8065 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
8066 CHECK_NEW_array__Array(var8);
8067 var_listnode8 = var8;
8068 var_listnode7 = var_nodearraylist2;
8069 /* <var_listnode7:nullable Object> isa Array[Object] */
8070 cltype10 = type_array__Arraykernel__Object.color;
8071 idtype11 = type_array__Arraykernel__Object.id;
8072 if(var_listnode7 == NULL) {
8073 var9 = 0;
8074 } else {
8075 if(cltype10 >= var_listnode7->type->table_size) {
8076 var9 = 0;
8077 } else {
8078 var9 = var_listnode7->type->type_table[cltype10] == idtype11;
8079 }
8080 }
8081 if (!var9) {
8082 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3894);
8083 exit(1);
8084 }
8085 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction56>*/;
8086 var_listnode8 = var12;
8087 var13 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
8088 ((void (*)(val*, val*))(var13->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var13, var_listnode8) /* init_atopclassdef on <var13:ATopClassdef>*/;
8089 CHECK_NEW_parser_nodes__ATopClassdef(var13);
8090 var_pclassdefnode6 = var13;
8091 var_pclassdefnode9 = var_nodearraylist3;
8092 /* <var_pclassdefnode9:nullable Object> isa nullable AClassdef */
8093 cltype15 = type_nullable_parser_nodes__AClassdef.color;
8094 idtype16 = type_nullable_parser_nodes__AClassdef.id;
8095 if(var_pclassdefnode9 == NULL) {
8096 var14 = 1;
8097 } else {
8098 if(cltype15 >= var_pclassdefnode9->type->table_size) {
8099 var14 = 0;
8100 } else {
8101 var14 = var_pclassdefnode9->type->type_table[cltype15] == idtype16;
8102 }
8103 }
8104 if (!var14) {
8105 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3900);
8106 exit(1);
8107 }
8108 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode5) /* concat on <self:ReduceAction56>*/;
8109 var_listnode10 = var17;
8110 var18 = NULL;
8111 if (var_pclassdefnode6 == NULL) {
8112 var19 = 0; /* is null */
8113 } else {
8114 var19 = 1; /* arg is null and recv is not */
8115 }
8116 if (var19){
8117 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode6) /* add on <var_listnode10:Array[Object]>*/;
8118 } else {
8119 }
8120 var20 = NULL;
8121 if (var_pclassdefnode9 == NULL) {
8122 var21 = 0; /* is null */
8123 } else {
8124 var21 = 1; /* arg is null and recv is not */
8125 }
8126 if (var21){
8127 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode9) /* add on <var_listnode10:Array[Object]>*/;
8128 } else {
8129 }
8130 var22 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
8131 var23 = NULL;
8132 ((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>*/;
8133 CHECK_NEW_parser_nodes__AModule(var22);
8134 var_pmodulenode1 = var22;
8135 var_node_list = var_pmodulenode1;
8136 var24 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction56> */
8137 var25 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var24) /* go_to on <var_p:Parser>*/;
8138 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var25, var_node_list) /* push on <var_p:Parser>*/;
8139 RET_LABEL:;
8140 }
8141 /* method parser#ReduceAction56#action for (self: Object, Parser) */
8142 void VIRTUAL_parser__ReduceAction56__action(val* self, val* p0) {
8143 parser__ReduceAction56__action(self, p0);
8144 RET_LABEL:;
8145 }
8146 /* method parser#ReduceAction57#action for (self: ReduceAction57, Parser) */
8147 void parser__ReduceAction57__action(val* self, val* p0) {
8148 val* var_p /* var p: Parser */;
8149 val* var /* : null */;
8150 val* var_node_list /* var node_list: nullable Object */;
8151 val* var1 /* : nullable Object */;
8152 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8153 val* var2 /* : nullable Object */;
8154 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8155 val* var3 /* : nullable Object */;
8156 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8157 val* var4 /* : nullable Object */;
8158 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8159 val* var5 /* : Array[Object] */;
8160 val* var_listnode3 /* var listnode3: Array[Object] */;
8161 val* var6 /* : Array[Object] */;
8162 val* var_listnode4 /* var listnode4: Array[Object] */;
8163 val* var7 /* : Array[Object] */;
8164 val* var_listnode10 /* var listnode10: Array[Object] */;
8165 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
8166 short int var8 /* : Bool */;
8167 int cltype;
8168 int idtype;
8169 val* var_listnode5 /* var listnode5: nullable Object */;
8170 short int var9 /* : Bool */;
8171 int cltype10;
8172 int idtype11;
8173 val* var12 /* : Array[Object] */;
8174 val* var_listnode8 /* var listnode8: Array[Object] */;
8175 val* var_listnode7 /* var listnode7: nullable Object */;
8176 short int var13 /* : Bool */;
8177 int cltype14;
8178 int idtype15;
8179 val* var16 /* : Array[Object] */;
8180 val* var17 /* : ATopClassdef */;
8181 val* var_pclassdefnode6 /* var pclassdefnode6: nullable ATopClassdef */;
8182 val* var_pclassdefnode9 /* var pclassdefnode9: nullable Object */;
8183 short int var18 /* : Bool */;
8184 int cltype19;
8185 int idtype20;
8186 val* var21 /* : Array[Object] */;
8187 val* var22 /* : null */;
8188 short int var23 /* : Bool */;
8189 val* var24 /* : null */;
8190 short int var25 /* : Bool */;
8191 val* var26 /* : AModule */;
8192 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
8193 long var27 /* : Int */;
8194 long var28 /* : Int */;
8195 var_p = p0;
8196 var = NULL;
8197 var_node_list = var;
8198 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8199 var_nodearraylist4 = var1;
8200 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8201 var_nodearraylist3 = var2;
8202 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8203 var_nodearraylist2 = var3;
8204 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8205 var_nodearraylist1 = var4;
8206 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
8207 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
8208 CHECK_NEW_array__Array(var5);
8209 var_listnode3 = var5;
8210 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
8211 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
8212 CHECK_NEW_array__Array(var6);
8213 var_listnode4 = var6;
8214 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
8215 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
8216 CHECK_NEW_array__Array(var7);
8217 var_listnode10 = var7;
8218 var_pmoduledeclnode2 = var_nodearraylist1;
8219 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
8220 cltype = type_nullable_parser_nodes__AModuledecl.color;
8221 idtype = type_nullable_parser_nodes__AModuledecl.id;
8222 if(var_pmoduledeclnode2 == NULL) {
8223 var8 = 1;
8224 } else {
8225 if(cltype >= var_pmoduledeclnode2->type->table_size) {
8226 var8 = 0;
8227 } else {
8228 var8 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
8229 }
8230 }
8231 if (!var8) {
8232 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3931);
8233 exit(1);
8234 }
8235 var_listnode5 = var_nodearraylist2;
8236 /* <var_listnode5:nullable Object> isa Array[Object] */
8237 cltype10 = type_array__Arraykernel__Object.color;
8238 idtype11 = type_array__Arraykernel__Object.id;
8239 if(var_listnode5 == NULL) {
8240 var9 = 0;
8241 } else {
8242 if(cltype10 >= var_listnode5->type->table_size) {
8243 var9 = 0;
8244 } else {
8245 var9 = var_listnode5->type->type_table[cltype10] == idtype11;
8246 }
8247 }
8248 if (!var9) {
8249 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3933);
8250 exit(1);
8251 }
8252 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
8253 ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on <var12:Array[Object]>*/;
8254 CHECK_NEW_array__Array(var12);
8255 var_listnode8 = var12;
8256 var_listnode7 = var_nodearraylist3;
8257 /* <var_listnode7:nullable Object> isa Array[Object] */
8258 cltype14 = type_array__Arraykernel__Object.color;
8259 idtype15 = type_array__Arraykernel__Object.id;
8260 if(var_listnode7 == NULL) {
8261 var13 = 0;
8262 } else {
8263 if(cltype14 >= var_listnode7->type->table_size) {
8264 var13 = 0;
8265 } else {
8266 var13 = var_listnode7->type->type_table[cltype14] == idtype15;
8267 }
8268 }
8269 if (!var13) {
8270 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3936);
8271 exit(1);
8272 }
8273 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction57>*/;
8274 var_listnode8 = var16;
8275 var17 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
8276 ((void (*)(val*, val*))(var17->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var17, var_listnode8) /* init_atopclassdef on <var17:ATopClassdef>*/;
8277 CHECK_NEW_parser_nodes__ATopClassdef(var17);
8278 var_pclassdefnode6 = var17;
8279 var_pclassdefnode9 = var_nodearraylist4;
8280 /* <var_pclassdefnode9:nullable Object> isa nullable AClassdef */
8281 cltype19 = type_nullable_parser_nodes__AClassdef.color;
8282 idtype20 = type_nullable_parser_nodes__AClassdef.id;
8283 if(var_pclassdefnode9 == NULL) {
8284 var18 = 1;
8285 } else {
8286 if(cltype19 >= var_pclassdefnode9->type->table_size) {
8287 var18 = 0;
8288 } else {
8289 var18 = var_pclassdefnode9->type->type_table[cltype19] == idtype20;
8290 }
8291 }
8292 if (!var18) {
8293 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3942);
8294 exit(1);
8295 }
8296 var21 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode5) /* concat on <self:ReduceAction57>*/;
8297 var_listnode10 = var21;
8298 var22 = NULL;
8299 if (var_pclassdefnode6 == NULL) {
8300 var23 = 0; /* is null */
8301 } else {
8302 var23 = 1; /* arg is null and recv is not */
8303 }
8304 if (var23){
8305 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode6) /* add on <var_listnode10:Array[Object]>*/;
8306 } else {
8307 }
8308 var24 = NULL;
8309 if (var_pclassdefnode9 == NULL) {
8310 var25 = 0; /* is null */
8311 } else {
8312 var25 = 1; /* arg is null and recv is not */
8313 }
8314 if (var25){
8315 ((void (*)(val*, val*))(var_listnode10->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode10, var_pclassdefnode9) /* add on <var_listnode10:Array[Object]>*/;
8316 } else {
8317 }
8318 var26 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
8319 ((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>*/;
8320 CHECK_NEW_parser_nodes__AModule(var26);
8321 var_pmodulenode1 = var26;
8322 var_node_list = var_pmodulenode1;
8323 var27 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction57> */
8324 var28 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var27) /* go_to on <var_p:Parser>*/;
8325 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var28, var_node_list) /* push on <var_p:Parser>*/;
8326 RET_LABEL:;
8327 }
8328 /* method parser#ReduceAction57#action for (self: Object, Parser) */
8329 void VIRTUAL_parser__ReduceAction57__action(val* self, val* p0) {
8330 parser__ReduceAction57__action(self, p0);
8331 RET_LABEL:;
8332 }
8333 /* method parser#ReduceAction58#action for (self: ReduceAction58, Parser) */
8334 void parser__ReduceAction58__action(val* self, val* p0) {
8335 val* var_p /* var p: Parser */;
8336 val* var /* : null */;
8337 val* var_node_list /* var node_list: nullable Object */;
8338 val* var1 /* : nullable Object */;
8339 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8340 val* var2 /* : nullable Object */;
8341 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8342 val* var3 /* : nullable Object */;
8343 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8344 val* var4 /* : nullable Object */;
8345 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8346 val* var5 /* : Array[Object] */;
8347 val* var_listnode4 /* var listnode4: Array[Object] */;
8348 val* var6 /* : Array[Object] */;
8349 val* var_listnode5 /* var listnode5: Array[Object] */;
8350 val* var7 /* : Array[Object] */;
8351 val* var_listnode11 /* var listnode11: Array[Object] */;
8352 val* var_listnode3 /* var listnode3: nullable Object */;
8353 short int var8 /* : Bool */;
8354 int cltype;
8355 int idtype;
8356 val* var9 /* : Array[Object] */;
8357 val* var_listnode6 /* var listnode6: nullable Object */;
8358 short int var10 /* : Bool */;
8359 int cltype11;
8360 int idtype12;
8361 val* var13 /* : Array[Object] */;
8362 val* var_listnode9 /* var listnode9: Array[Object] */;
8363 val* var_listnode8 /* var listnode8: nullable Object */;
8364 short int var14 /* : Bool */;
8365 int cltype15;
8366 int idtype16;
8367 val* var17 /* : Array[Object] */;
8368 val* var18 /* : ATopClassdef */;
8369 val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */;
8370 val* var_pclassdefnode10 /* var pclassdefnode10: nullable Object */;
8371 short int var19 /* : Bool */;
8372 int cltype20;
8373 int idtype21;
8374 val* var22 /* : Array[Object] */;
8375 val* var23 /* : null */;
8376 short int var24 /* : Bool */;
8377 val* var25 /* : null */;
8378 short int var26 /* : Bool */;
8379 val* var27 /* : AModule */;
8380 val* var28 /* : null */;
8381 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
8382 long var29 /* : Int */;
8383 long var30 /* : Int */;
8384 var_p = p0;
8385 var = NULL;
8386 var_node_list = var;
8387 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8388 var_nodearraylist4 = var1;
8389 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8390 var_nodearraylist3 = var2;
8391 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8392 var_nodearraylist2 = var3;
8393 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8394 var_nodearraylist1 = var4;
8395 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
8396 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
8397 CHECK_NEW_array__Array(var5);
8398 var_listnode4 = var5;
8399 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
8400 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
8401 CHECK_NEW_array__Array(var6);
8402 var_listnode5 = var6;
8403 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
8404 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
8405 CHECK_NEW_array__Array(var7);
8406 var_listnode11 = var7;
8407 var_listnode3 = var_nodearraylist1;
8408 /* <var_listnode3:nullable Object> isa Array[Object] */
8409 cltype = type_array__Arraykernel__Object.color;
8410 idtype = type_array__Arraykernel__Object.id;
8411 if(var_listnode3 == NULL) {
8412 var8 = 0;
8413 } else {
8414 if(cltype >= var_listnode3->type->table_size) {
8415 var8 = 0;
8416 } else {
8417 var8 = var_listnode3->type->type_table[cltype] == idtype;
8418 }
8419 }
8420 if (!var8) {
8421 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3973);
8422 exit(1);
8423 }
8424 var9 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction58>*/;
8425 var_listnode4 = var9;
8426 var_listnode6 = var_nodearraylist2;
8427 /* <var_listnode6:nullable Object> isa Array[Object] */
8428 cltype11 = type_array__Arraykernel__Object.color;
8429 idtype12 = type_array__Arraykernel__Object.id;
8430 if(var_listnode6 == NULL) {
8431 var10 = 0;
8432 } else {
8433 if(cltype11 >= var_listnode6->type->table_size) {
8434 var10 = 0;
8435 } else {
8436 var10 = var_listnode6->type->type_table[cltype11] == idtype12;
8437 }
8438 }
8439 if (!var10) {
8440 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3976);
8441 exit(1);
8442 }
8443 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
8444 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
8445 CHECK_NEW_array__Array(var13);
8446 var_listnode9 = var13;
8447 var_listnode8 = var_nodearraylist3;
8448 /* <var_listnode8:nullable Object> isa Array[Object] */
8449 cltype15 = type_array__Arraykernel__Object.color;
8450 idtype16 = type_array__Arraykernel__Object.id;
8451 if(var_listnode8 == NULL) {
8452 var14 = 0;
8453 } else {
8454 if(cltype15 >= var_listnode8->type->table_size) {
8455 var14 = 0;
8456 } else {
8457 var14 = var_listnode8->type->type_table[cltype15] == idtype16;
8458 }
8459 }
8460 if (!var14) {
8461 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3979);
8462 exit(1);
8463 }
8464 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction58>*/;
8465 var_listnode9 = var17;
8466 var18 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
8467 ((void (*)(val*, val*))(var18->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var18, var_listnode9) /* init_atopclassdef on <var18:ATopClassdef>*/;
8468 CHECK_NEW_parser_nodes__ATopClassdef(var18);
8469 var_pclassdefnode7 = var18;
8470 var_pclassdefnode10 = var_nodearraylist4;
8471 /* <var_pclassdefnode10:nullable Object> isa nullable AClassdef */
8472 cltype20 = type_nullable_parser_nodes__AClassdef.color;
8473 idtype21 = type_nullable_parser_nodes__AClassdef.id;
8474 if(var_pclassdefnode10 == NULL) {
8475 var19 = 1;
8476 } else {
8477 if(cltype20 >= var_pclassdefnode10->type->table_size) {
8478 var19 = 0;
8479 } else {
8480 var19 = var_pclassdefnode10->type->type_table[cltype20] == idtype21;
8481 }
8482 }
8483 if (!var19) {
8484 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 3985);
8485 exit(1);
8486 }
8487 var22 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode11, var_listnode6) /* concat on <self:ReduceAction58>*/;
8488 var_listnode11 = var22;
8489 var23 = NULL;
8490 if (var_pclassdefnode7 == NULL) {
8491 var24 = 0; /* is null */
8492 } else {
8493 var24 = 1; /* arg is null and recv is not */
8494 }
8495 if (var24){
8496 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode7) /* add on <var_listnode11:Array[Object]>*/;
8497 } else {
8498 }
8499 var25 = NULL;
8500 if (var_pclassdefnode10 == NULL) {
8501 var26 = 0; /* is null */
8502 } else {
8503 var26 = 1; /* arg is null and recv is not */
8504 }
8505 if (var26){
8506 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode10) /* add on <var_listnode11:Array[Object]>*/;
8507 } else {
8508 }
8509 var27 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
8510 var28 = NULL;
8511 ((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>*/;
8512 CHECK_NEW_parser_nodes__AModule(var27);
8513 var_pmodulenode1 = var27;
8514 var_node_list = var_pmodulenode1;
8515 var29 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction58> */
8516 var30 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var29) /* go_to on <var_p:Parser>*/;
8517 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var30, var_node_list) /* push on <var_p:Parser>*/;
8518 RET_LABEL:;
8519 }
8520 /* method parser#ReduceAction58#action for (self: Object, Parser) */
8521 void VIRTUAL_parser__ReduceAction58__action(val* self, val* p0) {
8522 parser__ReduceAction58__action(self, p0);
8523 RET_LABEL:;
8524 }
8525 /* method parser#ReduceAction59#action for (self: ReduceAction59, Parser) */
8526 void parser__ReduceAction59__action(val* self, val* p0) {
8527 val* var_p /* var p: Parser */;
8528 val* var /* : null */;
8529 val* var_node_list /* var node_list: nullable Object */;
8530 val* var1 /* : nullable Object */;
8531 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
8532 val* var2 /* : nullable Object */;
8533 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8534 val* var3 /* : nullable Object */;
8535 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8536 val* var4 /* : nullable Object */;
8537 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8538 val* var5 /* : nullable Object */;
8539 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8540 val* var6 /* : Array[Object] */;
8541 val* var_listnode4 /* var listnode4: Array[Object] */;
8542 val* var7 /* : Array[Object] */;
8543 val* var_listnode5 /* var listnode5: Array[Object] */;
8544 val* var8 /* : Array[Object] */;
8545 val* var_listnode11 /* var listnode11: Array[Object] */;
8546 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
8547 short int var9 /* : Bool */;
8548 int cltype;
8549 int idtype;
8550 val* var_listnode3 /* var listnode3: nullable Object */;
8551 short int var10 /* : Bool */;
8552 int cltype11;
8553 int idtype12;
8554 val* var13 /* : Array[Object] */;
8555 val* var_listnode6 /* var listnode6: nullable Object */;
8556 short int var14 /* : Bool */;
8557 int cltype15;
8558 int idtype16;
8559 val* var17 /* : Array[Object] */;
8560 val* var_listnode9 /* var listnode9: Array[Object] */;
8561 val* var_listnode8 /* var listnode8: nullable Object */;
8562 short int var18 /* : Bool */;
8563 int cltype19;
8564 int idtype20;
8565 val* var21 /* : Array[Object] */;
8566 val* var22 /* : ATopClassdef */;
8567 val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */;
8568 val* var_pclassdefnode10 /* var pclassdefnode10: nullable Object */;
8569 short int var23 /* : Bool */;
8570 int cltype24;
8571 int idtype25;
8572 val* var26 /* : Array[Object] */;
8573 val* var27 /* : null */;
8574 short int var28 /* : Bool */;
8575 val* var29 /* : null */;
8576 short int var30 /* : Bool */;
8577 val* var31 /* : AModule */;
8578 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
8579 long var32 /* : Int */;
8580 long var33 /* : Int */;
8581 var_p = p0;
8582 var = NULL;
8583 var_node_list = var;
8584 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8585 var_nodearraylist5 = var1;
8586 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8587 var_nodearraylist4 = var2;
8588 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8589 var_nodearraylist3 = var3;
8590 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8591 var_nodearraylist2 = var4;
8592 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8593 var_nodearraylist1 = var5;
8594 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
8595 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
8596 CHECK_NEW_array__Array(var6);
8597 var_listnode4 = var6;
8598 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
8599 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
8600 CHECK_NEW_array__Array(var7);
8601 var_listnode5 = var7;
8602 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
8603 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
8604 CHECK_NEW_array__Array(var8);
8605 var_listnode11 = var8;
8606 var_pmoduledeclnode2 = var_nodearraylist1;
8607 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
8608 cltype = type_nullable_parser_nodes__AModuledecl.color;
8609 idtype = type_nullable_parser_nodes__AModuledecl.id;
8610 if(var_pmoduledeclnode2 == NULL) {
8611 var9 = 1;
8612 } else {
8613 if(cltype >= var_pmoduledeclnode2->type->table_size) {
8614 var9 = 0;
8615 } else {
8616 var9 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
8617 }
8618 }
8619 if (!var9) {
8620 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4017);
8621 exit(1);
8622 }
8623 var_listnode3 = var_nodearraylist2;
8624 /* <var_listnode3:nullable Object> isa Array[Object] */
8625 cltype11 = type_array__Arraykernel__Object.color;
8626 idtype12 = type_array__Arraykernel__Object.id;
8627 if(var_listnode3 == NULL) {
8628 var10 = 0;
8629 } else {
8630 if(cltype11 >= var_listnode3->type->table_size) {
8631 var10 = 0;
8632 } else {
8633 var10 = var_listnode3->type->type_table[cltype11] == idtype12;
8634 }
8635 }
8636 if (!var10) {
8637 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4019);
8638 exit(1);
8639 }
8640 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction59>*/;
8641 var_listnode4 = var13;
8642 var_listnode6 = var_nodearraylist3;
8643 /* <var_listnode6:nullable Object> isa Array[Object] */
8644 cltype15 = type_array__Arraykernel__Object.color;
8645 idtype16 = type_array__Arraykernel__Object.id;
8646 if(var_listnode6 == NULL) {
8647 var14 = 0;
8648 } else {
8649 if(cltype15 >= var_listnode6->type->table_size) {
8650 var14 = 0;
8651 } else {
8652 var14 = var_listnode6->type->type_table[cltype15] == idtype16;
8653 }
8654 }
8655 if (!var14) {
8656 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4022);
8657 exit(1);
8658 }
8659 var17 = NEW_array__Array(&type_array__Arraykernel__Object);
8660 ((void (*)(val*))(var17->class->vft[COLOR_array__Array__init]))(var17) /* init on <var17:Array[Object]>*/;
8661 CHECK_NEW_array__Array(var17);
8662 var_listnode9 = var17;
8663 var_listnode8 = var_nodearraylist4;
8664 /* <var_listnode8:nullable Object> isa Array[Object] */
8665 cltype19 = type_array__Arraykernel__Object.color;
8666 idtype20 = type_array__Arraykernel__Object.id;
8667 if(var_listnode8 == NULL) {
8668 var18 = 0;
8669 } else {
8670 if(cltype19 >= var_listnode8->type->table_size) {
8671 var18 = 0;
8672 } else {
8673 var18 = var_listnode8->type->type_table[cltype19] == idtype20;
8674 }
8675 }
8676 if (!var18) {
8677 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4025);
8678 exit(1);
8679 }
8680 var21 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction59>*/;
8681 var_listnode9 = var21;
8682 var22 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
8683 ((void (*)(val*, val*))(var22->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var22, var_listnode9) /* init_atopclassdef on <var22:ATopClassdef>*/;
8684 CHECK_NEW_parser_nodes__ATopClassdef(var22);
8685 var_pclassdefnode7 = var22;
8686 var_pclassdefnode10 = var_nodearraylist5;
8687 /* <var_pclassdefnode10:nullable Object> isa nullable AClassdef */
8688 cltype24 = type_nullable_parser_nodes__AClassdef.color;
8689 idtype25 = type_nullable_parser_nodes__AClassdef.id;
8690 if(var_pclassdefnode10 == NULL) {
8691 var23 = 1;
8692 } else {
8693 if(cltype24 >= var_pclassdefnode10->type->table_size) {
8694 var23 = 0;
8695 } else {
8696 var23 = var_pclassdefnode10->type->type_table[cltype24] == idtype25;
8697 }
8698 }
8699 if (!var23) {
8700 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4031);
8701 exit(1);
8702 }
8703 var26 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode11, var_listnode6) /* concat on <self:ReduceAction59>*/;
8704 var_listnode11 = var26;
8705 var27 = NULL;
8706 if (var_pclassdefnode7 == NULL) {
8707 var28 = 0; /* is null */
8708 } else {
8709 var28 = 1; /* arg is null and recv is not */
8710 }
8711 if (var28){
8712 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode7) /* add on <var_listnode11:Array[Object]>*/;
8713 } else {
8714 }
8715 var29 = NULL;
8716 if (var_pclassdefnode10 == NULL) {
8717 var30 = 0; /* is null */
8718 } else {
8719 var30 = 1; /* arg is null and recv is not */
8720 }
8721 if (var30){
8722 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode10) /* add on <var_listnode11:Array[Object]>*/;
8723 } else {
8724 }
8725 var31 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
8726 ((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>*/;
8727 CHECK_NEW_parser_nodes__AModule(var31);
8728 var_pmodulenode1 = var31;
8729 var_node_list = var_pmodulenode1;
8730 var32 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction59> */
8731 var33 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var32) /* go_to on <var_p:Parser>*/;
8732 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var33, var_node_list) /* push on <var_p:Parser>*/;
8733 RET_LABEL:;
8734 }
8735 /* method parser#ReduceAction59#action for (self: Object, Parser) */
8736 void VIRTUAL_parser__ReduceAction59__action(val* self, val* p0) {
8737 parser__ReduceAction59__action(self, p0);
8738 RET_LABEL:;
8739 }
8740 /* method parser#ReduceAction60#action for (self: ReduceAction60, Parser) */
8741 void parser__ReduceAction60__action(val* self, val* p0) {
8742 val* var_p /* var p: Parser */;
8743 val* var /* : null */;
8744 val* var_node_list /* var node_list: nullable Object */;
8745 val* var1 /* : nullable Object */;
8746 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8747 val* var2 /* : nullable Object */;
8748 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8749 val* var3 /* : nullable Object */;
8750 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8751 val* var4 /* : nullable Object */;
8752 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8753 val* var5 /* : Array[Object] */;
8754 val* var_listnode3 /* var listnode3: Array[Object] */;
8755 val* var6 /* : Array[Object] */;
8756 val* var_listnode5 /* var listnode5: Array[Object] */;
8757 val* var7 /* : Array[Object] */;
8758 val* var_listnode11 /* var listnode11: Array[Object] */;
8759 val* var_listnode4 /* var listnode4: nullable Object */;
8760 short int var8 /* : Bool */;
8761 int cltype;
8762 int idtype;
8763 val* var9 /* : Array[Object] */;
8764 val* var_listnode6 /* var listnode6: nullable Object */;
8765 short int var10 /* : Bool */;
8766 int cltype11;
8767 int idtype12;
8768 val* var13 /* : Array[Object] */;
8769 val* var_listnode9 /* var listnode9: Array[Object] */;
8770 val* var_listnode8 /* var listnode8: nullable Object */;
8771 short int var14 /* : Bool */;
8772 int cltype15;
8773 int idtype16;
8774 val* var17 /* : Array[Object] */;
8775 val* var18 /* : ATopClassdef */;
8776 val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */;
8777 val* var_pclassdefnode10 /* var pclassdefnode10: nullable Object */;
8778 short int var19 /* : Bool */;
8779 int cltype20;
8780 int idtype21;
8781 val* var22 /* : Array[Object] */;
8782 val* var23 /* : null */;
8783 short int var24 /* : Bool */;
8784 val* var25 /* : null */;
8785 short int var26 /* : Bool */;
8786 val* var27 /* : AModule */;
8787 val* var28 /* : null */;
8788 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
8789 long var29 /* : Int */;
8790 long var30 /* : Int */;
8791 var_p = p0;
8792 var = NULL;
8793 var_node_list = var;
8794 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8795 var_nodearraylist4 = var1;
8796 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8797 var_nodearraylist3 = var2;
8798 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8799 var_nodearraylist2 = var3;
8800 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8801 var_nodearraylist1 = var4;
8802 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
8803 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
8804 CHECK_NEW_array__Array(var5);
8805 var_listnode3 = var5;
8806 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
8807 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
8808 CHECK_NEW_array__Array(var6);
8809 var_listnode5 = var6;
8810 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
8811 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
8812 CHECK_NEW_array__Array(var7);
8813 var_listnode11 = var7;
8814 var_listnode4 = var_nodearraylist1;
8815 /* <var_listnode4:nullable Object> isa Array[Object] */
8816 cltype = type_array__Arraykernel__Object.color;
8817 idtype = type_array__Arraykernel__Object.id;
8818 if(var_listnode4 == NULL) {
8819 var8 = 0;
8820 } else {
8821 if(cltype >= var_listnode4->type->table_size) {
8822 var8 = 0;
8823 } else {
8824 var8 = var_listnode4->type->type_table[cltype] == idtype;
8825 }
8826 }
8827 if (!var8) {
8828 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4062);
8829 exit(1);
8830 }
8831 var9 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction60>*/;
8832 var_listnode5 = var9;
8833 var_listnode6 = var_nodearraylist2;
8834 /* <var_listnode6:nullable Object> isa Array[Object] */
8835 cltype11 = type_array__Arraykernel__Object.color;
8836 idtype12 = type_array__Arraykernel__Object.id;
8837 if(var_listnode6 == NULL) {
8838 var10 = 0;
8839 } else {
8840 if(cltype11 >= var_listnode6->type->table_size) {
8841 var10 = 0;
8842 } else {
8843 var10 = var_listnode6->type->type_table[cltype11] == idtype12;
8844 }
8845 }
8846 if (!var10) {
8847 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4065);
8848 exit(1);
8849 }
8850 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
8851 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
8852 CHECK_NEW_array__Array(var13);
8853 var_listnode9 = var13;
8854 var_listnode8 = var_nodearraylist3;
8855 /* <var_listnode8:nullable Object> isa Array[Object] */
8856 cltype15 = type_array__Arraykernel__Object.color;
8857 idtype16 = type_array__Arraykernel__Object.id;
8858 if(var_listnode8 == NULL) {
8859 var14 = 0;
8860 } else {
8861 if(cltype15 >= var_listnode8->type->table_size) {
8862 var14 = 0;
8863 } else {
8864 var14 = var_listnode8->type->type_table[cltype15] == idtype16;
8865 }
8866 }
8867 if (!var14) {
8868 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4068);
8869 exit(1);
8870 }
8871 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction60>*/;
8872 var_listnode9 = var17;
8873 var18 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
8874 ((void (*)(val*, val*))(var18->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var18, var_listnode9) /* init_atopclassdef on <var18:ATopClassdef>*/;
8875 CHECK_NEW_parser_nodes__ATopClassdef(var18);
8876 var_pclassdefnode7 = var18;
8877 var_pclassdefnode10 = var_nodearraylist4;
8878 /* <var_pclassdefnode10:nullable Object> isa nullable AClassdef */
8879 cltype20 = type_nullable_parser_nodes__AClassdef.color;
8880 idtype21 = type_nullable_parser_nodes__AClassdef.id;
8881 if(var_pclassdefnode10 == NULL) {
8882 var19 = 1;
8883 } else {
8884 if(cltype20 >= var_pclassdefnode10->type->table_size) {
8885 var19 = 0;
8886 } else {
8887 var19 = var_pclassdefnode10->type->type_table[cltype20] == idtype21;
8888 }
8889 }
8890 if (!var19) {
8891 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4074);
8892 exit(1);
8893 }
8894 var22 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode11, var_listnode6) /* concat on <self:ReduceAction60>*/;
8895 var_listnode11 = var22;
8896 var23 = NULL;
8897 if (var_pclassdefnode7 == NULL) {
8898 var24 = 0; /* is null */
8899 } else {
8900 var24 = 1; /* arg is null and recv is not */
8901 }
8902 if (var24){
8903 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode7) /* add on <var_listnode11:Array[Object]>*/;
8904 } else {
8905 }
8906 var25 = NULL;
8907 if (var_pclassdefnode10 == NULL) {
8908 var26 = 0; /* is null */
8909 } else {
8910 var26 = 1; /* arg is null and recv is not */
8911 }
8912 if (var26){
8913 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode10) /* add on <var_listnode11:Array[Object]>*/;
8914 } else {
8915 }
8916 var27 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
8917 var28 = NULL;
8918 ((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>*/;
8919 CHECK_NEW_parser_nodes__AModule(var27);
8920 var_pmodulenode1 = var27;
8921 var_node_list = var_pmodulenode1;
8922 var29 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction60> */
8923 var30 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var29) /* go_to on <var_p:Parser>*/;
8924 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var30, var_node_list) /* push on <var_p:Parser>*/;
8925 RET_LABEL:;
8926 }
8927 /* method parser#ReduceAction60#action for (self: Object, Parser) */
8928 void VIRTUAL_parser__ReduceAction60__action(val* self, val* p0) {
8929 parser__ReduceAction60__action(self, p0);
8930 RET_LABEL:;
8931 }
8932 /* method parser#ReduceAction61#action for (self: ReduceAction61, Parser) */
8933 void parser__ReduceAction61__action(val* self, val* p0) {
8934 val* var_p /* var p: Parser */;
8935 val* var /* : null */;
8936 val* var_node_list /* var node_list: nullable Object */;
8937 val* var1 /* : nullable Object */;
8938 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
8939 val* var2 /* : nullable Object */;
8940 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8941 val* var3 /* : nullable Object */;
8942 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8943 val* var4 /* : nullable Object */;
8944 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8945 val* var5 /* : nullable Object */;
8946 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8947 val* var6 /* : Array[Object] */;
8948 val* var_listnode3 /* var listnode3: Array[Object] */;
8949 val* var7 /* : Array[Object] */;
8950 val* var_listnode5 /* var listnode5: Array[Object] */;
8951 val* var8 /* : Array[Object] */;
8952 val* var_listnode11 /* var listnode11: Array[Object] */;
8953 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
8954 short int var9 /* : Bool */;
8955 int cltype;
8956 int idtype;
8957 val* var_listnode4 /* var listnode4: nullable Object */;
8958 short int var10 /* : Bool */;
8959 int cltype11;
8960 int idtype12;
8961 val* var13 /* : Array[Object] */;
8962 val* var_listnode6 /* var listnode6: nullable Object */;
8963 short int var14 /* : Bool */;
8964 int cltype15;
8965 int idtype16;
8966 val* var17 /* : Array[Object] */;
8967 val* var_listnode9 /* var listnode9: Array[Object] */;
8968 val* var_listnode8 /* var listnode8: nullable Object */;
8969 short int var18 /* : Bool */;
8970 int cltype19;
8971 int idtype20;
8972 val* var21 /* : Array[Object] */;
8973 val* var22 /* : ATopClassdef */;
8974 val* var_pclassdefnode7 /* var pclassdefnode7: nullable ATopClassdef */;
8975 val* var_pclassdefnode10 /* var pclassdefnode10: nullable Object */;
8976 short int var23 /* : Bool */;
8977 int cltype24;
8978 int idtype25;
8979 val* var26 /* : Array[Object] */;
8980 val* var27 /* : null */;
8981 short int var28 /* : Bool */;
8982 val* var29 /* : null */;
8983 short int var30 /* : Bool */;
8984 val* var31 /* : AModule */;
8985 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
8986 long var32 /* : Int */;
8987 long var33 /* : Int */;
8988 var_p = p0;
8989 var = NULL;
8990 var_node_list = var;
8991 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8992 var_nodearraylist5 = var1;
8993 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8994 var_nodearraylist4 = var2;
8995 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8996 var_nodearraylist3 = var3;
8997 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8998 var_nodearraylist2 = var4;
8999 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9000 var_nodearraylist1 = var5;
9001 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
9002 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
9003 CHECK_NEW_array__Array(var6);
9004 var_listnode3 = var6;
9005 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
9006 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
9007 CHECK_NEW_array__Array(var7);
9008 var_listnode5 = var7;
9009 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
9010 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
9011 CHECK_NEW_array__Array(var8);
9012 var_listnode11 = var8;
9013 var_pmoduledeclnode2 = var_nodearraylist1;
9014 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
9015 cltype = type_nullable_parser_nodes__AModuledecl.color;
9016 idtype = type_nullable_parser_nodes__AModuledecl.id;
9017 if(var_pmoduledeclnode2 == NULL) {
9018 var9 = 1;
9019 } else {
9020 if(cltype >= var_pmoduledeclnode2->type->table_size) {
9021 var9 = 0;
9022 } else {
9023 var9 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
9024 }
9025 }
9026 if (!var9) {
9027 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4106);
9028 exit(1);
9029 }
9030 var_listnode4 = var_nodearraylist2;
9031 /* <var_listnode4:nullable Object> isa Array[Object] */
9032 cltype11 = type_array__Arraykernel__Object.color;
9033 idtype12 = type_array__Arraykernel__Object.id;
9034 if(var_listnode4 == NULL) {
9035 var10 = 0;
9036 } else {
9037 if(cltype11 >= var_listnode4->type->table_size) {
9038 var10 = 0;
9039 } else {
9040 var10 = var_listnode4->type->type_table[cltype11] == idtype12;
9041 }
9042 }
9043 if (!var10) {
9044 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4108);
9045 exit(1);
9046 }
9047 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction61>*/;
9048 var_listnode5 = var13;
9049 var_listnode6 = var_nodearraylist3;
9050 /* <var_listnode6:nullable Object> isa Array[Object] */
9051 cltype15 = type_array__Arraykernel__Object.color;
9052 idtype16 = type_array__Arraykernel__Object.id;
9053 if(var_listnode6 == NULL) {
9054 var14 = 0;
9055 } else {
9056 if(cltype15 >= var_listnode6->type->table_size) {
9057 var14 = 0;
9058 } else {
9059 var14 = var_listnode6->type->type_table[cltype15] == idtype16;
9060 }
9061 }
9062 if (!var14) {
9063 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4111);
9064 exit(1);
9065 }
9066 var17 = NEW_array__Array(&type_array__Arraykernel__Object);
9067 ((void (*)(val*))(var17->class->vft[COLOR_array__Array__init]))(var17) /* init on <var17:Array[Object]>*/;
9068 CHECK_NEW_array__Array(var17);
9069 var_listnode9 = var17;
9070 var_listnode8 = var_nodearraylist4;
9071 /* <var_listnode8:nullable Object> isa Array[Object] */
9072 cltype19 = type_array__Arraykernel__Object.color;
9073 idtype20 = type_array__Arraykernel__Object.id;
9074 if(var_listnode8 == NULL) {
9075 var18 = 0;
9076 } else {
9077 if(cltype19 >= var_listnode8->type->table_size) {
9078 var18 = 0;
9079 } else {
9080 var18 = var_listnode8->type->type_table[cltype19] == idtype20;
9081 }
9082 }
9083 if (!var18) {
9084 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4114);
9085 exit(1);
9086 }
9087 var21 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode9, var_listnode8) /* concat on <self:ReduceAction61>*/;
9088 var_listnode9 = var21;
9089 var22 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
9090 ((void (*)(val*, val*))(var22->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var22, var_listnode9) /* init_atopclassdef on <var22:ATopClassdef>*/;
9091 CHECK_NEW_parser_nodes__ATopClassdef(var22);
9092 var_pclassdefnode7 = var22;
9093 var_pclassdefnode10 = var_nodearraylist5;
9094 /* <var_pclassdefnode10:nullable Object> isa nullable AClassdef */
9095 cltype24 = type_nullable_parser_nodes__AClassdef.color;
9096 idtype25 = type_nullable_parser_nodes__AClassdef.id;
9097 if(var_pclassdefnode10 == NULL) {
9098 var23 = 1;
9099 } else {
9100 if(cltype24 >= var_pclassdefnode10->type->table_size) {
9101 var23 = 0;
9102 } else {
9103 var23 = var_pclassdefnode10->type->type_table[cltype24] == idtype25;
9104 }
9105 }
9106 if (!var23) {
9107 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4120);
9108 exit(1);
9109 }
9110 var26 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode11, var_listnode6) /* concat on <self:ReduceAction61>*/;
9111 var_listnode11 = var26;
9112 var27 = NULL;
9113 if (var_pclassdefnode7 == NULL) {
9114 var28 = 0; /* is null */
9115 } else {
9116 var28 = 1; /* arg is null and recv is not */
9117 }
9118 if (var28){
9119 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode7) /* add on <var_listnode11:Array[Object]>*/;
9120 } else {
9121 }
9122 var29 = NULL;
9123 if (var_pclassdefnode10 == NULL) {
9124 var30 = 0; /* is null */
9125 } else {
9126 var30 = 1; /* arg is null and recv is not */
9127 }
9128 if (var30){
9129 ((void (*)(val*, val*))(var_listnode11->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode11, var_pclassdefnode10) /* add on <var_listnode11:Array[Object]>*/;
9130 } else {
9131 }
9132 var31 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
9133 ((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>*/;
9134 CHECK_NEW_parser_nodes__AModule(var31);
9135 var_pmodulenode1 = var31;
9136 var_node_list = var_pmodulenode1;
9137 var32 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction61> */
9138 var33 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var32) /* go_to on <var_p:Parser>*/;
9139 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var33, var_node_list) /* push on <var_p:Parser>*/;
9140 RET_LABEL:;
9141 }
9142 /* method parser#ReduceAction61#action for (self: Object, Parser) */
9143 void VIRTUAL_parser__ReduceAction61__action(val* self, val* p0) {
9144 parser__ReduceAction61__action(self, p0);
9145 RET_LABEL:;
9146 }
9147 /* method parser#ReduceAction62#action for (self: ReduceAction62, Parser) */
9148 void parser__ReduceAction62__action(val* self, val* p0) {
9149 val* var_p /* var p: Parser */;
9150 val* var /* : null */;
9151 val* var_node_list /* var node_list: nullable Object */;
9152 val* var1 /* : nullable Object */;
9153 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9154 val* var2 /* : nullable Object */;
9155 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9156 val* var3 /* : nullable Object */;
9157 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9158 val* var4 /* : nullable Object */;
9159 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9160 val* var5 /* : nullable Object */;
9161 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9162 val* var6 /* : Array[Object] */;
9163 val* var_listnode4 /* var listnode4: Array[Object] */;
9164 val* var7 /* : Array[Object] */;
9165 val* var_listnode6 /* var listnode6: Array[Object] */;
9166 val* var8 /* : Array[Object] */;
9167 val* var_listnode12 /* var listnode12: Array[Object] */;
9168 val* var_listnode3 /* var listnode3: nullable Object */;
9169 short int var9 /* : Bool */;
9170 int cltype;
9171 int idtype;
9172 val* var10 /* : Array[Object] */;
9173 val* var_listnode5 /* var listnode5: nullable Object */;
9174 short int var11 /* : Bool */;
9175 int cltype12;
9176 int idtype13;
9177 val* var14 /* : Array[Object] */;
9178 val* var_listnode7 /* var listnode7: nullable Object */;
9179 short int var15 /* : Bool */;
9180 int cltype16;
9181 int idtype17;
9182 val* var18 /* : Array[Object] */;
9183 val* var_listnode10 /* var listnode10: Array[Object] */;
9184 val* var_listnode9 /* var listnode9: nullable Object */;
9185 short int var19 /* : Bool */;
9186 int cltype20;
9187 int idtype21;
9188 val* var22 /* : Array[Object] */;
9189 val* var23 /* : ATopClassdef */;
9190 val* var_pclassdefnode8 /* var pclassdefnode8: nullable ATopClassdef */;
9191 val* var_pclassdefnode11 /* var pclassdefnode11: nullable Object */;
9192 short int var24 /* : Bool */;
9193 int cltype25;
9194 int idtype26;
9195 val* var27 /* : Array[Object] */;
9196 val* var28 /* : null */;
9197 short int var29 /* : Bool */;
9198 val* var30 /* : null */;
9199 short int var31 /* : Bool */;
9200 val* var32 /* : AModule */;
9201 val* var33 /* : null */;
9202 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
9203 long var34 /* : Int */;
9204 long var35 /* : Int */;
9205 var_p = p0;
9206 var = NULL;
9207 var_node_list = var;
9208 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9209 var_nodearraylist5 = var1;
9210 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9211 var_nodearraylist4 = var2;
9212 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9213 var_nodearraylist3 = var3;
9214 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9215 var_nodearraylist2 = var4;
9216 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9217 var_nodearraylist1 = var5;
9218 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
9219 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
9220 CHECK_NEW_array__Array(var6);
9221 var_listnode4 = var6;
9222 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
9223 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
9224 CHECK_NEW_array__Array(var7);
9225 var_listnode6 = var7;
9226 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
9227 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
9228 CHECK_NEW_array__Array(var8);
9229 var_listnode12 = var8;
9230 var_listnode3 = var_nodearraylist1;
9231 /* <var_listnode3:nullable Object> isa Array[Object] */
9232 cltype = type_array__Arraykernel__Object.color;
9233 idtype = type_array__Arraykernel__Object.id;
9234 if(var_listnode3 == NULL) {
9235 var9 = 0;
9236 } else {
9237 if(cltype >= var_listnode3->type->table_size) {
9238 var9 = 0;
9239 } else {
9240 var9 = var_listnode3->type->type_table[cltype] == idtype;
9241 }
9242 }
9243 if (!var9) {
9244 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4152);
9245 exit(1);
9246 }
9247 var10 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction62>*/;
9248 var_listnode4 = var10;
9249 var_listnode5 = var_nodearraylist2;
9250 /* <var_listnode5:nullable Object> isa Array[Object] */
9251 cltype12 = type_array__Arraykernel__Object.color;
9252 idtype13 = type_array__Arraykernel__Object.id;
9253 if(var_listnode5 == NULL) {
9254 var11 = 0;
9255 } else {
9256 if(cltype12 >= var_listnode5->type->table_size) {
9257 var11 = 0;
9258 } else {
9259 var11 = var_listnode5->type->type_table[cltype12] == idtype13;
9260 }
9261 }
9262 if (!var11) {
9263 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4155);
9264 exit(1);
9265 }
9266 var14 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction62>*/;
9267 var_listnode6 = var14;
9268 var_listnode7 = var_nodearraylist3;
9269 /* <var_listnode7:nullable Object> isa Array[Object] */
9270 cltype16 = type_array__Arraykernel__Object.color;
9271 idtype17 = type_array__Arraykernel__Object.id;
9272 if(var_listnode7 == NULL) {
9273 var15 = 0;
9274 } else {
9275 if(cltype16 >= var_listnode7->type->table_size) {
9276 var15 = 0;
9277 } else {
9278 var15 = var_listnode7->type->type_table[cltype16] == idtype17;
9279 }
9280 }
9281 if (!var15) {
9282 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4158);
9283 exit(1);
9284 }
9285 var18 = NEW_array__Array(&type_array__Arraykernel__Object);
9286 ((void (*)(val*))(var18->class->vft[COLOR_array__Array__init]))(var18) /* init on <var18:Array[Object]>*/;
9287 CHECK_NEW_array__Array(var18);
9288 var_listnode10 = var18;
9289 var_listnode9 = var_nodearraylist4;
9290 /* <var_listnode9:nullable Object> isa Array[Object] */
9291 cltype20 = type_array__Arraykernel__Object.color;
9292 idtype21 = type_array__Arraykernel__Object.id;
9293 if(var_listnode9 == NULL) {
9294 var19 = 0;
9295 } else {
9296 if(cltype20 >= var_listnode9->type->table_size) {
9297 var19 = 0;
9298 } else {
9299 var19 = var_listnode9->type->type_table[cltype20] == idtype21;
9300 }
9301 }
9302 if (!var19) {
9303 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4161);
9304 exit(1);
9305 }
9306 var22 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode9) /* concat on <self:ReduceAction62>*/;
9307 var_listnode10 = var22;
9308 var23 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
9309 ((void (*)(val*, val*))(var23->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var23, var_listnode10) /* init_atopclassdef on <var23:ATopClassdef>*/;
9310 CHECK_NEW_parser_nodes__ATopClassdef(var23);
9311 var_pclassdefnode8 = var23;
9312 var_pclassdefnode11 = var_nodearraylist5;
9313 /* <var_pclassdefnode11:nullable Object> isa nullable AClassdef */
9314 cltype25 = type_nullable_parser_nodes__AClassdef.color;
9315 idtype26 = type_nullable_parser_nodes__AClassdef.id;
9316 if(var_pclassdefnode11 == NULL) {
9317 var24 = 1;
9318 } else {
9319 if(cltype25 >= var_pclassdefnode11->type->table_size) {
9320 var24 = 0;
9321 } else {
9322 var24 = var_pclassdefnode11->type->type_table[cltype25] == idtype26;
9323 }
9324 }
9325 if (!var24) {
9326 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4167);
9327 exit(1);
9328 }
9329 var27 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode7) /* concat on <self:ReduceAction62>*/;
9330 var_listnode12 = var27;
9331 var28 = NULL;
9332 if (var_pclassdefnode8 == NULL) {
9333 var29 = 0; /* is null */
9334 } else {
9335 var29 = 1; /* arg is null and recv is not */
9336 }
9337 if (var29){
9338 ((void (*)(val*, val*))(var_listnode12->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode12, var_pclassdefnode8) /* add on <var_listnode12:Array[Object]>*/;
9339 } else {
9340 }
9341 var30 = NULL;
9342 if (var_pclassdefnode11 == NULL) {
9343 var31 = 0; /* is null */
9344 } else {
9345 var31 = 1; /* arg is null and recv is not */
9346 }
9347 if (var31){
9348 ((void (*)(val*, val*))(var_listnode12->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode12, var_pclassdefnode11) /* add on <var_listnode12:Array[Object]>*/;
9349 } else {
9350 }
9351 var32 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
9352 var33 = NULL;
9353 ((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>*/;
9354 CHECK_NEW_parser_nodes__AModule(var32);
9355 var_pmodulenode1 = var32;
9356 var_node_list = var_pmodulenode1;
9357 var34 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction62> */
9358 var35 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var34) /* go_to on <var_p:Parser>*/;
9359 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var35, var_node_list) /* push on <var_p:Parser>*/;
9360 RET_LABEL:;
9361 }
9362 /* method parser#ReduceAction62#action for (self: Object, Parser) */
9363 void VIRTUAL_parser__ReduceAction62__action(val* self, val* p0) {
9364 parser__ReduceAction62__action(self, p0);
9365 RET_LABEL:;
9366 }
9367 /* method parser#ReduceAction63#action for (self: ReduceAction63, Parser) */
9368 void parser__ReduceAction63__action(val* self, val* p0) {
9369 val* var_p /* var p: Parser */;
9370 val* var /* : null */;
9371 val* var_node_list /* var node_list: nullable Object */;
9372 val* var1 /* : nullable Object */;
9373 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
9374 val* var2 /* : nullable Object */;
9375 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9376 val* var3 /* : nullable Object */;
9377 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9378 val* var4 /* : nullable Object */;
9379 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9380 val* var5 /* : nullable Object */;
9381 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9382 val* var6 /* : nullable Object */;
9383 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9384 val* var7 /* : Array[Object] */;
9385 val* var_listnode4 /* var listnode4: Array[Object] */;
9386 val* var8 /* : Array[Object] */;
9387 val* var_listnode6 /* var listnode6: Array[Object] */;
9388 val* var9 /* : Array[Object] */;
9389 val* var_listnode12 /* var listnode12: Array[Object] */;
9390 val* var_pmoduledeclnode2 /* var pmoduledeclnode2: nullable Object */;
9391 short int var10 /* : Bool */;
9392 int cltype;
9393 int idtype;
9394 val* var_listnode3 /* var listnode3: nullable Object */;
9395 short int var11 /* : Bool */;
9396 int cltype12;
9397 int idtype13;
9398 val* var14 /* : Array[Object] */;
9399 val* var_listnode5 /* var listnode5: nullable Object */;
9400 short int var15 /* : Bool */;
9401 int cltype16;
9402 int idtype17;
9403 val* var18 /* : Array[Object] */;
9404 val* var_listnode7 /* var listnode7: nullable Object */;
9405 short int var19 /* : Bool */;
9406 int cltype20;
9407 int idtype21;
9408 val* var22 /* : Array[Object] */;
9409 val* var_listnode10 /* var listnode10: Array[Object] */;
9410 val* var_listnode9 /* var listnode9: nullable Object */;
9411 short int var23 /* : Bool */;
9412 int cltype24;
9413 int idtype25;
9414 val* var26 /* : Array[Object] */;
9415 val* var27 /* : ATopClassdef */;
9416 val* var_pclassdefnode8 /* var pclassdefnode8: nullable ATopClassdef */;
9417 val* var_pclassdefnode11 /* var pclassdefnode11: nullable Object */;
9418 short int var28 /* : Bool */;
9419 int cltype29;
9420 int idtype30;
9421 val* var31 /* : Array[Object] */;
9422 val* var32 /* : null */;
9423 short int var33 /* : Bool */;
9424 val* var34 /* : null */;
9425 short int var35 /* : Bool */;
9426 val* var36 /* : AModule */;
9427 val* var_pmodulenode1 /* var pmodulenode1: nullable AModule */;
9428 long var37 /* : Int */;
9429 long var38 /* : Int */;
9430 var_p = p0;
9431 var = NULL;
9432 var_node_list = var;
9433 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9434 var_nodearraylist6 = var1;
9435 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9436 var_nodearraylist5 = var2;
9437 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9438 var_nodearraylist4 = var3;
9439 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9440 var_nodearraylist3 = var4;
9441 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9442 var_nodearraylist2 = var5;
9443 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9444 var_nodearraylist1 = var6;
9445 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
9446 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
9447 CHECK_NEW_array__Array(var7);
9448 var_listnode4 = var7;
9449 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
9450 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
9451 CHECK_NEW_array__Array(var8);
9452 var_listnode6 = var8;
9453 var9 = NEW_array__Array(&type_array__Arraykernel__Object);
9454 ((void (*)(val*))(var9->class->vft[COLOR_array__Array__init]))(var9) /* init on <var9:Array[Object]>*/;
9455 CHECK_NEW_array__Array(var9);
9456 var_listnode12 = var9;
9457 var_pmoduledeclnode2 = var_nodearraylist1;
9458 /* <var_pmoduledeclnode2:nullable Object> isa nullable AModuledecl */
9459 cltype = type_nullable_parser_nodes__AModuledecl.color;
9460 idtype = type_nullable_parser_nodes__AModuledecl.id;
9461 if(var_pmoduledeclnode2 == NULL) {
9462 var10 = 1;
9463 } else {
9464 if(cltype >= var_pmoduledeclnode2->type->table_size) {
9465 var10 = 0;
9466 } else {
9467 var10 = var_pmoduledeclnode2->type->type_table[cltype] == idtype;
9468 }
9469 }
9470 if (!var10) {
9471 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4200);
9472 exit(1);
9473 }
9474 var_listnode3 = var_nodearraylist2;
9475 /* <var_listnode3:nullable Object> isa Array[Object] */
9476 cltype12 = type_array__Arraykernel__Object.color;
9477 idtype13 = type_array__Arraykernel__Object.id;
9478 if(var_listnode3 == NULL) {
9479 var11 = 0;
9480 } else {
9481 if(cltype12 >= var_listnode3->type->table_size) {
9482 var11 = 0;
9483 } else {
9484 var11 = var_listnode3->type->type_table[cltype12] == idtype13;
9485 }
9486 }
9487 if (!var11) {
9488 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4202);
9489 exit(1);
9490 }
9491 var14 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction63>*/;
9492 var_listnode4 = var14;
9493 var_listnode5 = var_nodearraylist3;
9494 /* <var_listnode5:nullable Object> isa Array[Object] */
9495 cltype16 = type_array__Arraykernel__Object.color;
9496 idtype17 = type_array__Arraykernel__Object.id;
9497 if(var_listnode5 == NULL) {
9498 var15 = 0;
9499 } else {
9500 if(cltype16 >= var_listnode5->type->table_size) {
9501 var15 = 0;
9502 } else {
9503 var15 = var_listnode5->type->type_table[cltype16] == idtype17;
9504 }
9505 }
9506 if (!var15) {
9507 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4205);
9508 exit(1);
9509 }
9510 var18 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode6, var_listnode5) /* concat on <self:ReduceAction63>*/;
9511 var_listnode6 = var18;
9512 var_listnode7 = var_nodearraylist4;
9513 /* <var_listnode7:nullable Object> isa Array[Object] */
9514 cltype20 = type_array__Arraykernel__Object.color;
9515 idtype21 = type_array__Arraykernel__Object.id;
9516 if(var_listnode7 == NULL) {
9517 var19 = 0;
9518 } else {
9519 if(cltype20 >= var_listnode7->type->table_size) {
9520 var19 = 0;
9521 } else {
9522 var19 = var_listnode7->type->type_table[cltype20] == idtype21;
9523 }
9524 }
9525 if (!var19) {
9526 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4208);
9527 exit(1);
9528 }
9529 var22 = NEW_array__Array(&type_array__Arraykernel__Object);
9530 ((void (*)(val*))(var22->class->vft[COLOR_array__Array__init]))(var22) /* init on <var22:Array[Object]>*/;
9531 CHECK_NEW_array__Array(var22);
9532 var_listnode10 = var22;
9533 var_listnode9 = var_nodearraylist5;
9534 /* <var_listnode9:nullable Object> isa Array[Object] */
9535 cltype24 = type_array__Arraykernel__Object.color;
9536 idtype25 = type_array__Arraykernel__Object.id;
9537 if(var_listnode9 == NULL) {
9538 var23 = 0;
9539 } else {
9540 if(cltype24 >= var_listnode9->type->table_size) {
9541 var23 = 0;
9542 } else {
9543 var23 = var_listnode9->type->type_table[cltype24] == idtype25;
9544 }
9545 }
9546 if (!var23) {
9547 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4211);
9548 exit(1);
9549 }
9550 var26 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode10, var_listnode9) /* concat on <self:ReduceAction63>*/;
9551 var_listnode10 = var26;
9552 var27 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
9553 ((void (*)(val*, val*))(var27->class->vft[COLOR_parser_prod__ATopClassdef__init_atopclassdef]))(var27, var_listnode10) /* init_atopclassdef on <var27:ATopClassdef>*/;
9554 CHECK_NEW_parser_nodes__ATopClassdef(var27);
9555 var_pclassdefnode8 = var27;
9556 var_pclassdefnode11 = var_nodearraylist6;
9557 /* <var_pclassdefnode11:nullable Object> isa nullable AClassdef */
9558 cltype29 = type_nullable_parser_nodes__AClassdef.color;
9559 idtype30 = type_nullable_parser_nodes__AClassdef.id;
9560 if(var_pclassdefnode11 == NULL) {
9561 var28 = 1;
9562 } else {
9563 if(cltype29 >= var_pclassdefnode11->type->table_size) {
9564 var28 = 0;
9565 } else {
9566 var28 = var_pclassdefnode11->type->type_table[cltype29] == idtype30;
9567 }
9568 }
9569 if (!var28) {
9570 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4217);
9571 exit(1);
9572 }
9573 var31 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode7) /* concat on <self:ReduceAction63>*/;
9574 var_listnode12 = var31;
9575 var32 = NULL;
9576 if (var_pclassdefnode8 == NULL) {
9577 var33 = 0; /* is null */
9578 } else {
9579 var33 = 1; /* arg is null and recv is not */
9580 }
9581 if (var33){
9582 ((void (*)(val*, val*))(var_listnode12->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode12, var_pclassdefnode8) /* add on <var_listnode12:Array[Object]>*/;
9583 } else {
9584 }
9585 var34 = NULL;
9586 if (var_pclassdefnode11 == NULL) {
9587 var35 = 0; /* is null */
9588 } else {
9589 var35 = 1; /* arg is null and recv is not */
9590 }
9591 if (var35){
9592 ((void (*)(val*, val*))(var_listnode12->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode12, var_pclassdefnode11) /* add on <var_listnode12:Array[Object]>*/;
9593 } else {
9594 }
9595 var36 = NEW_parser_nodes__AModule(&type_parser_nodes__AModule);
9596 ((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>*/;
9597 CHECK_NEW_parser_nodes__AModule(var36);
9598 var_pmodulenode1 = var36;
9599 var_node_list = var_pmodulenode1;
9600 var37 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction63> */
9601 var38 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var37) /* go_to on <var_p:Parser>*/;
9602 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var38, var_node_list) /* push on <var_p:Parser>*/;
9603 RET_LABEL:;
9604 }
9605 /* method parser#ReduceAction63#action for (self: Object, Parser) */
9606 void VIRTUAL_parser__ReduceAction63__action(val* self, val* p0) {
9607 parser__ReduceAction63__action(self, p0);
9608 RET_LABEL:;
9609 }
9610 /* method parser#ReduceAction64#action for (self: ReduceAction64, Parser) */
9611 void parser__ReduceAction64__action(val* self, val* p0) {
9612 val* var_p /* var p: Parser */;
9613 val* var /* : null */;
9614 val* var_node_list /* var node_list: nullable Object */;
9615 val* var1 /* : nullable Object */;
9616 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9617 val* var2 /* : nullable Object */;
9618 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9619 val* var3 /* : nullable Object */;
9620 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9621 val* var4 /* : nullable Object */;
9622 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9623 val* var5 /* : nullable Object */;
9624 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9625 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
9626 short int var6 /* : Bool */;
9627 int cltype;
9628 int idtype;
9629 val* var_tkwmodulenode3 /* var tkwmodulenode3: nullable Object */;
9630 short int var7 /* : Bool */;
9631 int cltype8;
9632 int idtype9;
9633 val* var_pmodulenamenode4 /* var pmodulenamenode4: nullable Object */;
9634 short int var10 /* : Bool */;
9635 int cltype11;
9636 int idtype12;
9637 val* var13 /* : AModuledecl */;
9638 val* var14 /* : null */;
9639 val* var_pmoduledeclnode1 /* var pmoduledeclnode1: nullable AModuledecl */;
9640 long var15 /* : Int */;
9641 long var16 /* : Int */;
9642 var_p = p0;
9643 var = NULL;
9644 var_node_list = var;
9645 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9646 var_nodearraylist5 = var1;
9647 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9648 var_nodearraylist4 = var2;
9649 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9650 var_nodearraylist3 = var3;
9651 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9652 var_nodearraylist2 = var4;
9653 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9654 var_nodearraylist1 = var5;
9655 var_pdocnode2 = var_nodearraylist1;
9656 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
9657 cltype = type_nullable_parser_nodes__ADoc.color;
9658 idtype = type_nullable_parser_nodes__ADoc.id;
9659 if(var_pdocnode2 == NULL) {
9660 var6 = 1;
9661 } else {
9662 if(cltype >= var_pdocnode2->type->table_size) {
9663 var6 = 0;
9664 } else {
9665 var6 = var_pdocnode2->type->type_table[cltype] == idtype;
9666 }
9667 }
9668 if (!var6) {
9669 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4246);
9670 exit(1);
9671 }
9672 var_tkwmodulenode3 = var_nodearraylist2;
9673 /* <var_tkwmodulenode3:nullable Object> isa nullable TKwmodule */
9674 cltype8 = type_nullable_parser_nodes__TKwmodule.color;
9675 idtype9 = type_nullable_parser_nodes__TKwmodule.id;
9676 if(var_tkwmodulenode3 == NULL) {
9677 var7 = 1;
9678 } else {
9679 if(cltype8 >= var_tkwmodulenode3->type->table_size) {
9680 var7 = 0;
9681 } else {
9682 var7 = var_tkwmodulenode3->type->type_table[cltype8] == idtype9;
9683 }
9684 }
9685 if (!var7) {
9686 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4248);
9687 exit(1);
9688 }
9689 var_pmodulenamenode4 = var_nodearraylist4;
9690 /* <var_pmodulenamenode4:nullable Object> isa nullable AModuleName */
9691 cltype11 = type_nullable_parser_nodes__AModuleName.color;
9692 idtype12 = type_nullable_parser_nodes__AModuleName.id;
9693 if(var_pmodulenamenode4 == NULL) {
9694 var10 = 1;
9695 } else {
9696 if(cltype11 >= var_pmodulenamenode4->type->table_size) {
9697 var10 = 0;
9698 } else {
9699 var10 = var_pmodulenamenode4->type->type_table[cltype11] == idtype12;
9700 }
9701 }
9702 if (!var10) {
9703 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4250);
9704 exit(1);
9705 }
9706 var13 = NEW_parser_nodes__AModuledecl(&type_parser_nodes__AModuledecl);
9707 var14 = NULL;
9708 ((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>*/;
9709 CHECK_NEW_parser_nodes__AModuledecl(var13);
9710 var_pmoduledeclnode1 = var13;
9711 var_node_list = var_pmoduledeclnode1;
9712 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction64> */
9713 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
9714 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
9715 RET_LABEL:;
9716 }
9717 /* method parser#ReduceAction64#action for (self: Object, Parser) */
9718 void VIRTUAL_parser__ReduceAction64__action(val* self, val* p0) {
9719 parser__ReduceAction64__action(self, p0);
9720 RET_LABEL:;
9721 }
9722 /* method parser#ReduceAction65#action for (self: ReduceAction65, Parser) */
9723 void parser__ReduceAction65__action(val* self, val* p0) {
9724 val* var_p /* var p: Parser */;
9725 val* var /* : null */;
9726 val* var_node_list /* var node_list: nullable Object */;
9727 val* var1 /* : nullable Object */;
9728 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
9729 val* var2 /* : nullable Object */;
9730 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9731 val* var3 /* : nullable Object */;
9732 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9733 val* var4 /* : nullable Object */;
9734 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9735 val* var5 /* : nullable Object */;
9736 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9737 val* var6 /* : nullable Object */;
9738 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9739 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
9740 short int var7 /* : Bool */;
9741 int cltype;
9742 int idtype;
9743 val* var_tkwmodulenode3 /* var tkwmodulenode3: nullable Object */;
9744 short int var8 /* : Bool */;
9745 int cltype9;
9746 int idtype10;
9747 val* var_pmodulenamenode4 /* var pmodulenamenode4: nullable Object */;
9748 short int var11 /* : Bool */;
9749 int cltype12;
9750 int idtype13;
9751 val* var_pannotationsnode5 /* var pannotationsnode5: nullable Object */;
9752 short int var14 /* : Bool */;
9753 int cltype15;
9754 int idtype16;
9755 val* var17 /* : AModuledecl */;
9756 val* var_pmoduledeclnode1 /* var pmoduledeclnode1: nullable AModuledecl */;
9757 long var18 /* : Int */;
9758 long var19 /* : Int */;
9759 var_p = p0;
9760 var = NULL;
9761 var_node_list = var;
9762 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9763 var_nodearraylist6 = var1;
9764 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9765 var_nodearraylist5 = var2;
9766 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9767 var_nodearraylist4 = var3;
9768 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9769 var_nodearraylist3 = var4;
9770 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9771 var_nodearraylist2 = var5;
9772 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9773 var_nodearraylist1 = var6;
9774 var_pdocnode2 = var_nodearraylist1;
9775 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
9776 cltype = type_nullable_parser_nodes__ADoc.color;
9777 idtype = type_nullable_parser_nodes__ADoc.id;
9778 if(var_pdocnode2 == NULL) {
9779 var7 = 1;
9780 } else {
9781 if(cltype >= var_pdocnode2->type->table_size) {
9782 var7 = 0;
9783 } else {
9784 var7 = var_pdocnode2->type->type_table[cltype] == idtype;
9785 }
9786 }
9787 if (!var7) {
9788 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4273);
9789 exit(1);
9790 }
9791 var_tkwmodulenode3 = var_nodearraylist2;
9792 /* <var_tkwmodulenode3:nullable Object> isa nullable TKwmodule */
9793 cltype9 = type_nullable_parser_nodes__TKwmodule.color;
9794 idtype10 = type_nullable_parser_nodes__TKwmodule.id;
9795 if(var_tkwmodulenode3 == NULL) {
9796 var8 = 1;
9797 } else {
9798 if(cltype9 >= var_tkwmodulenode3->type->table_size) {
9799 var8 = 0;
9800 } else {
9801 var8 = var_tkwmodulenode3->type->type_table[cltype9] == idtype10;
9802 }
9803 }
9804 if (!var8) {
9805 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4275);
9806 exit(1);
9807 }
9808 var_pmodulenamenode4 = var_nodearraylist4;
9809 /* <var_pmodulenamenode4:nullable Object> isa nullable AModuleName */
9810 cltype12 = type_nullable_parser_nodes__AModuleName.color;
9811 idtype13 = type_nullable_parser_nodes__AModuleName.id;
9812 if(var_pmodulenamenode4 == NULL) {
9813 var11 = 1;
9814 } else {
9815 if(cltype12 >= var_pmodulenamenode4->type->table_size) {
9816 var11 = 0;
9817 } else {
9818 var11 = var_pmodulenamenode4->type->type_table[cltype12] == idtype13;
9819 }
9820 }
9821 if (!var11) {
9822 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4277);
9823 exit(1);
9824 }
9825 var_pannotationsnode5 = var_nodearraylist5;
9826 /* <var_pannotationsnode5:nullable Object> isa nullable AAnnotations */
9827 cltype15 = type_nullable_parser_nodes__AAnnotations.color;
9828 idtype16 = type_nullable_parser_nodes__AAnnotations.id;
9829 if(var_pannotationsnode5 == NULL) {
9830 var14 = 1;
9831 } else {
9832 if(cltype15 >= var_pannotationsnode5->type->table_size) {
9833 var14 = 0;
9834 } else {
9835 var14 = var_pannotationsnode5->type->type_table[cltype15] == idtype16;
9836 }
9837 }
9838 if (!var14) {
9839 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4279);
9840 exit(1);
9841 }
9842 var17 = NEW_parser_nodes__AModuledecl(&type_parser_nodes__AModuledecl);
9843 ((void (*)(val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AModuledecl__init_amoduledecl]))(var17, var_pdocnode2, var_tkwmodulenode3, var_pmodulenamenode4, var_pannotationsnode5) /* init_amoduledecl on <var17:AModuledecl>*/;
9844 CHECK_NEW_parser_nodes__AModuledecl(var17);
9845 var_pmoduledeclnode1 = var17;
9846 var_node_list = var_pmoduledeclnode1;
9847 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction65> */
9848 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
9849 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
9850 RET_LABEL:;
9851 }
9852 /* method parser#ReduceAction65#action for (self: Object, Parser) */
9853 void VIRTUAL_parser__ReduceAction65__action(val* self, val* p0) {
9854 parser__ReduceAction65__action(self, p0);
9855 RET_LABEL:;
9856 }
9857 /* method parser#ReduceAction66#action for (self: ReduceAction66, Parser) */
9858 void parser__ReduceAction66__action(val* self, val* p0) {
9859 val* var_p /* var p: Parser */;
9860 val* var /* : null */;
9861 val* var_node_list /* var node_list: nullable Object */;
9862 val* var1 /* : nullable Object */;
9863 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
9864 val* var2 /* : nullable Object */;
9865 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9866 val* var3 /* : nullable Object */;
9867 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9868 val* var4 /* : nullable Object */;
9869 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9870 val* var5 /* : nullable Object */;
9871 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9872 val* var6 /* : nullable Object */;
9873 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9874 val* var_pvisibilitynode2 /* var pvisibilitynode2: nullable Object */;
9875 short int var7 /* : Bool */;
9876 int cltype;
9877 int idtype;
9878 val* var_tkwimportnode3 /* var tkwimportnode3: nullable Object */;
9879 short int var8 /* : Bool */;
9880 int cltype9;
9881 int idtype10;
9882 val* var_pmodulenamenode4 /* var pmodulenamenode4: nullable Object */;
9883 short int var11 /* : Bool */;
9884 int cltype12;
9885 int idtype13;
9886 val* var14 /* : AStdImport */;
9887 val* var15 /* : null */;
9888 val* var_pimportnode1 /* var pimportnode1: nullable AStdImport */;
9889 long var16 /* : Int */;
9890 long var17 /* : Int */;
9891 var_p = p0;
9892 var = NULL;
9893 var_node_list = var;
9894 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9895 var_nodearraylist6 = var1;
9896 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9897 var_nodearraylist5 = var2;
9898 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9899 var_nodearraylist4 = var3;
9900 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9901 var_nodearraylist3 = var4;
9902 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9903 var_nodearraylist2 = var5;
9904 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9905 var_nodearraylist1 = var6;
9906 var_pvisibilitynode2 = var_nodearraylist2;
9907 /* <var_pvisibilitynode2:nullable Object> isa nullable AVisibility */
9908 cltype = type_nullable_parser_nodes__AVisibility.color;
9909 idtype = type_nullable_parser_nodes__AVisibility.id;
9910 if(var_pvisibilitynode2 == NULL) {
9911 var7 = 1;
9912 } else {
9913 if(cltype >= var_pvisibilitynode2->type->table_size) {
9914 var7 = 0;
9915 } else {
9916 var7 = var_pvisibilitynode2->type->type_table[cltype] == idtype;
9917 }
9918 }
9919 if (!var7) {
9920 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4302);
9921 exit(1);
9922 }
9923 var_tkwimportnode3 = var_nodearraylist3;
9924 /* <var_tkwimportnode3:nullable Object> isa nullable TKwimport */
9925 cltype9 = type_nullable_parser_nodes__TKwimport.color;
9926 idtype10 = type_nullable_parser_nodes__TKwimport.id;
9927 if(var_tkwimportnode3 == NULL) {
9928 var8 = 1;
9929 } else {
9930 if(cltype9 >= var_tkwimportnode3->type->table_size) {
9931 var8 = 0;
9932 } else {
9933 var8 = var_tkwimportnode3->type->type_table[cltype9] == idtype10;
9934 }
9935 }
9936 if (!var8) {
9937 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4304);
9938 exit(1);
9939 }
9940 var_pmodulenamenode4 = var_nodearraylist5;
9941 /* <var_pmodulenamenode4:nullable Object> isa nullable AModuleName */
9942 cltype12 = type_nullable_parser_nodes__AModuleName.color;
9943 idtype13 = type_nullable_parser_nodes__AModuleName.id;
9944 if(var_pmodulenamenode4 == NULL) {
9945 var11 = 1;
9946 } else {
9947 if(cltype12 >= var_pmodulenamenode4->type->table_size) {
9948 var11 = 0;
9949 } else {
9950 var11 = var_pmodulenamenode4->type->type_table[cltype12] == idtype13;
9951 }
9952 }
9953 if (!var11) {
9954 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 4306);
9955 exit(1);
9956 }
9957 var14 = NEW_parser_nodes__AStdImport(&type_parser_nodes__AStdImport);
9958 var15 = NULL;
9959 ((void (*)(val*, val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__AStdImport__init_astdimport]))(var14, var_pvisibilitynode2, var_tkwimportnode3, var_pmodulenamenode4, var15) /* init_astdimport on <var14:AStdImport>*/;
9960 CHECK_NEW_parser_nodes__AStdImport(var14);
9961 var_pimportnode1 = var14;
9962 var_node_list = var_pimportnode1;
9963 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction66> */
9964 var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
9965 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
9966 RET_LABEL:;
9967 }
9968 /* method parser#ReduceAction66#action for (self: Object, Parser) */
9969 void VIRTUAL_parser__ReduceAction66__action(val* self, val* p0) {
9970 parser__ReduceAction66__action(self, p0);
9971 RET_LABEL:;
9972 }