8306f46cf3c094a55eb822b5babcdab542832f2a
[nit.git] / c_src / parser.sep.16.c
1 #include "parser.sep.0.h"
2 /* method parser#ReduceAction885#action for (self: Object, Parser) */
3 void VIRTUAL_parser__ReduceAction885__action(val* self, val* p0) {
4 parser__ReduceAction885__action(self, p0);
5 RET_LABEL:;
6 }
7 /* method parser#ReduceAction886#action for (self: ReduceAction886, Parser) */
8 void parser__ReduceAction886__action(val* self, val* p0) {
9 val* var_p /* var p: Parser */;
10 val* var /* : null */;
11 val* var_node_list /* var node_list: nullable Object */;
12 val* var1 /* : nullable Object */;
13 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
14 val* var2 /* : nullable Object */;
15 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
16 val* var3 /* : nullable Object */;
17 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
18 val* var_patargnode1 /* var patargnode1: nullable Object */;
19 long var4 /* : Int */;
20 long var5 /* : Int */;
21 var_p = p0;
22 var = NULL;
23 var_node_list = var;
24 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
25 var_nodearraylist3 = var1;
26 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
27 var_nodearraylist2 = var2;
28 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
29 var_nodearraylist1 = var3;
30 var_patargnode1 = var_nodearraylist3;
31 var_node_list = var_patargnode1;
32 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction886> */
33 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
34 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
35 RET_LABEL:;
36 }
37 /* method parser#ReduceAction886#action for (self: Object, Parser) */
38 void VIRTUAL_parser__ReduceAction886__action(val* self, val* p0) {
39 parser__ReduceAction886__action(self, p0);
40 RET_LABEL:;
41 }
42 /* method parser#ReduceAction887#action for (self: ReduceAction887, Parser) */
43 void parser__ReduceAction887__action(val* self, val* p0) {
44 val* var_p /* var p: Parser */;
45 val* var /* : null */;
46 val* var_node_list /* var node_list: nullable Object */;
47 val* var1 /* : nullable Object */;
48 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
49 val* var_ptypenode2 /* var ptypenode2: nullable Object */;
50 short int var2 /* : Bool */;
51 int cltype;
52 int idtype;
53 val* var3 /* : ATypeAtArg */;
54 val* var_patargnode1 /* var patargnode1: nullable ATypeAtArg */;
55 long var4 /* : Int */;
56 long var5 /* : Int */;
57 var_p = p0;
58 var = NULL;
59 var_node_list = var;
60 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
61 var_nodearraylist1 = var1;
62 var_ptypenode2 = var_nodearraylist1;
63 /* <var_ptypenode2:nullable Object> isa nullable AType */
64 cltype = type_nullable_parser_nodes__AType.color;
65 idtype = type_nullable_parser_nodes__AType.id;
66 if(var_ptypenode2 == NULL) {
67 var2 = 1;
68 } else {
69 if(cltype >= var_ptypenode2->type->table_size) {
70 var2 = 0;
71 } else {
72 var2 = var_ptypenode2->type->type_table[cltype] == idtype;
73 }
74 }
75 if (!var2) {
76 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30053);
77 exit(1);
78 }
79 var3 = NEW_parser_nodes__ATypeAtArg(&type_parser_nodes__ATypeAtArg);
80 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__ATypeAtArg__init_atypeatarg]))(var3, var_ptypenode2) /* init_atypeatarg on <var3:ATypeAtArg>*/;
81 CHECK_NEW_parser_nodes__ATypeAtArg(var3);
82 var_patargnode1 = var3;
83 var_node_list = var_patargnode1;
84 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction887> */
85 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
86 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
87 RET_LABEL:;
88 }
89 /* method parser#ReduceAction887#action for (self: Object, Parser) */
90 void VIRTUAL_parser__ReduceAction887__action(val* self, val* p0) {
91 parser__ReduceAction887__action(self, p0);
92 RET_LABEL:;
93 }
94 /* method parser#ReduceAction888#action for (self: ReduceAction888, Parser) */
95 void parser__ReduceAction888__action(val* self, val* p0) {
96 val* var_p /* var p: Parser */;
97 val* var /* : null */;
98 val* var_node_list /* var node_list: nullable Object */;
99 val* var1 /* : nullable Object */;
100 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
101 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
102 short int var2 /* : Bool */;
103 int cltype;
104 int idtype;
105 val* var3 /* : AExprAtArg */;
106 val* var_patargnode1 /* var patargnode1: nullable AExprAtArg */;
107 long var4 /* : Int */;
108 long var5 /* : Int */;
109 var_p = p0;
110 var = NULL;
111 var_node_list = var;
112 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
113 var_nodearraylist1 = var1;
114 var_pexprnode2 = var_nodearraylist1;
115 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
116 cltype = type_nullable_parser_nodes__AExpr.color;
117 idtype = type_nullable_parser_nodes__AExpr.id;
118 if(var_pexprnode2 == NULL) {
119 var2 = 1;
120 } else {
121 if(cltype >= var_pexprnode2->type->table_size) {
122 var2 = 0;
123 } else {
124 var2 = var_pexprnode2->type->type_table[cltype] == idtype;
125 }
126 }
127 if (!var2) {
128 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30068);
129 exit(1);
130 }
131 var3 = NEW_parser_nodes__AExprAtArg(&type_parser_nodes__AExprAtArg);
132 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AExprAtArg__init_aexpratarg]))(var3, var_pexprnode2) /* init_aexpratarg on <var3:AExprAtArg>*/;
133 CHECK_NEW_parser_nodes__AExprAtArg(var3);
134 var_patargnode1 = var3;
135 var_node_list = var_patargnode1;
136 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction888> */
137 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
138 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
139 RET_LABEL:;
140 }
141 /* method parser#ReduceAction888#action for (self: Object, Parser) */
142 void VIRTUAL_parser__ReduceAction888__action(val* self, val* p0) {
143 parser__ReduceAction888__action(self, p0);
144 RET_LABEL:;
145 }
146 /* method parser#ReduceAction890#action for (self: ReduceAction890, Parser) */
147 void parser__ReduceAction890__action(val* self, val* p0) {
148 val* var_p /* var p: Parser */;
149 val* var /* : null */;
150 val* var_node_list /* var node_list: nullable Object */;
151 val* var1 /* : nullable Object */;
152 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
153 val* var_pannotationsnode2 /* var pannotationsnode2: nullable Object */;
154 short int var2 /* : Bool */;
155 int cltype;
156 int idtype;
157 val* var3 /* : AAtAtArg */;
158 val* var_patargnode1 /* var patargnode1: nullable AAtAtArg */;
159 long var4 /* : Int */;
160 long var5 /* : Int */;
161 var_p = p0;
162 var = NULL;
163 var_node_list = var;
164 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
165 var_nodearraylist1 = var1;
166 var_pannotationsnode2 = var_nodearraylist1;
167 /* <var_pannotationsnode2:nullable Object> isa nullable AAnnotations */
168 cltype = type_nullable_parser_nodes__AAnnotations.color;
169 idtype = type_nullable_parser_nodes__AAnnotations.id;
170 if(var_pannotationsnode2 == NULL) {
171 var2 = 1;
172 } else {
173 if(cltype >= var_pannotationsnode2->type->table_size) {
174 var2 = 0;
175 } else {
176 var2 = var_pannotationsnode2->type->type_table[cltype] == idtype;
177 }
178 }
179 if (!var2) {
180 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30083);
181 exit(1);
182 }
183 var3 = NEW_parser_nodes__AAtAtArg(&type_parser_nodes__AAtAtArg);
184 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AAtAtArg__init_aatatarg]))(var3, var_pannotationsnode2) /* init_aatatarg on <var3:AAtAtArg>*/;
185 CHECK_NEW_parser_nodes__AAtAtArg(var3);
186 var_patargnode1 = var3;
187 var_node_list = var_patargnode1;
188 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction890> */
189 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
190 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
191 RET_LABEL:;
192 }
193 /* method parser#ReduceAction890#action for (self: Object, Parser) */
194 void VIRTUAL_parser__ReduceAction890__action(val* self, val* p0) {
195 parser__ReduceAction890__action(self, p0);
196 RET_LABEL:;
197 }
198 /* method parser#ReduceAction891#action for (self: ReduceAction891, Parser) */
199 void parser__ReduceAction891__action(val* self, val* p0) {
200 val* var_p /* var p: Parser */;
201 val* var /* : null */;
202 val* var_node_list /* var node_list: nullable Object */;
203 val* var1 /* : nullable Object */;
204 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
205 val* var_tidnode2 /* var tidnode2: nullable Object */;
206 short int var2 /* : Bool */;
207 int cltype;
208 int idtype;
209 val* var3 /* : AIdAtid */;
210 val* var_patidnode1 /* var patidnode1: nullable AIdAtid */;
211 long var4 /* : Int */;
212 long var5 /* : Int */;
213 var_p = p0;
214 var = NULL;
215 var_node_list = var;
216 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
217 var_nodearraylist1 = var1;
218 var_tidnode2 = var_nodearraylist1;
219 /* <var_tidnode2:nullable Object> isa nullable TId */
220 cltype = type_nullable_parser_nodes__TId.color;
221 idtype = type_nullable_parser_nodes__TId.id;
222 if(var_tidnode2 == NULL) {
223 var2 = 1;
224 } else {
225 if(cltype >= var_tidnode2->type->table_size) {
226 var2 = 0;
227 } else {
228 var2 = var_tidnode2->type->type_table[cltype] == idtype;
229 }
230 }
231 if (!var2) {
232 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30098);
233 exit(1);
234 }
235 var3 = NEW_parser_nodes__AIdAtid(&type_parser_nodes__AIdAtid);
236 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AIdAtid__init_aidatid]))(var3, var_tidnode2) /* init_aidatid on <var3:AIdAtid>*/;
237 CHECK_NEW_parser_nodes__AIdAtid(var3);
238 var_patidnode1 = var3;
239 var_node_list = var_patidnode1;
240 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction891> */
241 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
242 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
243 RET_LABEL:;
244 }
245 /* method parser#ReduceAction891#action for (self: Object, Parser) */
246 void VIRTUAL_parser__ReduceAction891__action(val* self, val* p0) {
247 parser__ReduceAction891__action(self, p0);
248 RET_LABEL:;
249 }
250 /* method parser#ReduceAction892#action for (self: ReduceAction892, Parser) */
251 void parser__ReduceAction892__action(val* self, val* p0) {
252 val* var_p /* var p: Parser */;
253 val* var /* : null */;
254 val* var_node_list /* var node_list: nullable Object */;
255 val* var1 /* : nullable Object */;
256 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
257 val* var2 /* : nullable Object */;
258 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
259 val* var_tidnode2 /* var tidnode2: nullable Object */;
260 short int var3 /* : Bool */;
261 int cltype;
262 int idtype;
263 val* var4 /* : AIdAtid */;
264 val* var_patidnode1 /* var patidnode1: nullable AIdAtid */;
265 long var5 /* : Int */;
266 long var6 /* : Int */;
267 var_p = p0;
268 var = NULL;
269 var_node_list = var;
270 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
271 var_nodearraylist2 = var1;
272 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
273 var_nodearraylist1 = var2;
274 var_tidnode2 = var_nodearraylist2;
275 /* <var_tidnode2:nullable Object> isa nullable TId */
276 cltype = type_nullable_parser_nodes__TId.color;
277 idtype = type_nullable_parser_nodes__TId.id;
278 if(var_tidnode2 == NULL) {
279 var3 = 1;
280 } else {
281 if(cltype >= var_tidnode2->type->table_size) {
282 var3 = 0;
283 } else {
284 var3 = var_tidnode2->type->type_table[cltype] == idtype;
285 }
286 }
287 if (!var3) {
288 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30114);
289 exit(1);
290 }
291 var4 = NEW_parser_nodes__AIdAtid(&type_parser_nodes__AIdAtid);
292 ((void (*)(val*, val*))(var4->class->vft[COLOR_parser_prod__AIdAtid__init_aidatid]))(var4, var_tidnode2) /* init_aidatid on <var4:AIdAtid>*/;
293 CHECK_NEW_parser_nodes__AIdAtid(var4);
294 var_patidnode1 = var4;
295 var_node_list = var_patidnode1;
296 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction892> */
297 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
298 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
299 RET_LABEL:;
300 }
301 /* method parser#ReduceAction892#action for (self: Object, Parser) */
302 void VIRTUAL_parser__ReduceAction892__action(val* self, val* p0) {
303 parser__ReduceAction892__action(self, p0);
304 RET_LABEL:;
305 }
306 /* method parser#ReduceAction893#action for (self: ReduceAction893, Parser) */
307 void parser__ReduceAction893__action(val* self, val* p0) {
308 val* var_p /* var p: Parser */;
309 val* var /* : null */;
310 val* var_node_list /* var node_list: nullable Object */;
311 val* var1 /* : nullable Object */;
312 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
313 val* var2 /* : nullable Object */;
314 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
315 val* var3 /* : nullable Object */;
316 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
317 val* var_tidnode2 /* var tidnode2: nullable Object */;
318 short int var4 /* : Bool */;
319 int cltype;
320 int idtype;
321 val* var5 /* : AIdAtid */;
322 val* var_patidnode1 /* var patidnode1: nullable AIdAtid */;
323 long var6 /* : Int */;
324 long var7 /* : Int */;
325 var_p = p0;
326 var = NULL;
327 var_node_list = var;
328 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
329 var_nodearraylist3 = var1;
330 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
331 var_nodearraylist2 = var2;
332 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
333 var_nodearraylist1 = var3;
334 var_tidnode2 = var_nodearraylist3;
335 /* <var_tidnode2:nullable Object> isa nullable TId */
336 cltype = type_nullable_parser_nodes__TId.color;
337 idtype = type_nullable_parser_nodes__TId.id;
338 if(var_tidnode2 == NULL) {
339 var4 = 1;
340 } else {
341 if(cltype >= var_tidnode2->type->table_size) {
342 var4 = 0;
343 } else {
344 var4 = var_tidnode2->type->type_table[cltype] == idtype;
345 }
346 }
347 if (!var4) {
348 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30131);
349 exit(1);
350 }
351 var5 = NEW_parser_nodes__AIdAtid(&type_parser_nodes__AIdAtid);
352 ((void (*)(val*, val*))(var5->class->vft[COLOR_parser_prod__AIdAtid__init_aidatid]))(var5, var_tidnode2) /* init_aidatid on <var5:AIdAtid>*/;
353 CHECK_NEW_parser_nodes__AIdAtid(var5);
354 var_patidnode1 = var5;
355 var_node_list = var_patidnode1;
356 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction893> */
357 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
358 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
359 RET_LABEL:;
360 }
361 /* method parser#ReduceAction893#action for (self: Object, Parser) */
362 void VIRTUAL_parser__ReduceAction893__action(val* self, val* p0) {
363 parser__ReduceAction893__action(self, p0);
364 RET_LABEL:;
365 }
366 /* method parser#ReduceAction895#action for (self: ReduceAction895, Parser) */
367 void parser__ReduceAction895__action(val* self, val* p0) {
368 val* var_p /* var p: Parser */;
369 val* var /* : null */;
370 val* var_node_list /* var node_list: nullable Object */;
371 val* var1 /* : nullable Object */;
372 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
373 val* var_tkwreadablenode2 /* var tkwreadablenode2: nullable Object */;
374 short int var2 /* : Bool */;
375 int cltype;
376 int idtype;
377 val* var3 /* : AKwreadableAtid */;
378 val* var_patidnode1 /* var patidnode1: nullable AKwreadableAtid */;
379 long var4 /* : Int */;
380 long var5 /* : Int */;
381 var_p = p0;
382 var = NULL;
383 var_node_list = var;
384 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
385 var_nodearraylist1 = var1;
386 var_tkwreadablenode2 = var_nodearraylist1;
387 /* <var_tkwreadablenode2:nullable Object> isa nullable TKwreadable */
388 cltype = type_nullable_parser_nodes__TKwreadable.color;
389 idtype = type_nullable_parser_nodes__TKwreadable.id;
390 if(var_tkwreadablenode2 == NULL) {
391 var2 = 1;
392 } else {
393 if(cltype >= var_tkwreadablenode2->type->table_size) {
394 var2 = 0;
395 } else {
396 var2 = var_tkwreadablenode2->type->type_table[cltype] == idtype;
397 }
398 }
399 if (!var2) {
400 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30146);
401 exit(1);
402 }
403 var3 = NEW_parser_nodes__AKwreadableAtid(&type_parser_nodes__AKwreadableAtid);
404 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AKwreadableAtid__init_akwreadableatid]))(var3, var_tkwreadablenode2) /* init_akwreadableatid on <var3:AKwreadableAtid>*/;
405 CHECK_NEW_parser_nodes__AKwreadableAtid(var3);
406 var_patidnode1 = var3;
407 var_node_list = var_patidnode1;
408 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction895> */
409 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
410 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
411 RET_LABEL:;
412 }
413 /* method parser#ReduceAction895#action for (self: Object, Parser) */
414 void VIRTUAL_parser__ReduceAction895__action(val* self, val* p0) {
415 parser__ReduceAction895__action(self, p0);
416 RET_LABEL:;
417 }
418 /* method parser#ReduceAction896#action for (self: ReduceAction896, Parser) */
419 void parser__ReduceAction896__action(val* self, val* p0) {
420 val* var_p /* var p: Parser */;
421 val* var /* : null */;
422 val* var_node_list /* var node_list: nullable Object */;
423 val* var1 /* : nullable Object */;
424 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
425 val* var2 /* : nullable Object */;
426 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
427 val* var_tkwreadablenode2 /* var tkwreadablenode2: nullable Object */;
428 short int var3 /* : Bool */;
429 int cltype;
430 int idtype;
431 val* var4 /* : AKwreadableAtid */;
432 val* var_patidnode1 /* var patidnode1: nullable AKwreadableAtid */;
433 long var5 /* : Int */;
434 long var6 /* : Int */;
435 var_p = p0;
436 var = NULL;
437 var_node_list = var;
438 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
439 var_nodearraylist2 = var1;
440 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
441 var_nodearraylist1 = var2;
442 var_tkwreadablenode2 = var_nodearraylist2;
443 /* <var_tkwreadablenode2:nullable Object> isa nullable TKwreadable */
444 cltype = type_nullable_parser_nodes__TKwreadable.color;
445 idtype = type_nullable_parser_nodes__TKwreadable.id;
446 if(var_tkwreadablenode2 == NULL) {
447 var3 = 1;
448 } else {
449 if(cltype >= var_tkwreadablenode2->type->table_size) {
450 var3 = 0;
451 } else {
452 var3 = var_tkwreadablenode2->type->type_table[cltype] == idtype;
453 }
454 }
455 if (!var3) {
456 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30162);
457 exit(1);
458 }
459 var4 = NEW_parser_nodes__AKwreadableAtid(&type_parser_nodes__AKwreadableAtid);
460 ((void (*)(val*, val*))(var4->class->vft[COLOR_parser_prod__AKwreadableAtid__init_akwreadableatid]))(var4, var_tkwreadablenode2) /* init_akwreadableatid on <var4:AKwreadableAtid>*/;
461 CHECK_NEW_parser_nodes__AKwreadableAtid(var4);
462 var_patidnode1 = var4;
463 var_node_list = var_patidnode1;
464 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction896> */
465 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
466 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
467 RET_LABEL:;
468 }
469 /* method parser#ReduceAction896#action for (self: Object, Parser) */
470 void VIRTUAL_parser__ReduceAction896__action(val* self, val* p0) {
471 parser__ReduceAction896__action(self, p0);
472 RET_LABEL:;
473 }
474 /* method parser#ReduceAction897#action for (self: ReduceAction897, Parser) */
475 void parser__ReduceAction897__action(val* self, val* p0) {
476 val* var_p /* var p: Parser */;
477 val* var /* : null */;
478 val* var_node_list /* var node_list: nullable Object */;
479 val* var1 /* : nullable Object */;
480 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
481 val* var2 /* : nullable Object */;
482 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
483 val* var3 /* : nullable Object */;
484 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
485 val* var_tkwreadablenode2 /* var tkwreadablenode2: nullable Object */;
486 short int var4 /* : Bool */;
487 int cltype;
488 int idtype;
489 val* var5 /* : AKwreadableAtid */;
490 val* var_patidnode1 /* var patidnode1: nullable AKwreadableAtid */;
491 long var6 /* : Int */;
492 long var7 /* : Int */;
493 var_p = p0;
494 var = NULL;
495 var_node_list = var;
496 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
497 var_nodearraylist3 = var1;
498 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
499 var_nodearraylist2 = var2;
500 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
501 var_nodearraylist1 = var3;
502 var_tkwreadablenode2 = var_nodearraylist3;
503 /* <var_tkwreadablenode2:nullable Object> isa nullable TKwreadable */
504 cltype = type_nullable_parser_nodes__TKwreadable.color;
505 idtype = type_nullable_parser_nodes__TKwreadable.id;
506 if(var_tkwreadablenode2 == NULL) {
507 var4 = 1;
508 } else {
509 if(cltype >= var_tkwreadablenode2->type->table_size) {
510 var4 = 0;
511 } else {
512 var4 = var_tkwreadablenode2->type->type_table[cltype] == idtype;
513 }
514 }
515 if (!var4) {
516 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30179);
517 exit(1);
518 }
519 var5 = NEW_parser_nodes__AKwreadableAtid(&type_parser_nodes__AKwreadableAtid);
520 ((void (*)(val*, val*))(var5->class->vft[COLOR_parser_prod__AKwreadableAtid__init_akwreadableatid]))(var5, var_tkwreadablenode2) /* init_akwreadableatid on <var5:AKwreadableAtid>*/;
521 CHECK_NEW_parser_nodes__AKwreadableAtid(var5);
522 var_patidnode1 = var5;
523 var_node_list = var_patidnode1;
524 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction897> */
525 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
526 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
527 RET_LABEL:;
528 }
529 /* method parser#ReduceAction897#action for (self: Object, Parser) */
530 void VIRTUAL_parser__ReduceAction897__action(val* self, val* p0) {
531 parser__ReduceAction897__action(self, p0);
532 RET_LABEL:;
533 }
534 /* method parser#ReduceAction899#action for (self: ReduceAction899, Parser) */
535 void parser__ReduceAction899__action(val* self, val* p0) {
536 val* var_p /* var p: Parser */;
537 val* var /* : null */;
538 val* var_node_list /* var node_list: nullable Object */;
539 val* var1 /* : nullable Object */;
540 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
541 val* var_tkwwritablenode2 /* var tkwwritablenode2: nullable Object */;
542 short int var2 /* : Bool */;
543 int cltype;
544 int idtype;
545 val* var3 /* : AKwwritableAtid */;
546 val* var_patidnode1 /* var patidnode1: nullable AKwwritableAtid */;
547 long var4 /* : Int */;
548 long var5 /* : Int */;
549 var_p = p0;
550 var = NULL;
551 var_node_list = var;
552 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
553 var_nodearraylist1 = var1;
554 var_tkwwritablenode2 = var_nodearraylist1;
555 /* <var_tkwwritablenode2:nullable Object> isa nullable TKwwritable */
556 cltype = type_nullable_parser_nodes__TKwwritable.color;
557 idtype = type_nullable_parser_nodes__TKwwritable.id;
558 if(var_tkwwritablenode2 == NULL) {
559 var2 = 1;
560 } else {
561 if(cltype >= var_tkwwritablenode2->type->table_size) {
562 var2 = 0;
563 } else {
564 var2 = var_tkwwritablenode2->type->type_table[cltype] == idtype;
565 }
566 }
567 if (!var2) {
568 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30194);
569 exit(1);
570 }
571 var3 = NEW_parser_nodes__AKwwritableAtid(&type_parser_nodes__AKwwritableAtid);
572 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AKwwritableAtid__init_akwwritableatid]))(var3, var_tkwwritablenode2) /* init_akwwritableatid on <var3:AKwwritableAtid>*/;
573 CHECK_NEW_parser_nodes__AKwwritableAtid(var3);
574 var_patidnode1 = var3;
575 var_node_list = var_patidnode1;
576 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction899> */
577 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
578 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
579 RET_LABEL:;
580 }
581 /* method parser#ReduceAction899#action for (self: Object, Parser) */
582 void VIRTUAL_parser__ReduceAction899__action(val* self, val* p0) {
583 parser__ReduceAction899__action(self, p0);
584 RET_LABEL:;
585 }
586 /* method parser#ReduceAction900#action for (self: ReduceAction900, Parser) */
587 void parser__ReduceAction900__action(val* self, val* p0) {
588 val* var_p /* var p: Parser */;
589 val* var /* : null */;
590 val* var_node_list /* var node_list: nullable Object */;
591 val* var1 /* : nullable Object */;
592 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
593 val* var2 /* : nullable Object */;
594 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
595 val* var_tkwwritablenode2 /* var tkwwritablenode2: nullable Object */;
596 short int var3 /* : Bool */;
597 int cltype;
598 int idtype;
599 val* var4 /* : AKwwritableAtid */;
600 val* var_patidnode1 /* var patidnode1: nullable AKwwritableAtid */;
601 long var5 /* : Int */;
602 long var6 /* : Int */;
603 var_p = p0;
604 var = NULL;
605 var_node_list = var;
606 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
607 var_nodearraylist2 = var1;
608 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
609 var_nodearraylist1 = var2;
610 var_tkwwritablenode2 = var_nodearraylist2;
611 /* <var_tkwwritablenode2:nullable Object> isa nullable TKwwritable */
612 cltype = type_nullable_parser_nodes__TKwwritable.color;
613 idtype = type_nullable_parser_nodes__TKwwritable.id;
614 if(var_tkwwritablenode2 == NULL) {
615 var3 = 1;
616 } else {
617 if(cltype >= var_tkwwritablenode2->type->table_size) {
618 var3 = 0;
619 } else {
620 var3 = var_tkwwritablenode2->type->type_table[cltype] == idtype;
621 }
622 }
623 if (!var3) {
624 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30210);
625 exit(1);
626 }
627 var4 = NEW_parser_nodes__AKwwritableAtid(&type_parser_nodes__AKwwritableAtid);
628 ((void (*)(val*, val*))(var4->class->vft[COLOR_parser_prod__AKwwritableAtid__init_akwwritableatid]))(var4, var_tkwwritablenode2) /* init_akwwritableatid on <var4:AKwwritableAtid>*/;
629 CHECK_NEW_parser_nodes__AKwwritableAtid(var4);
630 var_patidnode1 = var4;
631 var_node_list = var_patidnode1;
632 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction900> */
633 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
634 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
635 RET_LABEL:;
636 }
637 /* method parser#ReduceAction900#action for (self: Object, Parser) */
638 void VIRTUAL_parser__ReduceAction900__action(val* self, val* p0) {
639 parser__ReduceAction900__action(self, p0);
640 RET_LABEL:;
641 }
642 /* method parser#ReduceAction901#action for (self: ReduceAction901, Parser) */
643 void parser__ReduceAction901__action(val* self, val* p0) {
644 val* var_p /* var p: Parser */;
645 val* var /* : null */;
646 val* var_node_list /* var node_list: nullable Object */;
647 val* var1 /* : nullable Object */;
648 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
649 val* var2 /* : nullable Object */;
650 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
651 val* var3 /* : nullable Object */;
652 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
653 val* var_tkwwritablenode2 /* var tkwwritablenode2: nullable Object */;
654 short int var4 /* : Bool */;
655 int cltype;
656 int idtype;
657 val* var5 /* : AKwwritableAtid */;
658 val* var_patidnode1 /* var patidnode1: nullable AKwwritableAtid */;
659 long var6 /* : Int */;
660 long var7 /* : Int */;
661 var_p = p0;
662 var = NULL;
663 var_node_list = var;
664 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
665 var_nodearraylist3 = var1;
666 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
667 var_nodearraylist2 = var2;
668 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
669 var_nodearraylist1 = var3;
670 var_tkwwritablenode2 = var_nodearraylist3;
671 /* <var_tkwwritablenode2:nullable Object> isa nullable TKwwritable */
672 cltype = type_nullable_parser_nodes__TKwwritable.color;
673 idtype = type_nullable_parser_nodes__TKwwritable.id;
674 if(var_tkwwritablenode2 == NULL) {
675 var4 = 1;
676 } else {
677 if(cltype >= var_tkwwritablenode2->type->table_size) {
678 var4 = 0;
679 } else {
680 var4 = var_tkwwritablenode2->type->type_table[cltype] == idtype;
681 }
682 }
683 if (!var4) {
684 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30227);
685 exit(1);
686 }
687 var5 = NEW_parser_nodes__AKwwritableAtid(&type_parser_nodes__AKwwritableAtid);
688 ((void (*)(val*, val*))(var5->class->vft[COLOR_parser_prod__AKwwritableAtid__init_akwwritableatid]))(var5, var_tkwwritablenode2) /* init_akwwritableatid on <var5:AKwwritableAtid>*/;
689 CHECK_NEW_parser_nodes__AKwwritableAtid(var5);
690 var_patidnode1 = var5;
691 var_node_list = var_patidnode1;
692 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction901> */
693 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
694 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
695 RET_LABEL:;
696 }
697 /* method parser#ReduceAction901#action for (self: Object, Parser) */
698 void VIRTUAL_parser__ReduceAction901__action(val* self, val* p0) {
699 parser__ReduceAction901__action(self, p0);
700 RET_LABEL:;
701 }
702 /* method parser#ReduceAction903#action for (self: ReduceAction903, Parser) */
703 void parser__ReduceAction903__action(val* self, val* p0) {
704 val* var_p /* var p: Parser */;
705 val* var /* : null */;
706 val* var_node_list /* var node_list: nullable Object */;
707 val* var1 /* : nullable Object */;
708 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
709 val* var_tkwimportnode2 /* var tkwimportnode2: nullable Object */;
710 short int var2 /* : Bool */;
711 int cltype;
712 int idtype;
713 val* var3 /* : AKwimportAtid */;
714 val* var_patidnode1 /* var patidnode1: nullable AKwimportAtid */;
715 long var4 /* : Int */;
716 long var5 /* : Int */;
717 var_p = p0;
718 var = NULL;
719 var_node_list = var;
720 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
721 var_nodearraylist1 = var1;
722 var_tkwimportnode2 = var_nodearraylist1;
723 /* <var_tkwimportnode2:nullable Object> isa nullable TKwimport */
724 cltype = type_nullable_parser_nodes__TKwimport.color;
725 idtype = type_nullable_parser_nodes__TKwimport.id;
726 if(var_tkwimportnode2 == NULL) {
727 var2 = 1;
728 } else {
729 if(cltype >= var_tkwimportnode2->type->table_size) {
730 var2 = 0;
731 } else {
732 var2 = var_tkwimportnode2->type->type_table[cltype] == idtype;
733 }
734 }
735 if (!var2) {
736 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30242);
737 exit(1);
738 }
739 var3 = NEW_parser_nodes__AKwimportAtid(&type_parser_nodes__AKwimportAtid);
740 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AKwimportAtid__init_akwimportatid]))(var3, var_tkwimportnode2) /* init_akwimportatid on <var3:AKwimportAtid>*/;
741 CHECK_NEW_parser_nodes__AKwimportAtid(var3);
742 var_patidnode1 = var3;
743 var_node_list = var_patidnode1;
744 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction903> */
745 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
746 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
747 RET_LABEL:;
748 }
749 /* method parser#ReduceAction903#action for (self: Object, Parser) */
750 void VIRTUAL_parser__ReduceAction903__action(val* self, val* p0) {
751 parser__ReduceAction903__action(self, p0);
752 RET_LABEL:;
753 }
754 /* method parser#ReduceAction904#action for (self: ReduceAction904, Parser) */
755 void parser__ReduceAction904__action(val* self, val* p0) {
756 val* var_p /* var p: Parser */;
757 val* var /* : null */;
758 val* var_node_list /* var node_list: nullable Object */;
759 val* var1 /* : nullable Object */;
760 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
761 val* var2 /* : nullable Object */;
762 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
763 val* var_tkwimportnode2 /* var tkwimportnode2: nullable Object */;
764 short int var3 /* : Bool */;
765 int cltype;
766 int idtype;
767 val* var4 /* : AKwimportAtid */;
768 val* var_patidnode1 /* var patidnode1: nullable AKwimportAtid */;
769 long var5 /* : Int */;
770 long var6 /* : Int */;
771 var_p = p0;
772 var = NULL;
773 var_node_list = var;
774 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
775 var_nodearraylist2 = var1;
776 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
777 var_nodearraylist1 = var2;
778 var_tkwimportnode2 = var_nodearraylist2;
779 /* <var_tkwimportnode2:nullable Object> isa nullable TKwimport */
780 cltype = type_nullable_parser_nodes__TKwimport.color;
781 idtype = type_nullable_parser_nodes__TKwimport.id;
782 if(var_tkwimportnode2 == NULL) {
783 var3 = 1;
784 } else {
785 if(cltype >= var_tkwimportnode2->type->table_size) {
786 var3 = 0;
787 } else {
788 var3 = var_tkwimportnode2->type->type_table[cltype] == idtype;
789 }
790 }
791 if (!var3) {
792 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30258);
793 exit(1);
794 }
795 var4 = NEW_parser_nodes__AKwimportAtid(&type_parser_nodes__AKwimportAtid);
796 ((void (*)(val*, val*))(var4->class->vft[COLOR_parser_prod__AKwimportAtid__init_akwimportatid]))(var4, var_tkwimportnode2) /* init_akwimportatid on <var4:AKwimportAtid>*/;
797 CHECK_NEW_parser_nodes__AKwimportAtid(var4);
798 var_patidnode1 = var4;
799 var_node_list = var_patidnode1;
800 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction904> */
801 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
802 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
803 RET_LABEL:;
804 }
805 /* method parser#ReduceAction904#action for (self: Object, Parser) */
806 void VIRTUAL_parser__ReduceAction904__action(val* self, val* p0) {
807 parser__ReduceAction904__action(self, p0);
808 RET_LABEL:;
809 }
810 /* method parser#ReduceAction905#action for (self: ReduceAction905, Parser) */
811 void parser__ReduceAction905__action(val* self, val* p0) {
812 val* var_p /* var p: Parser */;
813 val* var /* : null */;
814 val* var_node_list /* var node_list: nullable Object */;
815 val* var1 /* : nullable Object */;
816 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
817 val* var2 /* : nullable Object */;
818 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
819 val* var3 /* : nullable Object */;
820 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
821 val* var_tkwimportnode2 /* var tkwimportnode2: nullable Object */;
822 short int var4 /* : Bool */;
823 int cltype;
824 int idtype;
825 val* var5 /* : AKwimportAtid */;
826 val* var_patidnode1 /* var patidnode1: nullable AKwimportAtid */;
827 long var6 /* : Int */;
828 long var7 /* : Int */;
829 var_p = p0;
830 var = NULL;
831 var_node_list = var;
832 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
833 var_nodearraylist3 = var1;
834 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
835 var_nodearraylist2 = var2;
836 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
837 var_nodearraylist1 = var3;
838 var_tkwimportnode2 = var_nodearraylist3;
839 /* <var_tkwimportnode2:nullable Object> isa nullable TKwimport */
840 cltype = type_nullable_parser_nodes__TKwimport.color;
841 idtype = type_nullable_parser_nodes__TKwimport.id;
842 if(var_tkwimportnode2 == NULL) {
843 var4 = 1;
844 } else {
845 if(cltype >= var_tkwimportnode2->type->table_size) {
846 var4 = 0;
847 } else {
848 var4 = var_tkwimportnode2->type->type_table[cltype] == idtype;
849 }
850 }
851 if (!var4) {
852 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30275);
853 exit(1);
854 }
855 var5 = NEW_parser_nodes__AKwimportAtid(&type_parser_nodes__AKwimportAtid);
856 ((void (*)(val*, val*))(var5->class->vft[COLOR_parser_prod__AKwimportAtid__init_akwimportatid]))(var5, var_tkwimportnode2) /* init_akwimportatid on <var5:AKwimportAtid>*/;
857 CHECK_NEW_parser_nodes__AKwimportAtid(var5);
858 var_patidnode1 = var5;
859 var_node_list = var_patidnode1;
860 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction905> */
861 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
862 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
863 RET_LABEL:;
864 }
865 /* method parser#ReduceAction905#action for (self: Object, Parser) */
866 void VIRTUAL_parser__ReduceAction905__action(val* self, val* p0) {
867 parser__ReduceAction905__action(self, p0);
868 RET_LABEL:;
869 }
870 /* method parser#ReduceAction907#action for (self: ReduceAction907, Parser) */
871 void parser__ReduceAction907__action(val* self, val* p0) {
872 val* var_p /* var p: Parser */;
873 val* var /* : null */;
874 val* var_node_list /* var node_list: nullable Object */;
875 val* var1 /* : nullable Object */;
876 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
877 val* var2 /* : nullable Object */;
878 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
879 val* var3 /* : nullable Object */;
880 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
881 val* var4 /* : nullable Object */;
882 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
883 val* var5 /* : Array[Object] */;
884 val* var_listnode4 /* var listnode4: Array[Object] */;
885 val* var_toparnode2 /* var toparnode2: nullable Object */;
886 short int var6 /* : Bool */;
887 int cltype;
888 int idtype;
889 val* var_listnode3 /* var listnode3: nullable Object */;
890 short int var7 /* : Bool */;
891 int cltype8;
892 int idtype9;
893 val* var10 /* : Array[Object] */;
894 val* var_tcparnode5 /* var tcparnode5: nullable Object */;
895 short int var11 /* : Bool */;
896 int cltype12;
897 int idtype13;
898 val* var14 /* : AParExprs */;
899 val* var_pexprsnode1 /* var pexprsnode1: nullable AParExprs */;
900 long var15 /* : Int */;
901 long var16 /* : Int */;
902 var_p = p0;
903 var = NULL;
904 var_node_list = var;
905 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
906 var_nodearraylist4 = var1;
907 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
908 var_nodearraylist3 = var2;
909 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
910 var_nodearraylist2 = var3;
911 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
912 var_nodearraylist1 = var4;
913 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
914 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
915 CHECK_NEW_array__Array(var5);
916 var_listnode4 = var5;
917 var_toparnode2 = var_nodearraylist1;
918 /* <var_toparnode2:nullable Object> isa nullable TOpar */
919 cltype = type_nullable_parser_nodes__TOpar.color;
920 idtype = type_nullable_parser_nodes__TOpar.id;
921 if(var_toparnode2 == NULL) {
922 var6 = 1;
923 } else {
924 if(cltype >= var_toparnode2->type->table_size) {
925 var6 = 0;
926 } else {
927 var6 = var_toparnode2->type->type_table[cltype] == idtype;
928 }
929 }
930 if (!var6) {
931 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30294);
932 exit(1);
933 }
934 var_listnode3 = var_nodearraylist3;
935 /* <var_listnode3:nullable Object> isa Array[Object] */
936 cltype8 = type_array__Arraykernel__Object.color;
937 idtype9 = type_array__Arraykernel__Object.id;
938 if(var_listnode3 == NULL) {
939 var7 = 0;
940 } else {
941 if(cltype8 >= var_listnode3->type->table_size) {
942 var7 = 0;
943 } else {
944 var7 = var_listnode3->type->type_table[cltype8] == idtype9;
945 }
946 }
947 if (!var7) {
948 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30296);
949 exit(1);
950 }
951 var10 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction907>*/;
952 var_listnode4 = var10;
953 var_tcparnode5 = var_nodearraylist4;
954 /* <var_tcparnode5:nullable Object> isa nullable TCpar */
955 cltype12 = type_nullable_parser_nodes__TCpar.color;
956 idtype13 = type_nullable_parser_nodes__TCpar.id;
957 if(var_tcparnode5 == NULL) {
958 var11 = 1;
959 } else {
960 if(cltype12 >= var_tcparnode5->type->table_size) {
961 var11 = 0;
962 } else {
963 var11 = var_tcparnode5->type->type_table[cltype12] == idtype13;
964 }
965 }
966 if (!var11) {
967 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30299);
968 exit(1);
969 }
970 var14 = NEW_parser_nodes__AParExprs(&type_parser_nodes__AParExprs);
971 ((void (*)(val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__AParExprs__init_aparexprs]))(var14, var_toparnode2, var_listnode4, var_tcparnode5) /* init_aparexprs on <var14:AParExprs>*/;
972 CHECK_NEW_parser_nodes__AParExprs(var14);
973 var_pexprsnode1 = var14;
974 var_node_list = var_pexprsnode1;
975 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction907> */
976 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
977 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
978 RET_LABEL:;
979 }
980 /* method parser#ReduceAction907#action for (self: Object, Parser) */
981 void VIRTUAL_parser__ReduceAction907__action(val* self, val* p0) {
982 parser__ReduceAction907__action(self, p0);
983 RET_LABEL:;
984 }
985 /* method parser#ReduceAction908#action for (self: ReduceAction908, Parser) */
986 void parser__ReduceAction908__action(val* self, val* p0) {
987 val* var_p /* var p: Parser */;
988 val* var /* : null */;
989 val* var_node_list /* var node_list: nullable Object */;
990 val* var1 /* : nullable Object */;
991 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
992 val* var2 /* : nullable Object */;
993 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
994 val* var3 /* : nullable Object */;
995 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
996 val* var4 /* : Array[Object] */;
997 val* var_listnode3 /* var listnode3: Array[Object] */;
998 val* var_toparnode2 /* var toparnode2: nullable Object */;
999 short int var5 /* : Bool */;
1000 int cltype;
1001 int idtype;
1002 val* var_tcparnode4 /* var tcparnode4: nullable Object */;
1003 short int var6 /* : Bool */;
1004 int cltype7;
1005 int idtype8;
1006 val* var9 /* : AParExprs */;
1007 val* var_pexprsnode1 /* var pexprsnode1: nullable AParExprs */;
1008 long var10 /* : Int */;
1009 long var11 /* : Int */;
1010 var_p = p0;
1011 var = NULL;
1012 var_node_list = var;
1013 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1014 var_nodearraylist3 = var1;
1015 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1016 var_nodearraylist2 = var2;
1017 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1018 var_nodearraylist1 = var3;
1019 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
1020 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
1021 CHECK_NEW_array__Array(var4);
1022 var_listnode3 = var4;
1023 var_toparnode2 = var_nodearraylist1;
1024 /* <var_toparnode2:nullable Object> isa nullable TOpar */
1025 cltype = type_nullable_parser_nodes__TOpar.color;
1026 idtype = type_nullable_parser_nodes__TOpar.id;
1027 if(var_toparnode2 == NULL) {
1028 var5 = 1;
1029 } else {
1030 if(cltype >= var_toparnode2->type->table_size) {
1031 var5 = 0;
1032 } else {
1033 var5 = var_toparnode2->type->type_table[cltype] == idtype;
1034 }
1035 }
1036 if (!var5) {
1037 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30319);
1038 exit(1);
1039 }
1040 var_tcparnode4 = var_nodearraylist3;
1041 /* <var_tcparnode4:nullable Object> isa nullable TCpar */
1042 cltype7 = type_nullable_parser_nodes__TCpar.color;
1043 idtype8 = type_nullable_parser_nodes__TCpar.id;
1044 if(var_tcparnode4 == NULL) {
1045 var6 = 1;
1046 } else {
1047 if(cltype7 >= var_tcparnode4->type->table_size) {
1048 var6 = 0;
1049 } else {
1050 var6 = var_tcparnode4->type->type_table[cltype7] == idtype8;
1051 }
1052 }
1053 if (!var6) {
1054 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30321);
1055 exit(1);
1056 }
1057 var9 = NEW_parser_nodes__AParExprs(&type_parser_nodes__AParExprs);
1058 ((void (*)(val*, val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AParExprs__init_aparexprs]))(var9, var_toparnode2, var_listnode3, var_tcparnode4) /* init_aparexprs on <var9:AParExprs>*/;
1059 CHECK_NEW_parser_nodes__AParExprs(var9);
1060 var_pexprsnode1 = var9;
1061 var_node_list = var_pexprsnode1;
1062 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction908> */
1063 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
1064 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
1065 RET_LABEL:;
1066 }
1067 /* method parser#ReduceAction908#action for (self: Object, Parser) */
1068 void VIRTUAL_parser__ReduceAction908__action(val* self, val* p0) {
1069 parser__ReduceAction908__action(self, p0);
1070 RET_LABEL:;
1071 }
1072 /* method parser#ReduceAction909#action for (self: ReduceAction909, Parser) */
1073 void parser__ReduceAction909__action(val* self, val* p0) {
1074 val* var_p /* var p: Parser */;
1075 val* var /* : null */;
1076 val* var_node_list /* var node_list: nullable Object */;
1077 val* var1 /* : Array[Object] */;
1078 val* var_listnode2 /* var listnode2: Array[Object] */;
1079 val* var2 /* : AListExprs */;
1080 val* var_pexprsnode1 /* var pexprsnode1: nullable AListExprs */;
1081 long var3 /* : Int */;
1082 long var4 /* : Int */;
1083 var_p = p0;
1084 var = NULL;
1085 var_node_list = var;
1086 var1 = NEW_array__Array(&type_array__Arraykernel__Object);
1087 ((void (*)(val*))(var1->class->vft[COLOR_array__Array__init]))(var1) /* init on <var1:Array[Object]>*/;
1088 CHECK_NEW_array__Array(var1);
1089 var_listnode2 = var1;
1090 var2 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs);
1091 ((void (*)(val*, val*))(var2->class->vft[COLOR_parser_prod__AListExprs__init_alistexprs]))(var2, var_listnode2) /* init_alistexprs on <var2:AListExprs>*/;
1092 CHECK_NEW_parser_nodes__AListExprs(var2);
1093 var_pexprsnode1 = var2;
1094 var_node_list = var_pexprsnode1;
1095 var3 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction909> */
1096 var4 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var3) /* go_to on <var_p:Parser>*/;
1097 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var4, var_node_list) /* push on <var_p:Parser>*/;
1098 RET_LABEL:;
1099 }
1100 /* method parser#ReduceAction909#action for (self: Object, Parser) */
1101 void VIRTUAL_parser__ReduceAction909__action(val* self, val* p0) {
1102 parser__ReduceAction909__action(self, p0);
1103 RET_LABEL:;
1104 }
1105 /* method parser#ReduceAction911#action for (self: ReduceAction911, Parser) */
1106 void parser__ReduceAction911__action(val* self, val* p0) {
1107 val* var_p /* var p: Parser */;
1108 val* var /* : null */;
1109 val* var_node_list /* var node_list: nullable Object */;
1110 val* var1 /* : nullable Object */;
1111 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1112 val* var2 /* : Array[Object] */;
1113 val* var_listnode3 /* var listnode3: Array[Object] */;
1114 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
1115 short int var3 /* : Bool */;
1116 int cltype;
1117 int idtype;
1118 val* var4 /* : null */;
1119 short int var5 /* : Bool */;
1120 val* var6 /* : AListExprs */;
1121 val* var_pexprsnode1 /* var pexprsnode1: nullable AListExprs */;
1122 long var7 /* : Int */;
1123 long var8 /* : Int */;
1124 var_p = p0;
1125 var = NULL;
1126 var_node_list = var;
1127 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1128 var_nodearraylist1 = var1;
1129 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
1130 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
1131 CHECK_NEW_array__Array(var2);
1132 var_listnode3 = var2;
1133 var_pexprnode2 = var_nodearraylist1;
1134 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
1135 cltype = type_nullable_parser_nodes__AExpr.color;
1136 idtype = type_nullable_parser_nodes__AExpr.id;
1137 if(var_pexprnode2 == NULL) {
1138 var3 = 1;
1139 } else {
1140 if(cltype >= var_pexprnode2->type->table_size) {
1141 var3 = 0;
1142 } else {
1143 var3 = var_pexprnode2->type->type_table[cltype] == idtype;
1144 }
1145 }
1146 if (!var3) {
1147 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30352);
1148 exit(1);
1149 }
1150 var4 = NULL;
1151 if (var_pexprnode2 == NULL) {
1152 var5 = 0; /* is null */
1153 } else {
1154 var5 = 1; /* arg is null and recv is not */
1155 }
1156 if (var5){
1157 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pexprnode2) /* add on <var_listnode3:Array[Object]>*/;
1158 } else {
1159 }
1160 var6 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs);
1161 ((void (*)(val*, val*))(var6->class->vft[COLOR_parser_prod__AListExprs__init_alistexprs]))(var6, var_listnode3) /* init_alistexprs on <var6:AListExprs>*/;
1162 CHECK_NEW_parser_nodes__AListExprs(var6);
1163 var_pexprsnode1 = var6;
1164 var_node_list = var_pexprsnode1;
1165 var7 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction911> */
1166 var8 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var7) /* go_to on <var_p:Parser>*/;
1167 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var8, var_node_list) /* push on <var_p:Parser>*/;
1168 RET_LABEL:;
1169 }
1170 /* method parser#ReduceAction911#action for (self: Object, Parser) */
1171 void VIRTUAL_parser__ReduceAction911__action(val* self, val* p0) {
1172 parser__ReduceAction911__action(self, p0);
1173 RET_LABEL:;
1174 }
1175 /* method parser#ReduceAction914#action for (self: ReduceAction914, Parser) */
1176 void parser__ReduceAction914__action(val* self, val* p0) {
1177 val* var_p /* var p: Parser */;
1178 val* var /* : null */;
1179 val* var_node_list /* var node_list: nullable Object */;
1180 val* var1 /* : nullable Object */;
1181 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1182 val* var2 /* : nullable Object */;
1183 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1184 val* var3 /* : nullable Object */;
1185 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1186 val* var4 /* : nullable Object */;
1187 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1188 val* var5 /* : Array[Object] */;
1189 val* var_listnode4 /* var listnode4: Array[Object] */;
1190 val* var_tobranode2 /* var tobranode2: nullable Object */;
1191 short int var6 /* : Bool */;
1192 int cltype;
1193 int idtype;
1194 val* var_listnode3 /* var listnode3: nullable Object */;
1195 short int var7 /* : Bool */;
1196 int cltype8;
1197 int idtype9;
1198 val* var10 /* : Array[Object] */;
1199 val* var_tcbranode5 /* var tcbranode5: nullable Object */;
1200 short int var11 /* : Bool */;
1201 int cltype12;
1202 int idtype13;
1203 val* var14 /* : ABraExprs */;
1204 val* var_pexprsnode1 /* var pexprsnode1: nullable ABraExprs */;
1205 long var15 /* : Int */;
1206 long var16 /* : Int */;
1207 var_p = p0;
1208 var = NULL;
1209 var_node_list = var;
1210 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1211 var_nodearraylist4 = var1;
1212 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1213 var_nodearraylist3 = var2;
1214 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1215 var_nodearraylist2 = var3;
1216 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1217 var_nodearraylist1 = var4;
1218 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
1219 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
1220 CHECK_NEW_array__Array(var5);
1221 var_listnode4 = var5;
1222 var_tobranode2 = var_nodearraylist1;
1223 /* <var_tobranode2:nullable Object> isa nullable TObra */
1224 cltype = type_nullable_parser_nodes__TObra.color;
1225 idtype = type_nullable_parser_nodes__TObra.id;
1226 if(var_tobranode2 == NULL) {
1227 var6 = 1;
1228 } else {
1229 if(cltype >= var_tobranode2->type->table_size) {
1230 var6 = 0;
1231 } else {
1232 var6 = var_tobranode2->type->type_table[cltype] == idtype;
1233 }
1234 }
1235 if (!var6) {
1236 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30374);
1237 exit(1);
1238 }
1239 var_listnode3 = var_nodearraylist3;
1240 /* <var_listnode3:nullable Object> isa Array[Object] */
1241 cltype8 = type_array__Arraykernel__Object.color;
1242 idtype9 = type_array__Arraykernel__Object.id;
1243 if(var_listnode3 == NULL) {
1244 var7 = 0;
1245 } else {
1246 if(cltype8 >= var_listnode3->type->table_size) {
1247 var7 = 0;
1248 } else {
1249 var7 = var_listnode3->type->type_table[cltype8] == idtype9;
1250 }
1251 }
1252 if (!var7) {
1253 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30376);
1254 exit(1);
1255 }
1256 var10 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction914>*/;
1257 var_listnode4 = var10;
1258 var_tcbranode5 = var_nodearraylist4;
1259 /* <var_tcbranode5:nullable Object> isa nullable TCbra */
1260 cltype12 = type_nullable_parser_nodes__TCbra.color;
1261 idtype13 = type_nullable_parser_nodes__TCbra.id;
1262 if(var_tcbranode5 == NULL) {
1263 var11 = 1;
1264 } else {
1265 if(cltype12 >= var_tcbranode5->type->table_size) {
1266 var11 = 0;
1267 } else {
1268 var11 = var_tcbranode5->type->type_table[cltype12] == idtype13;
1269 }
1270 }
1271 if (!var11) {
1272 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30379);
1273 exit(1);
1274 }
1275 var14 = NEW_parser_nodes__ABraExprs(&type_parser_nodes__ABraExprs);
1276 ((void (*)(val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__ABraExprs__init_abraexprs]))(var14, var_tobranode2, var_listnode4, var_tcbranode5) /* init_abraexprs on <var14:ABraExprs>*/;
1277 CHECK_NEW_parser_nodes__ABraExprs(var14);
1278 var_pexprsnode1 = var14;
1279 var_node_list = var_pexprsnode1;
1280 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction914> */
1281 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
1282 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
1283 RET_LABEL:;
1284 }
1285 /* method parser#ReduceAction914#action for (self: Object, Parser) */
1286 void VIRTUAL_parser__ReduceAction914__action(val* self, val* p0) {
1287 parser__ReduceAction914__action(self, p0);
1288 RET_LABEL:;
1289 }
1290 /* method parser#ReduceAction915#action for (self: ReduceAction915, Parser) */
1291 void parser__ReduceAction915__action(val* self, val* p0) {
1292 val* var_p /* var p: Parser */;
1293 val* var /* : null */;
1294 val* var_node_list /* var node_list: nullable Object */;
1295 val* var1 /* : nullable Object */;
1296 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1297 val* var2 /* : nullable Object */;
1298 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1299 val* var3 /* : Array[Object] */;
1300 val* var_listnode2 /* var listnode2: Array[Object] */;
1301 val* var_pexprnode1 /* var pexprnode1: nullable Object */;
1302 val* var4 /* : null */;
1303 short int var5 /* : Bool */;
1304 long var6 /* : Int */;
1305 long var7 /* : Int */;
1306 var_p = p0;
1307 var = NULL;
1308 var_node_list = var;
1309 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1310 var_nodearraylist2 = var1;
1311 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1312 var_nodearraylist1 = var2;
1313 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
1314 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
1315 CHECK_NEW_array__Array(var3);
1316 var_listnode2 = var3;
1317 var_pexprnode1 = var_nodearraylist1;
1318 var4 = NULL;
1319 if (var_pexprnode1 == NULL) {
1320 var5 = 0; /* is null */
1321 } else {
1322 var5 = 1; /* arg is null and recv is not */
1323 }
1324 if (var5){
1325 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_pexprnode1) /* add on <var_listnode2:Array[Object]>*/;
1326 } else {
1327 }
1328 var_node_list = var_listnode2;
1329 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction915> */
1330 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
1331 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
1332 RET_LABEL:;
1333 }
1334 /* method parser#ReduceAction915#action for (self: Object, Parser) */
1335 void VIRTUAL_parser__ReduceAction915__action(val* self, val* p0) {
1336 parser__ReduceAction915__action(self, p0);
1337 RET_LABEL:;
1338 }
1339 /* method parser#ReduceAction916#action for (self: ReduceAction916, Parser) */
1340 void parser__ReduceAction916__action(val* self, val* p0) {
1341 val* var_p /* var p: Parser */;
1342 val* var /* : null */;
1343 val* var_node_list /* var node_list: nullable Object */;
1344 val* var1 /* : nullable Object */;
1345 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1346 val* var2 /* : nullable Object */;
1347 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1348 val* var3 /* : nullable Object */;
1349 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1350 val* var4 /* : Array[Object] */;
1351 val* var_listnode3 /* var listnode3: Array[Object] */;
1352 val* var_pexprnode1 /* var pexprnode1: nullable Object */;
1353 val* var_listnode2 /* var listnode2: nullable Object */;
1354 short int var5 /* : Bool */;
1355 int cltype;
1356 int idtype;
1357 val* var6 /* : null */;
1358 short int var7 /* : Bool */;
1359 val* var8 /* : Array[Object] */;
1360 long var9 /* : Int */;
1361 long var10 /* : Int */;
1362 var_p = p0;
1363 var = NULL;
1364 var_node_list = var;
1365 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1366 var_nodearraylist3 = var1;
1367 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1368 var_nodearraylist2 = var2;
1369 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1370 var_nodearraylist1 = var3;
1371 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
1372 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
1373 CHECK_NEW_array__Array(var4);
1374 var_listnode3 = var4;
1375 var_pexprnode1 = var_nodearraylist1;
1376 var_listnode2 = var_nodearraylist3;
1377 /* <var_listnode2:nullable Object> isa Array[Object] */
1378 cltype = type_array__Arraykernel__Object.color;
1379 idtype = type_array__Arraykernel__Object.id;
1380 if(var_listnode2 == NULL) {
1381 var5 = 0;
1382 } else {
1383 if(cltype >= var_listnode2->type->table_size) {
1384 var5 = 0;
1385 } else {
1386 var5 = var_listnode2->type->type_table[cltype] == idtype;
1387 }
1388 }
1389 if (!var5) {
1390 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30416);
1391 exit(1);
1392 }
1393 var6 = NULL;
1394 if (var_pexprnode1 == NULL) {
1395 var7 = 0; /* is null */
1396 } else {
1397 var7 = 1; /* arg is null and recv is not */
1398 }
1399 if (var7){
1400 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pexprnode1) /* add on <var_listnode3:Array[Object]>*/;
1401 } else {
1402 }
1403 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode2) /* concat on <self:ReduceAction916>*/;
1404 var_listnode3 = var8;
1405 var_node_list = var_listnode3;
1406 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction916> */
1407 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
1408 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
1409 RET_LABEL:;
1410 }
1411 /* method parser#ReduceAction916#action for (self: Object, Parser) */
1412 void VIRTUAL_parser__ReduceAction916__action(val* self, val* p0) {
1413 parser__ReduceAction916__action(self, p0);
1414 RET_LABEL:;
1415 }
1416 /* method parser#ReduceAction917#action for (self: ReduceAction917, Parser) */
1417 void parser__ReduceAction917__action(val* self, val* p0) {
1418 val* var_p /* var p: Parser */;
1419 val* var /* : null */;
1420 val* var_node_list /* var node_list: nullable Object */;
1421 val* var1 /* : nullable Object */;
1422 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1423 val* var2 /* : nullable Object */;
1424 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1425 val* var3 /* : nullable Object */;
1426 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1427 val* var4 /* : nullable Object */;
1428 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1429 val* var_pexprnode1 /* var pexprnode1: nullable Object */;
1430 long var5 /* : Int */;
1431 long var6 /* : Int */;
1432 var_p = p0;
1433 var = NULL;
1434 var_node_list = var;
1435 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1436 var_nodearraylist4 = var1;
1437 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1438 var_nodearraylist3 = var2;
1439 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1440 var_nodearraylist2 = var3;
1441 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1442 var_nodearraylist1 = var4;
1443 var_pexprnode1 = var_nodearraylist3;
1444 var_node_list = var_pexprnode1;
1445 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction917> */
1446 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
1447 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
1448 RET_LABEL:;
1449 }
1450 /* method parser#ReduceAction917#action for (self: Object, Parser) */
1451 void VIRTUAL_parser__ReduceAction917__action(val* self, val* p0) {
1452 parser__ReduceAction917__action(self, p0);
1453 RET_LABEL:;
1454 }
1455 /* method parser#ReduceAction918#action for (self: ReduceAction918, Parser) */
1456 void parser__ReduceAction918__action(val* self, val* p0) {
1457 val* var_p /* var p: Parser */;
1458 val* var /* : null */;
1459 val* var_node_list /* var node_list: nullable Object */;
1460 val* var1 /* : nullable Object */;
1461 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1462 val* var2 /* : Array[Object] */;
1463 val* var_listnode2 /* var listnode2: Array[Object] */;
1464 val* var_tidnode1 /* var tidnode1: nullable Object */;
1465 val* var3 /* : null */;
1466 short int var4 /* : Bool */;
1467 long var5 /* : Int */;
1468 long var6 /* : Int */;
1469 var_p = p0;
1470 var = NULL;
1471 var_node_list = var;
1472 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1473 var_nodearraylist1 = var1;
1474 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
1475 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
1476 CHECK_NEW_array__Array(var2);
1477 var_listnode2 = var2;
1478 var_tidnode1 = var_nodearraylist1;
1479 var3 = NULL;
1480 if (var_tidnode1 == NULL) {
1481 var4 = 0; /* is null */
1482 } else {
1483 var4 = 1; /* arg is null and recv is not */
1484 }
1485 if (var4){
1486 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_tidnode1) /* add on <var_listnode2:Array[Object]>*/;
1487 } else {
1488 }
1489 var_node_list = var_listnode2;
1490 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction918> */
1491 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
1492 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
1493 RET_LABEL:;
1494 }
1495 /* method parser#ReduceAction918#action for (self: Object, Parser) */
1496 void VIRTUAL_parser__ReduceAction918__action(val* self, val* p0) {
1497 parser__ReduceAction918__action(self, p0);
1498 RET_LABEL:;
1499 }
1500 /* method parser#ReduceAction919#action for (self: ReduceAction919, Parser) */
1501 void parser__ReduceAction919__action(val* self, val* p0) {
1502 val* var_p /* var p: Parser */;
1503 val* var /* : null */;
1504 val* var_node_list /* var node_list: nullable Object */;
1505 val* var1 /* : nullable Object */;
1506 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1507 val* var2 /* : nullable Object */;
1508 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1509 val* var3 /* : nullable Object */;
1510 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1511 val* var4 /* : nullable Object */;
1512 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1513 val* var5 /* : nullable Object */;
1514 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1515 val* var6 /* : Array[Object] */;
1516 val* var_listnode3 /* var listnode3: Array[Object] */;
1517 val* var_listnode1 /* var listnode1: nullable Object */;
1518 short int var7 /* : Bool */;
1519 int cltype;
1520 int idtype;
1521 val* var_tidnode2 /* var tidnode2: nullable Object */;
1522 val* var8 /* : Array[Object] */;
1523 val* var9 /* : null */;
1524 short int var10 /* : Bool */;
1525 long var11 /* : Int */;
1526 long var12 /* : Int */;
1527 var_p = p0;
1528 var = NULL;
1529 var_node_list = var;
1530 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1531 var_nodearraylist5 = var1;
1532 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1533 var_nodearraylist4 = var2;
1534 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1535 var_nodearraylist3 = var3;
1536 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1537 var_nodearraylist2 = var4;
1538 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1539 var_nodearraylist1 = var5;
1540 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
1541 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
1542 CHECK_NEW_array__Array(var6);
1543 var_listnode3 = var6;
1544 var_listnode1 = var_nodearraylist1;
1545 /* <var_listnode1:nullable Object> isa Array[Object] */
1546 cltype = type_array__Arraykernel__Object.color;
1547 idtype = type_array__Arraykernel__Object.id;
1548 if(var_listnode1 == NULL) {
1549 var7 = 0;
1550 } else {
1551 if(cltype >= var_listnode1->type->table_size) {
1552 var7 = 0;
1553 } else {
1554 var7 = var_listnode1->type->type_table[cltype] == idtype;
1555 }
1556 }
1557 if (!var7) {
1558 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30466);
1559 exit(1);
1560 }
1561 var_tidnode2 = var_nodearraylist5;
1562 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction919>*/;
1563 var_listnode3 = var8;
1564 var9 = NULL;
1565 if (var_tidnode2 == NULL) {
1566 var10 = 0; /* is null */
1567 } else {
1568 var10 = 1; /* arg is null and recv is not */
1569 }
1570 if (var10){
1571 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_tidnode2) /* add on <var_listnode3:Array[Object]>*/;
1572 } else {
1573 }
1574 var_node_list = var_listnode3;
1575 var11 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction919> */
1576 var12 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var11) /* go_to on <var_p:Parser>*/;
1577 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var12, var_node_list) /* push on <var_p:Parser>*/;
1578 RET_LABEL:;
1579 }
1580 /* method parser#ReduceAction919#action for (self: Object, Parser) */
1581 void VIRTUAL_parser__ReduceAction919__action(val* self, val* p0) {
1582 parser__ReduceAction919__action(self, p0);
1583 RET_LABEL:;
1584 }
1585 /* method parser#ReduceAction920#action for (self: ReduceAction920, Parser) */
1586 void parser__ReduceAction920__action(val* self, val* p0) {
1587 val* var_p /* var p: Parser */;
1588 val* var /* : null */;
1589 val* var_node_list /* var node_list: nullable Object */;
1590 val* var1 /* : nullable Object */;
1591 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1592 val* var2 /* : Array[Object] */;
1593 val* var_listnode3 /* var listnode3: Array[Object] */;
1594 val* var_tidnode4 /* var tidnode4: nullable Object */;
1595 short int var3 /* : Bool */;
1596 int cltype;
1597 int idtype;
1598 val* var4 /* : AModuleName */;
1599 val* var5 /* : null */;
1600 val* var_pmodulenamenode1 /* var pmodulenamenode1: nullable AModuleName */;
1601 long var6 /* : Int */;
1602 long var7 /* : Int */;
1603 var_p = p0;
1604 var = NULL;
1605 var_node_list = var;
1606 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1607 var_nodearraylist1 = var1;
1608 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
1609 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
1610 CHECK_NEW_array__Array(var2);
1611 var_listnode3 = var2;
1612 var_tidnode4 = var_nodearraylist1;
1613 /* <var_tidnode4:nullable Object> isa nullable TId */
1614 cltype = type_nullable_parser_nodes__TId.color;
1615 idtype = type_nullable_parser_nodes__TId.id;
1616 if(var_tidnode4 == NULL) {
1617 var3 = 1;
1618 } else {
1619 if(cltype >= var_tidnode4->type->table_size) {
1620 var3 = 0;
1621 } else {
1622 var3 = var_tidnode4->type->type_table[cltype] == idtype;
1623 }
1624 }
1625 if (!var3) {
1626 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30484);
1627 exit(1);
1628 }
1629 var4 = NEW_parser_nodes__AModuleName(&type_parser_nodes__AModuleName);
1630 var5 = NULL;
1631 ((void (*)(val*, val*, val*, val*))(var4->class->vft[COLOR_parser_prod__AModuleName__init_amodulename]))(var4, var5, var_listnode3, var_tidnode4) /* init_amodulename on <var4:AModuleName>*/;
1632 CHECK_NEW_parser_nodes__AModuleName(var4);
1633 var_pmodulenamenode1 = var4;
1634 var_node_list = var_pmodulenamenode1;
1635 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction920> */
1636 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
1637 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
1638 RET_LABEL:;
1639 }
1640 /* method parser#ReduceAction920#action for (self: Object, Parser) */
1641 void VIRTUAL_parser__ReduceAction920__action(val* self, val* p0) {
1642 parser__ReduceAction920__action(self, p0);
1643 RET_LABEL:;
1644 }
1645 /* method parser#ReduceAction921#action for (self: ReduceAction921, Parser) */
1646 void parser__ReduceAction921__action(val* self, val* p0) {
1647 val* var_p /* var p: Parser */;
1648 val* var /* : null */;
1649 val* var_node_list /* var node_list: nullable Object */;
1650 val* var1 /* : nullable Object */;
1651 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1652 val* var2 /* : nullable Object */;
1653 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1654 val* var3 /* : Array[Object] */;
1655 val* var_listnode4 /* var listnode4: Array[Object] */;
1656 val* var_listnode3 /* var listnode3: nullable Object */;
1657 short int var4 /* : Bool */;
1658 int cltype;
1659 int idtype;
1660 val* var5 /* : Array[Object] */;
1661 val* var_tidnode5 /* var tidnode5: nullable Object */;
1662 short int var6 /* : Bool */;
1663 int cltype7;
1664 int idtype8;
1665 val* var9 /* : AModuleName */;
1666 val* var10 /* : null */;
1667 val* var_pmodulenamenode1 /* var pmodulenamenode1: nullable AModuleName */;
1668 long var11 /* : Int */;
1669 long var12 /* : Int */;
1670 var_p = p0;
1671 var = NULL;
1672 var_node_list = var;
1673 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1674 var_nodearraylist2 = var1;
1675 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1676 var_nodearraylist1 = var2;
1677 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
1678 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
1679 CHECK_NEW_array__Array(var3);
1680 var_listnode4 = var3;
1681 var_listnode3 = var_nodearraylist1;
1682 /* <var_listnode3:nullable Object> isa Array[Object] */
1683 cltype = type_array__Arraykernel__Object.color;
1684 idtype = type_array__Arraykernel__Object.id;
1685 if(var_listnode3 == NULL) {
1686 var4 = 0;
1687 } else {
1688 if(cltype >= var_listnode3->type->table_size) {
1689 var4 = 0;
1690 } else {
1691 var4 = var_listnode3->type->type_table[cltype] == idtype;
1692 }
1693 }
1694 if (!var4) {
1695 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30503);
1696 exit(1);
1697 }
1698 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction921>*/;
1699 var_listnode4 = var5;
1700 var_tidnode5 = var_nodearraylist2;
1701 /* <var_tidnode5:nullable Object> isa nullable TId */
1702 cltype7 = type_nullable_parser_nodes__TId.color;
1703 idtype8 = type_nullable_parser_nodes__TId.id;
1704 if(var_tidnode5 == NULL) {
1705 var6 = 1;
1706 } else {
1707 if(cltype7 >= var_tidnode5->type->table_size) {
1708 var6 = 0;
1709 } else {
1710 var6 = var_tidnode5->type->type_table[cltype7] == idtype8;
1711 }
1712 }
1713 if (!var6) {
1714 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30506);
1715 exit(1);
1716 }
1717 var9 = NEW_parser_nodes__AModuleName(&type_parser_nodes__AModuleName);
1718 var10 = NULL;
1719 ((void (*)(val*, val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AModuleName__init_amodulename]))(var9, var10, var_listnode4, var_tidnode5) /* init_amodulename on <var9:AModuleName>*/;
1720 CHECK_NEW_parser_nodes__AModuleName(var9);
1721 var_pmodulenamenode1 = var9;
1722 var_node_list = var_pmodulenamenode1;
1723 var11 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction921> */
1724 var12 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var11) /* go_to on <var_p:Parser>*/;
1725 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var12, var_node_list) /* push on <var_p:Parser>*/;
1726 RET_LABEL:;
1727 }
1728 /* method parser#ReduceAction921#action for (self: Object, Parser) */
1729 void VIRTUAL_parser__ReduceAction921__action(val* self, val* p0) {
1730 parser__ReduceAction921__action(self, p0);
1731 RET_LABEL:;
1732 }
1733 /* method parser#ReduceAction922#action for (self: ReduceAction922, Parser) */
1734 void parser__ReduceAction922__action(val* self, val* p0) {
1735 val* var_p /* var p: Parser */;
1736 val* var /* : null */;
1737 val* var_node_list /* var node_list: nullable Object */;
1738 val* var1 /* : nullable Object */;
1739 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1740 val* var2 /* : nullable Object */;
1741 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1742 val* var3 /* : nullable Object */;
1743 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1744 val* var4 /* : Array[Object] */;
1745 val* var_listnode3 /* var listnode3: Array[Object] */;
1746 val* var_tquadnode2 /* var tquadnode2: nullable Object */;
1747 short int var5 /* : Bool */;
1748 int cltype;
1749 int idtype;
1750 val* var_tidnode4 /* var tidnode4: nullable Object */;
1751 short int var6 /* : Bool */;
1752 int cltype7;
1753 int idtype8;
1754 val* var9 /* : AModuleName */;
1755 val* var_pmodulenamenode1 /* var pmodulenamenode1: nullable AModuleName */;
1756 long var10 /* : Int */;
1757 long var11 /* : Int */;
1758 var_p = p0;
1759 var = NULL;
1760 var_node_list = var;
1761 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1762 var_nodearraylist3 = var1;
1763 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1764 var_nodearraylist2 = var2;
1765 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1766 var_nodearraylist1 = var3;
1767 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
1768 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
1769 CHECK_NEW_array__Array(var4);
1770 var_listnode3 = var4;
1771 var_tquadnode2 = var_nodearraylist1;
1772 /* <var_tquadnode2:nullable Object> isa nullable TQuad */
1773 cltype = type_nullable_parser_nodes__TQuad.color;
1774 idtype = type_nullable_parser_nodes__TQuad.id;
1775 if(var_tquadnode2 == NULL) {
1776 var5 = 1;
1777 } else {
1778 if(cltype >= var_tquadnode2->type->table_size) {
1779 var5 = 0;
1780 } else {
1781 var5 = var_tquadnode2->type->type_table[cltype] == idtype;
1782 }
1783 }
1784 if (!var5) {
1785 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30526);
1786 exit(1);
1787 }
1788 var_tidnode4 = var_nodearraylist3;
1789 /* <var_tidnode4:nullable Object> isa nullable TId */
1790 cltype7 = type_nullable_parser_nodes__TId.color;
1791 idtype8 = type_nullable_parser_nodes__TId.id;
1792 if(var_tidnode4 == NULL) {
1793 var6 = 1;
1794 } else {
1795 if(cltype7 >= var_tidnode4->type->table_size) {
1796 var6 = 0;
1797 } else {
1798 var6 = var_tidnode4->type->type_table[cltype7] == idtype8;
1799 }
1800 }
1801 if (!var6) {
1802 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30528);
1803 exit(1);
1804 }
1805 var9 = NEW_parser_nodes__AModuleName(&type_parser_nodes__AModuleName);
1806 ((void (*)(val*, val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AModuleName__init_amodulename]))(var9, var_tquadnode2, var_listnode3, var_tidnode4) /* init_amodulename on <var9:AModuleName>*/;
1807 CHECK_NEW_parser_nodes__AModuleName(var9);
1808 var_pmodulenamenode1 = var9;
1809 var_node_list = var_pmodulenamenode1;
1810 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction922> */
1811 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
1812 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
1813 RET_LABEL:;
1814 }
1815 /* method parser#ReduceAction922#action for (self: Object, Parser) */
1816 void VIRTUAL_parser__ReduceAction922__action(val* self, val* p0) {
1817 parser__ReduceAction922__action(self, p0);
1818 RET_LABEL:;
1819 }
1820 /* method parser#ReduceAction923#action for (self: ReduceAction923, Parser) */
1821 void parser__ReduceAction923__action(val* self, val* p0) {
1822 val* var_p /* var p: Parser */;
1823 val* var /* : null */;
1824 val* var_node_list /* var node_list: nullable Object */;
1825 val* var1 /* : nullable Object */;
1826 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1827 val* var2 /* : nullable Object */;
1828 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1829 val* var3 /* : nullable Object */;
1830 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1831 val* var4 /* : nullable Object */;
1832 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1833 val* var5 /* : Array[Object] */;
1834 val* var_listnode4 /* var listnode4: Array[Object] */;
1835 val* var_tquadnode2 /* var tquadnode2: nullable Object */;
1836 short int var6 /* : Bool */;
1837 int cltype;
1838 int idtype;
1839 val* var_listnode3 /* var listnode3: nullable Object */;
1840 short int var7 /* : Bool */;
1841 int cltype8;
1842 int idtype9;
1843 val* var10 /* : Array[Object] */;
1844 val* var_tidnode5 /* var tidnode5: nullable Object */;
1845 short int var11 /* : Bool */;
1846 int cltype12;
1847 int idtype13;
1848 val* var14 /* : AModuleName */;
1849 val* var_pmodulenamenode1 /* var pmodulenamenode1: nullable AModuleName */;
1850 long var15 /* : Int */;
1851 long var16 /* : Int */;
1852 var_p = p0;
1853 var = NULL;
1854 var_node_list = var;
1855 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1856 var_nodearraylist4 = var1;
1857 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1858 var_nodearraylist3 = var2;
1859 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1860 var_nodearraylist2 = var3;
1861 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1862 var_nodearraylist1 = var4;
1863 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
1864 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
1865 CHECK_NEW_array__Array(var5);
1866 var_listnode4 = var5;
1867 var_tquadnode2 = var_nodearraylist1;
1868 /* <var_tquadnode2:nullable Object> isa nullable TQuad */
1869 cltype = type_nullable_parser_nodes__TQuad.color;
1870 idtype = type_nullable_parser_nodes__TQuad.id;
1871 if(var_tquadnode2 == NULL) {
1872 var6 = 1;
1873 } else {
1874 if(cltype >= var_tquadnode2->type->table_size) {
1875 var6 = 0;
1876 } else {
1877 var6 = var_tquadnode2->type->type_table[cltype] == idtype;
1878 }
1879 }
1880 if (!var6) {
1881 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30549);
1882 exit(1);
1883 }
1884 var_listnode3 = var_nodearraylist3;
1885 /* <var_listnode3:nullable Object> isa Array[Object] */
1886 cltype8 = type_array__Arraykernel__Object.color;
1887 idtype9 = type_array__Arraykernel__Object.id;
1888 if(var_listnode3 == NULL) {
1889 var7 = 0;
1890 } else {
1891 if(cltype8 >= var_listnode3->type->table_size) {
1892 var7 = 0;
1893 } else {
1894 var7 = var_listnode3->type->type_table[cltype8] == idtype9;
1895 }
1896 }
1897 if (!var7) {
1898 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30551);
1899 exit(1);
1900 }
1901 var10 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction923>*/;
1902 var_listnode4 = var10;
1903 var_tidnode5 = var_nodearraylist4;
1904 /* <var_tidnode5:nullable Object> isa nullable TId */
1905 cltype12 = type_nullable_parser_nodes__TId.color;
1906 idtype13 = type_nullable_parser_nodes__TId.id;
1907 if(var_tidnode5 == NULL) {
1908 var11 = 1;
1909 } else {
1910 if(cltype12 >= var_tidnode5->type->table_size) {
1911 var11 = 0;
1912 } else {
1913 var11 = var_tidnode5->type->type_table[cltype12] == idtype13;
1914 }
1915 }
1916 if (!var11) {
1917 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30554);
1918 exit(1);
1919 }
1920 var14 = NEW_parser_nodes__AModuleName(&type_parser_nodes__AModuleName);
1921 ((void (*)(val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__AModuleName__init_amodulename]))(var14, var_tquadnode2, var_listnode4, var_tidnode5) /* init_amodulename on <var14:AModuleName>*/;
1922 CHECK_NEW_parser_nodes__AModuleName(var14);
1923 var_pmodulenamenode1 = var14;
1924 var_node_list = var_pmodulenamenode1;
1925 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction923> */
1926 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
1927 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
1928 RET_LABEL:;
1929 }
1930 /* method parser#ReduceAction923#action for (self: Object, Parser) */
1931 void VIRTUAL_parser__ReduceAction923__action(val* self, val* p0) {
1932 parser__ReduceAction923__action(self, p0);
1933 RET_LABEL:;
1934 }
1935 /* method parser#ReduceAction924#action for (self: ReduceAction924, Parser) */
1936 void parser__ReduceAction924__action(val* self, val* p0) {
1937 val* var_p /* var p: Parser */;
1938 val* var /* : null */;
1939 val* var_node_list /* var node_list: nullable Object */;
1940 val* var1 /* : nullable Object */;
1941 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1942 val* var2 /* : nullable Object */;
1943 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1944 val* var3 /* : nullable Object */;
1945 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1946 val* var_tidnode1 /* var tidnode1: nullable Object */;
1947 long var4 /* : Int */;
1948 long var5 /* : Int */;
1949 var_p = p0;
1950 var = NULL;
1951 var_node_list = var;
1952 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1953 var_nodearraylist3 = var1;
1954 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1955 var_nodearraylist2 = var2;
1956 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1957 var_nodearraylist1 = var3;
1958 var_tidnode1 = var_nodearraylist1;
1959 var_node_list = var_tidnode1;
1960 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction924> */
1961 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
1962 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
1963 RET_LABEL:;
1964 }
1965 /* method parser#ReduceAction924#action for (self: Object, Parser) */
1966 void VIRTUAL_parser__ReduceAction924__action(val* self, val* p0) {
1967 parser__ReduceAction924__action(self, p0);
1968 RET_LABEL:;
1969 }
1970 /* method parser#ReduceAction925#action for (self: ReduceAction925, Parser) */
1971 void parser__ReduceAction925__action(val* self, val* p0) {
1972 val* var_p /* var p: Parser */;
1973 val* var /* : null */;
1974 val* var_node_list /* var node_list: nullable Object */;
1975 val* var1 /* : nullable Object */;
1976 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1977 val* var2 /* : nullable Object */;
1978 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1979 val* var3 /* : nullable Object */;
1980 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1981 val* var_tclassidnode1 /* var tclassidnode1: nullable Object */;
1982 long var4 /* : Int */;
1983 long var5 /* : Int */;
1984 var_p = p0;
1985 var = NULL;
1986 var_node_list = var;
1987 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1988 var_nodearraylist3 = var1;
1989 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1990 var_nodearraylist2 = var2;
1991 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1992 var_nodearraylist1 = var3;
1993 var_tclassidnode1 = var_nodearraylist1;
1994 var_node_list = var_tclassidnode1;
1995 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction925> */
1996 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
1997 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
1998 RET_LABEL:;
1999 }
2000 /* method parser#ReduceAction925#action for (self: Object, Parser) */
2001 void VIRTUAL_parser__ReduceAction925__action(val* self, val* p0) {
2002 parser__ReduceAction925__action(self, p0);
2003 RET_LABEL:;
2004 }
2005 /* method parser#ReduceAction926#action for (self: ReduceAction926, Parser) */
2006 void parser__ReduceAction926__action(val* self, val* p0) {
2007 val* var_p /* var p: Parser */;
2008 val* var /* : null */;
2009 val* var_node_list /* var node_list: nullable Object */;
2010 val* var1 /* : nullable Object */;
2011 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2012 long var2 /* : Int */;
2013 long var3 /* : Int */;
2014 var_p = p0;
2015 var = NULL;
2016 var_node_list = var;
2017 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2018 var_nodearraylist1 = var1;
2019 var2 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction926> */
2020 var3 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var2) /* go_to on <var_p:Parser>*/;
2021 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var3, var_node_list) /* push on <var_p:Parser>*/;
2022 RET_LABEL:;
2023 }
2024 /* method parser#ReduceAction926#action for (self: Object, Parser) */
2025 void VIRTUAL_parser__ReduceAction926__action(val* self, val* p0) {
2026 parser__ReduceAction926__action(self, p0);
2027 RET_LABEL:;
2028 }
2029 /* method parser#ReduceAction928#action for (self: ReduceAction928, Parser) */
2030 void parser__ReduceAction928__action(val* self, val* p0) {
2031 val* var_p /* var p: Parser */;
2032 val* var /* : null */;
2033 val* var_node_list /* var node_list: nullable Object */;
2034 val* var1 /* : nullable Object */;
2035 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2036 val* var2 /* : Array[Object] */;
2037 val* var_listnode3 /* var listnode3: Array[Object] */;
2038 val* var_listnode2 /* var listnode2: nullable Object */;
2039 short int var3 /* : Bool */;
2040 int cltype;
2041 int idtype;
2042 val* var4 /* : Array[Object] */;
2043 val* var5 /* : ADoc */;
2044 val* var_pdocnode1 /* var pdocnode1: nullable ADoc */;
2045 long var6 /* : Int */;
2046 long var7 /* : Int */;
2047 var_p = p0;
2048 var = NULL;
2049 var_node_list = var;
2050 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2051 var_nodearraylist1 = var1;
2052 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
2053 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
2054 CHECK_NEW_array__Array(var2);
2055 var_listnode3 = var2;
2056 var_listnode2 = var_nodearraylist1;
2057 /* <var_listnode2:nullable Object> isa Array[Object] */
2058 cltype = type_array__Arraykernel__Object.color;
2059 idtype = type_array__Arraykernel__Object.id;
2060 if(var_listnode2 == NULL) {
2061 var3 = 0;
2062 } else {
2063 if(cltype >= var_listnode2->type->table_size) {
2064 var3 = 0;
2065 } else {
2066 var3 = var_listnode2->type->type_table[cltype] == idtype;
2067 }
2068 }
2069 if (!var3) {
2070 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30607);
2071 exit(1);
2072 }
2073 var4 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode2) /* concat on <self:ReduceAction928>*/;
2074 var_listnode3 = var4;
2075 var5 = NEW_parser_nodes__ADoc(&type_parser_nodes__ADoc);
2076 ((void (*)(val*, val*))(var5->class->vft[COLOR_parser_prod__ADoc__init_adoc]))(var5, var_listnode3) /* init_adoc on <var5:ADoc>*/;
2077 CHECK_NEW_parser_nodes__ADoc(var5);
2078 var_pdocnode1 = var5;
2079 var_node_list = var_pdocnode1;
2080 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction928> */
2081 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
2082 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
2083 RET_LABEL:;
2084 }
2085 /* method parser#ReduceAction928#action for (self: Object, Parser) */
2086 void VIRTUAL_parser__ReduceAction928__action(val* self, val* p0) {
2087 parser__ReduceAction928__action(self, p0);
2088 RET_LABEL:;
2089 }
2090 /* method parser#ReduceAction929#action for (self: ReduceAction929, Parser) */
2091 void parser__ReduceAction929__action(val* self, val* p0) {
2092 val* var_p /* var p: Parser */;
2093 val* var /* : null */;
2094 val* var_node_list /* var node_list: nullable Object */;
2095 val* var1 /* : nullable Object */;
2096 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2097 val* var2 /* : nullable Object */;
2098 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2099 val* var3 /* : Array[Object] */;
2100 val* var_listnode3 /* var listnode3: Array[Object] */;
2101 val* var_listnode2 /* var listnode2: nullable Object */;
2102 short int var4 /* : Bool */;
2103 int cltype;
2104 int idtype;
2105 val* var5 /* : Array[Object] */;
2106 val* var6 /* : ADoc */;
2107 val* var_pdocnode1 /* var pdocnode1: nullable ADoc */;
2108 long var7 /* : Int */;
2109 long var8 /* : Int */;
2110 var_p = p0;
2111 var = NULL;
2112 var_node_list = var;
2113 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2114 var_nodearraylist2 = var1;
2115 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2116 var_nodearraylist1 = var2;
2117 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
2118 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
2119 CHECK_NEW_array__Array(var3);
2120 var_listnode3 = var3;
2121 var_listnode2 = var_nodearraylist2;
2122 /* <var_listnode2:nullable Object> isa Array[Object] */
2123 cltype = type_array__Arraykernel__Object.color;
2124 idtype = type_array__Arraykernel__Object.id;
2125 if(var_listnode2 == NULL) {
2126 var4 = 0;
2127 } else {
2128 if(cltype >= var_listnode2->type->table_size) {
2129 var4 = 0;
2130 } else {
2131 var4 = var_listnode2->type->type_table[cltype] == idtype;
2132 }
2133 }
2134 if (!var4) {
2135 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30625);
2136 exit(1);
2137 }
2138 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode2) /* concat on <self:ReduceAction929>*/;
2139 var_listnode3 = var5;
2140 var6 = NEW_parser_nodes__ADoc(&type_parser_nodes__ADoc);
2141 ((void (*)(val*, val*))(var6->class->vft[COLOR_parser_prod__ADoc__init_adoc]))(var6, var_listnode3) /* init_adoc on <var6:ADoc>*/;
2142 CHECK_NEW_parser_nodes__ADoc(var6);
2143 var_pdocnode1 = var6;
2144 var_node_list = var_pdocnode1;
2145 var7 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction929> */
2146 var8 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var7) /* go_to on <var_p:Parser>*/;
2147 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var8, var_node_list) /* push on <var_p:Parser>*/;
2148 RET_LABEL:;
2149 }
2150 /* method parser#ReduceAction929#action for (self: Object, Parser) */
2151 void VIRTUAL_parser__ReduceAction929__action(val* self, val* p0) {
2152 parser__ReduceAction929__action(self, p0);
2153 RET_LABEL:;
2154 }
2155 /* method parser#ReduceAction931#action for (self: ReduceAction931, Parser) */
2156 void parser__ReduceAction931__action(val* self, val* p0) {
2157 val* var_p /* var p: Parser */;
2158 val* var /* : null */;
2159 val* var_node_list /* var node_list: nullable Object */;
2160 val* var1 /* : null */;
2161 long var2 /* : Int */;
2162 long var3 /* : Int */;
2163 var_p = p0;
2164 var = NULL;
2165 var_node_list = var;
2166 var1 = NULL;
2167 var_node_list = var1;
2168 var2 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction931> */
2169 var3 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var2) /* go_to on <var_p:Parser>*/;
2170 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var3, var_node_list) /* push on <var_p:Parser>*/;
2171 RET_LABEL:;
2172 }
2173 /* method parser#ReduceAction931#action for (self: Object, Parser) */
2174 void VIRTUAL_parser__ReduceAction931__action(val* self, val* p0) {
2175 parser__ReduceAction931__action(self, p0);
2176 RET_LABEL:;
2177 }
2178 /* method parser#ReduceAction932#action for (self: ReduceAction932, Parser) */
2179 void parser__ReduceAction932__action(val* self, val* p0) {
2180 val* var_p /* var p: Parser */;
2181 val* var /* : null */;
2182 val* var_node_list /* var node_list: nullable Object */;
2183 val* var1 /* : nullable Object */;
2184 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2185 val* var_pdocnode1 /* var pdocnode1: nullable Object */;
2186 long var2 /* : Int */;
2187 long var3 /* : Int */;
2188 var_p = p0;
2189 var = NULL;
2190 var_node_list = var;
2191 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2192 var_nodearraylist1 = var1;
2193 var_pdocnode1 = var_nodearraylist1;
2194 var_node_list = var_pdocnode1;
2195 var2 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction932> */
2196 var3 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var2) /* go_to on <var_p:Parser>*/;
2197 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var3, var_node_list) /* push on <var_p:Parser>*/;
2198 RET_LABEL:;
2199 }
2200 /* method parser#ReduceAction932#action for (self: Object, Parser) */
2201 void VIRTUAL_parser__ReduceAction932__action(val* self, val* p0) {
2202 parser__ReduceAction932__action(self, p0);
2203 RET_LABEL:;
2204 }
2205 /* method parser#ReduceAction933#action for (self: ReduceAction933, Parser) */
2206 void parser__ReduceAction933__action(val* self, val* p0) {
2207 val* var_p /* var p: Parser */;
2208 val* var /* : null */;
2209 val* var_node_list /* var node_list: nullable Object */;
2210 val* var1 /* : nullable Object */;
2211 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2212 val* var2 /* : nullable Object */;
2213 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2214 long var3 /* : Int */;
2215 long var4 /* : Int */;
2216 var_p = p0;
2217 var = NULL;
2218 var_node_list = var;
2219 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2220 var_nodearraylist2 = var1;
2221 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2222 var_nodearraylist1 = var2;
2223 var3 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction933> */
2224 var4 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var3) /* go_to on <var_p:Parser>*/;
2225 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var4, var_node_list) /* push on <var_p:Parser>*/;
2226 RET_LABEL:;
2227 }
2228 /* method parser#ReduceAction933#action for (self: Object, Parser) */
2229 void VIRTUAL_parser__ReduceAction933__action(val* self, val* p0) {
2230 parser__ReduceAction933__action(self, p0);
2231 RET_LABEL:;
2232 }
2233 /* method parser#ReduceAction934#action for (self: ReduceAction934, Parser) */
2234 void parser__ReduceAction934__action(val* self, val* p0) {
2235 val* var_p /* var p: Parser */;
2236 val* var /* : null */;
2237 val* var_node_list /* var node_list: nullable Object */;
2238 val* var1 /* : nullable Object */;
2239 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2240 val* var2 /* : nullable Object */;
2241 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2242 val* var3 /* : nullable Object */;
2243 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2244 long var4 /* : Int */;
2245 long var5 /* : Int */;
2246 var_p = p0;
2247 var = NULL;
2248 var_node_list = var;
2249 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2250 var_nodearraylist3 = var1;
2251 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2252 var_nodearraylist2 = var2;
2253 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2254 var_nodearraylist1 = var3;
2255 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction934> */
2256 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
2257 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
2258 RET_LABEL:;
2259 }
2260 /* method parser#ReduceAction934#action for (self: Object, Parser) */
2261 void VIRTUAL_parser__ReduceAction934__action(val* self, val* p0) {
2262 parser__ReduceAction934__action(self, p0);
2263 RET_LABEL:;
2264 }
2265 /* method parser#ReduceAction1317#action for (self: ReduceAction1317, Parser) */
2266 void parser__ReduceAction1317__action(val* self, val* p0) {
2267 val* var_p /* var p: Parser */;
2268 val* var /* : null */;
2269 val* var_node_list /* var node_list: nullable Object */;
2270 val* var1 /* : nullable Object */;
2271 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2272 val* var2 /* : nullable Object */;
2273 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2274 val* var3 /* : nullable Object */;
2275 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2276 val* var_tkwissetnode2 /* var tkwissetnode2: nullable Object */;
2277 short int var4 /* : Bool */;
2278 int cltype;
2279 int idtype;
2280 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
2281 short int var5 /* : Bool */;
2282 int cltype6;
2283 int idtype7;
2284 val* var_tattridnode4 /* var tattridnode4: nullable Object */;
2285 short int var8 /* : Bool */;
2286 int cltype9;
2287 int idtype10;
2288 val* var11 /* : AIssetAttrExpr */;
2289 val* var_pexprnode1 /* var pexprnode1: nullable AIssetAttrExpr */;
2290 long var12 /* : Int */;
2291 long var13 /* : Int */;
2292 var_p = p0;
2293 var = NULL;
2294 var_node_list = var;
2295 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2296 var_nodearraylist3 = var1;
2297 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2298 var_nodearraylist2 = var2;
2299 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2300 var_nodearraylist1 = var3;
2301 var_tkwissetnode2 = var_nodearraylist1;
2302 /* <var_tkwissetnode2:nullable Object> isa nullable TKwisset */
2303 cltype = type_nullable_parser_nodes__TKwisset.color;
2304 idtype = type_nullable_parser_nodes__TKwisset.id;
2305 if(var_tkwissetnode2 == NULL) {
2306 var4 = 1;
2307 } else {
2308 if(cltype >= var_tkwissetnode2->type->table_size) {
2309 var4 = 0;
2310 } else {
2311 var4 = var_tkwissetnode2->type->type_table[cltype] == idtype;
2312 }
2313 }
2314 if (!var4) {
2315 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30684);
2316 exit(1);
2317 }
2318 var_pexprnode3 = var_nodearraylist2;
2319 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
2320 cltype6 = type_nullable_parser_nodes__AExpr.color;
2321 idtype7 = type_nullable_parser_nodes__AExpr.id;
2322 if(var_pexprnode3 == NULL) {
2323 var5 = 1;
2324 } else {
2325 if(cltype6 >= var_pexprnode3->type->table_size) {
2326 var5 = 0;
2327 } else {
2328 var5 = var_pexprnode3->type->type_table[cltype6] == idtype7;
2329 }
2330 }
2331 if (!var5) {
2332 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30686);
2333 exit(1);
2334 }
2335 var_tattridnode4 = var_nodearraylist3;
2336 /* <var_tattridnode4:nullable Object> isa nullable TAttrid */
2337 cltype9 = type_nullable_parser_nodes__TAttrid.color;
2338 idtype10 = type_nullable_parser_nodes__TAttrid.id;
2339 if(var_tattridnode4 == NULL) {
2340 var8 = 1;
2341 } else {
2342 if(cltype9 >= var_tattridnode4->type->table_size) {
2343 var8 = 0;
2344 } else {
2345 var8 = var_tattridnode4->type->type_table[cltype9] == idtype10;
2346 }
2347 }
2348 if (!var8) {
2349 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30688);
2350 exit(1);
2351 }
2352 var11 = NEW_parser_nodes__AIssetAttrExpr(&type_parser_nodes__AIssetAttrExpr);
2353 ((void (*)(val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AIssetAttrExpr__init_aissetattrexpr]))(var11, var_tkwissetnode2, var_pexprnode3, var_tattridnode4) /* init_aissetattrexpr on <var11:AIssetAttrExpr>*/;
2354 CHECK_NEW_parser_nodes__AIssetAttrExpr(var11);
2355 var_pexprnode1 = var11;
2356 var_node_list = var_pexprnode1;
2357 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1317> */
2358 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
2359 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
2360 RET_LABEL:;
2361 }
2362 /* method parser#ReduceAction1317#action for (self: Object, Parser) */
2363 void VIRTUAL_parser__ReduceAction1317__action(val* self, val* p0) {
2364 parser__ReduceAction1317__action(self, p0);
2365 RET_LABEL:;
2366 }
2367 /* method parser#ReduceAction1318#action for (self: ReduceAction1318, Parser) */
2368 void parser__ReduceAction1318__action(val* self, val* p0) {
2369 val* var_p /* var p: Parser */;
2370 val* var /* : null */;
2371 val* var_node_list /* var node_list: nullable Object */;
2372 val* var1 /* : nullable Object */;
2373 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2374 val* var2 /* : nullable Object */;
2375 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2376 val* var3 /* : nullable Object */;
2377 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2378 val* var4 /* : nullable Object */;
2379 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2380 val* var_tkwissetnode2 /* var tkwissetnode2: nullable Object */;
2381 short int var5 /* : Bool */;
2382 int cltype;
2383 int idtype;
2384 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
2385 short int var6 /* : Bool */;
2386 int cltype7;
2387 int idtype8;
2388 val* var_tattridnode4 /* var tattridnode4: nullable Object */;
2389 short int var9 /* : Bool */;
2390 int cltype10;
2391 int idtype11;
2392 val* var12 /* : AIssetAttrExpr */;
2393 val* var_pexprnode1 /* var pexprnode1: nullable AIssetAttrExpr */;
2394 long var13 /* : Int */;
2395 long var14 /* : Int */;
2396 var_p = p0;
2397 var = NULL;
2398 var_node_list = var;
2399 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2400 var_nodearraylist4 = var1;
2401 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2402 var_nodearraylist3 = var2;
2403 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2404 var_nodearraylist2 = var3;
2405 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2406 var_nodearraylist1 = var4;
2407 var_tkwissetnode2 = var_nodearraylist1;
2408 /* <var_tkwissetnode2:nullable Object> isa nullable TKwisset */
2409 cltype = type_nullable_parser_nodes__TKwisset.color;
2410 idtype = type_nullable_parser_nodes__TKwisset.id;
2411 if(var_tkwissetnode2 == NULL) {
2412 var5 = 1;
2413 } else {
2414 if(cltype >= var_tkwissetnode2->type->table_size) {
2415 var5 = 0;
2416 } else {
2417 var5 = var_tkwissetnode2->type->type_table[cltype] == idtype;
2418 }
2419 }
2420 if (!var5) {
2421 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30708);
2422 exit(1);
2423 }
2424 var_pexprnode3 = var_nodearraylist2;
2425 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
2426 cltype7 = type_nullable_parser_nodes__AExpr.color;
2427 idtype8 = type_nullable_parser_nodes__AExpr.id;
2428 if(var_pexprnode3 == NULL) {
2429 var6 = 1;
2430 } else {
2431 if(cltype7 >= var_pexprnode3->type->table_size) {
2432 var6 = 0;
2433 } else {
2434 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
2435 }
2436 }
2437 if (!var6) {
2438 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30710);
2439 exit(1);
2440 }
2441 var_tattridnode4 = var_nodearraylist4;
2442 /* <var_tattridnode4:nullable Object> isa nullable TAttrid */
2443 cltype10 = type_nullable_parser_nodes__TAttrid.color;
2444 idtype11 = type_nullable_parser_nodes__TAttrid.id;
2445 if(var_tattridnode4 == NULL) {
2446 var9 = 1;
2447 } else {
2448 if(cltype10 >= var_tattridnode4->type->table_size) {
2449 var9 = 0;
2450 } else {
2451 var9 = var_tattridnode4->type->type_table[cltype10] == idtype11;
2452 }
2453 }
2454 if (!var9) {
2455 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30712);
2456 exit(1);
2457 }
2458 var12 = NEW_parser_nodes__AIssetAttrExpr(&type_parser_nodes__AIssetAttrExpr);
2459 ((void (*)(val*, val*, val*, val*))(var12->class->vft[COLOR_parser_prod__AIssetAttrExpr__init_aissetattrexpr]))(var12, var_tkwissetnode2, var_pexprnode3, var_tattridnode4) /* init_aissetattrexpr on <var12:AIssetAttrExpr>*/;
2460 CHECK_NEW_parser_nodes__AIssetAttrExpr(var12);
2461 var_pexprnode1 = var12;
2462 var_node_list = var_pexprnode1;
2463 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1318> */
2464 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
2465 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
2466 RET_LABEL:;
2467 }
2468 /* method parser#ReduceAction1318#action for (self: Object, Parser) */
2469 void VIRTUAL_parser__ReduceAction1318__action(val* self, val* p0) {
2470 parser__ReduceAction1318__action(self, p0);
2471 RET_LABEL:;
2472 }
2473 /* method parser#ReduceAction1321#action for (self: ReduceAction1321, Parser) */
2474 void parser__ReduceAction1321__action(val* self, val* p0) {
2475 val* var_p /* var p: Parser */;
2476 val* var /* : null */;
2477 val* var_node_list /* var node_list: nullable Object */;
2478 val* var1 /* : nullable Object */;
2479 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2480 val* var2 /* : nullable Object */;
2481 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2482 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
2483 short int var3 /* : Bool */;
2484 int cltype;
2485 int idtype;
2486 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
2487 short int var4 /* : Bool */;
2488 int cltype5;
2489 int idtype6;
2490 val* var7 /* : AAttrExpr */;
2491 val* var_pexprnode1 /* var pexprnode1: nullable AAttrExpr */;
2492 long var8 /* : Int */;
2493 long var9 /* : Int */;
2494 var_p = p0;
2495 var = NULL;
2496 var_node_list = var;
2497 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2498 var_nodearraylist2 = var1;
2499 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2500 var_nodearraylist1 = var2;
2501 var_pexprnode2 = var_nodearraylist1;
2502 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2503 cltype = type_nullable_parser_nodes__AExpr.color;
2504 idtype = type_nullable_parser_nodes__AExpr.id;
2505 if(var_pexprnode2 == NULL) {
2506 var3 = 1;
2507 } else {
2508 if(cltype >= var_pexprnode2->type->table_size) {
2509 var3 = 0;
2510 } else {
2511 var3 = var_pexprnode2->type->type_table[cltype] == idtype;
2512 }
2513 }
2514 if (!var3) {
2515 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30730);
2516 exit(1);
2517 }
2518 var_tattridnode3 = var_nodearraylist2;
2519 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
2520 cltype5 = type_nullable_parser_nodes__TAttrid.color;
2521 idtype6 = type_nullable_parser_nodes__TAttrid.id;
2522 if(var_tattridnode3 == NULL) {
2523 var4 = 1;
2524 } else {
2525 if(cltype5 >= var_tattridnode3->type->table_size) {
2526 var4 = 0;
2527 } else {
2528 var4 = var_tattridnode3->type->type_table[cltype5] == idtype6;
2529 }
2530 }
2531 if (!var4) {
2532 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30732);
2533 exit(1);
2534 }
2535 var7 = NEW_parser_nodes__AAttrExpr(&type_parser_nodes__AAttrExpr);
2536 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AAttrExpr__init_aattrexpr]))(var7, var_pexprnode2, var_tattridnode3) /* init_aattrexpr on <var7:AAttrExpr>*/;
2537 CHECK_NEW_parser_nodes__AAttrExpr(var7);
2538 var_pexprnode1 = var7;
2539 var_node_list = var_pexprnode1;
2540 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1321> */
2541 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
2542 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
2543 RET_LABEL:;
2544 }
2545 /* method parser#ReduceAction1321#action for (self: Object, Parser) */
2546 void VIRTUAL_parser__ReduceAction1321__action(val* self, val* p0) {
2547 parser__ReduceAction1321__action(self, p0);
2548 RET_LABEL:;
2549 }
2550 /* method parser#ReduceAction1322#action for (self: ReduceAction1322, Parser) */
2551 void parser__ReduceAction1322__action(val* self, val* p0) {
2552 val* var_p /* var p: Parser */;
2553 val* var /* : null */;
2554 val* var_node_list /* var node_list: nullable Object */;
2555 val* var1 /* : nullable Object */;
2556 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2557 val* var2 /* : nullable Object */;
2558 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2559 val* var3 /* : nullable Object */;
2560 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2561 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
2562 short int var4 /* : Bool */;
2563 int cltype;
2564 int idtype;
2565 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
2566 short int var5 /* : Bool */;
2567 int cltype6;
2568 int idtype7;
2569 val* var8 /* : AAttrExpr */;
2570 val* var_pexprnode1 /* var pexprnode1: nullable AAttrExpr */;
2571 long var9 /* : Int */;
2572 long var10 /* : Int */;
2573 var_p = p0;
2574 var = NULL;
2575 var_node_list = var;
2576 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2577 var_nodearraylist3 = var1;
2578 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2579 var_nodearraylist2 = var2;
2580 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2581 var_nodearraylist1 = var3;
2582 var_pexprnode2 = var_nodearraylist1;
2583 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2584 cltype = type_nullable_parser_nodes__AExpr.color;
2585 idtype = type_nullable_parser_nodes__AExpr.id;
2586 if(var_pexprnode2 == NULL) {
2587 var4 = 1;
2588 } else {
2589 if(cltype >= var_pexprnode2->type->table_size) {
2590 var4 = 0;
2591 } else {
2592 var4 = var_pexprnode2->type->type_table[cltype] == idtype;
2593 }
2594 }
2595 if (!var4) {
2596 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30750);
2597 exit(1);
2598 }
2599 var_tattridnode3 = var_nodearraylist3;
2600 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
2601 cltype6 = type_nullable_parser_nodes__TAttrid.color;
2602 idtype7 = type_nullable_parser_nodes__TAttrid.id;
2603 if(var_tattridnode3 == NULL) {
2604 var5 = 1;
2605 } else {
2606 if(cltype6 >= var_tattridnode3->type->table_size) {
2607 var5 = 0;
2608 } else {
2609 var5 = var_tattridnode3->type->type_table[cltype6] == idtype7;
2610 }
2611 }
2612 if (!var5) {
2613 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30752);
2614 exit(1);
2615 }
2616 var8 = NEW_parser_nodes__AAttrExpr(&type_parser_nodes__AAttrExpr);
2617 ((void (*)(val*, val*, val*))(var8->class->vft[COLOR_parser_prod__AAttrExpr__init_aattrexpr]))(var8, var_pexprnode2, var_tattridnode3) /* init_aattrexpr on <var8:AAttrExpr>*/;
2618 CHECK_NEW_parser_nodes__AAttrExpr(var8);
2619 var_pexprnode1 = var8;
2620 var_node_list = var_pexprnode1;
2621 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1322> */
2622 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
2623 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
2624 RET_LABEL:;
2625 }
2626 /* method parser#ReduceAction1322#action for (self: Object, Parser) */
2627 void VIRTUAL_parser__ReduceAction1322__action(val* self, val* p0) {
2628 parser__ReduceAction1322__action(self, p0);
2629 RET_LABEL:;
2630 }
2631 /* method parser#ReduceAction1325#action for (self: ReduceAction1325, Parser) */
2632 void parser__ReduceAction1325__action(val* self, val* p0) {
2633 val* var_p /* var p: Parser */;
2634 val* var /* : null */;
2635 val* var_node_list /* var node_list: nullable Object */;
2636 val* var1 /* : nullable Object */;
2637 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2638 val* var2 /* : nullable Object */;
2639 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2640 val* var3 /* : nullable Object */;
2641 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2642 val* var4 /* : Array[Object] */;
2643 val* var_listnode5 /* var listnode5: Array[Object] */;
2644 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
2645 short int var5 /* : Bool */;
2646 int cltype;
2647 int idtype;
2648 val* var_tidnode3 /* var tidnode3: nullable Object */;
2649 short int var6 /* : Bool */;
2650 int cltype7;
2651 int idtype8;
2652 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
2653 short int var9 /* : Bool */;
2654 int cltype10;
2655 int idtype11;
2656 val* var12 /* : ACallExpr */;
2657 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
2658 long var13 /* : Int */;
2659 long var14 /* : Int */;
2660 var_p = p0;
2661 var = NULL;
2662 var_node_list = var;
2663 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2664 var_nodearraylist3 = var1;
2665 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2666 var_nodearraylist2 = var2;
2667 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2668 var_nodearraylist1 = var3;
2669 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
2670 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
2671 CHECK_NEW_array__Array(var4);
2672 var_listnode5 = var4;
2673 var_pexprnode2 = var_nodearraylist1;
2674 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2675 cltype = type_nullable_parser_nodes__AExpr.color;
2676 idtype = type_nullable_parser_nodes__AExpr.id;
2677 if(var_pexprnode2 == NULL) {
2678 var5 = 1;
2679 } else {
2680 if(cltype >= var_pexprnode2->type->table_size) {
2681 var5 = 0;
2682 } else {
2683 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
2684 }
2685 }
2686 if (!var5) {
2687 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30771);
2688 exit(1);
2689 }
2690 var_tidnode3 = var_nodearraylist2;
2691 /* <var_tidnode3:nullable Object> isa nullable TId */
2692 cltype7 = type_nullable_parser_nodes__TId.color;
2693 idtype8 = type_nullable_parser_nodes__TId.id;
2694 if(var_tidnode3 == NULL) {
2695 var6 = 1;
2696 } else {
2697 if(cltype7 >= var_tidnode3->type->table_size) {
2698 var6 = 0;
2699 } else {
2700 var6 = var_tidnode3->type->type_table[cltype7] == idtype8;
2701 }
2702 }
2703 if (!var6) {
2704 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30773);
2705 exit(1);
2706 }
2707 var_pexprsnode4 = var_nodearraylist3;
2708 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
2709 cltype10 = type_nullable_parser_nodes__AExprs.color;
2710 idtype11 = type_nullable_parser_nodes__AExprs.id;
2711 if(var_pexprsnode4 == NULL) {
2712 var9 = 1;
2713 } else {
2714 if(cltype10 >= var_pexprsnode4->type->table_size) {
2715 var9 = 0;
2716 } else {
2717 var9 = var_pexprsnode4->type->type_table[cltype10] == idtype11;
2718 }
2719 }
2720 if (!var9) {
2721 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30775);
2722 exit(1);
2723 }
2724 var12 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
2725 ((void (*)(val*, val*, val*, val*, val*))(var12->class->vft[COLOR_parser_prod__ACallExpr__init_acallexpr]))(var12, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_listnode5) /* init_acallexpr on <var12:ACallExpr>*/;
2726 CHECK_NEW_parser_nodes__ACallExpr(var12);
2727 var_pexprnode1 = var12;
2728 var_node_list = var_pexprnode1;
2729 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1325> */
2730 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
2731 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
2732 RET_LABEL:;
2733 }
2734 /* method parser#ReduceAction1325#action for (self: Object, Parser) */
2735 void VIRTUAL_parser__ReduceAction1325__action(val* self, val* p0) {
2736 parser__ReduceAction1325__action(self, p0);
2737 RET_LABEL:;
2738 }
2739 /* method parser#ReduceAction1326#action for (self: ReduceAction1326, Parser) */
2740 void parser__ReduceAction1326__action(val* self, val* p0) {
2741 val* var_p /* var p: Parser */;
2742 val* var /* : null */;
2743 val* var_node_list /* var node_list: nullable Object */;
2744 val* var1 /* : nullable Object */;
2745 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2746 val* var2 /* : nullable Object */;
2747 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2748 val* var3 /* : nullable Object */;
2749 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2750 val* var4 /* : nullable Object */;
2751 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2752 val* var5 /* : Array[Object] */;
2753 val* var_listnode5 /* var listnode5: Array[Object] */;
2754 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
2755 short int var6 /* : Bool */;
2756 int cltype;
2757 int idtype;
2758 val* var_tidnode3 /* var tidnode3: nullable Object */;
2759 short int var7 /* : Bool */;
2760 int cltype8;
2761 int idtype9;
2762 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
2763 short int var10 /* : Bool */;
2764 int cltype11;
2765 int idtype12;
2766 val* var13 /* : ACallExpr */;
2767 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
2768 long var14 /* : Int */;
2769 long var15 /* : Int */;
2770 var_p = p0;
2771 var = NULL;
2772 var_node_list = var;
2773 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2774 var_nodearraylist4 = var1;
2775 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2776 var_nodearraylist3 = var2;
2777 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2778 var_nodearraylist2 = var3;
2779 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2780 var_nodearraylist1 = var4;
2781 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
2782 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
2783 CHECK_NEW_array__Array(var5);
2784 var_listnode5 = var5;
2785 var_pexprnode2 = var_nodearraylist1;
2786 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2787 cltype = type_nullable_parser_nodes__AExpr.color;
2788 idtype = type_nullable_parser_nodes__AExpr.id;
2789 if(var_pexprnode2 == NULL) {
2790 var6 = 1;
2791 } else {
2792 if(cltype >= var_pexprnode2->type->table_size) {
2793 var6 = 0;
2794 } else {
2795 var6 = var_pexprnode2->type->type_table[cltype] == idtype;
2796 }
2797 }
2798 if (!var6) {
2799 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30797);
2800 exit(1);
2801 }
2802 var_tidnode3 = var_nodearraylist3;
2803 /* <var_tidnode3:nullable Object> isa nullable TId */
2804 cltype8 = type_nullable_parser_nodes__TId.color;
2805 idtype9 = type_nullable_parser_nodes__TId.id;
2806 if(var_tidnode3 == NULL) {
2807 var7 = 1;
2808 } else {
2809 if(cltype8 >= var_tidnode3->type->table_size) {
2810 var7 = 0;
2811 } else {
2812 var7 = var_tidnode3->type->type_table[cltype8] == idtype9;
2813 }
2814 }
2815 if (!var7) {
2816 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30799);
2817 exit(1);
2818 }
2819 var_pexprsnode4 = var_nodearraylist4;
2820 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
2821 cltype11 = type_nullable_parser_nodes__AExprs.color;
2822 idtype12 = type_nullable_parser_nodes__AExprs.id;
2823 if(var_pexprsnode4 == NULL) {
2824 var10 = 1;
2825 } else {
2826 if(cltype11 >= var_pexprsnode4->type->table_size) {
2827 var10 = 0;
2828 } else {
2829 var10 = var_pexprsnode4->type->type_table[cltype11] == idtype12;
2830 }
2831 }
2832 if (!var10) {
2833 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30801);
2834 exit(1);
2835 }
2836 var13 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
2837 ((void (*)(val*, val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__ACallExpr__init_acallexpr]))(var13, var_pexprnode2, var_tidnode3, var_pexprsnode4, var_listnode5) /* init_acallexpr on <var13:ACallExpr>*/;
2838 CHECK_NEW_parser_nodes__ACallExpr(var13);
2839 var_pexprnode1 = var13;
2840 var_node_list = var_pexprnode1;
2841 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1326> */
2842 var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
2843 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
2844 RET_LABEL:;
2845 }
2846 /* method parser#ReduceAction1326#action for (self: Object, Parser) */
2847 void VIRTUAL_parser__ReduceAction1326__action(val* self, val* p0) {
2848 parser__ReduceAction1326__action(self, p0);
2849 RET_LABEL:;
2850 }
2851 /* method parser#ReduceAction1333#action for (self: ReduceAction1333, Parser) */
2852 void parser__ReduceAction1333__action(val* self, val* p0) {
2853 val* var_p /* var p: Parser */;
2854 val* var /* : null */;
2855 val* var_node_list /* var node_list: nullable Object */;
2856 val* var1 /* : nullable Object */;
2857 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2858 val* var2 /* : nullable Object */;
2859 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2860 val* var3 /* : nullable Object */;
2861 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2862 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
2863 short int var4 /* : Bool */;
2864 int cltype;
2865 int idtype;
2866 val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */;
2867 short int var5 /* : Bool */;
2868 int cltype6;
2869 int idtype7;
2870 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
2871 short int var8 /* : Bool */;
2872 int cltype9;
2873 int idtype10;
2874 val* var11 /* : AInitExpr */;
2875 val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */;
2876 long var12 /* : Int */;
2877 long var13 /* : Int */;
2878 var_p = p0;
2879 var = NULL;
2880 var_node_list = var;
2881 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2882 var_nodearraylist3 = var1;
2883 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2884 var_nodearraylist2 = var2;
2885 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2886 var_nodearraylist1 = var3;
2887 var_pexprnode2 = var_nodearraylist1;
2888 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2889 cltype = type_nullable_parser_nodes__AExpr.color;
2890 idtype = type_nullable_parser_nodes__AExpr.id;
2891 if(var_pexprnode2 == NULL) {
2892 var4 = 1;
2893 } else {
2894 if(cltype >= var_pexprnode2->type->table_size) {
2895 var4 = 0;
2896 } else {
2897 var4 = var_pexprnode2->type->type_table[cltype] == idtype;
2898 }
2899 }
2900 if (!var4) {
2901 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30821);
2902 exit(1);
2903 }
2904 var_tkwinitnode3 = var_nodearraylist2;
2905 /* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
2906 cltype6 = type_nullable_parser_nodes__TKwinit.color;
2907 idtype7 = type_nullable_parser_nodes__TKwinit.id;
2908 if(var_tkwinitnode3 == NULL) {
2909 var5 = 1;
2910 } else {
2911 if(cltype6 >= var_tkwinitnode3->type->table_size) {
2912 var5 = 0;
2913 } else {
2914 var5 = var_tkwinitnode3->type->type_table[cltype6] == idtype7;
2915 }
2916 }
2917 if (!var5) {
2918 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30823);
2919 exit(1);
2920 }
2921 var_pexprsnode4 = var_nodearraylist3;
2922 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
2923 cltype9 = type_nullable_parser_nodes__AExprs.color;
2924 idtype10 = type_nullable_parser_nodes__AExprs.id;
2925 if(var_pexprsnode4 == NULL) {
2926 var8 = 1;
2927 } else {
2928 if(cltype9 >= var_pexprsnode4->type->table_size) {
2929 var8 = 0;
2930 } else {
2931 var8 = var_pexprsnode4->type->type_table[cltype9] == idtype10;
2932 }
2933 }
2934 if (!var8) {
2935 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30825);
2936 exit(1);
2937 }
2938 var11 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr);
2939 ((void (*)(val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AInitExpr__init_ainitexpr]))(var11, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4) /* init_ainitexpr on <var11:AInitExpr>*/;
2940 CHECK_NEW_parser_nodes__AInitExpr(var11);
2941 var_pexprnode1 = var11;
2942 var_node_list = var_pexprnode1;
2943 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1333> */
2944 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
2945 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
2946 RET_LABEL:;
2947 }
2948 /* method parser#ReduceAction1333#action for (self: Object, Parser) */
2949 void VIRTUAL_parser__ReduceAction1333__action(val* self, val* p0) {
2950 parser__ReduceAction1333__action(self, p0);
2951 RET_LABEL:;
2952 }
2953 /* method parser#ReduceAction1357#action for (self: ReduceAction1357, Parser) */
2954 void parser__ReduceAction1357__action(val* self, val* p0) {
2955 val* var_p /* var p: Parser */;
2956 val* var /* : null */;
2957 val* var_node_list /* var node_list: nullable Object */;
2958 val* var1 /* : nullable Object */;
2959 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2960 val* var2 /* : nullable Object */;
2961 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2962 val* var3 /* : nullable Object */;
2963 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2964 val* var_pexprnode1 /* var pexprnode1: nullable Object */;
2965 long var4 /* : Int */;
2966 long var5 /* : Int */;
2967 var_p = p0;
2968 var = NULL;
2969 var_node_list = var;
2970 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2971 var_nodearraylist3 = var1;
2972 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2973 var_nodearraylist2 = var2;
2974 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2975 var_nodearraylist1 = var3;
2976 var_pexprnode1 = var_nodearraylist1;
2977 var_node_list = var_pexprnode1;
2978 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1357> */
2979 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
2980 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
2981 RET_LABEL:;
2982 }
2983 /* method parser#ReduceAction1357#action for (self: Object, Parser) */
2984 void VIRTUAL_parser__ReduceAction1357__action(val* self, val* p0) {
2985 parser__ReduceAction1357__action(self, p0);
2986 RET_LABEL:;
2987 }
2988 /* method parser#ReduceAction1358#action for (self: ReduceAction1358, Parser) */
2989 void parser__ReduceAction1358__action(val* self, val* p0) {
2990 val* var_p /* var p: Parser */;
2991 val* var /* : null */;
2992 val* var_node_list /* var node_list: nullable Object */;
2993 val* var1 /* : AImplicitSelfExpr */;
2994 val* var_pexprnode1 /* var pexprnode1: nullable AImplicitSelfExpr */;
2995 long var2 /* : Int */;
2996 long var3 /* : Int */;
2997 var_p = p0;
2998 var = NULL;
2999 var_node_list = var;
3000 var1 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
3001 ((void (*)(val*))(var1->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var1) /* init_aimplicitselfexpr on <var1:AImplicitSelfExpr>*/;
3002 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var1);
3003 var_pexprnode1 = var1;
3004 var_node_list = var_pexprnode1;
3005 var2 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1358> */
3006 var3 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var2) /* go_to on <var_p:Parser>*/;
3007 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var3, var_node_list) /* push on <var_p:Parser>*/;
3008 RET_LABEL:;
3009 }
3010 /* method parser#ReduceAction1358#action for (self: Object, Parser) */
3011 void VIRTUAL_parser__ReduceAction1358__action(val* self, val* p0) {
3012 parser__ReduceAction1358__action(self, p0);
3013 RET_LABEL:;
3014 }
3015 /* method parser#ReduceAction1772#action for (self: ReduceAction1772, Parser) */
3016 void parser__ReduceAction1772__action(val* self, val* p0) {
3017 val* var_p /* var p: Parser */;
3018 val* var /* : null */;
3019 val* var_node_list /* var node_list: nullable Object */;
3020 val* var1 /* : nullable Object */;
3021 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3022 val* var2 /* : Array[Object] */;
3023 val* var_listnode2 /* var listnode2: Array[Object] */;
3024 val* var_pimportnode1 /* var pimportnode1: nullable Object */;
3025 val* var3 /* : null */;
3026 short int var4 /* : Bool */;
3027 long var5 /* : Int */;
3028 long var6 /* : Int */;
3029 var_p = p0;
3030 var = NULL;
3031 var_node_list = var;
3032 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3033 var_nodearraylist1 = var1;
3034 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
3035 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
3036 CHECK_NEW_array__Array(var2);
3037 var_listnode2 = var2;
3038 var_pimportnode1 = var_nodearraylist1;
3039 var3 = NULL;
3040 if (var_pimportnode1 == NULL) {
3041 var4 = 0; /* is null */
3042 } else {
3043 var4 = 1; /* arg is null and recv is not */
3044 }
3045 if (var4){
3046 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_pimportnode1) /* add on <var_listnode2:Array[Object]>*/;
3047 } else {
3048 }
3049 var_node_list = var_listnode2;
3050 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1772> */
3051 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
3052 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
3053 RET_LABEL:;
3054 }
3055 /* method parser#ReduceAction1772#action for (self: Object, Parser) */
3056 void VIRTUAL_parser__ReduceAction1772__action(val* self, val* p0) {
3057 parser__ReduceAction1772__action(self, p0);
3058 RET_LABEL:;
3059 }
3060 /* method parser#ReduceAction1773#action for (self: ReduceAction1773, Parser) */
3061 void parser__ReduceAction1773__action(val* self, val* p0) {
3062 val* var_p /* var p: Parser */;
3063 val* var /* : null */;
3064 val* var_node_list /* var node_list: nullable Object */;
3065 val* var1 /* : nullable Object */;
3066 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3067 val* var2 /* : nullable Object */;
3068 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3069 val* var3 /* : Array[Object] */;
3070 val* var_listnode3 /* var listnode3: Array[Object] */;
3071 val* var_listnode1 /* var listnode1: nullable Object */;
3072 short int var4 /* : Bool */;
3073 int cltype;
3074 int idtype;
3075 val* var_pimportnode2 /* var pimportnode2: nullable Object */;
3076 val* var5 /* : Array[Object] */;
3077 val* var6 /* : null */;
3078 short int var7 /* : Bool */;
3079 long var8 /* : Int */;
3080 long var9 /* : Int */;
3081 var_p = p0;
3082 var = NULL;
3083 var_node_list = var;
3084 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3085 var_nodearraylist2 = var1;
3086 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3087 var_nodearraylist1 = var2;
3088 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
3089 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
3090 CHECK_NEW_array__Array(var3);
3091 var_listnode3 = var3;
3092 var_listnode1 = var_nodearraylist1;
3093 /* <var_listnode1:nullable Object> isa Array[Object] */
3094 cltype = type_array__Arraykernel__Object.color;
3095 idtype = type_array__Arraykernel__Object.id;
3096 if(var_listnode1 == NULL) {
3097 var4 = 0;
3098 } else {
3099 if(cltype >= var_listnode1->type->table_size) {
3100 var4 = 0;
3101 } else {
3102 var4 = var_listnode1->type->type_table[cltype] == idtype;
3103 }
3104 }
3105 if (!var4) {
3106 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30882);
3107 exit(1);
3108 }
3109 var_pimportnode2 = var_nodearraylist2;
3110 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1773>*/;
3111 var_listnode3 = var5;
3112 var6 = NULL;
3113 if (var_pimportnode2 == NULL) {
3114 var7 = 0; /* is null */
3115 } else {
3116 var7 = 1; /* arg is null and recv is not */
3117 }
3118 if (var7){
3119 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pimportnode2) /* add on <var_listnode3:Array[Object]>*/;
3120 } else {
3121 }
3122 var_node_list = var_listnode3;
3123 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1773> */
3124 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
3125 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
3126 RET_LABEL:;
3127 }
3128 /* method parser#ReduceAction1773#action for (self: Object, Parser) */
3129 void VIRTUAL_parser__ReduceAction1773__action(val* self, val* p0) {
3130 parser__ReduceAction1773__action(self, p0);
3131 RET_LABEL:;
3132 }
3133 /* method parser#ReduceAction1774#action for (self: ReduceAction1774, Parser) */
3134 void parser__ReduceAction1774__action(val* self, val* p0) {
3135 val* var_p /* var p: Parser */;
3136 val* var /* : null */;
3137 val* var_node_list /* var node_list: nullable Object */;
3138 val* var1 /* : nullable Object */;
3139 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3140 val* var2 /* : Array[Object] */;
3141 val* var_listnode2 /* var listnode2: Array[Object] */;
3142 val* var_pexterncodeblocknode1 /* var pexterncodeblocknode1: nullable Object */;
3143 val* var3 /* : null */;
3144 short int var4 /* : Bool */;
3145 long var5 /* : Int */;
3146 long var6 /* : Int */;
3147 var_p = p0;
3148 var = NULL;
3149 var_node_list = var;
3150 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3151 var_nodearraylist1 = var1;
3152 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
3153 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
3154 CHECK_NEW_array__Array(var2);
3155 var_listnode2 = var2;
3156 var_pexterncodeblocknode1 = var_nodearraylist1;
3157 var3 = NULL;
3158 if (var_pexterncodeblocknode1 == NULL) {
3159 var4 = 0; /* is null */
3160 } else {
3161 var4 = 1; /* arg is null and recv is not */
3162 }
3163 if (var4){
3164 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_pexterncodeblocknode1) /* add on <var_listnode2:Array[Object]>*/;
3165 } else {
3166 }
3167 var_node_list = var_listnode2;
3168 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1774> */
3169 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
3170 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
3171 RET_LABEL:;
3172 }
3173 /* method parser#ReduceAction1774#action for (self: Object, Parser) */
3174 void VIRTUAL_parser__ReduceAction1774__action(val* self, val* p0) {
3175 parser__ReduceAction1774__action(self, p0);
3176 RET_LABEL:;
3177 }
3178 /* method parser#ReduceAction1775#action for (self: ReduceAction1775, Parser) */
3179 void parser__ReduceAction1775__action(val* self, val* p0) {
3180 val* var_p /* var p: Parser */;
3181 val* var /* : null */;
3182 val* var_node_list /* var node_list: nullable Object */;
3183 val* var1 /* : nullable Object */;
3184 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3185 val* var2 /* : nullable Object */;
3186 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3187 val* var3 /* : Array[Object] */;
3188 val* var_listnode3 /* var listnode3: Array[Object] */;
3189 val* var_listnode1 /* var listnode1: nullable Object */;
3190 short int var4 /* : Bool */;
3191 int cltype;
3192 int idtype;
3193 val* var_pexterncodeblocknode2 /* var pexterncodeblocknode2: nullable Object */;
3194 val* var5 /* : Array[Object] */;
3195 val* var6 /* : null */;
3196 short int var7 /* : Bool */;
3197 long var8 /* : Int */;
3198 long var9 /* : Int */;
3199 var_p = p0;
3200 var = NULL;
3201 var_node_list = var;
3202 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3203 var_nodearraylist2 = var1;
3204 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3205 var_nodearraylist1 = var2;
3206 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
3207 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
3208 CHECK_NEW_array__Array(var3);
3209 var_listnode3 = var3;
3210 var_listnode1 = var_nodearraylist1;
3211 /* <var_listnode1:nullable Object> isa Array[Object] */
3212 cltype = type_array__Arraykernel__Object.color;
3213 idtype = type_array__Arraykernel__Object.id;
3214 if(var_listnode1 == NULL) {
3215 var4 = 0;
3216 } else {
3217 if(cltype >= var_listnode1->type->table_size) {
3218 var4 = 0;
3219 } else {
3220 var4 = var_listnode1->type->type_table[cltype] == idtype;
3221 }
3222 }
3223 if (!var4) {
3224 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30916);
3225 exit(1);
3226 }
3227 var_pexterncodeblocknode2 = var_nodearraylist2;
3228 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1775>*/;
3229 var_listnode3 = var5;
3230 var6 = NULL;
3231 if (var_pexterncodeblocknode2 == NULL) {
3232 var7 = 0; /* is null */
3233 } else {
3234 var7 = 1; /* arg is null and recv is not */
3235 }
3236 if (var7){
3237 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pexterncodeblocknode2) /* add on <var_listnode3:Array[Object]>*/;
3238 } else {
3239 }
3240 var_node_list = var_listnode3;
3241 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1775> */
3242 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
3243 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
3244 RET_LABEL:;
3245 }
3246 /* method parser#ReduceAction1775#action for (self: Object, Parser) */
3247 void VIRTUAL_parser__ReduceAction1775__action(val* self, val* p0) {
3248 parser__ReduceAction1775__action(self, p0);
3249 RET_LABEL:;
3250 }
3251 /* method parser#ReduceAction1776#action for (self: ReduceAction1776, Parser) */
3252 void parser__ReduceAction1776__action(val* self, val* p0) {
3253 val* var_p /* var p: Parser */;
3254 val* var /* : null */;
3255 val* var_node_list /* var node_list: nullable Object */;
3256 val* var1 /* : nullable Object */;
3257 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3258 val* var2 /* : Array[Object] */;
3259 val* var_listnode2 /* var listnode2: Array[Object] */;
3260 val* var_pclassdefnode1 /* var pclassdefnode1: nullable Object */;
3261 val* var3 /* : null */;
3262 short int var4 /* : Bool */;
3263 long var5 /* : Int */;
3264 long var6 /* : Int */;
3265 var_p = p0;
3266 var = NULL;
3267 var_node_list = var;
3268 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3269 var_nodearraylist1 = var1;
3270 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
3271 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
3272 CHECK_NEW_array__Array(var2);
3273 var_listnode2 = var2;
3274 var_pclassdefnode1 = var_nodearraylist1;
3275 var3 = NULL;
3276 if (var_pclassdefnode1 == NULL) {
3277 var4 = 0; /* is null */
3278 } else {
3279 var4 = 1; /* arg is null and recv is not */
3280 }
3281 if (var4){
3282 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_pclassdefnode1) /* add on <var_listnode2:Array[Object]>*/;
3283 } else {
3284 }
3285 var_node_list = var_listnode2;
3286 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1776> */
3287 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
3288 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
3289 RET_LABEL:;
3290 }
3291 /* method parser#ReduceAction1776#action for (self: Object, Parser) */
3292 void VIRTUAL_parser__ReduceAction1776__action(val* self, val* p0) {
3293 parser__ReduceAction1776__action(self, p0);
3294 RET_LABEL:;
3295 }
3296 /* method parser#ReduceAction1777#action for (self: ReduceAction1777, Parser) */
3297 void parser__ReduceAction1777__action(val* self, val* p0) {
3298 val* var_p /* var p: Parser */;
3299 val* var /* : null */;
3300 val* var_node_list /* var node_list: nullable Object */;
3301 val* var1 /* : nullable Object */;
3302 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3303 val* var2 /* : nullable Object */;
3304 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3305 val* var3 /* : Array[Object] */;
3306 val* var_listnode3 /* var listnode3: Array[Object] */;
3307 val* var_listnode1 /* var listnode1: nullable Object */;
3308 short int var4 /* : Bool */;
3309 int cltype;
3310 int idtype;
3311 val* var_pclassdefnode2 /* var pclassdefnode2: nullable Object */;
3312 val* var5 /* : Array[Object] */;
3313 val* var6 /* : null */;
3314 short int var7 /* : Bool */;
3315 long var8 /* : Int */;
3316 long var9 /* : Int */;
3317 var_p = p0;
3318 var = NULL;
3319 var_node_list = var;
3320 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3321 var_nodearraylist2 = var1;
3322 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3323 var_nodearraylist1 = var2;
3324 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
3325 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
3326 CHECK_NEW_array__Array(var3);
3327 var_listnode3 = var3;
3328 var_listnode1 = var_nodearraylist1;
3329 /* <var_listnode1:nullable Object> isa Array[Object] */
3330 cltype = type_array__Arraykernel__Object.color;
3331 idtype = type_array__Arraykernel__Object.id;
3332 if(var_listnode1 == NULL) {
3333 var4 = 0;
3334 } else {
3335 if(cltype >= var_listnode1->type->table_size) {
3336 var4 = 0;
3337 } else {
3338 var4 = var_listnode1->type->type_table[cltype] == idtype;
3339 }
3340 }
3341 if (!var4) {
3342 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30950);
3343 exit(1);
3344 }
3345 var_pclassdefnode2 = var_nodearraylist2;
3346 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1777>*/;
3347 var_listnode3 = var5;
3348 var6 = NULL;
3349 if (var_pclassdefnode2 == NULL) {
3350 var7 = 0; /* is null */
3351 } else {
3352 var7 = 1; /* arg is null and recv is not */
3353 }
3354 if (var7){
3355 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pclassdefnode2) /* add on <var_listnode3:Array[Object]>*/;
3356 } else {
3357 }
3358 var_node_list = var_listnode3;
3359 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1777> */
3360 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
3361 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
3362 RET_LABEL:;
3363 }
3364 /* method parser#ReduceAction1777#action for (self: Object, Parser) */
3365 void VIRTUAL_parser__ReduceAction1777__action(val* self, val* p0) {
3366 parser__ReduceAction1777__action(self, p0);
3367 RET_LABEL:;
3368 }
3369 /* method parser#ReduceAction1778#action for (self: ReduceAction1778, Parser) */
3370 void parser__ReduceAction1778__action(val* self, val* p0) {
3371 val* var_p /* var p: Parser */;
3372 val* var /* : null */;
3373 val* var_node_list /* var node_list: nullable Object */;
3374 val* var1 /* : nullable Object */;
3375 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3376 val* var2 /* : Array[Object] */;
3377 val* var_listnode2 /* var listnode2: Array[Object] */;
3378 val* var_ppropdefnode1 /* var ppropdefnode1: nullable Object */;
3379 val* var3 /* : null */;
3380 short int var4 /* : Bool */;
3381 long var5 /* : Int */;
3382 long var6 /* : Int */;
3383 var_p = p0;
3384 var = NULL;
3385 var_node_list = var;
3386 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3387 var_nodearraylist1 = var1;
3388 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
3389 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
3390 CHECK_NEW_array__Array(var2);
3391 var_listnode2 = var2;
3392 var_ppropdefnode1 = var_nodearraylist1;
3393 var3 = NULL;
3394 if (var_ppropdefnode1 == NULL) {
3395 var4 = 0; /* is null */
3396 } else {
3397 var4 = 1; /* arg is null and recv is not */
3398 }
3399 if (var4){
3400 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_ppropdefnode1) /* add on <var_listnode2:Array[Object]>*/;
3401 } else {
3402 }
3403 var_node_list = var_listnode2;
3404 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1778> */
3405 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
3406 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
3407 RET_LABEL:;
3408 }
3409 /* method parser#ReduceAction1778#action for (self: Object, Parser) */
3410 void VIRTUAL_parser__ReduceAction1778__action(val* self, val* p0) {
3411 parser__ReduceAction1778__action(self, p0);
3412 RET_LABEL:;
3413 }
3414 /* method parser#ReduceAction1779#action for (self: ReduceAction1779, Parser) */
3415 void parser__ReduceAction1779__action(val* self, val* p0) {
3416 val* var_p /* var p: Parser */;
3417 val* var /* : null */;
3418 val* var_node_list /* var node_list: nullable Object */;
3419 val* var1 /* : nullable Object */;
3420 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3421 val* var2 /* : nullable Object */;
3422 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3423 val* var3 /* : Array[Object] */;
3424 val* var_listnode3 /* var listnode3: Array[Object] */;
3425 val* var_listnode1 /* var listnode1: nullable Object */;
3426 short int var4 /* : Bool */;
3427 int cltype;
3428 int idtype;
3429 val* var_ppropdefnode2 /* var ppropdefnode2: nullable Object */;
3430 val* var5 /* : Array[Object] */;
3431 val* var6 /* : null */;
3432 short int var7 /* : Bool */;
3433 long var8 /* : Int */;
3434 long var9 /* : Int */;
3435 var_p = p0;
3436 var = NULL;
3437 var_node_list = var;
3438 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3439 var_nodearraylist2 = var1;
3440 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3441 var_nodearraylist1 = var2;
3442 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
3443 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
3444 CHECK_NEW_array__Array(var3);
3445 var_listnode3 = var3;
3446 var_listnode1 = var_nodearraylist1;
3447 /* <var_listnode1:nullable Object> isa Array[Object] */
3448 cltype = type_array__Arraykernel__Object.color;
3449 idtype = type_array__Arraykernel__Object.id;
3450 if(var_listnode1 == NULL) {
3451 var4 = 0;
3452 } else {
3453 if(cltype >= var_listnode1->type->table_size) {
3454 var4 = 0;
3455 } else {
3456 var4 = var_listnode1->type->type_table[cltype] == idtype;
3457 }
3458 }
3459 if (!var4) {
3460 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 30984);
3461 exit(1);
3462 }
3463 var_ppropdefnode2 = var_nodearraylist2;
3464 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1779>*/;
3465 var_listnode3 = var5;
3466 var6 = NULL;
3467 if (var_ppropdefnode2 == NULL) {
3468 var7 = 0; /* is null */
3469 } else {
3470 var7 = 1; /* arg is null and recv is not */
3471 }
3472 if (var7){
3473 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_ppropdefnode2) /* add on <var_listnode3:Array[Object]>*/;
3474 } else {
3475 }
3476 var_node_list = var_listnode3;
3477 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1779> */
3478 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
3479 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
3480 RET_LABEL:;
3481 }
3482 /* method parser#ReduceAction1779#action for (self: Object, Parser) */
3483 void VIRTUAL_parser__ReduceAction1779__action(val* self, val* p0) {
3484 parser__ReduceAction1779__action(self, p0);
3485 RET_LABEL:;
3486 }
3487 /* method parser#ReduceAction1780#action for (self: ReduceAction1780, Parser) */
3488 void parser__ReduceAction1780__action(val* self, val* p0) {
3489 val* var_p /* var p: Parser */;
3490 val* var /* : null */;
3491 val* var_node_list /* var node_list: nullable Object */;
3492 val* var1 /* : nullable Object */;
3493 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3494 val* var2 /* : Array[Object] */;
3495 val* var_listnode2 /* var listnode2: Array[Object] */;
3496 val* var_psuperclassnode1 /* var psuperclassnode1: nullable Object */;
3497 val* var3 /* : null */;
3498 short int var4 /* : Bool */;
3499 long var5 /* : Int */;
3500 long var6 /* : Int */;
3501 var_p = p0;
3502 var = NULL;
3503 var_node_list = var;
3504 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3505 var_nodearraylist1 = var1;
3506 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
3507 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
3508 CHECK_NEW_array__Array(var2);
3509 var_listnode2 = var2;
3510 var_psuperclassnode1 = var_nodearraylist1;
3511 var3 = NULL;
3512 if (var_psuperclassnode1 == NULL) {
3513 var4 = 0; /* is null */
3514 } else {
3515 var4 = 1; /* arg is null and recv is not */
3516 }
3517 if (var4){
3518 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_psuperclassnode1) /* add on <var_listnode2:Array[Object]>*/;
3519 } else {
3520 }
3521 var_node_list = var_listnode2;
3522 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1780> */
3523 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
3524 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
3525 RET_LABEL:;
3526 }
3527 /* method parser#ReduceAction1780#action for (self: Object, Parser) */
3528 void VIRTUAL_parser__ReduceAction1780__action(val* self, val* p0) {
3529 parser__ReduceAction1780__action(self, p0);
3530 RET_LABEL:;
3531 }
3532 /* method parser#ReduceAction1781#action for (self: ReduceAction1781, Parser) */
3533 void parser__ReduceAction1781__action(val* self, val* p0) {
3534 val* var_p /* var p: Parser */;
3535 val* var /* : null */;
3536 val* var_node_list /* var node_list: nullable Object */;
3537 val* var1 /* : nullable Object */;
3538 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3539 val* var2 /* : nullable Object */;
3540 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3541 val* var3 /* : Array[Object] */;
3542 val* var_listnode3 /* var listnode3: Array[Object] */;
3543 val* var_listnode1 /* var listnode1: nullable Object */;
3544 short int var4 /* : Bool */;
3545 int cltype;
3546 int idtype;
3547 val* var_psuperclassnode2 /* var psuperclassnode2: nullable Object */;
3548 val* var5 /* : Array[Object] */;
3549 val* var6 /* : null */;
3550 short int var7 /* : Bool */;
3551 long var8 /* : Int */;
3552 long var9 /* : Int */;
3553 var_p = p0;
3554 var = NULL;
3555 var_node_list = var;
3556 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3557 var_nodearraylist2 = var1;
3558 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3559 var_nodearraylist1 = var2;
3560 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
3561 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
3562 CHECK_NEW_array__Array(var3);
3563 var_listnode3 = var3;
3564 var_listnode1 = var_nodearraylist1;
3565 /* <var_listnode1:nullable Object> isa Array[Object] */
3566 cltype = type_array__Arraykernel__Object.color;
3567 idtype = type_array__Arraykernel__Object.id;
3568 if(var_listnode1 == NULL) {
3569 var4 = 0;
3570 } else {
3571 if(cltype >= var_listnode1->type->table_size) {
3572 var4 = 0;
3573 } else {
3574 var4 = var_listnode1->type->type_table[cltype] == idtype;
3575 }
3576 }
3577 if (!var4) {
3578 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 31018);
3579 exit(1);
3580 }
3581 var_psuperclassnode2 = var_nodearraylist2;
3582 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1781>*/;
3583 var_listnode3 = var5;
3584 var6 = NULL;
3585 if (var_psuperclassnode2 == NULL) {
3586 var7 = 0; /* is null */
3587 } else {
3588 var7 = 1; /* arg is null and recv is not */
3589 }
3590 if (var7){
3591 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_psuperclassnode2) /* add on <var_listnode3:Array[Object]>*/;
3592 } else {
3593 }
3594 var_node_list = var_listnode3;
3595 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1781> */
3596 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
3597 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
3598 RET_LABEL:;
3599 }
3600 /* method parser#ReduceAction1781#action for (self: Object, Parser) */
3601 void VIRTUAL_parser__ReduceAction1781__action(val* self, val* p0) {
3602 parser__ReduceAction1781__action(self, p0);
3603 RET_LABEL:;
3604 }
3605 /* method parser#ReduceAction1784#action for (self: ReduceAction1784, Parser) */
3606 void parser__ReduceAction1784__action(val* self, val* p0) {
3607 val* var_p /* var p: Parser */;
3608 val* var /* : null */;
3609 val* var_node_list /* var node_list: nullable Object */;
3610 val* var1 /* : nullable Object */;
3611 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3612 val* var2 /* : Array[Object] */;
3613 val* var_listnode2 /* var listnode2: Array[Object] */;
3614 val* var_pformaldefnode1 /* var pformaldefnode1: nullable Object */;
3615 val* var3 /* : null */;
3616 short int var4 /* : Bool */;
3617 long var5 /* : Int */;
3618 long var6 /* : Int */;
3619 var_p = p0;
3620 var = NULL;
3621 var_node_list = var;
3622 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3623 var_nodearraylist1 = var1;
3624 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
3625 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
3626 CHECK_NEW_array__Array(var2);
3627 var_listnode2 = var2;
3628 var_pformaldefnode1 = var_nodearraylist1;
3629 var3 = NULL;
3630 if (var_pformaldefnode1 == NULL) {
3631 var4 = 0; /* is null */
3632 } else {
3633 var4 = 1; /* arg is null and recv is not */
3634 }
3635 if (var4){
3636 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_pformaldefnode1) /* add on <var_listnode2:Array[Object]>*/;
3637 } else {
3638 }
3639 var_node_list = var_listnode2;
3640 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1784> */
3641 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
3642 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
3643 RET_LABEL:;
3644 }
3645 /* method parser#ReduceAction1784#action for (self: Object, Parser) */
3646 void VIRTUAL_parser__ReduceAction1784__action(val* self, val* p0) {
3647 parser__ReduceAction1784__action(self, p0);
3648 RET_LABEL:;
3649 }
3650 /* method parser#ReduceAction1785#action for (self: ReduceAction1785, Parser) */
3651 void parser__ReduceAction1785__action(val* self, val* p0) {
3652 val* var_p /* var p: Parser */;
3653 val* var /* : null */;
3654 val* var_node_list /* var node_list: nullable Object */;
3655 val* var1 /* : nullable Object */;
3656 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3657 val* var2 /* : nullable Object */;
3658 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3659 val* var3 /* : Array[Object] */;
3660 val* var_listnode3 /* var listnode3: Array[Object] */;
3661 val* var_listnode1 /* var listnode1: nullable Object */;
3662 short int var4 /* : Bool */;
3663 int cltype;
3664 int idtype;
3665 val* var_pformaldefnode2 /* var pformaldefnode2: nullable Object */;
3666 val* var5 /* : Array[Object] */;
3667 val* var6 /* : null */;
3668 short int var7 /* : Bool */;
3669 long var8 /* : Int */;
3670 long var9 /* : Int */;
3671 var_p = p0;
3672 var = NULL;
3673 var_node_list = var;
3674 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3675 var_nodearraylist2 = var1;
3676 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3677 var_nodearraylist1 = var2;
3678 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
3679 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
3680 CHECK_NEW_array__Array(var3);
3681 var_listnode3 = var3;
3682 var_listnode1 = var_nodearraylist1;
3683 /* <var_listnode1:nullable Object> isa Array[Object] */
3684 cltype = type_array__Arraykernel__Object.color;
3685 idtype = type_array__Arraykernel__Object.id;
3686 if(var_listnode1 == NULL) {
3687 var4 = 0;
3688 } else {
3689 if(cltype >= var_listnode1->type->table_size) {
3690 var4 = 0;
3691 } else {
3692 var4 = var_listnode1->type->type_table[cltype] == idtype;
3693 }
3694 }
3695 if (!var4) {
3696 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 31052);
3697 exit(1);
3698 }
3699 var_pformaldefnode2 = var_nodearraylist2;
3700 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1785>*/;
3701 var_listnode3 = var5;
3702 var6 = NULL;
3703 if (var_pformaldefnode2 == NULL) {
3704 var7 = 0; /* is null */
3705 } else {
3706 var7 = 1; /* arg is null and recv is not */
3707 }
3708 if (var7){
3709 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pformaldefnode2) /* add on <var_listnode3:Array[Object]>*/;
3710 } else {
3711 }
3712 var_node_list = var_listnode3;
3713 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1785> */
3714 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
3715 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
3716 RET_LABEL:;
3717 }
3718 /* method parser#ReduceAction1785#action for (self: Object, Parser) */
3719 void VIRTUAL_parser__ReduceAction1785__action(val* self, val* p0) {
3720 parser__ReduceAction1785__action(self, p0);
3721 RET_LABEL:;
3722 }
3723 /* method parser#ReduceAction1786#action for (self: ReduceAction1786, Parser) */
3724 void parser__ReduceAction1786__action(val* self, val* p0) {
3725 val* var_p /* var p: Parser */;
3726 val* var /* : null */;
3727 val* var_node_list /* var node_list: nullable Object */;
3728 val* var1 /* : nullable Object */;
3729 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3730 val* var2 /* : Array[Object] */;
3731 val* var_listnode2 /* var listnode2: Array[Object] */;
3732 val* var_pparamnode1 /* var pparamnode1: nullable Object */;
3733 val* var3 /* : null */;
3734 short int var4 /* : Bool */;
3735 long var5 /* : Int */;
3736 long var6 /* : Int */;
3737 var_p = p0;
3738 var = NULL;
3739 var_node_list = var;
3740 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3741 var_nodearraylist1 = var1;
3742 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
3743 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
3744 CHECK_NEW_array__Array(var2);
3745 var_listnode2 = var2;
3746 var_pparamnode1 = var_nodearraylist1;
3747 var3 = NULL;
3748 if (var_pparamnode1 == NULL) {
3749 var4 = 0; /* is null */
3750 } else {
3751 var4 = 1; /* arg is null and recv is not */
3752 }
3753 if (var4){
3754 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_pparamnode1) /* add on <var_listnode2:Array[Object]>*/;
3755 } else {
3756 }
3757 var_node_list = var_listnode2;
3758 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1786> */
3759 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
3760 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
3761 RET_LABEL:;
3762 }
3763 /* method parser#ReduceAction1786#action for (self: Object, Parser) */
3764 void VIRTUAL_parser__ReduceAction1786__action(val* self, val* p0) {
3765 parser__ReduceAction1786__action(self, p0);
3766 RET_LABEL:;
3767 }
3768 /* method parser#ReduceAction1787#action for (self: ReduceAction1787, Parser) */
3769 void parser__ReduceAction1787__action(val* self, val* p0) {
3770 val* var_p /* var p: Parser */;
3771 val* var /* : null */;
3772 val* var_node_list /* var node_list: nullable Object */;
3773 val* var1 /* : nullable Object */;
3774 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3775 val* var2 /* : nullable Object */;
3776 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3777 val* var3 /* : Array[Object] */;
3778 val* var_listnode3 /* var listnode3: Array[Object] */;
3779 val* var_listnode1 /* var listnode1: nullable Object */;
3780 short int var4 /* : Bool */;
3781 int cltype;
3782 int idtype;
3783 val* var_pparamnode2 /* var pparamnode2: nullable Object */;
3784 val* var5 /* : Array[Object] */;
3785 val* var6 /* : null */;
3786 short int var7 /* : Bool */;
3787 long var8 /* : Int */;
3788 long var9 /* : Int */;
3789 var_p = p0;
3790 var = NULL;
3791 var_node_list = var;
3792 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3793 var_nodearraylist2 = var1;
3794 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3795 var_nodearraylist1 = var2;
3796 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
3797 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
3798 CHECK_NEW_array__Array(var3);
3799 var_listnode3 = var3;
3800 var_listnode1 = var_nodearraylist1;
3801 /* <var_listnode1:nullable Object> isa Array[Object] */
3802 cltype = type_array__Arraykernel__Object.color;
3803 idtype = type_array__Arraykernel__Object.id;
3804 if(var_listnode1 == NULL) {
3805 var4 = 0;
3806 } else {
3807 if(cltype >= var_listnode1->type->table_size) {
3808 var4 = 0;
3809 } else {
3810 var4 = var_listnode1->type->type_table[cltype] == idtype;
3811 }
3812 }
3813 if (!var4) {
3814 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 31086);
3815 exit(1);
3816 }
3817 var_pparamnode2 = var_nodearraylist2;
3818 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1787>*/;
3819 var_listnode3 = var5;
3820 var6 = NULL;
3821 if (var_pparamnode2 == NULL) {
3822 var7 = 0; /* is null */
3823 } else {
3824 var7 = 1; /* arg is null and recv is not */
3825 }
3826 if (var7){
3827 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pparamnode2) /* add on <var_listnode3:Array[Object]>*/;
3828 } else {
3829 }
3830 var_node_list = var_listnode3;
3831 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1787> */
3832 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
3833 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
3834 RET_LABEL:;
3835 }
3836 /* method parser#ReduceAction1787#action for (self: Object, Parser) */
3837 void VIRTUAL_parser__ReduceAction1787__action(val* self, val* p0) {
3838 parser__ReduceAction1787__action(self, p0);
3839 RET_LABEL:;
3840 }
3841 /* method parser#ReduceAction1788#action for (self: ReduceAction1788, Parser) */
3842 void parser__ReduceAction1788__action(val* self, val* p0) {
3843 val* var_p /* var p: Parser */;
3844 val* var /* : null */;
3845 val* var_node_list /* var node_list: nullable Object */;
3846 val* var1 /* : nullable Object */;
3847 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3848 val* var2 /* : Array[Object] */;
3849 val* var_listnode2 /* var listnode2: Array[Object] */;
3850 val* var_pclosuredeclnode1 /* var pclosuredeclnode1: nullable Object */;
3851 val* var3 /* : null */;
3852 short int var4 /* : Bool */;
3853 long var5 /* : Int */;
3854 long var6 /* : Int */;
3855 var_p = p0;
3856 var = NULL;
3857 var_node_list = var;
3858 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3859 var_nodearraylist1 = var1;
3860 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
3861 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
3862 CHECK_NEW_array__Array(var2);
3863 var_listnode2 = var2;
3864 var_pclosuredeclnode1 = var_nodearraylist1;
3865 var3 = NULL;
3866 if (var_pclosuredeclnode1 == NULL) {
3867 var4 = 0; /* is null */
3868 } else {
3869 var4 = 1; /* arg is null and recv is not */
3870 }
3871 if (var4){
3872 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_pclosuredeclnode1) /* add on <var_listnode2:Array[Object]>*/;
3873 } else {
3874 }
3875 var_node_list = var_listnode2;
3876 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1788> */
3877 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
3878 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
3879 RET_LABEL:;
3880 }
3881 /* method parser#ReduceAction1788#action for (self: Object, Parser) */
3882 void VIRTUAL_parser__ReduceAction1788__action(val* self, val* p0) {
3883 parser__ReduceAction1788__action(self, p0);
3884 RET_LABEL:;
3885 }
3886 /* method parser#ReduceAction1789#action for (self: ReduceAction1789, Parser) */
3887 void parser__ReduceAction1789__action(val* self, val* p0) {
3888 val* var_p /* var p: Parser */;
3889 val* var /* : null */;
3890 val* var_node_list /* var node_list: nullable Object */;
3891 val* var1 /* : nullable Object */;
3892 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3893 val* var2 /* : nullable Object */;
3894 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3895 val* var3 /* : Array[Object] */;
3896 val* var_listnode3 /* var listnode3: Array[Object] */;
3897 val* var_listnode1 /* var listnode1: nullable Object */;
3898 short int var4 /* : Bool */;
3899 int cltype;
3900 int idtype;
3901 val* var_pclosuredeclnode2 /* var pclosuredeclnode2: nullable Object */;
3902 val* var5 /* : Array[Object] */;
3903 val* var6 /* : null */;
3904 short int var7 /* : Bool */;
3905 long var8 /* : Int */;
3906 long var9 /* : Int */;
3907 var_p = p0;
3908 var = NULL;
3909 var_node_list = var;
3910 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3911 var_nodearraylist2 = var1;
3912 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3913 var_nodearraylist1 = var2;
3914 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
3915 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
3916 CHECK_NEW_array__Array(var3);
3917 var_listnode3 = var3;
3918 var_listnode1 = var_nodearraylist1;
3919 /* <var_listnode1:nullable Object> isa Array[Object] */
3920 cltype = type_array__Arraykernel__Object.color;
3921 idtype = type_array__Arraykernel__Object.id;
3922 if(var_listnode1 == NULL) {
3923 var4 = 0;
3924 } else {
3925 if(cltype >= var_listnode1->type->table_size) {
3926 var4 = 0;
3927 } else {
3928 var4 = var_listnode1->type->type_table[cltype] == idtype;
3929 }
3930 }
3931 if (!var4) {
3932 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 31120);
3933 exit(1);
3934 }
3935 var_pclosuredeclnode2 = var_nodearraylist2;
3936 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1789>*/;
3937 var_listnode3 = var5;
3938 var6 = NULL;
3939 if (var_pclosuredeclnode2 == NULL) {
3940 var7 = 0; /* is null */
3941 } else {
3942 var7 = 1; /* arg is null and recv is not */
3943 }
3944 if (var7){
3945 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pclosuredeclnode2) /* add on <var_listnode3:Array[Object]>*/;
3946 } else {
3947 }
3948 var_node_list = var_listnode3;
3949 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1789> */
3950 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
3951 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
3952 RET_LABEL:;
3953 }
3954 /* method parser#ReduceAction1789#action for (self: Object, Parser) */
3955 void VIRTUAL_parser__ReduceAction1789__action(val* self, val* p0) {
3956 parser__ReduceAction1789__action(self, p0);
3957 RET_LABEL:;
3958 }
3959 /* method parser#ReduceAction1790#action for (self: ReduceAction1790, Parser) */
3960 void parser__ReduceAction1790__action(val* self, val* p0) {
3961 val* var_p /* var p: Parser */;
3962 val* var /* : null */;
3963 val* var_node_list /* var node_list: nullable Object */;
3964 val* var1 /* : nullable Object */;
3965 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3966 val* var2 /* : Array[Object] */;
3967 val* var_listnode2 /* var listnode2: Array[Object] */;
3968 val* var_pexterncallnode1 /* var pexterncallnode1: nullable Object */;
3969 val* var3 /* : null */;
3970 short int var4 /* : Bool */;
3971 long var5 /* : Int */;
3972 long var6 /* : Int */;
3973 var_p = p0;
3974 var = NULL;
3975 var_node_list = var;
3976 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3977 var_nodearraylist1 = var1;
3978 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
3979 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
3980 CHECK_NEW_array__Array(var2);
3981 var_listnode2 = var2;
3982 var_pexterncallnode1 = var_nodearraylist1;
3983 var3 = NULL;
3984 if (var_pexterncallnode1 == NULL) {
3985 var4 = 0; /* is null */
3986 } else {
3987 var4 = 1; /* arg is null and recv is not */
3988 }
3989 if (var4){
3990 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_pexterncallnode1) /* add on <var_listnode2:Array[Object]>*/;
3991 } else {
3992 }
3993 var_node_list = var_listnode2;
3994 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1790> */
3995 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
3996 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
3997 RET_LABEL:;
3998 }
3999 /* method parser#ReduceAction1790#action for (self: Object, Parser) */
4000 void VIRTUAL_parser__ReduceAction1790__action(val* self, val* p0) {
4001 parser__ReduceAction1790__action(self, p0);
4002 RET_LABEL:;
4003 }
4004 /* method parser#ReduceAction1791#action for (self: ReduceAction1791, Parser) */
4005 void parser__ReduceAction1791__action(val* self, val* p0) {
4006 val* var_p /* var p: Parser */;
4007 val* var /* : null */;
4008 val* var_node_list /* var node_list: nullable Object */;
4009 val* var1 /* : nullable Object */;
4010 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4011 val* var2 /* : nullable Object */;
4012 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4013 val* var3 /* : Array[Object] */;
4014 val* var_listnode3 /* var listnode3: Array[Object] */;
4015 val* var_listnode1 /* var listnode1: nullable Object */;
4016 short int var4 /* : Bool */;
4017 int cltype;
4018 int idtype;
4019 val* var_pexterncallnode2 /* var pexterncallnode2: nullable Object */;
4020 val* var5 /* : Array[Object] */;
4021 val* var6 /* : null */;
4022 short int var7 /* : Bool */;
4023 long var8 /* : Int */;
4024 long var9 /* : Int */;
4025 var_p = p0;
4026 var = NULL;
4027 var_node_list = var;
4028 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4029 var_nodearraylist2 = var1;
4030 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4031 var_nodearraylist1 = var2;
4032 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
4033 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
4034 CHECK_NEW_array__Array(var3);
4035 var_listnode3 = var3;
4036 var_listnode1 = var_nodearraylist1;
4037 /* <var_listnode1:nullable Object> isa Array[Object] */
4038 cltype = type_array__Arraykernel__Object.color;
4039 idtype = type_array__Arraykernel__Object.id;
4040 if(var_listnode1 == NULL) {
4041 var4 = 0;
4042 } else {
4043 if(cltype >= var_listnode1->type->table_size) {
4044 var4 = 0;
4045 } else {
4046 var4 = var_listnode1->type->type_table[cltype] == idtype;
4047 }
4048 }
4049 if (!var4) {
4050 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 31154);
4051 exit(1);
4052 }
4053 var_pexterncallnode2 = var_nodearraylist2;
4054 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1791>*/;
4055 var_listnode3 = var5;
4056 var6 = NULL;
4057 if (var_pexterncallnode2 == NULL) {
4058 var7 = 0; /* is null */
4059 } else {
4060 var7 = 1; /* arg is null and recv is not */
4061 }
4062 if (var7){
4063 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pexterncallnode2) /* add on <var_listnode3:Array[Object]>*/;
4064 } else {
4065 }
4066 var_node_list = var_listnode3;
4067 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1791> */
4068 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
4069 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
4070 RET_LABEL:;
4071 }
4072 /* method parser#ReduceAction1791#action for (self: Object, Parser) */
4073 void VIRTUAL_parser__ReduceAction1791__action(val* self, val* p0) {
4074 parser__ReduceAction1791__action(self, p0);
4075 RET_LABEL:;
4076 }
4077 /* method parser#ReduceAction1793#action for (self: ReduceAction1793, Parser) */
4078 void parser__ReduceAction1793__action(val* self, val* p0) {
4079 val* var_p /* var p: Parser */;
4080 val* var /* : null */;
4081 val* var_node_list /* var node_list: nullable Object */;
4082 val* var1 /* : nullable Object */;
4083 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4084 val* var2 /* : nullable Object */;
4085 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4086 val* var3 /* : Array[Object] */;
4087 val* var_listnode3 /* var listnode3: Array[Object] */;
4088 val* var_listnode1 /* var listnode1: nullable Object */;
4089 short int var4 /* : Bool */;
4090 int cltype;
4091 int idtype;
4092 val* var_ptypenode2 /* var ptypenode2: nullable Object */;
4093 val* var5 /* : Array[Object] */;
4094 val* var6 /* : null */;
4095 short int var7 /* : Bool */;
4096 long var8 /* : Int */;
4097 long var9 /* : Int */;
4098 var_p = p0;
4099 var = NULL;
4100 var_node_list = var;
4101 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4102 var_nodearraylist2 = var1;
4103 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4104 var_nodearraylist1 = var2;
4105 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
4106 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
4107 CHECK_NEW_array__Array(var3);
4108 var_listnode3 = var3;
4109 var_listnode1 = var_nodearraylist1;
4110 /* <var_listnode1:nullable Object> isa Array[Object] */
4111 cltype = type_array__Arraykernel__Object.color;
4112 idtype = type_array__Arraykernel__Object.id;
4113 if(var_listnode1 == NULL) {
4114 var4 = 0;
4115 } else {
4116 if(cltype >= var_listnode1->type->table_size) {
4117 var4 = 0;
4118 } else {
4119 var4 = var_listnode1->type->type_table[cltype] == idtype;
4120 }
4121 }
4122 if (!var4) {
4123 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 31173);
4124 exit(1);
4125 }
4126 var_ptypenode2 = var_nodearraylist2;
4127 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1793>*/;
4128 var_listnode3 = var5;
4129 var6 = NULL;
4130 if (var_ptypenode2 == NULL) {
4131 var7 = 0; /* is null */
4132 } else {
4133 var7 = 1; /* arg is null and recv is not */
4134 }
4135 if (var7){
4136 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_ptypenode2) /* add on <var_listnode3:Array[Object]>*/;
4137 } else {
4138 }
4139 var_node_list = var_listnode3;
4140 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1793> */
4141 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
4142 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
4143 RET_LABEL:;
4144 }
4145 /* method parser#ReduceAction1793#action for (self: Object, Parser) */
4146 void VIRTUAL_parser__ReduceAction1793__action(val* self, val* p0) {
4147 parser__ReduceAction1793__action(self, p0);
4148 RET_LABEL:;
4149 }
4150 /* method parser#ReduceAction1794#action for (self: ReduceAction1794, Parser) */
4151 void parser__ReduceAction1794__action(val* self, val* p0) {
4152 val* var_p /* var p: Parser */;
4153 val* var /* : null */;
4154 val* var_node_list /* var node_list: nullable Object */;
4155 val* var1 /* : nullable Object */;
4156 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4157 val* var2 /* : Array[Object] */;
4158 val* var_listnode2 /* var listnode2: Array[Object] */;
4159 val* var_pexprnode1 /* var pexprnode1: nullable Object */;
4160 val* var3 /* : null */;
4161 short int var4 /* : Bool */;
4162 long var5 /* : Int */;
4163 long var6 /* : Int */;
4164 var_p = p0;
4165 var = NULL;
4166 var_node_list = var;
4167 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4168 var_nodearraylist1 = var1;
4169 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
4170 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
4171 CHECK_NEW_array__Array(var2);
4172 var_listnode2 = var2;
4173 var_pexprnode1 = var_nodearraylist1;
4174 var3 = NULL;
4175 if (var_pexprnode1 == NULL) {
4176 var4 = 0; /* is null */
4177 } else {
4178 var4 = 1; /* arg is null and recv is not */
4179 }
4180 if (var4){
4181 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_pexprnode1) /* add on <var_listnode2:Array[Object]>*/;
4182 } else {
4183 }
4184 var_node_list = var_listnode2;
4185 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1794> */
4186 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
4187 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
4188 RET_LABEL:;
4189 }
4190 /* method parser#ReduceAction1794#action for (self: Object, Parser) */
4191 void VIRTUAL_parser__ReduceAction1794__action(val* self, val* p0) {
4192 parser__ReduceAction1794__action(self, p0);
4193 RET_LABEL:;
4194 }
4195 /* method parser#ReduceAction1795#action for (self: ReduceAction1795, Parser) */
4196 void parser__ReduceAction1795__action(val* self, val* p0) {
4197 val* var_p /* var p: Parser */;
4198 val* var /* : null */;
4199 val* var_node_list /* var node_list: nullable Object */;
4200 val* var1 /* : nullable Object */;
4201 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4202 val* var2 /* : nullable Object */;
4203 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4204 val* var3 /* : Array[Object] */;
4205 val* var_listnode3 /* var listnode3: Array[Object] */;
4206 val* var_listnode1 /* var listnode1: nullable Object */;
4207 short int var4 /* : Bool */;
4208 int cltype;
4209 int idtype;
4210 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
4211 val* var5 /* : Array[Object] */;
4212 val* var6 /* : null */;
4213 short int var7 /* : Bool */;
4214 long var8 /* : Int */;
4215 long var9 /* : Int */;
4216 var_p = p0;
4217 var = NULL;
4218 var_node_list = var;
4219 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4220 var_nodearraylist2 = var1;
4221 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4222 var_nodearraylist1 = var2;
4223 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
4224 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
4225 CHECK_NEW_array__Array(var3);
4226 var_listnode3 = var3;
4227 var_listnode1 = var_nodearraylist1;
4228 /* <var_listnode1:nullable Object> isa Array[Object] */
4229 cltype = type_array__Arraykernel__Object.color;
4230 idtype = type_array__Arraykernel__Object.id;
4231 if(var_listnode1 == NULL) {
4232 var4 = 0;
4233 } else {
4234 if(cltype >= var_listnode1->type->table_size) {
4235 var4 = 0;
4236 } else {
4237 var4 = var_listnode1->type->type_table[cltype] == idtype;
4238 }
4239 }
4240 if (!var4) {
4241 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 31207);
4242 exit(1);
4243 }
4244 var_pexprnode2 = var_nodearraylist2;
4245 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1795>*/;
4246 var_listnode3 = var5;
4247 var6 = NULL;
4248 if (var_pexprnode2 == NULL) {
4249 var7 = 0; /* is null */
4250 } else {
4251 var7 = 1; /* arg is null and recv is not */
4252 }
4253 if (var7){
4254 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pexprnode2) /* add on <var_listnode3:Array[Object]>*/;
4255 } else {
4256 }
4257 var_node_list = var_listnode3;
4258 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1795> */
4259 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
4260 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
4261 RET_LABEL:;
4262 }
4263 /* method parser#ReduceAction1795#action for (self: Object, Parser) */
4264 void VIRTUAL_parser__ReduceAction1795__action(val* self, val* p0) {
4265 parser__ReduceAction1795__action(self, p0);
4266 RET_LABEL:;
4267 }
4268 /* method parser#ReduceAction1797#action for (self: ReduceAction1797, Parser) */
4269 void parser__ReduceAction1797__action(val* self, val* p0) {
4270 val* var_p /* var p: Parser */;
4271 val* var /* : null */;
4272 val* var_node_list /* var node_list: nullable Object */;
4273 val* var1 /* : nullable Object */;
4274 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4275 val* var2 /* : nullable Object */;
4276 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4277 val* var3 /* : Array[Object] */;
4278 val* var_listnode3 /* var listnode3: Array[Object] */;
4279 val* var_listnode1 /* var listnode1: nullable Object */;
4280 short int var4 /* : Bool */;
4281 int cltype;
4282 int idtype;
4283 val* var_listnode2 /* var listnode2: nullable Object */;
4284 short int var5 /* : Bool */;
4285 int cltype6;
4286 int idtype7;
4287 val* var8 /* : Array[Object] */;
4288 val* var9 /* : Array[Object] */;
4289 long var10 /* : Int */;
4290 long var11 /* : Int */;
4291 var_p = p0;
4292 var = NULL;
4293 var_node_list = var;
4294 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4295 var_nodearraylist2 = var1;
4296 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4297 var_nodearraylist1 = var2;
4298 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
4299 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
4300 CHECK_NEW_array__Array(var3);
4301 var_listnode3 = var3;
4302 var_listnode1 = var_nodearraylist1;
4303 /* <var_listnode1:nullable Object> isa Array[Object] */
4304 cltype = type_array__Arraykernel__Object.color;
4305 idtype = type_array__Arraykernel__Object.id;
4306 if(var_listnode1 == NULL) {
4307 var4 = 0;
4308 } else {
4309 if(cltype >= var_listnode1->type->table_size) {
4310 var4 = 0;
4311 } else {
4312 var4 = var_listnode1->type->type_table[cltype] == idtype;
4313 }
4314 }
4315 if (!var4) {
4316 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 31226);
4317 exit(1);
4318 }
4319 var_listnode2 = var_nodearraylist2;
4320 /* <var_listnode2:nullable Object> isa Array[Object] */
4321 cltype6 = type_array__Arraykernel__Object.color;
4322 idtype7 = type_array__Arraykernel__Object.id;
4323 if(var_listnode2 == NULL) {
4324 var5 = 0;
4325 } else {
4326 if(cltype6 >= var_listnode2->type->table_size) {
4327 var5 = 0;
4328 } else {
4329 var5 = var_listnode2->type->type_table[cltype6] == idtype7;
4330 }
4331 }
4332 if (!var5) {
4333 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 31228);
4334 exit(1);
4335 }
4336 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1797>*/;
4337 var_listnode3 = var8;
4338 var9 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode2) /* concat on <self:ReduceAction1797>*/;
4339 var_listnode3 = var9;
4340 var_node_list = var_listnode3;
4341 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1797> */
4342 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
4343 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
4344 RET_LABEL:;
4345 }
4346 /* method parser#ReduceAction1797#action for (self: Object, Parser) */
4347 void VIRTUAL_parser__ReduceAction1797__action(val* self, val* p0) {
4348 parser__ReduceAction1797__action(self, p0);
4349 RET_LABEL:;
4350 }
4351 /* method parser#ReduceAction1799#action for (self: ReduceAction1799, Parser) */
4352 void parser__ReduceAction1799__action(val* self, val* p0) {
4353 val* var_p /* var p: Parser */;
4354 val* var /* : null */;
4355 val* var_node_list /* var node_list: nullable Object */;
4356 val* var1 /* : nullable Object */;
4357 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4358 val* var2 /* : nullable Object */;
4359 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4360 val* var3 /* : Array[Object] */;
4361 val* var_listnode3 /* var listnode3: Array[Object] */;
4362 val* var_listnode1 /* var listnode1: nullable Object */;
4363 short int var4 /* : Bool */;
4364 int cltype;
4365 int idtype;
4366 val* var_pannotationnode2 /* var pannotationnode2: nullable Object */;
4367 val* var5 /* : Array[Object] */;
4368 val* var6 /* : null */;
4369 short int var7 /* : Bool */;
4370 long var8 /* : Int */;
4371 long var9 /* : Int */;
4372 var_p = p0;
4373 var = NULL;
4374 var_node_list = var;
4375 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4376 var_nodearraylist2 = var1;
4377 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4378 var_nodearraylist1 = var2;
4379 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
4380 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
4381 CHECK_NEW_array__Array(var3);
4382 var_listnode3 = var3;
4383 var_listnode1 = var_nodearraylist1;
4384 /* <var_listnode1:nullable Object> isa Array[Object] */
4385 cltype = type_array__Arraykernel__Object.color;
4386 idtype = type_array__Arraykernel__Object.id;
4387 if(var_listnode1 == NULL) {
4388 var4 = 0;
4389 } else {
4390 if(cltype >= var_listnode1->type->table_size) {
4391 var4 = 0;
4392 } else {
4393 var4 = var_listnode1->type->type_table[cltype] == idtype;
4394 }
4395 }
4396 if (!var4) {
4397 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 31244);
4398 exit(1);
4399 }
4400 var_pannotationnode2 = var_nodearraylist2;
4401 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1799>*/;
4402 var_listnode3 = var5;
4403 var6 = NULL;
4404 if (var_pannotationnode2 == NULL) {
4405 var7 = 0; /* is null */
4406 } else {
4407 var7 = 1; /* arg is null and recv is not */
4408 }
4409 if (var7){
4410 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pannotationnode2) /* add on <var_listnode3:Array[Object]>*/;
4411 } else {
4412 }
4413 var_node_list = var_listnode3;
4414 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1799> */
4415 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
4416 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
4417 RET_LABEL:;
4418 }
4419 /* method parser#ReduceAction1799#action for (self: Object, Parser) */
4420 void VIRTUAL_parser__ReduceAction1799__action(val* self, val* p0) {
4421 parser__ReduceAction1799__action(self, p0);
4422 RET_LABEL:;
4423 }
4424 /* method parser#ReduceAction1803#action for (self: ReduceAction1803, Parser) */
4425 void parser__ReduceAction1803__action(val* self, val* p0) {
4426 val* var_p /* var p: Parser */;
4427 val* var /* : null */;
4428 val* var_node_list /* var node_list: nullable Object */;
4429 val* var1 /* : nullable Object */;
4430 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4431 val* var2 /* : nullable Object */;
4432 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4433 val* var3 /* : Array[Object] */;
4434 val* var_listnode3 /* var listnode3: Array[Object] */;
4435 val* var_listnode1 /* var listnode1: nullable Object */;
4436 short int var4 /* : Bool */;
4437 int cltype;
4438 int idtype;
4439 val* var_patargnode2 /* var patargnode2: nullable Object */;
4440 val* var5 /* : Array[Object] */;
4441 val* var6 /* : null */;
4442 short int var7 /* : Bool */;
4443 long var8 /* : Int */;
4444 long var9 /* : Int */;
4445 var_p = p0;
4446 var = NULL;
4447 var_node_list = var;
4448 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4449 var_nodearraylist2 = var1;
4450 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4451 var_nodearraylist1 = var2;
4452 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
4453 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
4454 CHECK_NEW_array__Array(var3);
4455 var_listnode3 = var3;
4456 var_listnode1 = var_nodearraylist1;
4457 /* <var_listnode1:nullable Object> isa Array[Object] */
4458 cltype = type_array__Arraykernel__Object.color;
4459 idtype = type_array__Arraykernel__Object.id;
4460 if(var_listnode1 == NULL) {
4461 var4 = 0;
4462 } else {
4463 if(cltype >= var_listnode1->type->table_size) {
4464 var4 = 0;
4465 } else {
4466 var4 = var_listnode1->type->type_table[cltype] == idtype;
4467 }
4468 }
4469 if (!var4) {
4470 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 31263);
4471 exit(1);
4472 }
4473 var_patargnode2 = var_nodearraylist2;
4474 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1803>*/;
4475 var_listnode3 = var5;
4476 var6 = NULL;
4477 if (var_patargnode2 == NULL) {
4478 var7 = 0; /* is null */
4479 } else {
4480 var7 = 1; /* arg is null and recv is not */
4481 }
4482 if (var7){
4483 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_patargnode2) /* add on <var_listnode3:Array[Object]>*/;
4484 } else {
4485 }
4486 var_node_list = var_listnode3;
4487 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1803> */
4488 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
4489 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
4490 RET_LABEL:;
4491 }
4492 /* method parser#ReduceAction1803#action for (self: Object, Parser) */
4493 void VIRTUAL_parser__ReduceAction1803__action(val* self, val* p0) {
4494 parser__ReduceAction1803__action(self, p0);
4495 RET_LABEL:;
4496 }
4497 /* method parser#ReduceAction1807#action for (self: ReduceAction1807, Parser) */
4498 void parser__ReduceAction1807__action(val* self, val* p0) {
4499 val* var_p /* var p: Parser */;
4500 val* var /* : null */;
4501 val* var_node_list /* var node_list: nullable Object */;
4502 val* var1 /* : nullable Object */;
4503 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4504 val* var2 /* : nullable Object */;
4505 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4506 val* var3 /* : Array[Object] */;
4507 val* var_listnode3 /* var listnode3: Array[Object] */;
4508 val* var_listnode1 /* var listnode1: nullable Object */;
4509 short int var4 /* : Bool */;
4510 int cltype;
4511 int idtype;
4512 val* var_tidnode2 /* var tidnode2: nullable Object */;
4513 val* var5 /* : Array[Object] */;
4514 val* var6 /* : null */;
4515 short int var7 /* : Bool */;
4516 long var8 /* : Int */;
4517 long var9 /* : Int */;
4518 var_p = p0;
4519 var = NULL;
4520 var_node_list = var;
4521 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4522 var_nodearraylist2 = var1;
4523 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4524 var_nodearraylist1 = var2;
4525 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
4526 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
4527 CHECK_NEW_array__Array(var3);
4528 var_listnode3 = var3;
4529 var_listnode1 = var_nodearraylist1;
4530 /* <var_listnode1:nullable Object> isa Array[Object] */
4531 cltype = type_array__Arraykernel__Object.color;
4532 idtype = type_array__Arraykernel__Object.id;
4533 if(var_listnode1 == NULL) {
4534 var4 = 0;
4535 } else {
4536 if(cltype >= var_listnode1->type->table_size) {
4537 var4 = 0;
4538 } else {
4539 var4 = var_listnode1->type->type_table[cltype] == idtype;
4540 }
4541 }
4542 if (!var4) {
4543 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 31282);
4544 exit(1);
4545 }
4546 var_tidnode2 = var_nodearraylist2;
4547 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1807>*/;
4548 var_listnode3 = var5;
4549 var6 = NULL;
4550 if (var_tidnode2 == NULL) {
4551 var7 = 0; /* is null */
4552 } else {
4553 var7 = 1; /* arg is null and recv is not */
4554 }
4555 if (var7){
4556 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_tidnode2) /* add on <var_listnode3:Array[Object]>*/;
4557 } else {
4558 }
4559 var_node_list = var_listnode3;
4560 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1807> */
4561 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
4562 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
4563 RET_LABEL:;
4564 }
4565 /* method parser#ReduceAction1807#action for (self: Object, Parser) */
4566 void VIRTUAL_parser__ReduceAction1807__action(val* self, val* p0) {
4567 parser__ReduceAction1807__action(self, p0);
4568 RET_LABEL:;
4569 }
4570 /* method parser#ReduceAction1808#action for (self: ReduceAction1808, Parser) */
4571 void parser__ReduceAction1808__action(val* self, val* p0) {
4572 val* var_p /* var p: Parser */;
4573 val* var /* : null */;
4574 val* var_node_list /* var node_list: nullable Object */;
4575 val* var1 /* : nullable Object */;
4576 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4577 val* var2 /* : Array[Object] */;
4578 val* var_listnode2 /* var listnode2: Array[Object] */;
4579 val* var_tcommentnode1 /* var tcommentnode1: nullable Object */;
4580 val* var3 /* : null */;
4581 short int var4 /* : Bool */;
4582 long var5 /* : Int */;
4583 long var6 /* : Int */;
4584 var_p = p0;
4585 var = NULL;
4586 var_node_list = var;
4587 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4588 var_nodearraylist1 = var1;
4589 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
4590 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
4591 CHECK_NEW_array__Array(var2);
4592 var_listnode2 = var2;
4593 var_tcommentnode1 = var_nodearraylist1;
4594 var3 = NULL;
4595 if (var_tcommentnode1 == NULL) {
4596 var4 = 0; /* is null */
4597 } else {
4598 var4 = 1; /* arg is null and recv is not */
4599 }
4600 if (var4){
4601 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_tcommentnode1) /* add on <var_listnode2:Array[Object]>*/;
4602 } else {
4603 }
4604 var_node_list = var_listnode2;
4605 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1808> */
4606 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
4607 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
4608 RET_LABEL:;
4609 }
4610 /* method parser#ReduceAction1808#action for (self: Object, Parser) */
4611 void VIRTUAL_parser__ReduceAction1808__action(val* self, val* p0) {
4612 parser__ReduceAction1808__action(self, p0);
4613 RET_LABEL:;
4614 }
4615 /* method parser#ReduceAction1809#action for (self: ReduceAction1809, Parser) */
4616 void parser__ReduceAction1809__action(val* self, val* p0) {
4617 val* var_p /* var p: Parser */;
4618 val* var /* : null */;
4619 val* var_node_list /* var node_list: nullable Object */;
4620 val* var1 /* : nullable Object */;
4621 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4622 val* var2 /* : nullable Object */;
4623 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4624 val* var3 /* : Array[Object] */;
4625 val* var_listnode3 /* var listnode3: Array[Object] */;
4626 val* var_listnode1 /* var listnode1: nullable Object */;
4627 short int var4 /* : Bool */;
4628 int cltype;
4629 int idtype;
4630 val* var_tcommentnode2 /* var tcommentnode2: nullable Object */;
4631 val* var5 /* : Array[Object] */;
4632 val* var6 /* : null */;
4633 short int var7 /* : Bool */;
4634 long var8 /* : Int */;
4635 long var9 /* : Int */;
4636 var_p = p0;
4637 var = NULL;
4638 var_node_list = var;
4639 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4640 var_nodearraylist2 = var1;
4641 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4642 var_nodearraylist1 = var2;
4643 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
4644 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
4645 CHECK_NEW_array__Array(var3);
4646 var_listnode3 = var3;
4647 var_listnode1 = var_nodearraylist1;
4648 /* <var_listnode1:nullable Object> isa Array[Object] */
4649 cltype = type_array__Arraykernel__Object.color;
4650 idtype = type_array__Arraykernel__Object.id;
4651 if(var_listnode1 == NULL) {
4652 var4 = 0;
4653 } else {
4654 if(cltype >= var_listnode1->type->table_size) {
4655 var4 = 0;
4656 } else {
4657 var4 = var_listnode1->type->type_table[cltype] == idtype;
4658 }
4659 }
4660 if (!var4) {
4661 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 31316);
4662 exit(1);
4663 }
4664 var_tcommentnode2 = var_nodearraylist2;
4665 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1809>*/;
4666 var_listnode3 = var5;
4667 var6 = NULL;
4668 if (var_tcommentnode2 == NULL) {
4669 var7 = 0; /* is null */
4670 } else {
4671 var7 = 1; /* arg is null and recv is not */
4672 }
4673 if (var7){
4674 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_tcommentnode2) /* add on <var_listnode3:Array[Object]>*/;
4675 } else {
4676 }
4677 var_node_list = var_listnode3;
4678 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1809> */
4679 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
4680 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
4681 RET_LABEL:;
4682 }
4683 /* method parser#ReduceAction1809#action for (self: Object, Parser) */
4684 void VIRTUAL_parser__ReduceAction1809__action(val* self, val* p0) {
4685 parser__ReduceAction1809__action(self, p0);
4686 RET_LABEL:;
4687 }
4688 /* method parser#ReduceAction1810#action for (self: ReduceAction1810, Parser) */
4689 void parser__ReduceAction1810__action(val* self, val* p0) {
4690 val* var_p /* var p: Parser */;
4691 val* var /* : null */;
4692 val* var_node_list /* var node_list: nullable Object */;
4693 val* var1 /* : nullable Object */;
4694 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4695 val* var2 /* : Array[Object] */;
4696 val* var_listnode2 /* var listnode2: Array[Object] */;
4697 val* var_teolnode1 /* var teolnode1: nullable Object */;
4698 val* var3 /* : null */;
4699 short int var4 /* : Bool */;
4700 long var5 /* : Int */;
4701 long var6 /* : Int */;
4702 var_p = p0;
4703 var = NULL;
4704 var_node_list = var;
4705 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4706 var_nodearraylist1 = var1;
4707 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
4708 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
4709 CHECK_NEW_array__Array(var2);
4710 var_listnode2 = var2;
4711 var_teolnode1 = var_nodearraylist1;
4712 var3 = NULL;
4713 if (var_teolnode1 == NULL) {
4714 var4 = 0; /* is null */
4715 } else {
4716 var4 = 1; /* arg is null and recv is not */
4717 }
4718 if (var4){
4719 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_teolnode1) /* add on <var_listnode2:Array[Object]>*/;
4720 } else {
4721 }
4722 var_node_list = var_listnode2;
4723 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1810> */
4724 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
4725 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
4726 RET_LABEL:;
4727 }
4728 /* method parser#ReduceAction1810#action for (self: Object, Parser) */
4729 void VIRTUAL_parser__ReduceAction1810__action(val* self, val* p0) {
4730 parser__ReduceAction1810__action(self, p0);
4731 RET_LABEL:;
4732 }
4733 /* method parser#ReduceAction1811#action for (self: ReduceAction1811, Parser) */
4734 void parser__ReduceAction1811__action(val* self, val* p0) {
4735 val* var_p /* var p: Parser */;
4736 val* var /* : null */;
4737 val* var_node_list /* var node_list: nullable Object */;
4738 val* var1 /* : nullable Object */;
4739 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4740 val* var2 /* : nullable Object */;
4741 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4742 val* var3 /* : Array[Object] */;
4743 val* var_listnode3 /* var listnode3: Array[Object] */;
4744 val* var_listnode1 /* var listnode1: nullable Object */;
4745 short int var4 /* : Bool */;
4746 int cltype;
4747 int idtype;
4748 val* var_teolnode2 /* var teolnode2: nullable Object */;
4749 val* var5 /* : Array[Object] */;
4750 val* var6 /* : null */;
4751 short int var7 /* : Bool */;
4752 long var8 /* : Int */;
4753 long var9 /* : Int */;
4754 var_p = p0;
4755 var = NULL;
4756 var_node_list = var;
4757 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4758 var_nodearraylist2 = var1;
4759 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4760 var_nodearraylist1 = var2;
4761 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
4762 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
4763 CHECK_NEW_array__Array(var3);
4764 var_listnode3 = var3;
4765 var_listnode1 = var_nodearraylist1;
4766 /* <var_listnode1:nullable Object> isa Array[Object] */
4767 cltype = type_array__Arraykernel__Object.color;
4768 idtype = type_array__Arraykernel__Object.id;
4769 if(var_listnode1 == NULL) {
4770 var4 = 0;
4771 } else {
4772 if(cltype >= var_listnode1->type->table_size) {
4773 var4 = 0;
4774 } else {
4775 var4 = var_listnode1->type->type_table[cltype] == idtype;
4776 }
4777 }
4778 if (!var4) {
4779 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 31350);
4780 exit(1);
4781 }
4782 var_teolnode2 = var_nodearraylist2;
4783 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction1811>*/;
4784 var_listnode3 = var5;
4785 var6 = NULL;
4786 if (var_teolnode2 == NULL) {
4787 var7 = 0; /* is null */
4788 } else {
4789 var7 = 1; /* arg is null and recv is not */
4790 }
4791 if (var7){
4792 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_teolnode2) /* add on <var_listnode3:Array[Object]>*/;
4793 } else {
4794 }
4795 var_node_list = var_listnode3;
4796 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1811> */
4797 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
4798 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
4799 RET_LABEL:;
4800 }
4801 /* method parser#ReduceAction1811#action for (self: Object, Parser) */
4802 void VIRTUAL_parser__ReduceAction1811__action(val* self, val* p0) {
4803 parser__ReduceAction1811__action(self, p0);
4804 RET_LABEL:;
4805 }