tools: move run_global_phases/process_mainmodule into modelbuilder
[nit.git] / c_src / parser.sep.15.c
1 #include "parser.sep.0.h"
2 /* method parser#ReduceAction727#action for (self: ReduceAction727, Parser) */
3 void parser__ReduceAction727__action(val* self, val* p0) {
4 val* var_p /* var p: Parser */;
5 val* var /* : null */;
6 val* var_node_list /* var node_list: nullable Object */;
7 val* var1 /* : nullable Object */;
8 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9 val* var2 /* : nullable Object */;
10 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
11 val* var3 /* : nullable Object */;
12 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
13 val* var4 /* : nullable Object */;
14 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
15 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
16 short int var5 /* : Bool */;
17 int cltype;
18 int idtype;
19 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
20 short int var6 /* : Bool */;
21 int cltype7;
22 int idtype8;
23 val* var9 /* : AStarshipExpr */;
24 val* var_pexprnode1 /* var pexprnode1: nullable AStarshipExpr */;
25 long var10 /* : Int */;
26 long var11 /* : Int */;
27 var_p = p0;
28 var = NULL;
29 var_node_list = var;
30 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
31 var_nodearraylist4 = var1;
32 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
33 var_nodearraylist3 = var2;
34 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
35 var_nodearraylist2 = var3;
36 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
37 var_nodearraylist1 = var4;
38 var_pexprnode2 = var_nodearraylist1;
39 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
40 cltype = type_nullable_parser_nodes__AExpr.color;
41 idtype = type_nullable_parser_nodes__AExpr.id;
42 if(var_pexprnode2 == NULL) {
43 var5 = 1;
44 } else {
45 if(cltype >= var_pexprnode2->type->table_size) {
46 var5 = 0;
47 } else {
48 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
49 }
50 }
51 if (!var5) {
52 fprintf(stderr, "Runtime error: %s", "Assert failed");
53 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26686);
54 exit(1);
55 }
56 var_pexprnode3 = var_nodearraylist4;
57 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
58 cltype7 = type_nullable_parser_nodes__AExpr.color;
59 idtype8 = type_nullable_parser_nodes__AExpr.id;
60 if(var_pexprnode3 == NULL) {
61 var6 = 1;
62 } else {
63 if(cltype7 >= var_pexprnode3->type->table_size) {
64 var6 = 0;
65 } else {
66 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
67 }
68 }
69 if (!var6) {
70 fprintf(stderr, "Runtime error: %s", "Assert failed");
71 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26688);
72 exit(1);
73 }
74 var9 = NEW_parser_nodes__AStarshipExpr(&type_parser_nodes__AStarshipExpr);
75 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AStarshipExpr__init_astarshipexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_astarshipexpr on <var9:AStarshipExpr>*/;
76 CHECK_NEW_parser_nodes__AStarshipExpr(var9);
77 var_pexprnode1 = var9;
78 var_node_list = var_pexprnode1;
79 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction727> */
80 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
81 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
82 RET_LABEL:;
83 }
84 /* method parser#ReduceAction727#action for (self: Object, Parser) */
85 void VIRTUAL_parser__ReduceAction727__action(val* self, val* p0) {
86 parser__ReduceAction727__action(self, p0);
87 RET_LABEL:;
88 }
89 /* method parser#ReduceAction728#action for (self: ReduceAction728, Parser) */
90 void parser__ReduceAction728__action(val* self, val* p0) {
91 val* var_p /* var p: Parser */;
92 val* var /* : null */;
93 val* var_node_list /* var node_list: nullable Object */;
94 val* var1 /* : nullable Object */;
95 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
96 val* var2 /* : nullable Object */;
97 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
98 val* var3 /* : nullable Object */;
99 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
100 val* var4 /* : nullable Object */;
101 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
102 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
103 short int var5 /* : Bool */;
104 int cltype;
105 int idtype;
106 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
107 short int var6 /* : Bool */;
108 int cltype7;
109 int idtype8;
110 val* var9 /* : AIsaExpr */;
111 val* var_pexprnode1 /* var pexprnode1: nullable AIsaExpr */;
112 long var10 /* : Int */;
113 long var11 /* : Int */;
114 var_p = p0;
115 var = NULL;
116 var_node_list = var;
117 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
118 var_nodearraylist4 = var1;
119 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
120 var_nodearraylist3 = var2;
121 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
122 var_nodearraylist2 = var3;
123 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
124 var_nodearraylist1 = var4;
125 var_pexprnode2 = var_nodearraylist1;
126 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
127 cltype = type_nullable_parser_nodes__AExpr.color;
128 idtype = type_nullable_parser_nodes__AExpr.id;
129 if(var_pexprnode2 == NULL) {
130 var5 = 1;
131 } else {
132 if(cltype >= var_pexprnode2->type->table_size) {
133 var5 = 0;
134 } else {
135 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
136 }
137 }
138 if (!var5) {
139 fprintf(stderr, "Runtime error: %s", "Assert failed");
140 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26707);
141 exit(1);
142 }
143 var_ptypenode3 = var_nodearraylist4;
144 /* <var_ptypenode3:nullable Object> isa nullable AType */
145 cltype7 = type_nullable_parser_nodes__AType.color;
146 idtype8 = type_nullable_parser_nodes__AType.id;
147 if(var_ptypenode3 == NULL) {
148 var6 = 1;
149 } else {
150 if(cltype7 >= var_ptypenode3->type->table_size) {
151 var6 = 0;
152 } else {
153 var6 = var_ptypenode3->type->type_table[cltype7] == idtype8;
154 }
155 }
156 if (!var6) {
157 fprintf(stderr, "Runtime error: %s", "Assert failed");
158 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26709);
159 exit(1);
160 }
161 var9 = NEW_parser_nodes__AIsaExpr(&type_parser_nodes__AIsaExpr);
162 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AIsaExpr__init_aisaexpr]))(var9, var_pexprnode2, var_ptypenode3) /* init_aisaexpr on <var9:AIsaExpr>*/;
163 CHECK_NEW_parser_nodes__AIsaExpr(var9);
164 var_pexprnode1 = var9;
165 var_node_list = var_pexprnode1;
166 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction728> */
167 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
168 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
169 RET_LABEL:;
170 }
171 /* method parser#ReduceAction728#action for (self: Object, Parser) */
172 void VIRTUAL_parser__ReduceAction728__action(val* self, val* p0) {
173 parser__ReduceAction728__action(self, p0);
174 RET_LABEL:;
175 }
176 /* method parser#ReduceAction730#action for (self: ReduceAction730, Parser) */
177 void parser__ReduceAction730__action(val* self, val* p0) {
178 val* var_p /* var p: Parser */;
179 val* var /* : null */;
180 val* var_node_list /* var node_list: nullable Object */;
181 val* var1 /* : nullable Object */;
182 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
183 val* var2 /* : nullable Object */;
184 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
185 val* var3 /* : nullable Object */;
186 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
187 val* var4 /* : nullable Object */;
188 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
189 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
190 short int var5 /* : Bool */;
191 int cltype;
192 int idtype;
193 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
194 short int var6 /* : Bool */;
195 int cltype7;
196 int idtype8;
197 val* var9 /* : APlusExpr */;
198 val* var_pexprnode1 /* var pexprnode1: nullable APlusExpr */;
199 long var10 /* : Int */;
200 long var11 /* : Int */;
201 var_p = p0;
202 var = NULL;
203 var_node_list = var;
204 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
205 var_nodearraylist4 = var1;
206 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
207 var_nodearraylist3 = var2;
208 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
209 var_nodearraylist2 = var3;
210 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
211 var_nodearraylist1 = var4;
212 var_pexprnode2 = var_nodearraylist1;
213 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
214 cltype = type_nullable_parser_nodes__AExpr.color;
215 idtype = type_nullable_parser_nodes__AExpr.id;
216 if(var_pexprnode2 == NULL) {
217 var5 = 1;
218 } else {
219 if(cltype >= var_pexprnode2->type->table_size) {
220 var5 = 0;
221 } else {
222 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
223 }
224 }
225 if (!var5) {
226 fprintf(stderr, "Runtime error: %s", "Assert failed");
227 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26728);
228 exit(1);
229 }
230 var_pexprnode3 = var_nodearraylist4;
231 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
232 cltype7 = type_nullable_parser_nodes__AExpr.color;
233 idtype8 = type_nullable_parser_nodes__AExpr.id;
234 if(var_pexprnode3 == NULL) {
235 var6 = 1;
236 } else {
237 if(cltype7 >= var_pexprnode3->type->table_size) {
238 var6 = 0;
239 } else {
240 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
241 }
242 }
243 if (!var6) {
244 fprintf(stderr, "Runtime error: %s", "Assert failed");
245 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26730);
246 exit(1);
247 }
248 var9 = NEW_parser_nodes__APlusExpr(&type_parser_nodes__APlusExpr);
249 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__APlusExpr__init_aplusexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aplusexpr on <var9:APlusExpr>*/;
250 CHECK_NEW_parser_nodes__APlusExpr(var9);
251 var_pexprnode1 = var9;
252 var_node_list = var_pexprnode1;
253 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction730> */
254 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
255 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
256 RET_LABEL:;
257 }
258 /* method parser#ReduceAction730#action for (self: Object, Parser) */
259 void VIRTUAL_parser__ReduceAction730__action(val* self, val* p0) {
260 parser__ReduceAction730__action(self, p0);
261 RET_LABEL:;
262 }
263 /* method parser#ReduceAction731#action for (self: ReduceAction731, Parser) */
264 void parser__ReduceAction731__action(val* self, val* p0) {
265 val* var_p /* var p: Parser */;
266 val* var /* : null */;
267 val* var_node_list /* var node_list: nullable Object */;
268 val* var1 /* : nullable Object */;
269 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
270 val* var2 /* : nullable Object */;
271 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
272 val* var3 /* : nullable Object */;
273 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
274 val* var4 /* : nullable Object */;
275 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
276 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
277 short int var5 /* : Bool */;
278 int cltype;
279 int idtype;
280 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
281 short int var6 /* : Bool */;
282 int cltype7;
283 int idtype8;
284 val* var9 /* : AMinusExpr */;
285 val* var_pexprnode1 /* var pexprnode1: nullable AMinusExpr */;
286 long var10 /* : Int */;
287 long var11 /* : Int */;
288 var_p = p0;
289 var = NULL;
290 var_node_list = var;
291 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
292 var_nodearraylist4 = var1;
293 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
294 var_nodearraylist3 = var2;
295 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
296 var_nodearraylist2 = var3;
297 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
298 var_nodearraylist1 = var4;
299 var_pexprnode2 = var_nodearraylist1;
300 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
301 cltype = type_nullable_parser_nodes__AExpr.color;
302 idtype = type_nullable_parser_nodes__AExpr.id;
303 if(var_pexprnode2 == NULL) {
304 var5 = 1;
305 } else {
306 if(cltype >= var_pexprnode2->type->table_size) {
307 var5 = 0;
308 } else {
309 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
310 }
311 }
312 if (!var5) {
313 fprintf(stderr, "Runtime error: %s", "Assert failed");
314 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26749);
315 exit(1);
316 }
317 var_pexprnode3 = var_nodearraylist4;
318 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
319 cltype7 = type_nullable_parser_nodes__AExpr.color;
320 idtype8 = type_nullable_parser_nodes__AExpr.id;
321 if(var_pexprnode3 == NULL) {
322 var6 = 1;
323 } else {
324 if(cltype7 >= var_pexprnode3->type->table_size) {
325 var6 = 0;
326 } else {
327 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
328 }
329 }
330 if (!var6) {
331 fprintf(stderr, "Runtime error: %s", "Assert failed");
332 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26751);
333 exit(1);
334 }
335 var9 = NEW_parser_nodes__AMinusExpr(&type_parser_nodes__AMinusExpr);
336 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AMinusExpr__init_aminusexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aminusexpr on <var9:AMinusExpr>*/;
337 CHECK_NEW_parser_nodes__AMinusExpr(var9);
338 var_pexprnode1 = var9;
339 var_node_list = var_pexprnode1;
340 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction731> */
341 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
342 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
343 RET_LABEL:;
344 }
345 /* method parser#ReduceAction731#action for (self: Object, Parser) */
346 void VIRTUAL_parser__ReduceAction731__action(val* self, val* p0) {
347 parser__ReduceAction731__action(self, p0);
348 RET_LABEL:;
349 }
350 /* method parser#ReduceAction733#action for (self: ReduceAction733, Parser) */
351 void parser__ReduceAction733__action(val* self, val* p0) {
352 val* var_p /* var p: Parser */;
353 val* var /* : null */;
354 val* var_node_list /* var node_list: nullable Object */;
355 val* var1 /* : nullable Object */;
356 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
357 val* var2 /* : nullable Object */;
358 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
359 val* var3 /* : nullable Object */;
360 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
361 val* var4 /* : nullable Object */;
362 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
363 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
364 short int var5 /* : Bool */;
365 int cltype;
366 int idtype;
367 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
368 short int var6 /* : Bool */;
369 int cltype7;
370 int idtype8;
371 val* var9 /* : AStarExpr */;
372 val* var_pexprnode1 /* var pexprnode1: nullable AStarExpr */;
373 long var10 /* : Int */;
374 long var11 /* : Int */;
375 var_p = p0;
376 var = NULL;
377 var_node_list = var;
378 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
379 var_nodearraylist4 = var1;
380 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
381 var_nodearraylist3 = var2;
382 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
383 var_nodearraylist2 = var3;
384 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
385 var_nodearraylist1 = var4;
386 var_pexprnode2 = var_nodearraylist1;
387 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
388 cltype = type_nullable_parser_nodes__AExpr.color;
389 idtype = type_nullable_parser_nodes__AExpr.id;
390 if(var_pexprnode2 == NULL) {
391 var5 = 1;
392 } else {
393 if(cltype >= var_pexprnode2->type->table_size) {
394 var5 = 0;
395 } else {
396 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
397 }
398 }
399 if (!var5) {
400 fprintf(stderr, "Runtime error: %s", "Assert failed");
401 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26770);
402 exit(1);
403 }
404 var_pexprnode3 = var_nodearraylist4;
405 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
406 cltype7 = type_nullable_parser_nodes__AExpr.color;
407 idtype8 = type_nullable_parser_nodes__AExpr.id;
408 if(var_pexprnode3 == NULL) {
409 var6 = 1;
410 } else {
411 if(cltype7 >= var_pexprnode3->type->table_size) {
412 var6 = 0;
413 } else {
414 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
415 }
416 }
417 if (!var6) {
418 fprintf(stderr, "Runtime error: %s", "Assert failed");
419 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26772);
420 exit(1);
421 }
422 var9 = NEW_parser_nodes__AStarExpr(&type_parser_nodes__AStarExpr);
423 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AStarExpr__init_astarexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_astarexpr on <var9:AStarExpr>*/;
424 CHECK_NEW_parser_nodes__AStarExpr(var9);
425 var_pexprnode1 = var9;
426 var_node_list = var_pexprnode1;
427 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction733> */
428 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
429 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
430 RET_LABEL:;
431 }
432 /* method parser#ReduceAction733#action for (self: Object, Parser) */
433 void VIRTUAL_parser__ReduceAction733__action(val* self, val* p0) {
434 parser__ReduceAction733__action(self, p0);
435 RET_LABEL:;
436 }
437 /* method parser#ReduceAction734#action for (self: ReduceAction734, Parser) */
438 void parser__ReduceAction734__action(val* self, val* p0) {
439 val* var_p /* var p: Parser */;
440 val* var /* : null */;
441 val* var_node_list /* var node_list: nullable Object */;
442 val* var1 /* : nullable Object */;
443 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
444 val* var2 /* : nullable Object */;
445 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
446 val* var3 /* : nullable Object */;
447 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
448 val* var4 /* : nullable Object */;
449 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
450 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
451 short int var5 /* : Bool */;
452 int cltype;
453 int idtype;
454 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
455 short int var6 /* : Bool */;
456 int cltype7;
457 int idtype8;
458 val* var9 /* : ASlashExpr */;
459 val* var_pexprnode1 /* var pexprnode1: nullable ASlashExpr */;
460 long var10 /* : Int */;
461 long var11 /* : Int */;
462 var_p = p0;
463 var = NULL;
464 var_node_list = var;
465 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
466 var_nodearraylist4 = var1;
467 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
468 var_nodearraylist3 = var2;
469 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
470 var_nodearraylist2 = var3;
471 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
472 var_nodearraylist1 = var4;
473 var_pexprnode2 = var_nodearraylist1;
474 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
475 cltype = type_nullable_parser_nodes__AExpr.color;
476 idtype = type_nullable_parser_nodes__AExpr.id;
477 if(var_pexprnode2 == NULL) {
478 var5 = 1;
479 } else {
480 if(cltype >= var_pexprnode2->type->table_size) {
481 var5 = 0;
482 } else {
483 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
484 }
485 }
486 if (!var5) {
487 fprintf(stderr, "Runtime error: %s", "Assert failed");
488 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26791);
489 exit(1);
490 }
491 var_pexprnode3 = var_nodearraylist4;
492 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
493 cltype7 = type_nullable_parser_nodes__AExpr.color;
494 idtype8 = type_nullable_parser_nodes__AExpr.id;
495 if(var_pexprnode3 == NULL) {
496 var6 = 1;
497 } else {
498 if(cltype7 >= var_pexprnode3->type->table_size) {
499 var6 = 0;
500 } else {
501 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
502 }
503 }
504 if (!var6) {
505 fprintf(stderr, "Runtime error: %s", "Assert failed");
506 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26793);
507 exit(1);
508 }
509 var9 = NEW_parser_nodes__ASlashExpr(&type_parser_nodes__ASlashExpr);
510 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__ASlashExpr__init_aslashexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_aslashexpr on <var9:ASlashExpr>*/;
511 CHECK_NEW_parser_nodes__ASlashExpr(var9);
512 var_pexprnode1 = var9;
513 var_node_list = var_pexprnode1;
514 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction734> */
515 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
516 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
517 RET_LABEL:;
518 }
519 /* method parser#ReduceAction734#action for (self: Object, Parser) */
520 void VIRTUAL_parser__ReduceAction734__action(val* self, val* p0) {
521 parser__ReduceAction734__action(self, p0);
522 RET_LABEL:;
523 }
524 /* method parser#ReduceAction735#action for (self: ReduceAction735, Parser) */
525 void parser__ReduceAction735__action(val* self, val* p0) {
526 val* var_p /* var p: Parser */;
527 val* var /* : null */;
528 val* var_node_list /* var node_list: nullable Object */;
529 val* var1 /* : nullable Object */;
530 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
531 val* var2 /* : nullable Object */;
532 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
533 val* var3 /* : nullable Object */;
534 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
535 val* var4 /* : nullable Object */;
536 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
537 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
538 short int var5 /* : Bool */;
539 int cltype;
540 int idtype;
541 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
542 short int var6 /* : Bool */;
543 int cltype7;
544 int idtype8;
545 val* var9 /* : APercentExpr */;
546 val* var_pexprnode1 /* var pexprnode1: nullable APercentExpr */;
547 long var10 /* : Int */;
548 long var11 /* : 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_nodearraylist4 = var1;
554 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
555 var_nodearraylist3 = var2;
556 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
557 var_nodearraylist2 = var3;
558 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
559 var_nodearraylist1 = var4;
560 var_pexprnode2 = var_nodearraylist1;
561 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
562 cltype = type_nullable_parser_nodes__AExpr.color;
563 idtype = type_nullable_parser_nodes__AExpr.id;
564 if(var_pexprnode2 == NULL) {
565 var5 = 1;
566 } else {
567 if(cltype >= var_pexprnode2->type->table_size) {
568 var5 = 0;
569 } else {
570 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
571 }
572 }
573 if (!var5) {
574 fprintf(stderr, "Runtime error: %s", "Assert failed");
575 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26812);
576 exit(1);
577 }
578 var_pexprnode3 = var_nodearraylist4;
579 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
580 cltype7 = type_nullable_parser_nodes__AExpr.color;
581 idtype8 = type_nullable_parser_nodes__AExpr.id;
582 if(var_pexprnode3 == NULL) {
583 var6 = 1;
584 } else {
585 if(cltype7 >= var_pexprnode3->type->table_size) {
586 var6 = 0;
587 } else {
588 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
589 }
590 }
591 if (!var6) {
592 fprintf(stderr, "Runtime error: %s", "Assert failed");
593 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26814);
594 exit(1);
595 }
596 var9 = NEW_parser_nodes__APercentExpr(&type_parser_nodes__APercentExpr);
597 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__APercentExpr__init_apercentexpr]))(var9, var_pexprnode2, var_pexprnode3) /* init_apercentexpr on <var9:APercentExpr>*/;
598 CHECK_NEW_parser_nodes__APercentExpr(var9);
599 var_pexprnode1 = var9;
600 var_node_list = var_pexprnode1;
601 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction735> */
602 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
603 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
604 RET_LABEL:;
605 }
606 /* method parser#ReduceAction735#action for (self: Object, Parser) */
607 void VIRTUAL_parser__ReduceAction735__action(val* self, val* p0) {
608 parser__ReduceAction735__action(self, p0);
609 RET_LABEL:;
610 }
611 /* method parser#ReduceAction737#action for (self: ReduceAction737, Parser) */
612 void parser__ReduceAction737__action(val* self, val* p0) {
613 val* var_p /* var p: Parser */;
614 val* var /* : null */;
615 val* var_node_list /* var node_list: nullable Object */;
616 val* var1 /* : nullable Object */;
617 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
618 val* var2 /* : nullable Object */;
619 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
620 val* var3 /* : nullable Object */;
621 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
622 val* var_tminusnode2 /* var tminusnode2: nullable Object */;
623 short int var4 /* : Bool */;
624 int cltype;
625 int idtype;
626 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
627 short int var5 /* : Bool */;
628 int cltype6;
629 int idtype7;
630 val* var8 /* : AUminusExpr */;
631 val* var_pexprnode1 /* var pexprnode1: nullable AUminusExpr */;
632 long var9 /* : Int */;
633 long var10 /* : Int */;
634 var_p = p0;
635 var = NULL;
636 var_node_list = var;
637 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
638 var_nodearraylist3 = var1;
639 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
640 var_nodearraylist2 = var2;
641 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
642 var_nodearraylist1 = var3;
643 var_tminusnode2 = var_nodearraylist1;
644 /* <var_tminusnode2:nullable Object> isa nullable TMinus */
645 cltype = type_nullable_parser_nodes__TMinus.color;
646 idtype = type_nullable_parser_nodes__TMinus.id;
647 if(var_tminusnode2 == NULL) {
648 var4 = 1;
649 } else {
650 if(cltype >= var_tminusnode2->type->table_size) {
651 var4 = 0;
652 } else {
653 var4 = var_tminusnode2->type->type_table[cltype] == idtype;
654 }
655 }
656 if (!var4) {
657 fprintf(stderr, "Runtime error: %s", "Assert failed");
658 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26832);
659 exit(1);
660 }
661 var_pexprnode3 = var_nodearraylist3;
662 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
663 cltype6 = type_nullable_parser_nodes__AExpr.color;
664 idtype7 = type_nullable_parser_nodes__AExpr.id;
665 if(var_pexprnode3 == NULL) {
666 var5 = 1;
667 } else {
668 if(cltype6 >= var_pexprnode3->type->table_size) {
669 var5 = 0;
670 } else {
671 var5 = var_pexprnode3->type->type_table[cltype6] == idtype7;
672 }
673 }
674 if (!var5) {
675 fprintf(stderr, "Runtime error: %s", "Assert failed");
676 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26834);
677 exit(1);
678 }
679 var8 = NEW_parser_nodes__AUminusExpr(&type_parser_nodes__AUminusExpr);
680 ((void (*)(val*, val*, val*))(var8->class->vft[COLOR_parser_prod__AUminusExpr__init_auminusexpr]))(var8, var_tminusnode2, var_pexprnode3) /* init_auminusexpr on <var8:AUminusExpr>*/;
681 CHECK_NEW_parser_nodes__AUminusExpr(var8);
682 var_pexprnode1 = var8;
683 var_node_list = var_pexprnode1;
684 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction737> */
685 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
686 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
687 RET_LABEL:;
688 }
689 /* method parser#ReduceAction737#action for (self: Object, Parser) */
690 void VIRTUAL_parser__ReduceAction737__action(val* self, val* p0) {
691 parser__ReduceAction737__action(self, p0);
692 RET_LABEL:;
693 }
694 /* method parser#ReduceAction738#action for (self: ReduceAction738, Parser) */
695 void parser__ReduceAction738__action(val* self, val* p0) {
696 val* var_p /* var p: Parser */;
697 val* var /* : null */;
698 val* var_node_list /* var node_list: nullable Object */;
699 val* var1 /* : nullable Object */;
700 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
701 val* var2 /* : nullable Object */;
702 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
703 val* var3 /* : nullable Object */;
704 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
705 val* var_tkwoncenode2 /* var tkwoncenode2: nullable Object */;
706 short int var4 /* : Bool */;
707 int cltype;
708 int idtype;
709 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
710 short int var5 /* : Bool */;
711 int cltype6;
712 int idtype7;
713 val* var8 /* : AOnceExpr */;
714 val* var_pexprnode1 /* var pexprnode1: nullable AOnceExpr */;
715 long var9 /* : Int */;
716 long var10 /* : 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_nodearraylist3 = var1;
722 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
723 var_nodearraylist2 = var2;
724 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
725 var_nodearraylist1 = var3;
726 var_tkwoncenode2 = var_nodearraylist1;
727 /* <var_tkwoncenode2:nullable Object> isa nullable TKwonce */
728 cltype = type_nullable_parser_nodes__TKwonce.color;
729 idtype = type_nullable_parser_nodes__TKwonce.id;
730 if(var_tkwoncenode2 == NULL) {
731 var4 = 1;
732 } else {
733 if(cltype >= var_tkwoncenode2->type->table_size) {
734 var4 = 0;
735 } else {
736 var4 = var_tkwoncenode2->type->type_table[cltype] == idtype;
737 }
738 }
739 if (!var4) {
740 fprintf(stderr, "Runtime error: %s", "Assert failed");
741 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26852);
742 exit(1);
743 }
744 var_pexprnode3 = var_nodearraylist3;
745 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
746 cltype6 = type_nullable_parser_nodes__AExpr.color;
747 idtype7 = type_nullable_parser_nodes__AExpr.id;
748 if(var_pexprnode3 == NULL) {
749 var5 = 1;
750 } else {
751 if(cltype6 >= var_pexprnode3->type->table_size) {
752 var5 = 0;
753 } else {
754 var5 = var_pexprnode3->type->type_table[cltype6] == idtype7;
755 }
756 }
757 if (!var5) {
758 fprintf(stderr, "Runtime error: %s", "Assert failed");
759 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26854);
760 exit(1);
761 }
762 var8 = NEW_parser_nodes__AOnceExpr(&type_parser_nodes__AOnceExpr);
763 ((void (*)(val*, val*, val*))(var8->class->vft[COLOR_parser_prod__AOnceExpr__init_aonceexpr]))(var8, var_tkwoncenode2, var_pexprnode3) /* init_aonceexpr on <var8:AOnceExpr>*/;
764 CHECK_NEW_parser_nodes__AOnceExpr(var8);
765 var_pexprnode1 = var8;
766 var_node_list = var_pexprnode1;
767 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction738> */
768 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
769 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
770 RET_LABEL:;
771 }
772 /* method parser#ReduceAction738#action for (self: Object, Parser) */
773 void VIRTUAL_parser__ReduceAction738__action(val* self, val* p0) {
774 parser__ReduceAction738__action(self, p0);
775 RET_LABEL:;
776 }
777 /* method parser#ReduceAction740#action for (self: ReduceAction740, Parser) */
778 void parser__ReduceAction740__action(val* self, val* p0) {
779 val* var_p /* var p: Parser */;
780 val* var /* : null */;
781 val* var_node_list /* var node_list: nullable Object */;
782 val* var1 /* : nullable Object */;
783 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
784 val* var2 /* : nullable Object */;
785 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
786 val* var3 /* : nullable Object */;
787 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
788 val* var4 /* : nullable Object */;
789 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
790 val* var_tkwnewnode2 /* var tkwnewnode2: nullable Object */;
791 short int var5 /* : Bool */;
792 int cltype;
793 int idtype;
794 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
795 short int var6 /* : Bool */;
796 int cltype7;
797 int idtype8;
798 val* var_pexprsnode5 /* var pexprsnode5: nullable Object */;
799 short int var9 /* : Bool */;
800 int cltype10;
801 int idtype11;
802 val* var12 /* : ANewExpr */;
803 val* var13 /* : null */;
804 val* var_pexprnode1 /* var pexprnode1: nullable ANewExpr */;
805 long var14 /* : Int */;
806 long var15 /* : Int */;
807 var_p = p0;
808 var = NULL;
809 var_node_list = var;
810 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
811 var_nodearraylist4 = var1;
812 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
813 var_nodearraylist3 = var2;
814 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
815 var_nodearraylist2 = var3;
816 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
817 var_nodearraylist1 = var4;
818 var_tkwnewnode2 = var_nodearraylist1;
819 /* <var_tkwnewnode2:nullable Object> isa nullable TKwnew */
820 cltype = type_nullable_parser_nodes__TKwnew.color;
821 idtype = type_nullable_parser_nodes__TKwnew.id;
822 if(var_tkwnewnode2 == NULL) {
823 var5 = 1;
824 } else {
825 if(cltype >= var_tkwnewnode2->type->table_size) {
826 var5 = 0;
827 } else {
828 var5 = var_tkwnewnode2->type->type_table[cltype] == idtype;
829 }
830 }
831 if (!var5) {
832 fprintf(stderr, "Runtime error: %s", "Assert failed");
833 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26873);
834 exit(1);
835 }
836 var_ptypenode3 = var_nodearraylist3;
837 /* <var_ptypenode3:nullable Object> isa nullable AType */
838 cltype7 = type_nullable_parser_nodes__AType.color;
839 idtype8 = type_nullable_parser_nodes__AType.id;
840 if(var_ptypenode3 == NULL) {
841 var6 = 1;
842 } else {
843 if(cltype7 >= var_ptypenode3->type->table_size) {
844 var6 = 0;
845 } else {
846 var6 = var_ptypenode3->type->type_table[cltype7] == idtype8;
847 }
848 }
849 if (!var6) {
850 fprintf(stderr, "Runtime error: %s", "Assert failed");
851 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26875);
852 exit(1);
853 }
854 var_pexprsnode5 = var_nodearraylist4;
855 /* <var_pexprsnode5:nullable Object> isa nullable AExprs */
856 cltype10 = type_nullable_parser_nodes__AExprs.color;
857 idtype11 = type_nullable_parser_nodes__AExprs.id;
858 if(var_pexprsnode5 == NULL) {
859 var9 = 1;
860 } else {
861 if(cltype10 >= var_pexprsnode5->type->table_size) {
862 var9 = 0;
863 } else {
864 var9 = var_pexprsnode5->type->type_table[cltype10] == idtype11;
865 }
866 }
867 if (!var9) {
868 fprintf(stderr, "Runtime error: %s", "Assert failed");
869 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26877);
870 exit(1);
871 }
872 var12 = NEW_parser_nodes__ANewExpr(&type_parser_nodes__ANewExpr);
873 var13 = NULL;
874 ((void (*)(val*, val*, val*, val*, val*))(var12->class->vft[COLOR_parser_prod__ANewExpr__init_anewexpr]))(var12, var_tkwnewnode2, var_ptypenode3, var13, var_pexprsnode5) /* init_anewexpr on <var12:ANewExpr>*/;
875 CHECK_NEW_parser_nodes__ANewExpr(var12);
876 var_pexprnode1 = var12;
877 var_node_list = var_pexprnode1;
878 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction740> */
879 var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
880 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
881 RET_LABEL:;
882 }
883 /* method parser#ReduceAction740#action for (self: Object, Parser) */
884 void VIRTUAL_parser__ReduceAction740__action(val* self, val* p0) {
885 parser__ReduceAction740__action(self, p0);
886 RET_LABEL:;
887 }
888 /* method parser#ReduceAction741#action for (self: ReduceAction741, Parser) */
889 void parser__ReduceAction741__action(val* self, val* p0) {
890 val* var_p /* var p: Parser */;
891 val* var /* : null */;
892 val* var_node_list /* var node_list: nullable Object */;
893 val* var1 /* : nullable Object */;
894 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
895 val* var2 /* : nullable Object */;
896 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
897 val* var3 /* : nullable Object */;
898 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
899 val* var4 /* : nullable Object */;
900 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
901 val* var5 /* : nullable Object */;
902 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
903 val* var_tkwissetnode2 /* var tkwissetnode2: nullable Object */;
904 short int var6 /* : Bool */;
905 int cltype;
906 int idtype;
907 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
908 short int var7 /* : Bool */;
909 int cltype8;
910 int idtype9;
911 val* var_tattridnode4 /* var tattridnode4: nullable Object */;
912 short int var10 /* : Bool */;
913 int cltype11;
914 int idtype12;
915 val* var13 /* : AIssetAttrExpr */;
916 val* var_pexprnode1 /* var pexprnode1: nullable AIssetAttrExpr */;
917 long var14 /* : Int */;
918 long var15 /* : Int */;
919 var_p = p0;
920 var = NULL;
921 var_node_list = var;
922 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
923 var_nodearraylist5 = var1;
924 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
925 var_nodearraylist4 = var2;
926 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
927 var_nodearraylist3 = var3;
928 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
929 var_nodearraylist2 = var4;
930 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
931 var_nodearraylist1 = var5;
932 var_tkwissetnode2 = var_nodearraylist1;
933 /* <var_tkwissetnode2:nullable Object> isa nullable TKwisset */
934 cltype = type_nullable_parser_nodes__TKwisset.color;
935 idtype = type_nullable_parser_nodes__TKwisset.id;
936 if(var_tkwissetnode2 == NULL) {
937 var6 = 1;
938 } else {
939 if(cltype >= var_tkwissetnode2->type->table_size) {
940 var6 = 0;
941 } else {
942 var6 = var_tkwissetnode2->type->type_table[cltype] == idtype;
943 }
944 }
945 if (!var6) {
946 fprintf(stderr, "Runtime error: %s", "Assert failed");
947 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26899);
948 exit(1);
949 }
950 var_pexprnode3 = var_nodearraylist2;
951 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
952 cltype8 = type_nullable_parser_nodes__AExpr.color;
953 idtype9 = type_nullable_parser_nodes__AExpr.id;
954 if(var_pexprnode3 == NULL) {
955 var7 = 1;
956 } else {
957 if(cltype8 >= var_pexprnode3->type->table_size) {
958 var7 = 0;
959 } else {
960 var7 = var_pexprnode3->type->type_table[cltype8] == idtype9;
961 }
962 }
963 if (!var7) {
964 fprintf(stderr, "Runtime error: %s", "Assert failed");
965 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26901);
966 exit(1);
967 }
968 var_tattridnode4 = var_nodearraylist5;
969 /* <var_tattridnode4:nullable Object> isa nullable TAttrid */
970 cltype11 = type_nullable_parser_nodes__TAttrid.color;
971 idtype12 = type_nullable_parser_nodes__TAttrid.id;
972 if(var_tattridnode4 == NULL) {
973 var10 = 1;
974 } else {
975 if(cltype11 >= var_tattridnode4->type->table_size) {
976 var10 = 0;
977 } else {
978 var10 = var_tattridnode4->type->type_table[cltype11] == idtype12;
979 }
980 }
981 if (!var10) {
982 fprintf(stderr, "Runtime error: %s", "Assert failed");
983 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26903);
984 exit(1);
985 }
986 var13 = NEW_parser_nodes__AIssetAttrExpr(&type_parser_nodes__AIssetAttrExpr);
987 ((void (*)(val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__AIssetAttrExpr__init_aissetattrexpr]))(var13, var_tkwissetnode2, var_pexprnode3, var_tattridnode4) /* init_aissetattrexpr on <var13:AIssetAttrExpr>*/;
988 CHECK_NEW_parser_nodes__AIssetAttrExpr(var13);
989 var_pexprnode1 = var13;
990 var_node_list = var_pexprnode1;
991 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction741> */
992 var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
993 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
994 RET_LABEL:;
995 }
996 /* method parser#ReduceAction741#action for (self: Object, Parser) */
997 void VIRTUAL_parser__ReduceAction741__action(val* self, val* p0) {
998 parser__ReduceAction741__action(self, p0);
999 RET_LABEL:;
1000 }
1001 /* method parser#ReduceAction742#action for (self: ReduceAction742, Parser) */
1002 void parser__ReduceAction742__action(val* self, val* p0) {
1003 val* var_p /* var p: Parser */;
1004 val* var /* : null */;
1005 val* var_node_list /* var node_list: nullable Object */;
1006 val* var1 /* : nullable Object */;
1007 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1008 val* var2 /* : nullable Object */;
1009 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1010 val* var_tkwissetnode2 /* var tkwissetnode2: nullable Object */;
1011 short int var3 /* : Bool */;
1012 int cltype;
1013 int idtype;
1014 val* var4 /* : AImplicitSelfExpr */;
1015 val* var_pexprnode3 /* var pexprnode3: nullable AImplicitSelfExpr */;
1016 val* var_tattridnode4 /* var tattridnode4: nullable Object */;
1017 short int var5 /* : Bool */;
1018 int cltype6;
1019 int idtype7;
1020 val* var8 /* : AIssetAttrExpr */;
1021 val* var_pexprnode1 /* var pexprnode1: nullable AIssetAttrExpr */;
1022 long var9 /* : Int */;
1023 long var10 /* : Int */;
1024 var_p = p0;
1025 var = NULL;
1026 var_node_list = var;
1027 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1028 var_nodearraylist2 = var1;
1029 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1030 var_nodearraylist1 = var2;
1031 var_tkwissetnode2 = var_nodearraylist1;
1032 /* <var_tkwissetnode2:nullable Object> isa nullable TKwisset */
1033 cltype = type_nullable_parser_nodes__TKwisset.color;
1034 idtype = type_nullable_parser_nodes__TKwisset.id;
1035 if(var_tkwissetnode2 == NULL) {
1036 var3 = 1;
1037 } else {
1038 if(cltype >= var_tkwissetnode2->type->table_size) {
1039 var3 = 0;
1040 } else {
1041 var3 = var_tkwissetnode2->type->type_table[cltype] == idtype;
1042 }
1043 }
1044 if (!var3) {
1045 fprintf(stderr, "Runtime error: %s", "Assert failed");
1046 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26921);
1047 exit(1);
1048 }
1049 var4 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
1050 ((void (*)(val*))(var4->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var4) /* init_aimplicitselfexpr on <var4:AImplicitSelfExpr>*/;
1051 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var4);
1052 var_pexprnode3 = var4;
1053 var_tattridnode4 = var_nodearraylist2;
1054 /* <var_tattridnode4:nullable Object> isa nullable TAttrid */
1055 cltype6 = type_nullable_parser_nodes__TAttrid.color;
1056 idtype7 = type_nullable_parser_nodes__TAttrid.id;
1057 if(var_tattridnode4 == NULL) {
1058 var5 = 1;
1059 } else {
1060 if(cltype6 >= var_tattridnode4->type->table_size) {
1061 var5 = 0;
1062 } else {
1063 var5 = var_tattridnode4->type->type_table[cltype6] == idtype7;
1064 }
1065 }
1066 if (!var5) {
1067 fprintf(stderr, "Runtime error: %s", "Assert failed");
1068 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26924);
1069 exit(1);
1070 }
1071 var8 = NEW_parser_nodes__AIssetAttrExpr(&type_parser_nodes__AIssetAttrExpr);
1072 ((void (*)(val*, val*, val*, val*))(var8->class->vft[COLOR_parser_prod__AIssetAttrExpr__init_aissetattrexpr]))(var8, var_tkwissetnode2, var_pexprnode3, var_tattridnode4) /* init_aissetattrexpr on <var8:AIssetAttrExpr>*/;
1073 CHECK_NEW_parser_nodes__AIssetAttrExpr(var8);
1074 var_pexprnode1 = var8;
1075 var_node_list = var_pexprnode1;
1076 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction742> */
1077 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
1078 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
1079 RET_LABEL:;
1080 }
1081 /* method parser#ReduceAction742#action for (self: Object, Parser) */
1082 void VIRTUAL_parser__ReduceAction742__action(val* self, val* p0) {
1083 parser__ReduceAction742__action(self, p0);
1084 RET_LABEL:;
1085 }
1086 /* method parser#ReduceAction743#action for (self: ReduceAction743, Parser) */
1087 void parser__ReduceAction743__action(val* self, val* p0) {
1088 val* var_p /* var p: Parser */;
1089 val* var /* : null */;
1090 val* var_node_list /* var node_list: nullable Object */;
1091 val* var1 /* : nullable Object */;
1092 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
1093 val* var2 /* : nullable Object */;
1094 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1095 val* var3 /* : nullable Object */;
1096 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1097 val* var4 /* : nullable Object */;
1098 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1099 val* var5 /* : nullable Object */;
1100 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1101 val* var6 /* : nullable Object */;
1102 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1103 val* var_tkwissetnode2 /* var tkwissetnode2: nullable Object */;
1104 short int var7 /* : Bool */;
1105 int cltype;
1106 int idtype;
1107 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
1108 short int var8 /* : Bool */;
1109 int cltype9;
1110 int idtype10;
1111 val* var_tattridnode4 /* var tattridnode4: nullable Object */;
1112 short int var11 /* : Bool */;
1113 int cltype12;
1114 int idtype13;
1115 val* var14 /* : AIssetAttrExpr */;
1116 val* var_pexprnode1 /* var pexprnode1: nullable AIssetAttrExpr */;
1117 long var15 /* : Int */;
1118 long var16 /* : Int */;
1119 var_p = p0;
1120 var = NULL;
1121 var_node_list = var;
1122 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1123 var_nodearraylist6 = var1;
1124 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1125 var_nodearraylist5 = var2;
1126 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1127 var_nodearraylist4 = var3;
1128 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1129 var_nodearraylist3 = var4;
1130 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1131 var_nodearraylist2 = var5;
1132 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1133 var_nodearraylist1 = var6;
1134 var_tkwissetnode2 = var_nodearraylist1;
1135 /* <var_tkwissetnode2:nullable Object> isa nullable TKwisset */
1136 cltype = type_nullable_parser_nodes__TKwisset.color;
1137 idtype = type_nullable_parser_nodes__TKwisset.id;
1138 if(var_tkwissetnode2 == NULL) {
1139 var7 = 1;
1140 } else {
1141 if(cltype >= var_tkwissetnode2->type->table_size) {
1142 var7 = 0;
1143 } else {
1144 var7 = var_tkwissetnode2->type->type_table[cltype] == idtype;
1145 }
1146 }
1147 if (!var7) {
1148 fprintf(stderr, "Runtime error: %s", "Assert failed");
1149 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26946);
1150 exit(1);
1151 }
1152 var_pexprnode3 = var_nodearraylist2;
1153 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
1154 cltype9 = type_nullable_parser_nodes__AExpr.color;
1155 idtype10 = type_nullable_parser_nodes__AExpr.id;
1156 if(var_pexprnode3 == NULL) {
1157 var8 = 1;
1158 } else {
1159 if(cltype9 >= var_pexprnode3->type->table_size) {
1160 var8 = 0;
1161 } else {
1162 var8 = var_pexprnode3->type->type_table[cltype9] == idtype10;
1163 }
1164 }
1165 if (!var8) {
1166 fprintf(stderr, "Runtime error: %s", "Assert failed");
1167 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26948);
1168 exit(1);
1169 }
1170 var_tattridnode4 = var_nodearraylist6;
1171 /* <var_tattridnode4:nullable Object> isa nullable TAttrid */
1172 cltype12 = type_nullable_parser_nodes__TAttrid.color;
1173 idtype13 = type_nullable_parser_nodes__TAttrid.id;
1174 if(var_tattridnode4 == NULL) {
1175 var11 = 1;
1176 } else {
1177 if(cltype12 >= var_tattridnode4->type->table_size) {
1178 var11 = 0;
1179 } else {
1180 var11 = var_tattridnode4->type->type_table[cltype12] == idtype13;
1181 }
1182 }
1183 if (!var11) {
1184 fprintf(stderr, "Runtime error: %s", "Assert failed");
1185 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26950);
1186 exit(1);
1187 }
1188 var14 = NEW_parser_nodes__AIssetAttrExpr(&type_parser_nodes__AIssetAttrExpr);
1189 ((void (*)(val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__AIssetAttrExpr__init_aissetattrexpr]))(var14, var_tkwissetnode2, var_pexprnode3, var_tattridnode4) /* init_aissetattrexpr on <var14:AIssetAttrExpr>*/;
1190 CHECK_NEW_parser_nodes__AIssetAttrExpr(var14);
1191 var_pexprnode1 = var14;
1192 var_node_list = var_pexprnode1;
1193 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction743> */
1194 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
1195 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
1196 RET_LABEL:;
1197 }
1198 /* method parser#ReduceAction743#action for (self: Object, Parser) */
1199 void VIRTUAL_parser__ReduceAction743__action(val* self, val* p0) {
1200 parser__ReduceAction743__action(self, p0);
1201 RET_LABEL:;
1202 }
1203 /* method parser#ReduceAction744#action for (self: ReduceAction744, Parser) */
1204 void parser__ReduceAction744__action(val* self, val* p0) {
1205 val* var_p /* var p: Parser */;
1206 val* var /* : null */;
1207 val* var_node_list /* var node_list: nullable Object */;
1208 val* var1 /* : nullable Object */;
1209 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
1210 val* var2 /* : nullable Object */;
1211 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
1212 val* var3 /* : nullable Object */;
1213 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1214 val* var4 /* : nullable Object */;
1215 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1216 val* var5 /* : nullable Object */;
1217 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1218 val* var6 /* : nullable Object */;
1219 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1220 val* var7 /* : nullable Object */;
1221 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1222 val* var_tkwissetnode2 /* var tkwissetnode2: nullable Object */;
1223 short int var8 /* : Bool */;
1224 int cltype;
1225 int idtype;
1226 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
1227 short int var9 /* : Bool */;
1228 int cltype10;
1229 int idtype11;
1230 val* var_tattridnode4 /* var tattridnode4: nullable Object */;
1231 short int var12 /* : Bool */;
1232 int cltype13;
1233 int idtype14;
1234 val* var15 /* : AIssetAttrExpr */;
1235 val* var_pexprnode1 /* var pexprnode1: nullable AIssetAttrExpr */;
1236 long var16 /* : Int */;
1237 long var17 /* : Int */;
1238 var_p = p0;
1239 var = NULL;
1240 var_node_list = var;
1241 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1242 var_nodearraylist7 = var1;
1243 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1244 var_nodearraylist6 = var2;
1245 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1246 var_nodearraylist5 = var3;
1247 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1248 var_nodearraylist4 = var4;
1249 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1250 var_nodearraylist3 = var5;
1251 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1252 var_nodearraylist2 = var6;
1253 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1254 var_nodearraylist1 = var7;
1255 var_tkwissetnode2 = var_nodearraylist1;
1256 /* <var_tkwissetnode2:nullable Object> isa nullable TKwisset */
1257 cltype = type_nullable_parser_nodes__TKwisset.color;
1258 idtype = type_nullable_parser_nodes__TKwisset.id;
1259 if(var_tkwissetnode2 == NULL) {
1260 var8 = 1;
1261 } else {
1262 if(cltype >= var_tkwissetnode2->type->table_size) {
1263 var8 = 0;
1264 } else {
1265 var8 = var_tkwissetnode2->type->type_table[cltype] == idtype;
1266 }
1267 }
1268 if (!var8) {
1269 fprintf(stderr, "Runtime error: %s", "Assert failed");
1270 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26973);
1271 exit(1);
1272 }
1273 var_pexprnode3 = var_nodearraylist2;
1274 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
1275 cltype10 = type_nullable_parser_nodes__AExpr.color;
1276 idtype11 = type_nullable_parser_nodes__AExpr.id;
1277 if(var_pexprnode3 == NULL) {
1278 var9 = 1;
1279 } else {
1280 if(cltype10 >= var_pexprnode3->type->table_size) {
1281 var9 = 0;
1282 } else {
1283 var9 = var_pexprnode3->type->type_table[cltype10] == idtype11;
1284 }
1285 }
1286 if (!var9) {
1287 fprintf(stderr, "Runtime error: %s", "Assert failed");
1288 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26975);
1289 exit(1);
1290 }
1291 var_tattridnode4 = var_nodearraylist7;
1292 /* <var_tattridnode4:nullable Object> isa nullable TAttrid */
1293 cltype13 = type_nullable_parser_nodes__TAttrid.color;
1294 idtype14 = type_nullable_parser_nodes__TAttrid.id;
1295 if(var_tattridnode4 == NULL) {
1296 var12 = 1;
1297 } else {
1298 if(cltype13 >= var_tattridnode4->type->table_size) {
1299 var12 = 0;
1300 } else {
1301 var12 = var_tattridnode4->type->type_table[cltype13] == idtype14;
1302 }
1303 }
1304 if (!var12) {
1305 fprintf(stderr, "Runtime error: %s", "Assert failed");
1306 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26977);
1307 exit(1);
1308 }
1309 var15 = NEW_parser_nodes__AIssetAttrExpr(&type_parser_nodes__AIssetAttrExpr);
1310 ((void (*)(val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__AIssetAttrExpr__init_aissetattrexpr]))(var15, var_tkwissetnode2, var_pexprnode3, var_tattridnode4) /* init_aissetattrexpr on <var15:AIssetAttrExpr>*/;
1311 CHECK_NEW_parser_nodes__AIssetAttrExpr(var15);
1312 var_pexprnode1 = var15;
1313 var_node_list = var_pexprnode1;
1314 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction744> */
1315 var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
1316 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
1317 RET_LABEL:;
1318 }
1319 /* method parser#ReduceAction744#action for (self: Object, Parser) */
1320 void VIRTUAL_parser__ReduceAction744__action(val* self, val* p0) {
1321 parser__ReduceAction744__action(self, p0);
1322 RET_LABEL:;
1323 }
1324 /* method parser#ReduceAction746#action for (self: ReduceAction746, Parser) */
1325 void parser__ReduceAction746__action(val* self, val* p0) {
1326 val* var_p /* var p: Parser */;
1327 val* var /* : null */;
1328 val* var_node_list /* var node_list: nullable Object */;
1329 val* var1 /* : nullable Object */;
1330 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1331 val* var2 /* : nullable Object */;
1332 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1333 val* var3 /* : nullable Object */;
1334 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1335 val* var_tkwissetnode2 /* var tkwissetnode2: nullable Object */;
1336 short int var4 /* : Bool */;
1337 int cltype;
1338 int idtype;
1339 val* var5 /* : AImplicitSelfExpr */;
1340 val* var_pexprnode3 /* var pexprnode3: nullable AImplicitSelfExpr */;
1341 val* var_tattridnode4 /* var tattridnode4: nullable Object */;
1342 short int var6 /* : Bool */;
1343 int cltype7;
1344 int idtype8;
1345 val* var9 /* : AIssetAttrExpr */;
1346 val* var_pexprnode1 /* var pexprnode1: nullable AIssetAttrExpr */;
1347 long var10 /* : Int */;
1348 long var11 /* : Int */;
1349 var_p = p0;
1350 var = NULL;
1351 var_node_list = var;
1352 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1353 var_nodearraylist3 = var1;
1354 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1355 var_nodearraylist2 = var2;
1356 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1357 var_nodearraylist1 = var3;
1358 var_tkwissetnode2 = var_nodearraylist1;
1359 /* <var_tkwissetnode2:nullable Object> isa nullable TKwisset */
1360 cltype = type_nullable_parser_nodes__TKwisset.color;
1361 idtype = type_nullable_parser_nodes__TKwisset.id;
1362 if(var_tkwissetnode2 == NULL) {
1363 var4 = 1;
1364 } else {
1365 if(cltype >= var_tkwissetnode2->type->table_size) {
1366 var4 = 0;
1367 } else {
1368 var4 = var_tkwissetnode2->type->type_table[cltype] == idtype;
1369 }
1370 }
1371 if (!var4) {
1372 fprintf(stderr, "Runtime error: %s", "Assert failed");
1373 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26996);
1374 exit(1);
1375 }
1376 var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
1377 ((void (*)(val*))(var5->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var5) /* init_aimplicitselfexpr on <var5:AImplicitSelfExpr>*/;
1378 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var5);
1379 var_pexprnode3 = var5;
1380 var_tattridnode4 = var_nodearraylist3;
1381 /* <var_tattridnode4:nullable Object> isa nullable TAttrid */
1382 cltype7 = type_nullable_parser_nodes__TAttrid.color;
1383 idtype8 = type_nullable_parser_nodes__TAttrid.id;
1384 if(var_tattridnode4 == NULL) {
1385 var6 = 1;
1386 } else {
1387 if(cltype7 >= var_tattridnode4->type->table_size) {
1388 var6 = 0;
1389 } else {
1390 var6 = var_tattridnode4->type->type_table[cltype7] == idtype8;
1391 }
1392 }
1393 if (!var6) {
1394 fprintf(stderr, "Runtime error: %s", "Assert failed");
1395 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 26999);
1396 exit(1);
1397 }
1398 var9 = NEW_parser_nodes__AIssetAttrExpr(&type_parser_nodes__AIssetAttrExpr);
1399 ((void (*)(val*, val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AIssetAttrExpr__init_aissetattrexpr]))(var9, var_tkwissetnode2, var_pexprnode3, var_tattridnode4) /* init_aissetattrexpr on <var9:AIssetAttrExpr>*/;
1400 CHECK_NEW_parser_nodes__AIssetAttrExpr(var9);
1401 var_pexprnode1 = var9;
1402 var_node_list = var_pexprnode1;
1403 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction746> */
1404 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
1405 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
1406 RET_LABEL:;
1407 }
1408 /* method parser#ReduceAction746#action for (self: Object, Parser) */
1409 void VIRTUAL_parser__ReduceAction746__action(val* self, val* p0) {
1410 parser__ReduceAction746__action(self, p0);
1411 RET_LABEL:;
1412 }
1413 /* method parser#ReduceAction747#action for (self: ReduceAction747, Parser) */
1414 void parser__ReduceAction747__action(val* self, val* p0) {
1415 val* var_p /* var p: Parser */;
1416 val* var /* : null */;
1417 val* var_node_list /* var node_list: nullable Object */;
1418 val* var1 /* : nullable Object */;
1419 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1420 val* var2 /* : nullable Object */;
1421 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1422 val* var3 /* : nullable Object */;
1423 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1424 val* var4 /* : nullable Object */;
1425 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1426 val* var_tkwissetnode2 /* var tkwissetnode2: nullable Object */;
1427 short int var5 /* : Bool */;
1428 int cltype;
1429 int idtype;
1430 val* var6 /* : AImplicitSelfExpr */;
1431 val* var_pexprnode3 /* var pexprnode3: nullable AImplicitSelfExpr */;
1432 val* var_tattridnode4 /* var tattridnode4: nullable Object */;
1433 short int var7 /* : Bool */;
1434 int cltype8;
1435 int idtype9;
1436 val* var10 /* : AIssetAttrExpr */;
1437 val* var_pexprnode1 /* var pexprnode1: nullable AIssetAttrExpr */;
1438 long var11 /* : Int */;
1439 long var12 /* : Int */;
1440 var_p = p0;
1441 var = NULL;
1442 var_node_list = var;
1443 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1444 var_nodearraylist4 = var1;
1445 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1446 var_nodearraylist3 = var2;
1447 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1448 var_nodearraylist2 = var3;
1449 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1450 var_nodearraylist1 = var4;
1451 var_tkwissetnode2 = var_nodearraylist1;
1452 /* <var_tkwissetnode2:nullable Object> isa nullable TKwisset */
1453 cltype = type_nullable_parser_nodes__TKwisset.color;
1454 idtype = type_nullable_parser_nodes__TKwisset.id;
1455 if(var_tkwissetnode2 == NULL) {
1456 var5 = 1;
1457 } else {
1458 if(cltype >= var_tkwissetnode2->type->table_size) {
1459 var5 = 0;
1460 } else {
1461 var5 = var_tkwissetnode2->type->type_table[cltype] == idtype;
1462 }
1463 }
1464 if (!var5) {
1465 fprintf(stderr, "Runtime error: %s", "Assert failed");
1466 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27019);
1467 exit(1);
1468 }
1469 var6 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
1470 ((void (*)(val*))(var6->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var6) /* init_aimplicitselfexpr on <var6:AImplicitSelfExpr>*/;
1471 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var6);
1472 var_pexprnode3 = var6;
1473 var_tattridnode4 = var_nodearraylist4;
1474 /* <var_tattridnode4:nullable Object> isa nullable TAttrid */
1475 cltype8 = type_nullable_parser_nodes__TAttrid.color;
1476 idtype9 = type_nullable_parser_nodes__TAttrid.id;
1477 if(var_tattridnode4 == NULL) {
1478 var7 = 1;
1479 } else {
1480 if(cltype8 >= var_tattridnode4->type->table_size) {
1481 var7 = 0;
1482 } else {
1483 var7 = var_tattridnode4->type->type_table[cltype8] == idtype9;
1484 }
1485 }
1486 if (!var7) {
1487 fprintf(stderr, "Runtime error: %s", "Assert failed");
1488 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27022);
1489 exit(1);
1490 }
1491 var10 = NEW_parser_nodes__AIssetAttrExpr(&type_parser_nodes__AIssetAttrExpr);
1492 ((void (*)(val*, val*, val*, val*))(var10->class->vft[COLOR_parser_prod__AIssetAttrExpr__init_aissetattrexpr]))(var10, var_tkwissetnode2, var_pexprnode3, var_tattridnode4) /* init_aissetattrexpr on <var10:AIssetAttrExpr>*/;
1493 CHECK_NEW_parser_nodes__AIssetAttrExpr(var10);
1494 var_pexprnode1 = var10;
1495 var_node_list = var_pexprnode1;
1496 var11 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction747> */
1497 var12 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var11) /* go_to on <var_p:Parser>*/;
1498 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var12, var_node_list) /* push on <var_p:Parser>*/;
1499 RET_LABEL:;
1500 }
1501 /* method parser#ReduceAction747#action for (self: Object, Parser) */
1502 void VIRTUAL_parser__ReduceAction747__action(val* self, val* p0) {
1503 parser__ReduceAction747__action(self, p0);
1504 RET_LABEL:;
1505 }
1506 /* method parser#ReduceAction749#action for (self: ReduceAction749, Parser) */
1507 void parser__ReduceAction749__action(val* self, val* p0) {
1508 val* var_p /* var p: Parser */;
1509 val* var /* : null */;
1510 val* var_node_list /* var node_list: nullable Object */;
1511 val* var1 /* : nullable Object */;
1512 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1513 val* var2 /* : nullable Object */;
1514 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1515 val* var3 /* : nullable Object */;
1516 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1517 val* var4 /* : nullable Object */;
1518 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1519 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
1520 short int var5 /* : Bool */;
1521 int cltype;
1522 int idtype;
1523 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
1524 short int var6 /* : Bool */;
1525 int cltype7;
1526 int idtype8;
1527 val* var9 /* : AAttrExpr */;
1528 val* var_pexprnode1 /* var pexprnode1: nullable AAttrExpr */;
1529 long var10 /* : Int */;
1530 long var11 /* : Int */;
1531 var_p = p0;
1532 var = NULL;
1533 var_node_list = var;
1534 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1535 var_nodearraylist4 = var1;
1536 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1537 var_nodearraylist3 = var2;
1538 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1539 var_nodearraylist2 = var3;
1540 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1541 var_nodearraylist1 = var4;
1542 var_pexprnode2 = var_nodearraylist1;
1543 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
1544 cltype = type_nullable_parser_nodes__AExpr.color;
1545 idtype = type_nullable_parser_nodes__AExpr.id;
1546 if(var_pexprnode2 == NULL) {
1547 var5 = 1;
1548 } else {
1549 if(cltype >= var_pexprnode2->type->table_size) {
1550 var5 = 0;
1551 } else {
1552 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
1553 }
1554 }
1555 if (!var5) {
1556 fprintf(stderr, "Runtime error: %s", "Assert failed");
1557 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27042);
1558 exit(1);
1559 }
1560 var_tattridnode3 = var_nodearraylist4;
1561 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
1562 cltype7 = type_nullable_parser_nodes__TAttrid.color;
1563 idtype8 = type_nullable_parser_nodes__TAttrid.id;
1564 if(var_tattridnode3 == NULL) {
1565 var6 = 1;
1566 } else {
1567 if(cltype7 >= var_tattridnode3->type->table_size) {
1568 var6 = 0;
1569 } else {
1570 var6 = var_tattridnode3->type->type_table[cltype7] == idtype8;
1571 }
1572 }
1573 if (!var6) {
1574 fprintf(stderr, "Runtime error: %s", "Assert failed");
1575 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27044);
1576 exit(1);
1577 }
1578 var9 = NEW_parser_nodes__AAttrExpr(&type_parser_nodes__AAttrExpr);
1579 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AAttrExpr__init_aattrexpr]))(var9, var_pexprnode2, var_tattridnode3) /* init_aattrexpr on <var9:AAttrExpr>*/;
1580 CHECK_NEW_parser_nodes__AAttrExpr(var9);
1581 var_pexprnode1 = var9;
1582 var_node_list = var_pexprnode1;
1583 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction749> */
1584 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
1585 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
1586 RET_LABEL:;
1587 }
1588 /* method parser#ReduceAction749#action for (self: Object, Parser) */
1589 void VIRTUAL_parser__ReduceAction749__action(val* self, val* p0) {
1590 parser__ReduceAction749__action(self, p0);
1591 RET_LABEL:;
1592 }
1593 /* method parser#ReduceAction750#action for (self: ReduceAction750, Parser) */
1594 void parser__ReduceAction750__action(val* self, val* p0) {
1595 val* var_p /* var p: Parser */;
1596 val* var /* : null */;
1597 val* var_node_list /* var node_list: nullable Object */;
1598 val* var1 /* : nullable Object */;
1599 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1600 val* var2 /* : AImplicitSelfExpr */;
1601 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
1602 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
1603 short int var3 /* : Bool */;
1604 int cltype;
1605 int idtype;
1606 val* var4 /* : AAttrExpr */;
1607 val* var_pexprnode1 /* var pexprnode1: nullable AAttrExpr */;
1608 long var5 /* : Int */;
1609 long var6 /* : Int */;
1610 var_p = p0;
1611 var = NULL;
1612 var_node_list = var;
1613 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1614 var_nodearraylist1 = var1;
1615 var2 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
1616 ((void (*)(val*))(var2->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var2) /* init_aimplicitselfexpr on <var2:AImplicitSelfExpr>*/;
1617 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var2);
1618 var_pexprnode2 = var2;
1619 var_tattridnode3 = var_nodearraylist1;
1620 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
1621 cltype = type_nullable_parser_nodes__TAttrid.color;
1622 idtype = type_nullable_parser_nodes__TAttrid.id;
1623 if(var_tattridnode3 == NULL) {
1624 var3 = 1;
1625 } else {
1626 if(cltype >= var_tattridnode3->type->table_size) {
1627 var3 = 0;
1628 } else {
1629 var3 = var_tattridnode3->type->type_table[cltype] == idtype;
1630 }
1631 }
1632 if (!var3) {
1633 fprintf(stderr, "Runtime error: %s", "Assert failed");
1634 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27061);
1635 exit(1);
1636 }
1637 var4 = NEW_parser_nodes__AAttrExpr(&type_parser_nodes__AAttrExpr);
1638 ((void (*)(val*, val*, val*))(var4->class->vft[COLOR_parser_prod__AAttrExpr__init_aattrexpr]))(var4, var_pexprnode2, var_tattridnode3) /* init_aattrexpr on <var4:AAttrExpr>*/;
1639 CHECK_NEW_parser_nodes__AAttrExpr(var4);
1640 var_pexprnode1 = var4;
1641 var_node_list = var_pexprnode1;
1642 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction750> */
1643 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
1644 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
1645 RET_LABEL:;
1646 }
1647 /* method parser#ReduceAction750#action for (self: Object, Parser) */
1648 void VIRTUAL_parser__ReduceAction750__action(val* self, val* p0) {
1649 parser__ReduceAction750__action(self, p0);
1650 RET_LABEL:;
1651 }
1652 /* method parser#ReduceAction751#action for (self: ReduceAction751, Parser) */
1653 void parser__ReduceAction751__action(val* self, val* p0) {
1654 val* var_p /* var p: Parser */;
1655 val* var /* : null */;
1656 val* var_node_list /* var node_list: nullable Object */;
1657 val* var1 /* : nullable Object */;
1658 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1659 val* var2 /* : nullable Object */;
1660 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1661 val* var3 /* : nullable Object */;
1662 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1663 val* var4 /* : nullable Object */;
1664 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1665 val* var5 /* : nullable Object */;
1666 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1667 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
1668 short int var6 /* : Bool */;
1669 int cltype;
1670 int idtype;
1671 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
1672 short int var7 /* : Bool */;
1673 int cltype8;
1674 int idtype9;
1675 val* var10 /* : AAttrExpr */;
1676 val* var_pexprnode1 /* var pexprnode1: nullable AAttrExpr */;
1677 long var11 /* : Int */;
1678 long var12 /* : Int */;
1679 var_p = p0;
1680 var = NULL;
1681 var_node_list = var;
1682 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1683 var_nodearraylist5 = var1;
1684 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1685 var_nodearraylist4 = var2;
1686 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1687 var_nodearraylist3 = var3;
1688 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1689 var_nodearraylist2 = var4;
1690 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1691 var_nodearraylist1 = var5;
1692 var_pexprnode2 = var_nodearraylist1;
1693 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
1694 cltype = type_nullable_parser_nodes__AExpr.color;
1695 idtype = type_nullable_parser_nodes__AExpr.id;
1696 if(var_pexprnode2 == NULL) {
1697 var6 = 1;
1698 } else {
1699 if(cltype >= var_pexprnode2->type->table_size) {
1700 var6 = 0;
1701 } else {
1702 var6 = var_pexprnode2->type->type_table[cltype] == idtype;
1703 }
1704 }
1705 if (!var6) {
1706 fprintf(stderr, "Runtime error: %s", "Assert failed");
1707 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27081);
1708 exit(1);
1709 }
1710 var_tattridnode3 = var_nodearraylist5;
1711 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
1712 cltype8 = type_nullable_parser_nodes__TAttrid.color;
1713 idtype9 = type_nullable_parser_nodes__TAttrid.id;
1714 if(var_tattridnode3 == NULL) {
1715 var7 = 1;
1716 } else {
1717 if(cltype8 >= var_tattridnode3->type->table_size) {
1718 var7 = 0;
1719 } else {
1720 var7 = var_tattridnode3->type->type_table[cltype8] == idtype9;
1721 }
1722 }
1723 if (!var7) {
1724 fprintf(stderr, "Runtime error: %s", "Assert failed");
1725 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27083);
1726 exit(1);
1727 }
1728 var10 = NEW_parser_nodes__AAttrExpr(&type_parser_nodes__AAttrExpr);
1729 ((void (*)(val*, val*, val*))(var10->class->vft[COLOR_parser_prod__AAttrExpr__init_aattrexpr]))(var10, var_pexprnode2, var_tattridnode3) /* init_aattrexpr on <var10:AAttrExpr>*/;
1730 CHECK_NEW_parser_nodes__AAttrExpr(var10);
1731 var_pexprnode1 = var10;
1732 var_node_list = var_pexprnode1;
1733 var11 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction751> */
1734 var12 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var11) /* go_to on <var_p:Parser>*/;
1735 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var12, var_node_list) /* push on <var_p:Parser>*/;
1736 RET_LABEL:;
1737 }
1738 /* method parser#ReduceAction751#action for (self: Object, Parser) */
1739 void VIRTUAL_parser__ReduceAction751__action(val* self, val* p0) {
1740 parser__ReduceAction751__action(self, p0);
1741 RET_LABEL:;
1742 }
1743 /* method parser#ReduceAction752#action for (self: ReduceAction752, Parser) */
1744 void parser__ReduceAction752__action(val* self, val* p0) {
1745 val* var_p /* var p: Parser */;
1746 val* var /* : null */;
1747 val* var_node_list /* var node_list: nullable Object */;
1748 val* var1 /* : nullable Object */;
1749 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
1750 val* var2 /* : nullable Object */;
1751 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1752 val* var3 /* : nullable Object */;
1753 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1754 val* var4 /* : nullable Object */;
1755 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1756 val* var5 /* : nullable Object */;
1757 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1758 val* var6 /* : nullable Object */;
1759 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1760 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
1761 short int var7 /* : Bool */;
1762 int cltype;
1763 int idtype;
1764 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
1765 short int var8 /* : Bool */;
1766 int cltype9;
1767 int idtype10;
1768 val* var11 /* : AAttrExpr */;
1769 val* var_pexprnode1 /* var pexprnode1: nullable AAttrExpr */;
1770 long var12 /* : Int */;
1771 long var13 /* : Int */;
1772 var_p = p0;
1773 var = NULL;
1774 var_node_list = var;
1775 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1776 var_nodearraylist6 = var1;
1777 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1778 var_nodearraylist5 = var2;
1779 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1780 var_nodearraylist4 = var3;
1781 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1782 var_nodearraylist3 = var4;
1783 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1784 var_nodearraylist2 = var5;
1785 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1786 var_nodearraylist1 = var6;
1787 var_pexprnode2 = var_nodearraylist1;
1788 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
1789 cltype = type_nullable_parser_nodes__AExpr.color;
1790 idtype = type_nullable_parser_nodes__AExpr.id;
1791 if(var_pexprnode2 == NULL) {
1792 var7 = 1;
1793 } else {
1794 if(cltype >= var_pexprnode2->type->table_size) {
1795 var7 = 0;
1796 } else {
1797 var7 = var_pexprnode2->type->type_table[cltype] == idtype;
1798 }
1799 }
1800 if (!var7) {
1801 fprintf(stderr, "Runtime error: %s", "Assert failed");
1802 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27104);
1803 exit(1);
1804 }
1805 var_tattridnode3 = var_nodearraylist6;
1806 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
1807 cltype9 = type_nullable_parser_nodes__TAttrid.color;
1808 idtype10 = type_nullable_parser_nodes__TAttrid.id;
1809 if(var_tattridnode3 == NULL) {
1810 var8 = 1;
1811 } else {
1812 if(cltype9 >= var_tattridnode3->type->table_size) {
1813 var8 = 0;
1814 } else {
1815 var8 = var_tattridnode3->type->type_table[cltype9] == idtype10;
1816 }
1817 }
1818 if (!var8) {
1819 fprintf(stderr, "Runtime error: %s", "Assert failed");
1820 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27106);
1821 exit(1);
1822 }
1823 var11 = NEW_parser_nodes__AAttrExpr(&type_parser_nodes__AAttrExpr);
1824 ((void (*)(val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AAttrExpr__init_aattrexpr]))(var11, var_pexprnode2, var_tattridnode3) /* init_aattrexpr on <var11:AAttrExpr>*/;
1825 CHECK_NEW_parser_nodes__AAttrExpr(var11);
1826 var_pexprnode1 = var11;
1827 var_node_list = var_pexprnode1;
1828 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction752> */
1829 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
1830 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
1831 RET_LABEL:;
1832 }
1833 /* method parser#ReduceAction752#action for (self: Object, Parser) */
1834 void VIRTUAL_parser__ReduceAction752__action(val* self, val* p0) {
1835 parser__ReduceAction752__action(self, p0);
1836 RET_LABEL:;
1837 }
1838 /* method parser#ReduceAction754#action for (self: ReduceAction754, Parser) */
1839 void parser__ReduceAction754__action(val* self, val* p0) {
1840 val* var_p /* var p: Parser */;
1841 val* var /* : null */;
1842 val* var_node_list /* var node_list: nullable Object */;
1843 val* var1 /* : nullable Object */;
1844 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1845 val* var2 /* : nullable Object */;
1846 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1847 val* var3 /* : AImplicitSelfExpr */;
1848 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
1849 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
1850 short int var4 /* : Bool */;
1851 int cltype;
1852 int idtype;
1853 val* var5 /* : AAttrExpr */;
1854 val* var_pexprnode1 /* var pexprnode1: nullable AAttrExpr */;
1855 long var6 /* : Int */;
1856 long var7 /* : Int */;
1857 var_p = p0;
1858 var = NULL;
1859 var_node_list = var;
1860 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1861 var_nodearraylist2 = var1;
1862 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1863 var_nodearraylist1 = var2;
1864 var3 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
1865 ((void (*)(val*))(var3->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var3) /* init_aimplicitselfexpr on <var3:AImplicitSelfExpr>*/;
1866 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var3);
1867 var_pexprnode2 = var3;
1868 var_tattridnode3 = var_nodearraylist2;
1869 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
1870 cltype = type_nullable_parser_nodes__TAttrid.color;
1871 idtype = type_nullable_parser_nodes__TAttrid.id;
1872 if(var_tattridnode3 == NULL) {
1873 var4 = 1;
1874 } else {
1875 if(cltype >= var_tattridnode3->type->table_size) {
1876 var4 = 0;
1877 } else {
1878 var4 = var_tattridnode3->type->type_table[cltype] == idtype;
1879 }
1880 }
1881 if (!var4) {
1882 fprintf(stderr, "Runtime error: %s", "Assert failed");
1883 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27124);
1884 exit(1);
1885 }
1886 var5 = NEW_parser_nodes__AAttrExpr(&type_parser_nodes__AAttrExpr);
1887 ((void (*)(val*, val*, val*))(var5->class->vft[COLOR_parser_prod__AAttrExpr__init_aattrexpr]))(var5, var_pexprnode2, var_tattridnode3) /* init_aattrexpr on <var5:AAttrExpr>*/;
1888 CHECK_NEW_parser_nodes__AAttrExpr(var5);
1889 var_pexprnode1 = var5;
1890 var_node_list = var_pexprnode1;
1891 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction754> */
1892 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
1893 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
1894 RET_LABEL:;
1895 }
1896 /* method parser#ReduceAction754#action for (self: Object, Parser) */
1897 void VIRTUAL_parser__ReduceAction754__action(val* self, val* p0) {
1898 parser__ReduceAction754__action(self, p0);
1899 RET_LABEL:;
1900 }
1901 /* method parser#ReduceAction755#action for (self: ReduceAction755, Parser) */
1902 void parser__ReduceAction755__action(val* self, val* p0) {
1903 val* var_p /* var p: Parser */;
1904 val* var /* : null */;
1905 val* var_node_list /* var node_list: nullable Object */;
1906 val* var1 /* : nullable Object */;
1907 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1908 val* var2 /* : nullable Object */;
1909 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1910 val* var3 /* : nullable Object */;
1911 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1912 val* var4 /* : AImplicitSelfExpr */;
1913 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
1914 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
1915 short int var5 /* : Bool */;
1916 int cltype;
1917 int idtype;
1918 val* var6 /* : AAttrExpr */;
1919 val* var_pexprnode1 /* var pexprnode1: nullable AAttrExpr */;
1920 long var7 /* : Int */;
1921 long var8 /* : Int */;
1922 var_p = p0;
1923 var = NULL;
1924 var_node_list = var;
1925 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1926 var_nodearraylist3 = var1;
1927 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1928 var_nodearraylist2 = var2;
1929 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1930 var_nodearraylist1 = var3;
1931 var4 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
1932 ((void (*)(val*))(var4->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var4) /* init_aimplicitselfexpr on <var4:AImplicitSelfExpr>*/;
1933 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var4);
1934 var_pexprnode2 = var4;
1935 var_tattridnode3 = var_nodearraylist3;
1936 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
1937 cltype = type_nullable_parser_nodes__TAttrid.color;
1938 idtype = type_nullable_parser_nodes__TAttrid.id;
1939 if(var_tattridnode3 == NULL) {
1940 var5 = 1;
1941 } else {
1942 if(cltype >= var_tattridnode3->type->table_size) {
1943 var5 = 0;
1944 } else {
1945 var5 = var_tattridnode3->type->type_table[cltype] == idtype;
1946 }
1947 }
1948 if (!var5) {
1949 fprintf(stderr, "Runtime error: %s", "Assert failed");
1950 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27143);
1951 exit(1);
1952 }
1953 var6 = NEW_parser_nodes__AAttrExpr(&type_parser_nodes__AAttrExpr);
1954 ((void (*)(val*, val*, val*))(var6->class->vft[COLOR_parser_prod__AAttrExpr__init_aattrexpr]))(var6, var_pexprnode2, var_tattridnode3) /* init_aattrexpr on <var6:AAttrExpr>*/;
1955 CHECK_NEW_parser_nodes__AAttrExpr(var6);
1956 var_pexprnode1 = var6;
1957 var_node_list = var_pexprnode1;
1958 var7 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction755> */
1959 var8 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var7) /* go_to on <var_p:Parser>*/;
1960 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var8, var_node_list) /* push on <var_p:Parser>*/;
1961 RET_LABEL:;
1962 }
1963 /* method parser#ReduceAction755#action for (self: Object, Parser) */
1964 void VIRTUAL_parser__ReduceAction755__action(val* self, val* p0) {
1965 parser__ReduceAction755__action(self, p0);
1966 RET_LABEL:;
1967 }
1968 /* method parser#ReduceAction771#action for (self: ReduceAction771, Parser) */
1969 void parser__ReduceAction771__action(val* self, val* p0) {
1970 val* var_p /* var p: Parser */;
1971 val* var /* : null */;
1972 val* var_node_list /* var node_list: nullable Object */;
1973 val* var1 /* : nullable Object */;
1974 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1975 val* var2 /* : nullable Object */;
1976 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1977 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
1978 short int var3 /* : Bool */;
1979 int cltype;
1980 int idtype;
1981 val* var_pexprsnode3 /* var pexprsnode3: nullable Object */;
1982 short int var4 /* : Bool */;
1983 int cltype5;
1984 int idtype6;
1985 val* var7 /* : ABraExpr */;
1986 val* var_pexprnode1 /* var pexprnode1: nullable ABraExpr */;
1987 long var8 /* : Int */;
1988 long var9 /* : Int */;
1989 var_p = p0;
1990 var = NULL;
1991 var_node_list = var;
1992 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1993 var_nodearraylist2 = var1;
1994 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1995 var_nodearraylist1 = var2;
1996 var_pexprnode2 = var_nodearraylist1;
1997 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
1998 cltype = type_nullable_parser_nodes__AExpr.color;
1999 idtype = type_nullable_parser_nodes__AExpr.id;
2000 if(var_pexprnode2 == NULL) {
2001 var3 = 1;
2002 } else {
2003 if(cltype >= var_pexprnode2->type->table_size) {
2004 var3 = 0;
2005 } else {
2006 var3 = var_pexprnode2->type->type_table[cltype] == idtype;
2007 }
2008 }
2009 if (!var3) {
2010 fprintf(stderr, "Runtime error: %s", "Assert failed");
2011 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27160);
2012 exit(1);
2013 }
2014 var_pexprsnode3 = var_nodearraylist2;
2015 /* <var_pexprsnode3:nullable Object> isa nullable AExprs */
2016 cltype5 = type_nullable_parser_nodes__AExprs.color;
2017 idtype6 = type_nullable_parser_nodes__AExprs.id;
2018 if(var_pexprsnode3 == NULL) {
2019 var4 = 1;
2020 } else {
2021 if(cltype5 >= var_pexprsnode3->type->table_size) {
2022 var4 = 0;
2023 } else {
2024 var4 = var_pexprsnode3->type->type_table[cltype5] == idtype6;
2025 }
2026 }
2027 if (!var4) {
2028 fprintf(stderr, "Runtime error: %s", "Assert failed");
2029 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27162);
2030 exit(1);
2031 }
2032 var7 = NEW_parser_nodes__ABraExpr(&type_parser_nodes__ABraExpr);
2033 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ABraExpr__init_abraexpr]))(var7, var_pexprnode2, var_pexprsnode3) /* init_abraexpr on <var7:ABraExpr>*/;
2034 CHECK_NEW_parser_nodes__ABraExpr(var7);
2035 var_pexprnode1 = var7;
2036 var_node_list = var_pexprnode1;
2037 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction771> */
2038 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
2039 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
2040 RET_LABEL:;
2041 }
2042 /* method parser#ReduceAction771#action for (self: Object, Parser) */
2043 void VIRTUAL_parser__ReduceAction771__action(val* self, val* p0) {
2044 parser__ReduceAction771__action(self, p0);
2045 RET_LABEL:;
2046 }
2047 /* method parser#ReduceAction772#action for (self: ReduceAction772, Parser) */
2048 void parser__ReduceAction772__action(val* self, val* p0) {
2049 val* var_p /* var p: Parser */;
2050 val* var /* : null */;
2051 val* var_node_list /* var node_list: nullable Object */;
2052 val* var1 /* : nullable Object */;
2053 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
2054 val* var2 /* : nullable Object */;
2055 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
2056 val* var3 /* : nullable Object */;
2057 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2058 val* var4 /* : nullable Object */;
2059 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2060 val* var5 /* : nullable Object */;
2061 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2062 val* var6 /* : nullable Object */;
2063 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2064 val* var7 /* : nullable Object */;
2065 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2066 val* var_tkwnewnode2 /* var tkwnewnode2: nullable Object */;
2067 short int var8 /* : Bool */;
2068 int cltype;
2069 int idtype;
2070 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
2071 short int var9 /* : Bool */;
2072 int cltype10;
2073 int idtype11;
2074 val* var_tidnode4 /* var tidnode4: nullable Object */;
2075 short int var12 /* : Bool */;
2076 int cltype13;
2077 int idtype14;
2078 val* var_pexprsnode5 /* var pexprsnode5: nullable Object */;
2079 short int var15 /* : Bool */;
2080 int cltype16;
2081 int idtype17;
2082 val* var18 /* : ANewExpr */;
2083 val* var_pexprnode1 /* var pexprnode1: nullable ANewExpr */;
2084 long var19 /* : Int */;
2085 long var20 /* : Int */;
2086 var_p = p0;
2087 var = NULL;
2088 var_node_list = var;
2089 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2090 var_nodearraylist7 = var1;
2091 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2092 var_nodearraylist6 = var2;
2093 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2094 var_nodearraylist5 = var3;
2095 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2096 var_nodearraylist4 = var4;
2097 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2098 var_nodearraylist3 = var5;
2099 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2100 var_nodearraylist2 = var6;
2101 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2102 var_nodearraylist1 = var7;
2103 var_tkwnewnode2 = var_nodearraylist1;
2104 /* <var_tkwnewnode2:nullable Object> isa nullable TKwnew */
2105 cltype = type_nullable_parser_nodes__TKwnew.color;
2106 idtype = type_nullable_parser_nodes__TKwnew.id;
2107 if(var_tkwnewnode2 == NULL) {
2108 var8 = 1;
2109 } else {
2110 if(cltype >= var_tkwnewnode2->type->table_size) {
2111 var8 = 0;
2112 } else {
2113 var8 = var_tkwnewnode2->type->type_table[cltype] == idtype;
2114 }
2115 }
2116 if (!var8) {
2117 fprintf(stderr, "Runtime error: %s", "Assert failed");
2118 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27184);
2119 exit(1);
2120 }
2121 var_ptypenode3 = var_nodearraylist3;
2122 /* <var_ptypenode3:nullable Object> isa nullable AType */
2123 cltype10 = type_nullable_parser_nodes__AType.color;
2124 idtype11 = type_nullable_parser_nodes__AType.id;
2125 if(var_ptypenode3 == NULL) {
2126 var9 = 1;
2127 } else {
2128 if(cltype10 >= var_ptypenode3->type->table_size) {
2129 var9 = 0;
2130 } else {
2131 var9 = var_ptypenode3->type->type_table[cltype10] == idtype11;
2132 }
2133 }
2134 if (!var9) {
2135 fprintf(stderr, "Runtime error: %s", "Assert failed");
2136 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27186);
2137 exit(1);
2138 }
2139 var_tidnode4 = var_nodearraylist6;
2140 /* <var_tidnode4:nullable Object> isa nullable TId */
2141 cltype13 = type_nullable_parser_nodes__TId.color;
2142 idtype14 = type_nullable_parser_nodes__TId.id;
2143 if(var_tidnode4 == NULL) {
2144 var12 = 1;
2145 } else {
2146 if(cltype13 >= var_tidnode4->type->table_size) {
2147 var12 = 0;
2148 } else {
2149 var12 = var_tidnode4->type->type_table[cltype13] == idtype14;
2150 }
2151 }
2152 if (!var12) {
2153 fprintf(stderr, "Runtime error: %s", "Assert failed");
2154 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27188);
2155 exit(1);
2156 }
2157 var_pexprsnode5 = var_nodearraylist7;
2158 /* <var_pexprsnode5:nullable Object> isa nullable AExprs */
2159 cltype16 = type_nullable_parser_nodes__AExprs.color;
2160 idtype17 = type_nullable_parser_nodes__AExprs.id;
2161 if(var_pexprsnode5 == NULL) {
2162 var15 = 1;
2163 } else {
2164 if(cltype16 >= var_pexprsnode5->type->table_size) {
2165 var15 = 0;
2166 } else {
2167 var15 = var_pexprsnode5->type->type_table[cltype16] == idtype17;
2168 }
2169 }
2170 if (!var15) {
2171 fprintf(stderr, "Runtime error: %s", "Assert failed");
2172 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27190);
2173 exit(1);
2174 }
2175 var18 = NEW_parser_nodes__ANewExpr(&type_parser_nodes__ANewExpr);
2176 ((void (*)(val*, val*, val*, val*, val*))(var18->class->vft[COLOR_parser_prod__ANewExpr__init_anewexpr]))(var18, var_tkwnewnode2, var_ptypenode3, var_tidnode4, var_pexprsnode5) /* init_anewexpr on <var18:ANewExpr>*/;
2177 CHECK_NEW_parser_nodes__ANewExpr(var18);
2178 var_pexprnode1 = var18;
2179 var_node_list = var_pexprnode1;
2180 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction772> */
2181 var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
2182 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
2183 RET_LABEL:;
2184 }
2185 /* method parser#ReduceAction772#action for (self: Object, Parser) */
2186 void VIRTUAL_parser__ReduceAction772__action(val* self, val* p0) {
2187 parser__ReduceAction772__action(self, p0);
2188 RET_LABEL:;
2189 }
2190 /* method parser#ReduceAction773#action for (self: ReduceAction773, Parser) */
2191 void parser__ReduceAction773__action(val* self, val* p0) {
2192 val* var_p /* var p: Parser */;
2193 val* var /* : null */;
2194 val* var_node_list /* var node_list: nullable Object */;
2195 val* var1 /* : nullable Object */;
2196 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
2197 val* var2 /* : nullable Object */;
2198 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
2199 val* var3 /* : nullable Object */;
2200 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
2201 val* var4 /* : nullable Object */;
2202 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2203 val* var5 /* : nullable Object */;
2204 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2205 val* var6 /* : nullable Object */;
2206 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2207 val* var7 /* : nullable Object */;
2208 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2209 val* var8 /* : nullable Object */;
2210 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2211 val* var_tkwnewnode2 /* var tkwnewnode2: nullable Object */;
2212 short int var9 /* : Bool */;
2213 int cltype;
2214 int idtype;
2215 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
2216 short int var10 /* : Bool */;
2217 int cltype11;
2218 int idtype12;
2219 val* var_tidnode4 /* var tidnode4: nullable Object */;
2220 short int var13 /* : Bool */;
2221 int cltype14;
2222 int idtype15;
2223 val* var_pexprsnode5 /* var pexprsnode5: nullable Object */;
2224 short int var16 /* : Bool */;
2225 int cltype17;
2226 int idtype18;
2227 val* var19 /* : ANewExpr */;
2228 val* var_pexprnode1 /* var pexprnode1: nullable ANewExpr */;
2229 long var20 /* : Int */;
2230 long var21 /* : Int */;
2231 var_p = p0;
2232 var = NULL;
2233 var_node_list = var;
2234 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2235 var_nodearraylist8 = var1;
2236 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2237 var_nodearraylist7 = var2;
2238 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2239 var_nodearraylist6 = var3;
2240 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2241 var_nodearraylist5 = var4;
2242 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2243 var_nodearraylist4 = var5;
2244 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2245 var_nodearraylist3 = var6;
2246 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2247 var_nodearraylist2 = var7;
2248 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2249 var_nodearraylist1 = var8;
2250 var_tkwnewnode2 = var_nodearraylist1;
2251 /* <var_tkwnewnode2:nullable Object> isa nullable TKwnew */
2252 cltype = type_nullable_parser_nodes__TKwnew.color;
2253 idtype = type_nullable_parser_nodes__TKwnew.id;
2254 if(var_tkwnewnode2 == NULL) {
2255 var9 = 1;
2256 } else {
2257 if(cltype >= var_tkwnewnode2->type->table_size) {
2258 var9 = 0;
2259 } else {
2260 var9 = var_tkwnewnode2->type->type_table[cltype] == idtype;
2261 }
2262 }
2263 if (!var9) {
2264 fprintf(stderr, "Runtime error: %s", "Assert failed");
2265 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27215);
2266 exit(1);
2267 }
2268 var_ptypenode3 = var_nodearraylist3;
2269 /* <var_ptypenode3:nullable Object> isa nullable AType */
2270 cltype11 = type_nullable_parser_nodes__AType.color;
2271 idtype12 = type_nullable_parser_nodes__AType.id;
2272 if(var_ptypenode3 == NULL) {
2273 var10 = 1;
2274 } else {
2275 if(cltype11 >= var_ptypenode3->type->table_size) {
2276 var10 = 0;
2277 } else {
2278 var10 = var_ptypenode3->type->type_table[cltype11] == idtype12;
2279 }
2280 }
2281 if (!var10) {
2282 fprintf(stderr, "Runtime error: %s", "Assert failed");
2283 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27217);
2284 exit(1);
2285 }
2286 var_tidnode4 = var_nodearraylist7;
2287 /* <var_tidnode4:nullable Object> isa nullable TId */
2288 cltype14 = type_nullable_parser_nodes__TId.color;
2289 idtype15 = type_nullable_parser_nodes__TId.id;
2290 if(var_tidnode4 == NULL) {
2291 var13 = 1;
2292 } else {
2293 if(cltype14 >= var_tidnode4->type->table_size) {
2294 var13 = 0;
2295 } else {
2296 var13 = var_tidnode4->type->type_table[cltype14] == idtype15;
2297 }
2298 }
2299 if (!var13) {
2300 fprintf(stderr, "Runtime error: %s", "Assert failed");
2301 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27219);
2302 exit(1);
2303 }
2304 var_pexprsnode5 = var_nodearraylist8;
2305 /* <var_pexprsnode5:nullable Object> isa nullable AExprs */
2306 cltype17 = type_nullable_parser_nodes__AExprs.color;
2307 idtype18 = type_nullable_parser_nodes__AExprs.id;
2308 if(var_pexprsnode5 == NULL) {
2309 var16 = 1;
2310 } else {
2311 if(cltype17 >= var_pexprsnode5->type->table_size) {
2312 var16 = 0;
2313 } else {
2314 var16 = var_pexprsnode5->type->type_table[cltype17] == idtype18;
2315 }
2316 }
2317 if (!var16) {
2318 fprintf(stderr, "Runtime error: %s", "Assert failed");
2319 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27221);
2320 exit(1);
2321 }
2322 var19 = NEW_parser_nodes__ANewExpr(&type_parser_nodes__ANewExpr);
2323 ((void (*)(val*, val*, val*, val*, val*))(var19->class->vft[COLOR_parser_prod__ANewExpr__init_anewexpr]))(var19, var_tkwnewnode2, var_ptypenode3, var_tidnode4, var_pexprsnode5) /* init_anewexpr on <var19:ANewExpr>*/;
2324 CHECK_NEW_parser_nodes__ANewExpr(var19);
2325 var_pexprnode1 = var19;
2326 var_node_list = var_pexprnode1;
2327 var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction773> */
2328 var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on <var_p:Parser>*/;
2329 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on <var_p:Parser>*/;
2330 RET_LABEL:;
2331 }
2332 /* method parser#ReduceAction773#action for (self: Object, Parser) */
2333 void VIRTUAL_parser__ReduceAction773__action(val* self, val* p0) {
2334 parser__ReduceAction773__action(self, p0);
2335 RET_LABEL:;
2336 }
2337 /* method parser#ReduceAction774#action for (self: ReduceAction774, Parser) */
2338 void parser__ReduceAction774__action(val* self, val* p0) {
2339 val* var_p /* var p: Parser */;
2340 val* var /* : null */;
2341 val* var_node_list /* var node_list: nullable Object */;
2342 val* var1 /* : nullable Object */;
2343 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
2344 val* var2 /* : nullable Object */;
2345 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
2346 val* var3 /* : nullable Object */;
2347 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
2348 val* var4 /* : nullable Object */;
2349 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
2350 val* var5 /* : nullable Object */;
2351 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2352 val* var6 /* : nullable Object */;
2353 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2354 val* var7 /* : nullable Object */;
2355 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2356 val* var8 /* : nullable Object */;
2357 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2358 val* var9 /* : nullable Object */;
2359 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2360 val* var_tkwnewnode2 /* var tkwnewnode2: nullable Object */;
2361 short int var10 /* : Bool */;
2362 int cltype;
2363 int idtype;
2364 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
2365 short int var11 /* : Bool */;
2366 int cltype12;
2367 int idtype13;
2368 val* var_tidnode4 /* var tidnode4: nullable Object */;
2369 short int var14 /* : Bool */;
2370 int cltype15;
2371 int idtype16;
2372 val* var_pexprsnode5 /* var pexprsnode5: nullable Object */;
2373 short int var17 /* : Bool */;
2374 int cltype18;
2375 int idtype19;
2376 val* var20 /* : ANewExpr */;
2377 val* var_pexprnode1 /* var pexprnode1: nullable ANewExpr */;
2378 long var21 /* : Int */;
2379 long var22 /* : Int */;
2380 var_p = p0;
2381 var = NULL;
2382 var_node_list = var;
2383 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2384 var_nodearraylist9 = var1;
2385 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2386 var_nodearraylist8 = var2;
2387 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2388 var_nodearraylist7 = var3;
2389 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2390 var_nodearraylist6 = var4;
2391 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2392 var_nodearraylist5 = var5;
2393 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2394 var_nodearraylist4 = var6;
2395 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2396 var_nodearraylist3 = var7;
2397 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2398 var_nodearraylist2 = var8;
2399 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2400 var_nodearraylist1 = var9;
2401 var_tkwnewnode2 = var_nodearraylist1;
2402 /* <var_tkwnewnode2:nullable Object> isa nullable TKwnew */
2403 cltype = type_nullable_parser_nodes__TKwnew.color;
2404 idtype = type_nullable_parser_nodes__TKwnew.id;
2405 if(var_tkwnewnode2 == NULL) {
2406 var10 = 1;
2407 } else {
2408 if(cltype >= var_tkwnewnode2->type->table_size) {
2409 var10 = 0;
2410 } else {
2411 var10 = var_tkwnewnode2->type->type_table[cltype] == idtype;
2412 }
2413 }
2414 if (!var10) {
2415 fprintf(stderr, "Runtime error: %s", "Assert failed");
2416 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27247);
2417 exit(1);
2418 }
2419 var_ptypenode3 = var_nodearraylist3;
2420 /* <var_ptypenode3:nullable Object> isa nullable AType */
2421 cltype12 = type_nullable_parser_nodes__AType.color;
2422 idtype13 = type_nullable_parser_nodes__AType.id;
2423 if(var_ptypenode3 == NULL) {
2424 var11 = 1;
2425 } else {
2426 if(cltype12 >= var_ptypenode3->type->table_size) {
2427 var11 = 0;
2428 } else {
2429 var11 = var_ptypenode3->type->type_table[cltype12] == idtype13;
2430 }
2431 }
2432 if (!var11) {
2433 fprintf(stderr, "Runtime error: %s", "Assert failed");
2434 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27249);
2435 exit(1);
2436 }
2437 var_tidnode4 = var_nodearraylist8;
2438 /* <var_tidnode4:nullable Object> isa nullable TId */
2439 cltype15 = type_nullable_parser_nodes__TId.color;
2440 idtype16 = type_nullable_parser_nodes__TId.id;
2441 if(var_tidnode4 == NULL) {
2442 var14 = 1;
2443 } else {
2444 if(cltype15 >= var_tidnode4->type->table_size) {
2445 var14 = 0;
2446 } else {
2447 var14 = var_tidnode4->type->type_table[cltype15] == idtype16;
2448 }
2449 }
2450 if (!var14) {
2451 fprintf(stderr, "Runtime error: %s", "Assert failed");
2452 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27251);
2453 exit(1);
2454 }
2455 var_pexprsnode5 = var_nodearraylist9;
2456 /* <var_pexprsnode5:nullable Object> isa nullable AExprs */
2457 cltype18 = type_nullable_parser_nodes__AExprs.color;
2458 idtype19 = type_nullable_parser_nodes__AExprs.id;
2459 if(var_pexprsnode5 == NULL) {
2460 var17 = 1;
2461 } else {
2462 if(cltype18 >= var_pexprsnode5->type->table_size) {
2463 var17 = 0;
2464 } else {
2465 var17 = var_pexprsnode5->type->type_table[cltype18] == idtype19;
2466 }
2467 }
2468 if (!var17) {
2469 fprintf(stderr, "Runtime error: %s", "Assert failed");
2470 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27253);
2471 exit(1);
2472 }
2473 var20 = NEW_parser_nodes__ANewExpr(&type_parser_nodes__ANewExpr);
2474 ((void (*)(val*, val*, val*, val*, val*))(var20->class->vft[COLOR_parser_prod__ANewExpr__init_anewexpr]))(var20, var_tkwnewnode2, var_ptypenode3, var_tidnode4, var_pexprsnode5) /* init_anewexpr on <var20:ANewExpr>*/;
2475 CHECK_NEW_parser_nodes__ANewExpr(var20);
2476 var_pexprnode1 = var20;
2477 var_node_list = var_pexprnode1;
2478 var21 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction774> */
2479 var22 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var21) /* go_to on <var_p:Parser>*/;
2480 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var22, var_node_list) /* push on <var_p:Parser>*/;
2481 RET_LABEL:;
2482 }
2483 /* method parser#ReduceAction774#action for (self: Object, Parser) */
2484 void VIRTUAL_parser__ReduceAction774__action(val* self, val* p0) {
2485 parser__ReduceAction774__action(self, p0);
2486 RET_LABEL:;
2487 }
2488 /* method parser#ReduceAction776#action for (self: ReduceAction776, Parser) */
2489 void parser__ReduceAction776__action(val* self, val* p0) {
2490 val* var_p /* var p: Parser */;
2491 val* var /* : null */;
2492 val* var_node_list /* var node_list: nullable Object */;
2493 val* var1 /* : nullable Object */;
2494 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
2495 val* var2 /* : nullable Object */;
2496 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
2497 val* var3 /* : nullable Object */;
2498 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
2499 val* var4 /* : nullable Object */;
2500 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
2501 val* var5 /* : nullable Object */;
2502 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2503 val* var6 /* : nullable Object */;
2504 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2505 val* var7 /* : nullable Object */;
2506 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2507 val* var8 /* : nullable Object */;
2508 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2509 val* var9 /* : nullable Object */;
2510 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2511 val* var_tobranode2 /* var tobranode2: nullable Object */;
2512 short int var10 /* : Bool */;
2513 int cltype;
2514 int idtype;
2515 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
2516 short int var11 /* : Bool */;
2517 int cltype12;
2518 int idtype13;
2519 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
2520 short int var14 /* : Bool */;
2521 int cltype15;
2522 int idtype16;
2523 val* var_tcbranode5 /* var tcbranode5: nullable Object */;
2524 short int var17 /* : Bool */;
2525 int cltype18;
2526 int idtype19;
2527 val* var20 /* : ACrangeExpr */;
2528 val* var21 /* : null */;
2529 val* var_pexprnode1 /* var pexprnode1: nullable ACrangeExpr */;
2530 long var22 /* : Int */;
2531 long var23 /* : Int */;
2532 var_p = p0;
2533 var = NULL;
2534 var_node_list = var;
2535 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2536 var_nodearraylist9 = var1;
2537 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2538 var_nodearraylist8 = var2;
2539 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2540 var_nodearraylist7 = var3;
2541 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2542 var_nodearraylist6 = var4;
2543 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2544 var_nodearraylist5 = var5;
2545 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2546 var_nodearraylist4 = var6;
2547 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2548 var_nodearraylist3 = var7;
2549 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2550 var_nodearraylist2 = var8;
2551 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2552 var_nodearraylist1 = var9;
2553 var_tobranode2 = var_nodearraylist1;
2554 /* <var_tobranode2:nullable Object> isa nullable TObra */
2555 cltype = type_nullable_parser_nodes__TObra.color;
2556 idtype = type_nullable_parser_nodes__TObra.id;
2557 if(var_tobranode2 == NULL) {
2558 var10 = 1;
2559 } else {
2560 if(cltype >= var_tobranode2->type->table_size) {
2561 var10 = 0;
2562 } else {
2563 var10 = var_tobranode2->type->type_table[cltype] == idtype;
2564 }
2565 }
2566 if (!var10) {
2567 fprintf(stderr, "Runtime error: %s", "Assert failed");
2568 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27279);
2569 exit(1);
2570 }
2571 var_pexprnode3 = var_nodearraylist3;
2572 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
2573 cltype12 = type_nullable_parser_nodes__AExpr.color;
2574 idtype13 = type_nullable_parser_nodes__AExpr.id;
2575 if(var_pexprnode3 == NULL) {
2576 var11 = 1;
2577 } else {
2578 if(cltype12 >= var_pexprnode3->type->table_size) {
2579 var11 = 0;
2580 } else {
2581 var11 = var_pexprnode3->type->type_table[cltype12] == idtype13;
2582 }
2583 }
2584 if (!var11) {
2585 fprintf(stderr, "Runtime error: %s", "Assert failed");
2586 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27281);
2587 exit(1);
2588 }
2589 var_pexprnode4 = var_nodearraylist7;
2590 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
2591 cltype15 = type_nullable_parser_nodes__AExpr.color;
2592 idtype16 = type_nullable_parser_nodes__AExpr.id;
2593 if(var_pexprnode4 == NULL) {
2594 var14 = 1;
2595 } else {
2596 if(cltype15 >= var_pexprnode4->type->table_size) {
2597 var14 = 0;
2598 } else {
2599 var14 = var_pexprnode4->type->type_table[cltype15] == idtype16;
2600 }
2601 }
2602 if (!var14) {
2603 fprintf(stderr, "Runtime error: %s", "Assert failed");
2604 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27283);
2605 exit(1);
2606 }
2607 var_tcbranode5 = var_nodearraylist9;
2608 /* <var_tcbranode5:nullable Object> isa nullable TCbra */
2609 cltype18 = type_nullable_parser_nodes__TCbra.color;
2610 idtype19 = type_nullable_parser_nodes__TCbra.id;
2611 if(var_tcbranode5 == NULL) {
2612 var17 = 1;
2613 } else {
2614 if(cltype18 >= var_tcbranode5->type->table_size) {
2615 var17 = 0;
2616 } else {
2617 var17 = var_tcbranode5->type->type_table[cltype18] == idtype19;
2618 }
2619 }
2620 if (!var17) {
2621 fprintf(stderr, "Runtime error: %s", "Assert failed");
2622 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27285);
2623 exit(1);
2624 }
2625 var20 = NEW_parser_nodes__ACrangeExpr(&type_parser_nodes__ACrangeExpr);
2626 var21 = NULL;
2627 ((void (*)(val*, val*, val*, val*, val*, val*))(var20->class->vft[COLOR_parser_prod__ACrangeExpr__init_acrangeexpr]))(var20, var_tobranode2, var_pexprnode3, var_pexprnode4, var_tcbranode5, var21) /* init_acrangeexpr on <var20:ACrangeExpr>*/;
2628 CHECK_NEW_parser_nodes__ACrangeExpr(var20);
2629 var_pexprnode1 = var20;
2630 var_node_list = var_pexprnode1;
2631 var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction776> */
2632 var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
2633 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
2634 RET_LABEL:;
2635 }
2636 /* method parser#ReduceAction776#action for (self: Object, Parser) */
2637 void VIRTUAL_parser__ReduceAction776__action(val* self, val* p0) {
2638 parser__ReduceAction776__action(self, p0);
2639 RET_LABEL:;
2640 }
2641 /* method parser#ReduceAction777#action for (self: ReduceAction777, Parser) */
2642 void parser__ReduceAction777__action(val* self, val* p0) {
2643 val* var_p /* var p: Parser */;
2644 val* var /* : null */;
2645 val* var_node_list /* var node_list: nullable Object */;
2646 val* var1 /* : nullable Object */;
2647 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
2648 val* var2 /* : nullable Object */;
2649 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
2650 val* var3 /* : nullable Object */;
2651 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
2652 val* var4 /* : nullable Object */;
2653 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
2654 val* var5 /* : nullable Object */;
2655 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
2656 val* var6 /* : nullable Object */;
2657 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2658 val* var7 /* : nullable Object */;
2659 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2660 val* var8 /* : nullable Object */;
2661 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2662 val* var9 /* : nullable Object */;
2663 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2664 val* var10 /* : nullable Object */;
2665 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2666 val* var_tobranode2 /* var tobranode2: nullable Object */;
2667 short int var11 /* : Bool */;
2668 int cltype;
2669 int idtype;
2670 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
2671 short int var12 /* : Bool */;
2672 int cltype13;
2673 int idtype14;
2674 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
2675 short int var15 /* : Bool */;
2676 int cltype16;
2677 int idtype17;
2678 val* var_tcbranode5 /* var tcbranode5: nullable Object */;
2679 short int var18 /* : Bool */;
2680 int cltype19;
2681 int idtype20;
2682 val* var_pannotationsnode6 /* var pannotationsnode6: nullable Object */;
2683 short int var21 /* : Bool */;
2684 int cltype22;
2685 int idtype23;
2686 val* var24 /* : ACrangeExpr */;
2687 val* var_pexprnode1 /* var pexprnode1: nullable ACrangeExpr */;
2688 long var25 /* : Int */;
2689 long var26 /* : Int */;
2690 var_p = p0;
2691 var = NULL;
2692 var_node_list = var;
2693 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2694 var_nodearraylist10 = var1;
2695 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2696 var_nodearraylist9 = var2;
2697 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2698 var_nodearraylist8 = var3;
2699 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2700 var_nodearraylist7 = var4;
2701 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2702 var_nodearraylist6 = var5;
2703 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2704 var_nodearraylist5 = var6;
2705 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2706 var_nodearraylist4 = var7;
2707 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2708 var_nodearraylist3 = var8;
2709 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2710 var_nodearraylist2 = var9;
2711 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2712 var_nodearraylist1 = var10;
2713 var_tobranode2 = var_nodearraylist1;
2714 /* <var_tobranode2:nullable Object> isa nullable TObra */
2715 cltype = type_nullable_parser_nodes__TObra.color;
2716 idtype = type_nullable_parser_nodes__TObra.id;
2717 if(var_tobranode2 == NULL) {
2718 var11 = 1;
2719 } else {
2720 if(cltype >= var_tobranode2->type->table_size) {
2721 var11 = 0;
2722 } else {
2723 var11 = var_tobranode2->type->type_table[cltype] == idtype;
2724 }
2725 }
2726 if (!var11) {
2727 fprintf(stderr, "Runtime error: %s", "Assert failed");
2728 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27313);
2729 exit(1);
2730 }
2731 var_pexprnode3 = var_nodearraylist3;
2732 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
2733 cltype13 = type_nullable_parser_nodes__AExpr.color;
2734 idtype14 = type_nullable_parser_nodes__AExpr.id;
2735 if(var_pexprnode3 == NULL) {
2736 var12 = 1;
2737 } else {
2738 if(cltype13 >= var_pexprnode3->type->table_size) {
2739 var12 = 0;
2740 } else {
2741 var12 = var_pexprnode3->type->type_table[cltype13] == idtype14;
2742 }
2743 }
2744 if (!var12) {
2745 fprintf(stderr, "Runtime error: %s", "Assert failed");
2746 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27315);
2747 exit(1);
2748 }
2749 var_pexprnode4 = var_nodearraylist7;
2750 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
2751 cltype16 = type_nullable_parser_nodes__AExpr.color;
2752 idtype17 = type_nullable_parser_nodes__AExpr.id;
2753 if(var_pexprnode4 == NULL) {
2754 var15 = 1;
2755 } else {
2756 if(cltype16 >= var_pexprnode4->type->table_size) {
2757 var15 = 0;
2758 } else {
2759 var15 = var_pexprnode4->type->type_table[cltype16] == idtype17;
2760 }
2761 }
2762 if (!var15) {
2763 fprintf(stderr, "Runtime error: %s", "Assert failed");
2764 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27317);
2765 exit(1);
2766 }
2767 var_tcbranode5 = var_nodearraylist9;
2768 /* <var_tcbranode5:nullable Object> isa nullable TCbra */
2769 cltype19 = type_nullable_parser_nodes__TCbra.color;
2770 idtype20 = type_nullable_parser_nodes__TCbra.id;
2771 if(var_tcbranode5 == NULL) {
2772 var18 = 1;
2773 } else {
2774 if(cltype19 >= var_tcbranode5->type->table_size) {
2775 var18 = 0;
2776 } else {
2777 var18 = var_tcbranode5->type->type_table[cltype19] == idtype20;
2778 }
2779 }
2780 if (!var18) {
2781 fprintf(stderr, "Runtime error: %s", "Assert failed");
2782 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27319);
2783 exit(1);
2784 }
2785 var_pannotationsnode6 = var_nodearraylist10;
2786 /* <var_pannotationsnode6:nullable Object> isa nullable AAnnotations */
2787 cltype22 = type_nullable_parser_nodes__AAnnotations.color;
2788 idtype23 = type_nullable_parser_nodes__AAnnotations.id;
2789 if(var_pannotationsnode6 == NULL) {
2790 var21 = 1;
2791 } else {
2792 if(cltype22 >= var_pannotationsnode6->type->table_size) {
2793 var21 = 0;
2794 } else {
2795 var21 = var_pannotationsnode6->type->type_table[cltype22] == idtype23;
2796 }
2797 }
2798 if (!var21) {
2799 fprintf(stderr, "Runtime error: %s", "Assert failed");
2800 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27321);
2801 exit(1);
2802 }
2803 var24 = NEW_parser_nodes__ACrangeExpr(&type_parser_nodes__ACrangeExpr);
2804 ((void (*)(val*, val*, val*, val*, val*, val*))(var24->class->vft[COLOR_parser_prod__ACrangeExpr__init_acrangeexpr]))(var24, var_tobranode2, var_pexprnode3, var_pexprnode4, var_tcbranode5, var_pannotationsnode6) /* init_acrangeexpr on <var24:ACrangeExpr>*/;
2805 CHECK_NEW_parser_nodes__ACrangeExpr(var24);
2806 var_pexprnode1 = var24;
2807 var_node_list = var_pexprnode1;
2808 var25 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction777> */
2809 var26 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var25) /* go_to on <var_p:Parser>*/;
2810 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var26, var_node_list) /* push on <var_p:Parser>*/;
2811 RET_LABEL:;
2812 }
2813 /* method parser#ReduceAction777#action for (self: Object, Parser) */
2814 void VIRTUAL_parser__ReduceAction777__action(val* self, val* p0) {
2815 parser__ReduceAction777__action(self, p0);
2816 RET_LABEL:;
2817 }
2818 /* method parser#ReduceAction778#action for (self: ReduceAction778, Parser) */
2819 void parser__ReduceAction778__action(val* self, val* p0) {
2820 val* var_p /* var p: Parser */;
2821 val* var /* : null */;
2822 val* var_node_list /* var node_list: nullable Object */;
2823 val* var1 /* : nullable Object */;
2824 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
2825 val* var2 /* : nullable Object */;
2826 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
2827 val* var3 /* : nullable Object */;
2828 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
2829 val* var4 /* : nullable Object */;
2830 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
2831 val* var5 /* : nullable Object */;
2832 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2833 val* var6 /* : nullable Object */;
2834 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2835 val* var7 /* : nullable Object */;
2836 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2837 val* var8 /* : nullable Object */;
2838 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2839 val* var9 /* : nullable Object */;
2840 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2841 val* var_tobranode2 /* var tobranode2: nullable Object */;
2842 short int var10 /* : Bool */;
2843 int cltype;
2844 int idtype;
2845 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
2846 short int var11 /* : Bool */;
2847 int cltype12;
2848 int idtype13;
2849 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
2850 short int var14 /* : Bool */;
2851 int cltype15;
2852 int idtype16;
2853 val* var_tobranode5 /* var tobranode5: nullable Object */;
2854 short int var17 /* : Bool */;
2855 int cltype18;
2856 int idtype19;
2857 val* var20 /* : AOrangeExpr */;
2858 val* var21 /* : null */;
2859 val* var_pexprnode1 /* var pexprnode1: nullable AOrangeExpr */;
2860 long var22 /* : Int */;
2861 long var23 /* : Int */;
2862 var_p = p0;
2863 var = NULL;
2864 var_node_list = var;
2865 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2866 var_nodearraylist9 = var1;
2867 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2868 var_nodearraylist8 = var2;
2869 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2870 var_nodearraylist7 = var3;
2871 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2872 var_nodearraylist6 = var4;
2873 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2874 var_nodearraylist5 = var5;
2875 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2876 var_nodearraylist4 = var6;
2877 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2878 var_nodearraylist3 = var7;
2879 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2880 var_nodearraylist2 = var8;
2881 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2882 var_nodearraylist1 = var9;
2883 var_tobranode2 = var_nodearraylist1;
2884 /* <var_tobranode2:nullable Object> isa nullable TObra */
2885 cltype = type_nullable_parser_nodes__TObra.color;
2886 idtype = type_nullable_parser_nodes__TObra.id;
2887 if(var_tobranode2 == NULL) {
2888 var10 = 1;
2889 } else {
2890 if(cltype >= var_tobranode2->type->table_size) {
2891 var10 = 0;
2892 } else {
2893 var10 = var_tobranode2->type->type_table[cltype] == idtype;
2894 }
2895 }
2896 if (!var10) {
2897 fprintf(stderr, "Runtime error: %s", "Assert failed");
2898 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27348);
2899 exit(1);
2900 }
2901 var_pexprnode3 = var_nodearraylist3;
2902 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
2903 cltype12 = type_nullable_parser_nodes__AExpr.color;
2904 idtype13 = type_nullable_parser_nodes__AExpr.id;
2905 if(var_pexprnode3 == NULL) {
2906 var11 = 1;
2907 } else {
2908 if(cltype12 >= var_pexprnode3->type->table_size) {
2909 var11 = 0;
2910 } else {
2911 var11 = var_pexprnode3->type->type_table[cltype12] == idtype13;
2912 }
2913 }
2914 if (!var11) {
2915 fprintf(stderr, "Runtime error: %s", "Assert failed");
2916 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27350);
2917 exit(1);
2918 }
2919 var_pexprnode4 = var_nodearraylist7;
2920 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
2921 cltype15 = type_nullable_parser_nodes__AExpr.color;
2922 idtype16 = type_nullable_parser_nodes__AExpr.id;
2923 if(var_pexprnode4 == NULL) {
2924 var14 = 1;
2925 } else {
2926 if(cltype15 >= var_pexprnode4->type->table_size) {
2927 var14 = 0;
2928 } else {
2929 var14 = var_pexprnode4->type->type_table[cltype15] == idtype16;
2930 }
2931 }
2932 if (!var14) {
2933 fprintf(stderr, "Runtime error: %s", "Assert failed");
2934 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27352);
2935 exit(1);
2936 }
2937 var_tobranode5 = var_nodearraylist9;
2938 /* <var_tobranode5:nullable Object> isa nullable TObra */
2939 cltype18 = type_nullable_parser_nodes__TObra.color;
2940 idtype19 = type_nullable_parser_nodes__TObra.id;
2941 if(var_tobranode5 == NULL) {
2942 var17 = 1;
2943 } else {
2944 if(cltype18 >= var_tobranode5->type->table_size) {
2945 var17 = 0;
2946 } else {
2947 var17 = var_tobranode5->type->type_table[cltype18] == idtype19;
2948 }
2949 }
2950 if (!var17) {
2951 fprintf(stderr, "Runtime error: %s", "Assert failed");
2952 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27354);
2953 exit(1);
2954 }
2955 var20 = NEW_parser_nodes__AOrangeExpr(&type_parser_nodes__AOrangeExpr);
2956 var21 = NULL;
2957 ((void (*)(val*, val*, val*, val*, val*, val*))(var20->class->vft[COLOR_parser_prod__AOrangeExpr__init_aorangeexpr]))(var20, var_tobranode2, var_pexprnode3, var_pexprnode4, var_tobranode5, var21) /* init_aorangeexpr on <var20:AOrangeExpr>*/;
2958 CHECK_NEW_parser_nodes__AOrangeExpr(var20);
2959 var_pexprnode1 = var20;
2960 var_node_list = var_pexprnode1;
2961 var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction778> */
2962 var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
2963 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
2964 RET_LABEL:;
2965 }
2966 /* method parser#ReduceAction778#action for (self: Object, Parser) */
2967 void VIRTUAL_parser__ReduceAction778__action(val* self, val* p0) {
2968 parser__ReduceAction778__action(self, p0);
2969 RET_LABEL:;
2970 }
2971 /* method parser#ReduceAction779#action for (self: ReduceAction779, Parser) */
2972 void parser__ReduceAction779__action(val* self, val* p0) {
2973 val* var_p /* var p: Parser */;
2974 val* var /* : null */;
2975 val* var_node_list /* var node_list: nullable Object */;
2976 val* var1 /* : nullable Object */;
2977 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
2978 val* var2 /* : nullable Object */;
2979 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
2980 val* var3 /* : nullable Object */;
2981 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
2982 val* var4 /* : nullable Object */;
2983 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
2984 val* var5 /* : nullable Object */;
2985 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
2986 val* var6 /* : nullable Object */;
2987 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2988 val* var7 /* : nullable Object */;
2989 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2990 val* var8 /* : nullable Object */;
2991 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2992 val* var9 /* : nullable Object */;
2993 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2994 val* var10 /* : nullable Object */;
2995 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2996 val* var_tobranode2 /* var tobranode2: nullable Object */;
2997 short int var11 /* : Bool */;
2998 int cltype;
2999 int idtype;
3000 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
3001 short int var12 /* : Bool */;
3002 int cltype13;
3003 int idtype14;
3004 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
3005 short int var15 /* : Bool */;
3006 int cltype16;
3007 int idtype17;
3008 val* var_tobranode5 /* var tobranode5: nullable Object */;
3009 short int var18 /* : Bool */;
3010 int cltype19;
3011 int idtype20;
3012 val* var_pannotationsnode6 /* var pannotationsnode6: nullable Object */;
3013 short int var21 /* : Bool */;
3014 int cltype22;
3015 int idtype23;
3016 val* var24 /* : AOrangeExpr */;
3017 val* var_pexprnode1 /* var pexprnode1: nullable AOrangeExpr */;
3018 long var25 /* : Int */;
3019 long var26 /* : Int */;
3020 var_p = p0;
3021 var = NULL;
3022 var_node_list = var;
3023 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3024 var_nodearraylist10 = var1;
3025 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3026 var_nodearraylist9 = var2;
3027 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3028 var_nodearraylist8 = var3;
3029 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3030 var_nodearraylist7 = var4;
3031 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3032 var_nodearraylist6 = var5;
3033 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3034 var_nodearraylist5 = var6;
3035 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3036 var_nodearraylist4 = var7;
3037 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3038 var_nodearraylist3 = var8;
3039 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3040 var_nodearraylist2 = var9;
3041 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3042 var_nodearraylist1 = var10;
3043 var_tobranode2 = var_nodearraylist1;
3044 /* <var_tobranode2:nullable Object> isa nullable TObra */
3045 cltype = type_nullable_parser_nodes__TObra.color;
3046 idtype = type_nullable_parser_nodes__TObra.id;
3047 if(var_tobranode2 == NULL) {
3048 var11 = 1;
3049 } else {
3050 if(cltype >= var_tobranode2->type->table_size) {
3051 var11 = 0;
3052 } else {
3053 var11 = var_tobranode2->type->type_table[cltype] == idtype;
3054 }
3055 }
3056 if (!var11) {
3057 fprintf(stderr, "Runtime error: %s", "Assert failed");
3058 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27382);
3059 exit(1);
3060 }
3061 var_pexprnode3 = var_nodearraylist3;
3062 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
3063 cltype13 = type_nullable_parser_nodes__AExpr.color;
3064 idtype14 = type_nullable_parser_nodes__AExpr.id;
3065 if(var_pexprnode3 == NULL) {
3066 var12 = 1;
3067 } else {
3068 if(cltype13 >= var_pexprnode3->type->table_size) {
3069 var12 = 0;
3070 } else {
3071 var12 = var_pexprnode3->type->type_table[cltype13] == idtype14;
3072 }
3073 }
3074 if (!var12) {
3075 fprintf(stderr, "Runtime error: %s", "Assert failed");
3076 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27384);
3077 exit(1);
3078 }
3079 var_pexprnode4 = var_nodearraylist7;
3080 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
3081 cltype16 = type_nullable_parser_nodes__AExpr.color;
3082 idtype17 = type_nullable_parser_nodes__AExpr.id;
3083 if(var_pexprnode4 == NULL) {
3084 var15 = 1;
3085 } else {
3086 if(cltype16 >= var_pexprnode4->type->table_size) {
3087 var15 = 0;
3088 } else {
3089 var15 = var_pexprnode4->type->type_table[cltype16] == idtype17;
3090 }
3091 }
3092 if (!var15) {
3093 fprintf(stderr, "Runtime error: %s", "Assert failed");
3094 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27386);
3095 exit(1);
3096 }
3097 var_tobranode5 = var_nodearraylist9;
3098 /* <var_tobranode5:nullable Object> isa nullable TObra */
3099 cltype19 = type_nullable_parser_nodes__TObra.color;
3100 idtype20 = type_nullable_parser_nodes__TObra.id;
3101 if(var_tobranode5 == NULL) {
3102 var18 = 1;
3103 } else {
3104 if(cltype19 >= var_tobranode5->type->table_size) {
3105 var18 = 0;
3106 } else {
3107 var18 = var_tobranode5->type->type_table[cltype19] == idtype20;
3108 }
3109 }
3110 if (!var18) {
3111 fprintf(stderr, "Runtime error: %s", "Assert failed");
3112 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27388);
3113 exit(1);
3114 }
3115 var_pannotationsnode6 = var_nodearraylist10;
3116 /* <var_pannotationsnode6:nullable Object> isa nullable AAnnotations */
3117 cltype22 = type_nullable_parser_nodes__AAnnotations.color;
3118 idtype23 = type_nullable_parser_nodes__AAnnotations.id;
3119 if(var_pannotationsnode6 == NULL) {
3120 var21 = 1;
3121 } else {
3122 if(cltype22 >= var_pannotationsnode6->type->table_size) {
3123 var21 = 0;
3124 } else {
3125 var21 = var_pannotationsnode6->type->type_table[cltype22] == idtype23;
3126 }
3127 }
3128 if (!var21) {
3129 fprintf(stderr, "Runtime error: %s", "Assert failed");
3130 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27390);
3131 exit(1);
3132 }
3133 var24 = NEW_parser_nodes__AOrangeExpr(&type_parser_nodes__AOrangeExpr);
3134 ((void (*)(val*, val*, val*, val*, val*, val*))(var24->class->vft[COLOR_parser_prod__AOrangeExpr__init_aorangeexpr]))(var24, var_tobranode2, var_pexprnode3, var_pexprnode4, var_tobranode5, var_pannotationsnode6) /* init_aorangeexpr on <var24:AOrangeExpr>*/;
3135 CHECK_NEW_parser_nodes__AOrangeExpr(var24);
3136 var_pexprnode1 = var24;
3137 var_node_list = var_pexprnode1;
3138 var25 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction779> */
3139 var26 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var25) /* go_to on <var_p:Parser>*/;
3140 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var26, var_node_list) /* push on <var_p:Parser>*/;
3141 RET_LABEL:;
3142 }
3143 /* method parser#ReduceAction779#action for (self: Object, Parser) */
3144 void VIRTUAL_parser__ReduceAction779__action(val* self, val* p0) {
3145 parser__ReduceAction779__action(self, p0);
3146 RET_LABEL:;
3147 }
3148 /* method parser#ReduceAction780#action for (self: ReduceAction780, Parser) */
3149 void parser__ReduceAction780__action(val* self, val* p0) {
3150 val* var_p /* var p: Parser */;
3151 val* var /* : null */;
3152 val* var_node_list /* var node_list: nullable Object */;
3153 val* var1 /* : nullable Object */;
3154 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3155 val* var_pexprsnode2 /* var pexprsnode2: nullable Object */;
3156 short int var2 /* : Bool */;
3157 int cltype;
3158 int idtype;
3159 val* var3 /* : AArrayExpr */;
3160 val* var4 /* : null */;
3161 val* var_pexprnode1 /* var pexprnode1: nullable AArrayExpr */;
3162 long var5 /* : Int */;
3163 long var6 /* : Int */;
3164 var_p = p0;
3165 var = NULL;
3166 var_node_list = var;
3167 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3168 var_nodearraylist1 = var1;
3169 var_pexprsnode2 = var_nodearraylist1;
3170 /* <var_pexprsnode2:nullable Object> isa nullable AExprs */
3171 cltype = type_nullable_parser_nodes__AExprs.color;
3172 idtype = type_nullable_parser_nodes__AExprs.id;
3173 if(var_pexprsnode2 == NULL) {
3174 var2 = 1;
3175 } else {
3176 if(cltype >= var_pexprsnode2->type->table_size) {
3177 var2 = 0;
3178 } else {
3179 var2 = var_pexprsnode2->type->type_table[cltype] == idtype;
3180 }
3181 }
3182 if (!var2) {
3183 fprintf(stderr, "Runtime error: %s", "Assert failed");
3184 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27409);
3185 exit(1);
3186 }
3187 var3 = NEW_parser_nodes__AArrayExpr(&type_parser_nodes__AArrayExpr);
3188 var4 = NULL;
3189 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AArrayExpr__init_aarrayexpr]))(var3, var_pexprsnode2, var4) /* init_aarrayexpr on <var3:AArrayExpr>*/;
3190 CHECK_NEW_parser_nodes__AArrayExpr(var3);
3191 var_pexprnode1 = var3;
3192 var_node_list = var_pexprnode1;
3193 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction780> */
3194 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
3195 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
3196 RET_LABEL:;
3197 }
3198 /* method parser#ReduceAction780#action for (self: Object, Parser) */
3199 void VIRTUAL_parser__ReduceAction780__action(val* self, val* p0) {
3200 parser__ReduceAction780__action(self, p0);
3201 RET_LABEL:;
3202 }
3203 /* method parser#ReduceAction781#action for (self: ReduceAction781, Parser) */
3204 void parser__ReduceAction781__action(val* self, val* p0) {
3205 val* var_p /* var p: Parser */;
3206 val* var /* : null */;
3207 val* var_node_list /* var node_list: nullable Object */;
3208 val* var1 /* : nullable Object */;
3209 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3210 val* var2 /* : nullable Object */;
3211 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3212 val* var_pexprsnode2 /* var pexprsnode2: nullable Object */;
3213 short int var3 /* : Bool */;
3214 int cltype;
3215 int idtype;
3216 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
3217 short int var4 /* : Bool */;
3218 int cltype5;
3219 int idtype6;
3220 val* var7 /* : AArrayExpr */;
3221 val* var_pexprnode1 /* var pexprnode1: nullable AArrayExpr */;
3222 long var8 /* : Int */;
3223 long var9 /* : Int */;
3224 var_p = p0;
3225 var = NULL;
3226 var_node_list = var;
3227 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3228 var_nodearraylist2 = var1;
3229 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3230 var_nodearraylist1 = var2;
3231 var_pexprsnode2 = var_nodearraylist1;
3232 /* <var_pexprsnode2:nullable Object> isa nullable AExprs */
3233 cltype = type_nullable_parser_nodes__AExprs.color;
3234 idtype = type_nullable_parser_nodes__AExprs.id;
3235 if(var_pexprsnode2 == NULL) {
3236 var3 = 1;
3237 } else {
3238 if(cltype >= var_pexprsnode2->type->table_size) {
3239 var3 = 0;
3240 } else {
3241 var3 = var_pexprsnode2->type->type_table[cltype] == idtype;
3242 }
3243 }
3244 if (!var3) {
3245 fprintf(stderr, "Runtime error: %s", "Assert failed");
3246 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27426);
3247 exit(1);
3248 }
3249 var_pannotationsnode3 = var_nodearraylist2;
3250 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
3251 cltype5 = type_nullable_parser_nodes__AAnnotations.color;
3252 idtype6 = type_nullable_parser_nodes__AAnnotations.id;
3253 if(var_pannotationsnode3 == NULL) {
3254 var4 = 1;
3255 } else {
3256 if(cltype5 >= var_pannotationsnode3->type->table_size) {
3257 var4 = 0;
3258 } else {
3259 var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
3260 }
3261 }
3262 if (!var4) {
3263 fprintf(stderr, "Runtime error: %s", "Assert failed");
3264 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27428);
3265 exit(1);
3266 }
3267 var7 = NEW_parser_nodes__AArrayExpr(&type_parser_nodes__AArrayExpr);
3268 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AArrayExpr__init_aarrayexpr]))(var7, var_pexprsnode2, var_pannotationsnode3) /* init_aarrayexpr on <var7:AArrayExpr>*/;
3269 CHECK_NEW_parser_nodes__AArrayExpr(var7);
3270 var_pexprnode1 = var7;
3271 var_node_list = var_pexprnode1;
3272 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction781> */
3273 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
3274 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
3275 RET_LABEL:;
3276 }
3277 /* method parser#ReduceAction781#action for (self: Object, Parser) */
3278 void VIRTUAL_parser__ReduceAction781__action(val* self, val* p0) {
3279 parser__ReduceAction781__action(self, p0);
3280 RET_LABEL:;
3281 }
3282 /* method parser#ReduceAction782#action for (self: ReduceAction782, Parser) */
3283 void parser__ReduceAction782__action(val* self, val* p0) {
3284 val* var_p /* var p: Parser */;
3285 val* var /* : null */;
3286 val* var_node_list /* var node_list: nullable Object */;
3287 val* var1 /* : nullable Object */;
3288 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3289 val* var_tkwselfnode2 /* var tkwselfnode2: nullable Object */;
3290 short int var2 /* : Bool */;
3291 int cltype;
3292 int idtype;
3293 val* var3 /* : ASelfExpr */;
3294 val* var4 /* : null */;
3295 val* var_pexprnode1 /* var pexprnode1: nullable ASelfExpr */;
3296 long var5 /* : Int */;
3297 long var6 /* : Int */;
3298 var_p = p0;
3299 var = NULL;
3300 var_node_list = var;
3301 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3302 var_nodearraylist1 = var1;
3303 var_tkwselfnode2 = var_nodearraylist1;
3304 /* <var_tkwselfnode2:nullable Object> isa nullable TKwself */
3305 cltype = type_nullable_parser_nodes__TKwself.color;
3306 idtype = type_nullable_parser_nodes__TKwself.id;
3307 if(var_tkwselfnode2 == NULL) {
3308 var2 = 1;
3309 } else {
3310 if(cltype >= var_tkwselfnode2->type->table_size) {
3311 var2 = 0;
3312 } else {
3313 var2 = var_tkwselfnode2->type->type_table[cltype] == idtype;
3314 }
3315 }
3316 if (!var2) {
3317 fprintf(stderr, "Runtime error: %s", "Assert failed");
3318 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27444);
3319 exit(1);
3320 }
3321 var3 = NEW_parser_nodes__ASelfExpr(&type_parser_nodes__ASelfExpr);
3322 var4 = NULL;
3323 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_prod__ASelfExpr__init_aselfexpr]))(var3, var_tkwselfnode2, var4) /* init_aselfexpr on <var3:ASelfExpr>*/;
3324 CHECK_NEW_parser_nodes__ASelfExpr(var3);
3325 var_pexprnode1 = var3;
3326 var_node_list = var_pexprnode1;
3327 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction782> */
3328 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
3329 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
3330 RET_LABEL:;
3331 }
3332 /* method parser#ReduceAction782#action for (self: Object, Parser) */
3333 void VIRTUAL_parser__ReduceAction782__action(val* self, val* p0) {
3334 parser__ReduceAction782__action(self, p0);
3335 RET_LABEL:;
3336 }
3337 /* method parser#ReduceAction783#action for (self: ReduceAction783, Parser) */
3338 void parser__ReduceAction783__action(val* self, val* p0) {
3339 val* var_p /* var p: Parser */;
3340 val* var /* : null */;
3341 val* var_node_list /* var node_list: nullable Object */;
3342 val* var1 /* : nullable Object */;
3343 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3344 val* var2 /* : nullable Object */;
3345 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3346 val* var_tkwselfnode2 /* var tkwselfnode2: nullable Object */;
3347 short int var3 /* : Bool */;
3348 int cltype;
3349 int idtype;
3350 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
3351 short int var4 /* : Bool */;
3352 int cltype5;
3353 int idtype6;
3354 val* var7 /* : ASelfExpr */;
3355 val* var_pexprnode1 /* var pexprnode1: nullable ASelfExpr */;
3356 long var8 /* : Int */;
3357 long var9 /* : Int */;
3358 var_p = p0;
3359 var = NULL;
3360 var_node_list = var;
3361 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3362 var_nodearraylist2 = var1;
3363 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3364 var_nodearraylist1 = var2;
3365 var_tkwselfnode2 = var_nodearraylist1;
3366 /* <var_tkwselfnode2:nullable Object> isa nullable TKwself */
3367 cltype = type_nullable_parser_nodes__TKwself.color;
3368 idtype = type_nullable_parser_nodes__TKwself.id;
3369 if(var_tkwselfnode2 == NULL) {
3370 var3 = 1;
3371 } else {
3372 if(cltype >= var_tkwselfnode2->type->table_size) {
3373 var3 = 0;
3374 } else {
3375 var3 = var_tkwselfnode2->type->type_table[cltype] == idtype;
3376 }
3377 }
3378 if (!var3) {
3379 fprintf(stderr, "Runtime error: %s", "Assert failed");
3380 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27461);
3381 exit(1);
3382 }
3383 var_pannotationsnode3 = var_nodearraylist2;
3384 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
3385 cltype5 = type_nullable_parser_nodes__AAnnotations.color;
3386 idtype6 = type_nullable_parser_nodes__AAnnotations.id;
3387 if(var_pannotationsnode3 == NULL) {
3388 var4 = 1;
3389 } else {
3390 if(cltype5 >= var_pannotationsnode3->type->table_size) {
3391 var4 = 0;
3392 } else {
3393 var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
3394 }
3395 }
3396 if (!var4) {
3397 fprintf(stderr, "Runtime error: %s", "Assert failed");
3398 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27463);
3399 exit(1);
3400 }
3401 var7 = NEW_parser_nodes__ASelfExpr(&type_parser_nodes__ASelfExpr);
3402 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ASelfExpr__init_aselfexpr]))(var7, var_tkwselfnode2, var_pannotationsnode3) /* init_aselfexpr on <var7:ASelfExpr>*/;
3403 CHECK_NEW_parser_nodes__ASelfExpr(var7);
3404 var_pexprnode1 = var7;
3405 var_node_list = var_pexprnode1;
3406 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction783> */
3407 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
3408 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
3409 RET_LABEL:;
3410 }
3411 /* method parser#ReduceAction783#action for (self: Object, Parser) */
3412 void VIRTUAL_parser__ReduceAction783__action(val* self, val* p0) {
3413 parser__ReduceAction783__action(self, p0);
3414 RET_LABEL:;
3415 }
3416 /* method parser#ReduceAction784#action for (self: ReduceAction784, Parser) */
3417 void parser__ReduceAction784__action(val* self, val* p0) {
3418 val* var_p /* var p: Parser */;
3419 val* var /* : null */;
3420 val* var_node_list /* var node_list: nullable Object */;
3421 val* var1 /* : nullable Object */;
3422 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3423 val* var_tkwtruenode2 /* var tkwtruenode2: nullable Object */;
3424 short int var2 /* : Bool */;
3425 int cltype;
3426 int idtype;
3427 val* var3 /* : ATrueExpr */;
3428 val* var4 /* : null */;
3429 val* var_pexprnode1 /* var pexprnode1: nullable ATrueExpr */;
3430 long var5 /* : Int */;
3431 long var6 /* : Int */;
3432 var_p = p0;
3433 var = NULL;
3434 var_node_list = var;
3435 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3436 var_nodearraylist1 = var1;
3437 var_tkwtruenode2 = var_nodearraylist1;
3438 /* <var_tkwtruenode2:nullable Object> isa nullable TKwtrue */
3439 cltype = type_nullable_parser_nodes__TKwtrue.color;
3440 idtype = type_nullable_parser_nodes__TKwtrue.id;
3441 if(var_tkwtruenode2 == NULL) {
3442 var2 = 1;
3443 } else {
3444 if(cltype >= var_tkwtruenode2->type->table_size) {
3445 var2 = 0;
3446 } else {
3447 var2 = var_tkwtruenode2->type->type_table[cltype] == idtype;
3448 }
3449 }
3450 if (!var2) {
3451 fprintf(stderr, "Runtime error: %s", "Assert failed");
3452 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27479);
3453 exit(1);
3454 }
3455 var3 = NEW_parser_nodes__ATrueExpr(&type_parser_nodes__ATrueExpr);
3456 var4 = NULL;
3457 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_prod__ATrueExpr__init_atrueexpr]))(var3, var_tkwtruenode2, var4) /* init_atrueexpr on <var3:ATrueExpr>*/;
3458 CHECK_NEW_parser_nodes__ATrueExpr(var3);
3459 var_pexprnode1 = var3;
3460 var_node_list = var_pexprnode1;
3461 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction784> */
3462 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
3463 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
3464 RET_LABEL:;
3465 }
3466 /* method parser#ReduceAction784#action for (self: Object, Parser) */
3467 void VIRTUAL_parser__ReduceAction784__action(val* self, val* p0) {
3468 parser__ReduceAction784__action(self, p0);
3469 RET_LABEL:;
3470 }
3471 /* method parser#ReduceAction785#action for (self: ReduceAction785, Parser) */
3472 void parser__ReduceAction785__action(val* self, val* p0) {
3473 val* var_p /* var p: Parser */;
3474 val* var /* : null */;
3475 val* var_node_list /* var node_list: nullable Object */;
3476 val* var1 /* : nullable Object */;
3477 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3478 val* var2 /* : nullable Object */;
3479 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3480 val* var_tkwtruenode2 /* var tkwtruenode2: nullable Object */;
3481 short int var3 /* : Bool */;
3482 int cltype;
3483 int idtype;
3484 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
3485 short int var4 /* : Bool */;
3486 int cltype5;
3487 int idtype6;
3488 val* var7 /* : ATrueExpr */;
3489 val* var_pexprnode1 /* var pexprnode1: nullable ATrueExpr */;
3490 long var8 /* : Int */;
3491 long var9 /* : Int */;
3492 var_p = p0;
3493 var = NULL;
3494 var_node_list = var;
3495 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3496 var_nodearraylist2 = var1;
3497 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3498 var_nodearraylist1 = var2;
3499 var_tkwtruenode2 = var_nodearraylist1;
3500 /* <var_tkwtruenode2:nullable Object> isa nullable TKwtrue */
3501 cltype = type_nullable_parser_nodes__TKwtrue.color;
3502 idtype = type_nullable_parser_nodes__TKwtrue.id;
3503 if(var_tkwtruenode2 == NULL) {
3504 var3 = 1;
3505 } else {
3506 if(cltype >= var_tkwtruenode2->type->table_size) {
3507 var3 = 0;
3508 } else {
3509 var3 = var_tkwtruenode2->type->type_table[cltype] == idtype;
3510 }
3511 }
3512 if (!var3) {
3513 fprintf(stderr, "Runtime error: %s", "Assert failed");
3514 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27496);
3515 exit(1);
3516 }
3517 var_pannotationsnode3 = var_nodearraylist2;
3518 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
3519 cltype5 = type_nullable_parser_nodes__AAnnotations.color;
3520 idtype6 = type_nullable_parser_nodes__AAnnotations.id;
3521 if(var_pannotationsnode3 == NULL) {
3522 var4 = 1;
3523 } else {
3524 if(cltype5 >= var_pannotationsnode3->type->table_size) {
3525 var4 = 0;
3526 } else {
3527 var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
3528 }
3529 }
3530 if (!var4) {
3531 fprintf(stderr, "Runtime error: %s", "Assert failed");
3532 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27498);
3533 exit(1);
3534 }
3535 var7 = NEW_parser_nodes__ATrueExpr(&type_parser_nodes__ATrueExpr);
3536 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ATrueExpr__init_atrueexpr]))(var7, var_tkwtruenode2, var_pannotationsnode3) /* init_atrueexpr on <var7:ATrueExpr>*/;
3537 CHECK_NEW_parser_nodes__ATrueExpr(var7);
3538 var_pexprnode1 = var7;
3539 var_node_list = var_pexprnode1;
3540 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction785> */
3541 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
3542 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
3543 RET_LABEL:;
3544 }
3545 /* method parser#ReduceAction785#action for (self: Object, Parser) */
3546 void VIRTUAL_parser__ReduceAction785__action(val* self, val* p0) {
3547 parser__ReduceAction785__action(self, p0);
3548 RET_LABEL:;
3549 }
3550 /* method parser#ReduceAction786#action for (self: ReduceAction786, Parser) */
3551 void parser__ReduceAction786__action(val* self, val* p0) {
3552 val* var_p /* var p: Parser */;
3553 val* var /* : null */;
3554 val* var_node_list /* var node_list: nullable Object */;
3555 val* var1 /* : nullable Object */;
3556 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3557 val* var_tkwfalsenode2 /* var tkwfalsenode2: nullable Object */;
3558 short int var2 /* : Bool */;
3559 int cltype;
3560 int idtype;
3561 val* var3 /* : AFalseExpr */;
3562 val* var4 /* : null */;
3563 val* var_pexprnode1 /* var pexprnode1: nullable AFalseExpr */;
3564 long var5 /* : Int */;
3565 long var6 /* : Int */;
3566 var_p = p0;
3567 var = NULL;
3568 var_node_list = var;
3569 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3570 var_nodearraylist1 = var1;
3571 var_tkwfalsenode2 = var_nodearraylist1;
3572 /* <var_tkwfalsenode2:nullable Object> isa nullable TKwfalse */
3573 cltype = type_nullable_parser_nodes__TKwfalse.color;
3574 idtype = type_nullable_parser_nodes__TKwfalse.id;
3575 if(var_tkwfalsenode2 == NULL) {
3576 var2 = 1;
3577 } else {
3578 if(cltype >= var_tkwfalsenode2->type->table_size) {
3579 var2 = 0;
3580 } else {
3581 var2 = var_tkwfalsenode2->type->type_table[cltype] == idtype;
3582 }
3583 }
3584 if (!var2) {
3585 fprintf(stderr, "Runtime error: %s", "Assert failed");
3586 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27514);
3587 exit(1);
3588 }
3589 var3 = NEW_parser_nodes__AFalseExpr(&type_parser_nodes__AFalseExpr);
3590 var4 = NULL;
3591 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AFalseExpr__init_afalseexpr]))(var3, var_tkwfalsenode2, var4) /* init_afalseexpr on <var3:AFalseExpr>*/;
3592 CHECK_NEW_parser_nodes__AFalseExpr(var3);
3593 var_pexprnode1 = var3;
3594 var_node_list = var_pexprnode1;
3595 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction786> */
3596 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
3597 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
3598 RET_LABEL:;
3599 }
3600 /* method parser#ReduceAction786#action for (self: Object, Parser) */
3601 void VIRTUAL_parser__ReduceAction786__action(val* self, val* p0) {
3602 parser__ReduceAction786__action(self, p0);
3603 RET_LABEL:;
3604 }
3605 /* method parser#ReduceAction787#action for (self: ReduceAction787, Parser) */
3606 void parser__ReduceAction787__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_nodearraylist2 /* var nodearraylist2: nullable Object */;
3612 val* var2 /* : nullable Object */;
3613 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3614 val* var_tkwfalsenode2 /* var tkwfalsenode2: nullable Object */;
3615 short int var3 /* : Bool */;
3616 int cltype;
3617 int idtype;
3618 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
3619 short int var4 /* : Bool */;
3620 int cltype5;
3621 int idtype6;
3622 val* var7 /* : AFalseExpr */;
3623 val* var_pexprnode1 /* var pexprnode1: nullable AFalseExpr */;
3624 long var8 /* : Int */;
3625 long var9 /* : Int */;
3626 var_p = p0;
3627 var = NULL;
3628 var_node_list = var;
3629 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3630 var_nodearraylist2 = var1;
3631 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3632 var_nodearraylist1 = var2;
3633 var_tkwfalsenode2 = var_nodearraylist1;
3634 /* <var_tkwfalsenode2:nullable Object> isa nullable TKwfalse */
3635 cltype = type_nullable_parser_nodes__TKwfalse.color;
3636 idtype = type_nullable_parser_nodes__TKwfalse.id;
3637 if(var_tkwfalsenode2 == NULL) {
3638 var3 = 1;
3639 } else {
3640 if(cltype >= var_tkwfalsenode2->type->table_size) {
3641 var3 = 0;
3642 } else {
3643 var3 = var_tkwfalsenode2->type->type_table[cltype] == idtype;
3644 }
3645 }
3646 if (!var3) {
3647 fprintf(stderr, "Runtime error: %s", "Assert failed");
3648 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27531);
3649 exit(1);
3650 }
3651 var_pannotationsnode3 = var_nodearraylist2;
3652 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
3653 cltype5 = type_nullable_parser_nodes__AAnnotations.color;
3654 idtype6 = type_nullable_parser_nodes__AAnnotations.id;
3655 if(var_pannotationsnode3 == NULL) {
3656 var4 = 1;
3657 } else {
3658 if(cltype5 >= var_pannotationsnode3->type->table_size) {
3659 var4 = 0;
3660 } else {
3661 var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
3662 }
3663 }
3664 if (!var4) {
3665 fprintf(stderr, "Runtime error: %s", "Assert failed");
3666 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27533);
3667 exit(1);
3668 }
3669 var7 = NEW_parser_nodes__AFalseExpr(&type_parser_nodes__AFalseExpr);
3670 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AFalseExpr__init_afalseexpr]))(var7, var_tkwfalsenode2, var_pannotationsnode3) /* init_afalseexpr on <var7:AFalseExpr>*/;
3671 CHECK_NEW_parser_nodes__AFalseExpr(var7);
3672 var_pexprnode1 = var7;
3673 var_node_list = var_pexprnode1;
3674 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction787> */
3675 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
3676 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
3677 RET_LABEL:;
3678 }
3679 /* method parser#ReduceAction787#action for (self: Object, Parser) */
3680 void VIRTUAL_parser__ReduceAction787__action(val* self, val* p0) {
3681 parser__ReduceAction787__action(self, p0);
3682 RET_LABEL:;
3683 }
3684 /* method parser#ReduceAction788#action for (self: ReduceAction788, Parser) */
3685 void parser__ReduceAction788__action(val* self, val* p0) {
3686 val* var_p /* var p: Parser */;
3687 val* var /* : null */;
3688 val* var_node_list /* var node_list: nullable Object */;
3689 val* var1 /* : nullable Object */;
3690 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3691 val* var_tkwnullnode2 /* var tkwnullnode2: nullable Object */;
3692 short int var2 /* : Bool */;
3693 int cltype;
3694 int idtype;
3695 val* var3 /* : ANullExpr */;
3696 val* var4 /* : null */;
3697 val* var_pexprnode1 /* var pexprnode1: nullable ANullExpr */;
3698 long var5 /* : Int */;
3699 long var6 /* : Int */;
3700 var_p = p0;
3701 var = NULL;
3702 var_node_list = var;
3703 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3704 var_nodearraylist1 = var1;
3705 var_tkwnullnode2 = var_nodearraylist1;
3706 /* <var_tkwnullnode2:nullable Object> isa nullable TKwnull */
3707 cltype = type_nullable_parser_nodes__TKwnull.color;
3708 idtype = type_nullable_parser_nodes__TKwnull.id;
3709 if(var_tkwnullnode2 == NULL) {
3710 var2 = 1;
3711 } else {
3712 if(cltype >= var_tkwnullnode2->type->table_size) {
3713 var2 = 0;
3714 } else {
3715 var2 = var_tkwnullnode2->type->type_table[cltype] == idtype;
3716 }
3717 }
3718 if (!var2) {
3719 fprintf(stderr, "Runtime error: %s", "Assert failed");
3720 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27549);
3721 exit(1);
3722 }
3723 var3 = NEW_parser_nodes__ANullExpr(&type_parser_nodes__ANullExpr);
3724 var4 = NULL;
3725 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_prod__ANullExpr__init_anullexpr]))(var3, var_tkwnullnode2, var4) /* init_anullexpr on <var3:ANullExpr>*/;
3726 CHECK_NEW_parser_nodes__ANullExpr(var3);
3727 var_pexprnode1 = var3;
3728 var_node_list = var_pexprnode1;
3729 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction788> */
3730 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
3731 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
3732 RET_LABEL:;
3733 }
3734 /* method parser#ReduceAction788#action for (self: Object, Parser) */
3735 void VIRTUAL_parser__ReduceAction788__action(val* self, val* p0) {
3736 parser__ReduceAction788__action(self, p0);
3737 RET_LABEL:;
3738 }
3739 /* method parser#ReduceAction789#action for (self: ReduceAction789, Parser) */
3740 void parser__ReduceAction789__action(val* self, val* p0) {
3741 val* var_p /* var p: Parser */;
3742 val* var /* : null */;
3743 val* var_node_list /* var node_list: nullable Object */;
3744 val* var1 /* : nullable Object */;
3745 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3746 val* var2 /* : nullable Object */;
3747 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3748 val* var_tkwnullnode2 /* var tkwnullnode2: nullable Object */;
3749 short int var3 /* : Bool */;
3750 int cltype;
3751 int idtype;
3752 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
3753 short int var4 /* : Bool */;
3754 int cltype5;
3755 int idtype6;
3756 val* var7 /* : ANullExpr */;
3757 val* var_pexprnode1 /* var pexprnode1: nullable ANullExpr */;
3758 long var8 /* : Int */;
3759 long var9 /* : Int */;
3760 var_p = p0;
3761 var = NULL;
3762 var_node_list = var;
3763 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3764 var_nodearraylist2 = var1;
3765 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3766 var_nodearraylist1 = var2;
3767 var_tkwnullnode2 = var_nodearraylist1;
3768 /* <var_tkwnullnode2:nullable Object> isa nullable TKwnull */
3769 cltype = type_nullable_parser_nodes__TKwnull.color;
3770 idtype = type_nullable_parser_nodes__TKwnull.id;
3771 if(var_tkwnullnode2 == NULL) {
3772 var3 = 1;
3773 } else {
3774 if(cltype >= var_tkwnullnode2->type->table_size) {
3775 var3 = 0;
3776 } else {
3777 var3 = var_tkwnullnode2->type->type_table[cltype] == idtype;
3778 }
3779 }
3780 if (!var3) {
3781 fprintf(stderr, "Runtime error: %s", "Assert failed");
3782 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27566);
3783 exit(1);
3784 }
3785 var_pannotationsnode3 = var_nodearraylist2;
3786 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
3787 cltype5 = type_nullable_parser_nodes__AAnnotations.color;
3788 idtype6 = type_nullable_parser_nodes__AAnnotations.id;
3789 if(var_pannotationsnode3 == NULL) {
3790 var4 = 1;
3791 } else {
3792 if(cltype5 >= var_pannotationsnode3->type->table_size) {
3793 var4 = 0;
3794 } else {
3795 var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
3796 }
3797 }
3798 if (!var4) {
3799 fprintf(stderr, "Runtime error: %s", "Assert failed");
3800 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27568);
3801 exit(1);
3802 }
3803 var7 = NEW_parser_nodes__ANullExpr(&type_parser_nodes__ANullExpr);
3804 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ANullExpr__init_anullexpr]))(var7, var_tkwnullnode2, var_pannotationsnode3) /* init_anullexpr on <var7:ANullExpr>*/;
3805 CHECK_NEW_parser_nodes__ANullExpr(var7);
3806 var_pexprnode1 = var7;
3807 var_node_list = var_pexprnode1;
3808 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction789> */
3809 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
3810 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
3811 RET_LABEL:;
3812 }
3813 /* method parser#ReduceAction789#action for (self: Object, Parser) */
3814 void VIRTUAL_parser__ReduceAction789__action(val* self, val* p0) {
3815 parser__ReduceAction789__action(self, p0);
3816 RET_LABEL:;
3817 }
3818 /* method parser#ReduceAction790#action for (self: ReduceAction790, Parser) */
3819 void parser__ReduceAction790__action(val* self, val* p0) {
3820 val* var_p /* var p: Parser */;
3821 val* var /* : null */;
3822 val* var_node_list /* var node_list: nullable Object */;
3823 val* var1 /* : nullable Object */;
3824 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3825 val* var_tnumbernode2 /* var tnumbernode2: nullable Object */;
3826 short int var2 /* : Bool */;
3827 int cltype;
3828 int idtype;
3829 val* var3 /* : AIntExpr */;
3830 val* var4 /* : null */;
3831 val* var_pexprnode1 /* var pexprnode1: nullable AIntExpr */;
3832 long var5 /* : Int */;
3833 long var6 /* : Int */;
3834 var_p = p0;
3835 var = NULL;
3836 var_node_list = var;
3837 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3838 var_nodearraylist1 = var1;
3839 var_tnumbernode2 = var_nodearraylist1;
3840 /* <var_tnumbernode2:nullable Object> isa nullable TNumber */
3841 cltype = type_nullable_parser_nodes__TNumber.color;
3842 idtype = type_nullable_parser_nodes__TNumber.id;
3843 if(var_tnumbernode2 == NULL) {
3844 var2 = 1;
3845 } else {
3846 if(cltype >= var_tnumbernode2->type->table_size) {
3847 var2 = 0;
3848 } else {
3849 var2 = var_tnumbernode2->type->type_table[cltype] == idtype;
3850 }
3851 }
3852 if (!var2) {
3853 fprintf(stderr, "Runtime error: %s", "Assert failed");
3854 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27584);
3855 exit(1);
3856 }
3857 var3 = NEW_parser_nodes__AIntExpr(&type_parser_nodes__AIntExpr);
3858 var4 = NULL;
3859 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AIntExpr__init_aintexpr]))(var3, var_tnumbernode2, var4) /* init_aintexpr on <var3:AIntExpr>*/;
3860 CHECK_NEW_parser_nodes__AIntExpr(var3);
3861 var_pexprnode1 = var3;
3862 var_node_list = var_pexprnode1;
3863 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction790> */
3864 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
3865 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
3866 RET_LABEL:;
3867 }
3868 /* method parser#ReduceAction790#action for (self: Object, Parser) */
3869 void VIRTUAL_parser__ReduceAction790__action(val* self, val* p0) {
3870 parser__ReduceAction790__action(self, p0);
3871 RET_LABEL:;
3872 }
3873 /* method parser#ReduceAction791#action for (self: ReduceAction791, Parser) */
3874 void parser__ReduceAction791__action(val* self, val* p0) {
3875 val* var_p /* var p: Parser */;
3876 val* var /* : null */;
3877 val* var_node_list /* var node_list: nullable Object */;
3878 val* var1 /* : nullable Object */;
3879 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3880 val* var2 /* : nullable Object */;
3881 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3882 val* var_tnumbernode2 /* var tnumbernode2: nullable Object */;
3883 short int var3 /* : Bool */;
3884 int cltype;
3885 int idtype;
3886 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
3887 short int var4 /* : Bool */;
3888 int cltype5;
3889 int idtype6;
3890 val* var7 /* : AIntExpr */;
3891 val* var_pexprnode1 /* var pexprnode1: nullable AIntExpr */;
3892 long var8 /* : Int */;
3893 long var9 /* : Int */;
3894 var_p = p0;
3895 var = NULL;
3896 var_node_list = var;
3897 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3898 var_nodearraylist2 = var1;
3899 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3900 var_nodearraylist1 = var2;
3901 var_tnumbernode2 = var_nodearraylist1;
3902 /* <var_tnumbernode2:nullable Object> isa nullable TNumber */
3903 cltype = type_nullable_parser_nodes__TNumber.color;
3904 idtype = type_nullable_parser_nodes__TNumber.id;
3905 if(var_tnumbernode2 == NULL) {
3906 var3 = 1;
3907 } else {
3908 if(cltype >= var_tnumbernode2->type->table_size) {
3909 var3 = 0;
3910 } else {
3911 var3 = var_tnumbernode2->type->type_table[cltype] == idtype;
3912 }
3913 }
3914 if (!var3) {
3915 fprintf(stderr, "Runtime error: %s", "Assert failed");
3916 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27601);
3917 exit(1);
3918 }
3919 var_pannotationsnode3 = var_nodearraylist2;
3920 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
3921 cltype5 = type_nullable_parser_nodes__AAnnotations.color;
3922 idtype6 = type_nullable_parser_nodes__AAnnotations.id;
3923 if(var_pannotationsnode3 == NULL) {
3924 var4 = 1;
3925 } else {
3926 if(cltype5 >= var_pannotationsnode3->type->table_size) {
3927 var4 = 0;
3928 } else {
3929 var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
3930 }
3931 }
3932 if (!var4) {
3933 fprintf(stderr, "Runtime error: %s", "Assert failed");
3934 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27603);
3935 exit(1);
3936 }
3937 var7 = NEW_parser_nodes__AIntExpr(&type_parser_nodes__AIntExpr);
3938 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AIntExpr__init_aintexpr]))(var7, var_tnumbernode2, var_pannotationsnode3) /* init_aintexpr on <var7:AIntExpr>*/;
3939 CHECK_NEW_parser_nodes__AIntExpr(var7);
3940 var_pexprnode1 = var7;
3941 var_node_list = var_pexprnode1;
3942 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction791> */
3943 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
3944 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
3945 RET_LABEL:;
3946 }
3947 /* method parser#ReduceAction791#action for (self: Object, Parser) */
3948 void VIRTUAL_parser__ReduceAction791__action(val* self, val* p0) {
3949 parser__ReduceAction791__action(self, p0);
3950 RET_LABEL:;
3951 }
3952 /* method parser#ReduceAction792#action for (self: ReduceAction792, Parser) */
3953 void parser__ReduceAction792__action(val* self, val* p0) {
3954 val* var_p /* var p: Parser */;
3955 val* var /* : null */;
3956 val* var_node_list /* var node_list: nullable Object */;
3957 val* var1 /* : nullable Object */;
3958 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3959 val* var_tfloatnode2 /* var tfloatnode2: nullable Object */;
3960 short int var2 /* : Bool */;
3961 int cltype;
3962 int idtype;
3963 val* var3 /* : AFloatExpr */;
3964 val* var4 /* : null */;
3965 val* var_pexprnode1 /* var pexprnode1: nullable AFloatExpr */;
3966 long var5 /* : Int */;
3967 long var6 /* : Int */;
3968 var_p = p0;
3969 var = NULL;
3970 var_node_list = var;
3971 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3972 var_nodearraylist1 = var1;
3973 var_tfloatnode2 = var_nodearraylist1;
3974 /* <var_tfloatnode2:nullable Object> isa nullable TFloat */
3975 cltype = type_nullable_parser_nodes__TFloat.color;
3976 idtype = type_nullable_parser_nodes__TFloat.id;
3977 if(var_tfloatnode2 == NULL) {
3978 var2 = 1;
3979 } else {
3980 if(cltype >= var_tfloatnode2->type->table_size) {
3981 var2 = 0;
3982 } else {
3983 var2 = var_tfloatnode2->type->type_table[cltype] == idtype;
3984 }
3985 }
3986 if (!var2) {
3987 fprintf(stderr, "Runtime error: %s", "Assert failed");
3988 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27619);
3989 exit(1);
3990 }
3991 var3 = NEW_parser_nodes__AFloatExpr(&type_parser_nodes__AFloatExpr);
3992 var4 = NULL;
3993 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AFloatExpr__init_afloatexpr]))(var3, var_tfloatnode2, var4) /* init_afloatexpr on <var3:AFloatExpr>*/;
3994 CHECK_NEW_parser_nodes__AFloatExpr(var3);
3995 var_pexprnode1 = var3;
3996 var_node_list = var_pexprnode1;
3997 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction792> */
3998 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
3999 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
4000 RET_LABEL:;
4001 }
4002 /* method parser#ReduceAction792#action for (self: Object, Parser) */
4003 void VIRTUAL_parser__ReduceAction792__action(val* self, val* p0) {
4004 parser__ReduceAction792__action(self, p0);
4005 RET_LABEL:;
4006 }
4007 /* method parser#ReduceAction793#action for (self: ReduceAction793, Parser) */
4008 void parser__ReduceAction793__action(val* self, val* p0) {
4009 val* var_p /* var p: Parser */;
4010 val* var /* : null */;
4011 val* var_node_list /* var node_list: nullable Object */;
4012 val* var1 /* : nullable Object */;
4013 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4014 val* var2 /* : nullable Object */;
4015 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4016 val* var_tfloatnode2 /* var tfloatnode2: nullable Object */;
4017 short int var3 /* : Bool */;
4018 int cltype;
4019 int idtype;
4020 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
4021 short int var4 /* : Bool */;
4022 int cltype5;
4023 int idtype6;
4024 val* var7 /* : AFloatExpr */;
4025 val* var_pexprnode1 /* var pexprnode1: nullable AFloatExpr */;
4026 long var8 /* : Int */;
4027 long var9 /* : Int */;
4028 var_p = p0;
4029 var = NULL;
4030 var_node_list = var;
4031 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4032 var_nodearraylist2 = var1;
4033 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4034 var_nodearraylist1 = var2;
4035 var_tfloatnode2 = var_nodearraylist1;
4036 /* <var_tfloatnode2:nullable Object> isa nullable TFloat */
4037 cltype = type_nullable_parser_nodes__TFloat.color;
4038 idtype = type_nullable_parser_nodes__TFloat.id;
4039 if(var_tfloatnode2 == NULL) {
4040 var3 = 1;
4041 } else {
4042 if(cltype >= var_tfloatnode2->type->table_size) {
4043 var3 = 0;
4044 } else {
4045 var3 = var_tfloatnode2->type->type_table[cltype] == idtype;
4046 }
4047 }
4048 if (!var3) {
4049 fprintf(stderr, "Runtime error: %s", "Assert failed");
4050 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27636);
4051 exit(1);
4052 }
4053 var_pannotationsnode3 = var_nodearraylist2;
4054 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
4055 cltype5 = type_nullable_parser_nodes__AAnnotations.color;
4056 idtype6 = type_nullable_parser_nodes__AAnnotations.id;
4057 if(var_pannotationsnode3 == NULL) {
4058 var4 = 1;
4059 } else {
4060 if(cltype5 >= var_pannotationsnode3->type->table_size) {
4061 var4 = 0;
4062 } else {
4063 var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
4064 }
4065 }
4066 if (!var4) {
4067 fprintf(stderr, "Runtime error: %s", "Assert failed");
4068 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27638);
4069 exit(1);
4070 }
4071 var7 = NEW_parser_nodes__AFloatExpr(&type_parser_nodes__AFloatExpr);
4072 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AFloatExpr__init_afloatexpr]))(var7, var_tfloatnode2, var_pannotationsnode3) /* init_afloatexpr on <var7:AFloatExpr>*/;
4073 CHECK_NEW_parser_nodes__AFloatExpr(var7);
4074 var_pexprnode1 = var7;
4075 var_node_list = var_pexprnode1;
4076 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction793> */
4077 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
4078 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
4079 RET_LABEL:;
4080 }
4081 /* method parser#ReduceAction793#action for (self: Object, Parser) */
4082 void VIRTUAL_parser__ReduceAction793__action(val* self, val* p0) {
4083 parser__ReduceAction793__action(self, p0);
4084 RET_LABEL:;
4085 }
4086 /* method parser#ReduceAction794#action for (self: ReduceAction794, Parser) */
4087 void parser__ReduceAction794__action(val* self, val* p0) {
4088 val* var_p /* var p: Parser */;
4089 val* var /* : null */;
4090 val* var_node_list /* var node_list: nullable Object */;
4091 val* var1 /* : nullable Object */;
4092 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4093 val* var_tcharnode2 /* var tcharnode2: nullable Object */;
4094 short int var2 /* : Bool */;
4095 int cltype;
4096 int idtype;
4097 val* var3 /* : ACharExpr */;
4098 val* var4 /* : null */;
4099 val* var_pexprnode1 /* var pexprnode1: nullable ACharExpr */;
4100 long var5 /* : Int */;
4101 long var6 /* : Int */;
4102 var_p = p0;
4103 var = NULL;
4104 var_node_list = var;
4105 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4106 var_nodearraylist1 = var1;
4107 var_tcharnode2 = var_nodearraylist1;
4108 /* <var_tcharnode2:nullable Object> isa nullable TChar */
4109 cltype = type_nullable_parser_nodes__TChar.color;
4110 idtype = type_nullable_parser_nodes__TChar.id;
4111 if(var_tcharnode2 == NULL) {
4112 var2 = 1;
4113 } else {
4114 if(cltype >= var_tcharnode2->type->table_size) {
4115 var2 = 0;
4116 } else {
4117 var2 = var_tcharnode2->type->type_table[cltype] == idtype;
4118 }
4119 }
4120 if (!var2) {
4121 fprintf(stderr, "Runtime error: %s", "Assert failed");
4122 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27654);
4123 exit(1);
4124 }
4125 var3 = NEW_parser_nodes__ACharExpr(&type_parser_nodes__ACharExpr);
4126 var4 = NULL;
4127 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_prod__ACharExpr__init_acharexpr]))(var3, var_tcharnode2, var4) /* init_acharexpr on <var3:ACharExpr>*/;
4128 CHECK_NEW_parser_nodes__ACharExpr(var3);
4129 var_pexprnode1 = var3;
4130 var_node_list = var_pexprnode1;
4131 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction794> */
4132 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
4133 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
4134 RET_LABEL:;
4135 }
4136 /* method parser#ReduceAction794#action for (self: Object, Parser) */
4137 void VIRTUAL_parser__ReduceAction794__action(val* self, val* p0) {
4138 parser__ReduceAction794__action(self, p0);
4139 RET_LABEL:;
4140 }
4141 /* method parser#ReduceAction795#action for (self: ReduceAction795, Parser) */
4142 void parser__ReduceAction795__action(val* self, val* p0) {
4143 val* var_p /* var p: Parser */;
4144 val* var /* : null */;
4145 val* var_node_list /* var node_list: nullable Object */;
4146 val* var1 /* : nullable Object */;
4147 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4148 val* var2 /* : nullable Object */;
4149 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4150 val* var_tcharnode2 /* var tcharnode2: nullable Object */;
4151 short int var3 /* : Bool */;
4152 int cltype;
4153 int idtype;
4154 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
4155 short int var4 /* : Bool */;
4156 int cltype5;
4157 int idtype6;
4158 val* var7 /* : ACharExpr */;
4159 val* var_pexprnode1 /* var pexprnode1: nullable ACharExpr */;
4160 long var8 /* : Int */;
4161 long var9 /* : Int */;
4162 var_p = p0;
4163 var = NULL;
4164 var_node_list = var;
4165 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4166 var_nodearraylist2 = var1;
4167 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4168 var_nodearraylist1 = var2;
4169 var_tcharnode2 = var_nodearraylist1;
4170 /* <var_tcharnode2:nullable Object> isa nullable TChar */
4171 cltype = type_nullable_parser_nodes__TChar.color;
4172 idtype = type_nullable_parser_nodes__TChar.id;
4173 if(var_tcharnode2 == NULL) {
4174 var3 = 1;
4175 } else {
4176 if(cltype >= var_tcharnode2->type->table_size) {
4177 var3 = 0;
4178 } else {
4179 var3 = var_tcharnode2->type->type_table[cltype] == idtype;
4180 }
4181 }
4182 if (!var3) {
4183 fprintf(stderr, "Runtime error: %s", "Assert failed");
4184 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27671);
4185 exit(1);
4186 }
4187 var_pannotationsnode3 = var_nodearraylist2;
4188 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
4189 cltype5 = type_nullable_parser_nodes__AAnnotations.color;
4190 idtype6 = type_nullable_parser_nodes__AAnnotations.id;
4191 if(var_pannotationsnode3 == NULL) {
4192 var4 = 1;
4193 } else {
4194 if(cltype5 >= var_pannotationsnode3->type->table_size) {
4195 var4 = 0;
4196 } else {
4197 var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
4198 }
4199 }
4200 if (!var4) {
4201 fprintf(stderr, "Runtime error: %s", "Assert failed");
4202 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27673);
4203 exit(1);
4204 }
4205 var7 = NEW_parser_nodes__ACharExpr(&type_parser_nodes__ACharExpr);
4206 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ACharExpr__init_acharexpr]))(var7, var_tcharnode2, var_pannotationsnode3) /* init_acharexpr on <var7:ACharExpr>*/;
4207 CHECK_NEW_parser_nodes__ACharExpr(var7);
4208 var_pexprnode1 = var7;
4209 var_node_list = var_pexprnode1;
4210 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction795> */
4211 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
4212 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
4213 RET_LABEL:;
4214 }
4215 /* method parser#ReduceAction795#action for (self: Object, Parser) */
4216 void VIRTUAL_parser__ReduceAction795__action(val* self, val* p0) {
4217 parser__ReduceAction795__action(self, p0);
4218 RET_LABEL:;
4219 }
4220 /* method parser#ReduceAction796#action for (self: ReduceAction796, Parser) */
4221 void parser__ReduceAction796__action(val* self, val* p0) {
4222 val* var_p /* var p: Parser */;
4223 val* var /* : null */;
4224 val* var_node_list /* var node_list: nullable Object */;
4225 val* var1 /* : nullable Object */;
4226 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4227 val* var_tstringnode2 /* var tstringnode2: nullable Object */;
4228 short int var2 /* : Bool */;
4229 int cltype;
4230 int idtype;
4231 val* var3 /* : AStringExpr */;
4232 val* var4 /* : null */;
4233 val* var_pexprnode1 /* var pexprnode1: nullable AStringExpr */;
4234 long var5 /* : Int */;
4235 long var6 /* : Int */;
4236 var_p = p0;
4237 var = NULL;
4238 var_node_list = var;
4239 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4240 var_nodearraylist1 = var1;
4241 var_tstringnode2 = var_nodearraylist1;
4242 /* <var_tstringnode2:nullable Object> isa nullable TString */
4243 cltype = type_nullable_parser_nodes__TString.color;
4244 idtype = type_nullable_parser_nodes__TString.id;
4245 if(var_tstringnode2 == NULL) {
4246 var2 = 1;
4247 } else {
4248 if(cltype >= var_tstringnode2->type->table_size) {
4249 var2 = 0;
4250 } else {
4251 var2 = var_tstringnode2->type->type_table[cltype] == idtype;
4252 }
4253 }
4254 if (!var2) {
4255 fprintf(stderr, "Runtime error: %s", "Assert failed");
4256 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27689);
4257 exit(1);
4258 }
4259 var3 = NEW_parser_nodes__AStringExpr(&type_parser_nodes__AStringExpr);
4260 var4 = NULL;
4261 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AStringExpr__init_astringexpr]))(var3, var_tstringnode2, var4) /* init_astringexpr on <var3:AStringExpr>*/;
4262 CHECK_NEW_parser_nodes__AStringExpr(var3);
4263 var_pexprnode1 = var3;
4264 var_node_list = var_pexprnode1;
4265 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction796> */
4266 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
4267 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
4268 RET_LABEL:;
4269 }
4270 /* method parser#ReduceAction796#action for (self: Object, Parser) */
4271 void VIRTUAL_parser__ReduceAction796__action(val* self, val* p0) {
4272 parser__ReduceAction796__action(self, p0);
4273 RET_LABEL:;
4274 }
4275 /* method parser#ReduceAction797#action for (self: ReduceAction797, Parser) */
4276 void parser__ReduceAction797__action(val* self, val* p0) {
4277 val* var_p /* var p: Parser */;
4278 val* var /* : null */;
4279 val* var_node_list /* var node_list: nullable Object */;
4280 val* var1 /* : nullable Object */;
4281 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4282 val* var2 /* : nullable Object */;
4283 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4284 val* var_tstringnode2 /* var tstringnode2: nullable Object */;
4285 short int var3 /* : Bool */;
4286 int cltype;
4287 int idtype;
4288 val* var_pannotationsnode3 /* var pannotationsnode3: nullable Object */;
4289 short int var4 /* : Bool */;
4290 int cltype5;
4291 int idtype6;
4292 val* var7 /* : AStringExpr */;
4293 val* var_pexprnode1 /* var pexprnode1: nullable AStringExpr */;
4294 long var8 /* : Int */;
4295 long var9 /* : Int */;
4296 var_p = p0;
4297 var = NULL;
4298 var_node_list = var;
4299 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4300 var_nodearraylist2 = var1;
4301 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4302 var_nodearraylist1 = var2;
4303 var_tstringnode2 = var_nodearraylist1;
4304 /* <var_tstringnode2:nullable Object> isa nullable TString */
4305 cltype = type_nullable_parser_nodes__TString.color;
4306 idtype = type_nullable_parser_nodes__TString.id;
4307 if(var_tstringnode2 == NULL) {
4308 var3 = 1;
4309 } else {
4310 if(cltype >= var_tstringnode2->type->table_size) {
4311 var3 = 0;
4312 } else {
4313 var3 = var_tstringnode2->type->type_table[cltype] == idtype;
4314 }
4315 }
4316 if (!var3) {
4317 fprintf(stderr, "Runtime error: %s", "Assert failed");
4318 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27706);
4319 exit(1);
4320 }
4321 var_pannotationsnode3 = var_nodearraylist2;
4322 /* <var_pannotationsnode3:nullable Object> isa nullable AAnnotations */
4323 cltype5 = type_nullable_parser_nodes__AAnnotations.color;
4324 idtype6 = type_nullable_parser_nodes__AAnnotations.id;
4325 if(var_pannotationsnode3 == NULL) {
4326 var4 = 1;
4327 } else {
4328 if(cltype5 >= var_pannotationsnode3->type->table_size) {
4329 var4 = 0;
4330 } else {
4331 var4 = var_pannotationsnode3->type->type_table[cltype5] == idtype6;
4332 }
4333 }
4334 if (!var4) {
4335 fprintf(stderr, "Runtime error: %s", "Assert failed");
4336 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27708);
4337 exit(1);
4338 }
4339 var7 = NEW_parser_nodes__AStringExpr(&type_parser_nodes__AStringExpr);
4340 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AStringExpr__init_astringexpr]))(var7, var_tstringnode2, var_pannotationsnode3) /* init_astringexpr on <var7:AStringExpr>*/;
4341 CHECK_NEW_parser_nodes__AStringExpr(var7);
4342 var_pexprnode1 = var7;
4343 var_node_list = var_pexprnode1;
4344 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction797> */
4345 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
4346 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
4347 RET_LABEL:;
4348 }
4349 /* method parser#ReduceAction797#action for (self: Object, Parser) */
4350 void VIRTUAL_parser__ReduceAction797__action(val* self, val* p0) {
4351 parser__ReduceAction797__action(self, p0);
4352 RET_LABEL:;
4353 }
4354 /* method parser#ReduceAction799#action for (self: ReduceAction799, Parser) */
4355 void parser__ReduceAction799__action(val* self, val* p0) {
4356 val* var_p /* var p: Parser */;
4357 val* var /* : null */;
4358 val* var_node_list /* var node_list: nullable Object */;
4359 val* var1 /* : nullable Object */;
4360 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4361 val* var2 /* : nullable Object */;
4362 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4363 val* var3 /* : nullable Object */;
4364 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4365 val* var4 /* : nullable Object */;
4366 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4367 val* var5 /* : nullable Object */;
4368 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4369 val* var_toparnode2 /* var toparnode2: nullable Object */;
4370 short int var6 /* : Bool */;
4371 int cltype;
4372 int idtype;
4373 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
4374 short int var7 /* : Bool */;
4375 int cltype8;
4376 int idtype9;
4377 val* var_tcparnode4 /* var tcparnode4: nullable Object */;
4378 short int var10 /* : Bool */;
4379 int cltype11;
4380 int idtype12;
4381 val* var13 /* : AParExpr */;
4382 val* var14 /* : null */;
4383 val* var_pexprnode1 /* var pexprnode1: nullable AParExpr */;
4384 long var15 /* : Int */;
4385 long var16 /* : Int */;
4386 var_p = p0;
4387 var = NULL;
4388 var_node_list = var;
4389 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4390 var_nodearraylist5 = var1;
4391 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4392 var_nodearraylist4 = var2;
4393 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4394 var_nodearraylist3 = var3;
4395 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4396 var_nodearraylist2 = var4;
4397 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4398 var_nodearraylist1 = var5;
4399 var_toparnode2 = var_nodearraylist1;
4400 /* <var_toparnode2:nullable Object> isa nullable TOpar */
4401 cltype = type_nullable_parser_nodes__TOpar.color;
4402 idtype = type_nullable_parser_nodes__TOpar.id;
4403 if(var_toparnode2 == NULL) {
4404 var6 = 1;
4405 } else {
4406 if(cltype >= var_toparnode2->type->table_size) {
4407 var6 = 0;
4408 } else {
4409 var6 = var_toparnode2->type->type_table[cltype] == idtype;
4410 }
4411 }
4412 if (!var6) {
4413 fprintf(stderr, "Runtime error: %s", "Assert failed");
4414 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27728);
4415 exit(1);
4416 }
4417 var_pexprnode3 = var_nodearraylist3;
4418 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
4419 cltype8 = type_nullable_parser_nodes__AExpr.color;
4420 idtype9 = type_nullable_parser_nodes__AExpr.id;
4421 if(var_pexprnode3 == NULL) {
4422 var7 = 1;
4423 } else {
4424 if(cltype8 >= var_pexprnode3->type->table_size) {
4425 var7 = 0;
4426 } else {
4427 var7 = var_pexprnode3->type->type_table[cltype8] == idtype9;
4428 }
4429 }
4430 if (!var7) {
4431 fprintf(stderr, "Runtime error: %s", "Assert failed");
4432 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27730);
4433 exit(1);
4434 }
4435 var_tcparnode4 = var_nodearraylist5;
4436 /* <var_tcparnode4:nullable Object> isa nullable TCpar */
4437 cltype11 = type_nullable_parser_nodes__TCpar.color;
4438 idtype12 = type_nullable_parser_nodes__TCpar.id;
4439 if(var_tcparnode4 == NULL) {
4440 var10 = 1;
4441 } else {
4442 if(cltype11 >= var_tcparnode4->type->table_size) {
4443 var10 = 0;
4444 } else {
4445 var10 = var_tcparnode4->type->type_table[cltype11] == idtype12;
4446 }
4447 }
4448 if (!var10) {
4449 fprintf(stderr, "Runtime error: %s", "Assert failed");
4450 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27732);
4451 exit(1);
4452 }
4453 var13 = NEW_parser_nodes__AParExpr(&type_parser_nodes__AParExpr);
4454 var14 = NULL;
4455 ((void (*)(val*, val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__AParExpr__init_aparexpr]))(var13, var_toparnode2, var_pexprnode3, var_tcparnode4, var14) /* init_aparexpr on <var13:AParExpr>*/;
4456 CHECK_NEW_parser_nodes__AParExpr(var13);
4457 var_pexprnode1 = var13;
4458 var_node_list = var_pexprnode1;
4459 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction799> */
4460 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
4461 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
4462 RET_LABEL:;
4463 }
4464 /* method parser#ReduceAction799#action for (self: Object, Parser) */
4465 void VIRTUAL_parser__ReduceAction799__action(val* self, val* p0) {
4466 parser__ReduceAction799__action(self, p0);
4467 RET_LABEL:;
4468 }
4469 /* method parser#ReduceAction800#action for (self: ReduceAction800, Parser) */
4470 void parser__ReduceAction800__action(val* self, val* p0) {
4471 val* var_p /* var p: Parser */;
4472 val* var /* : null */;
4473 val* var_node_list /* var node_list: nullable Object */;
4474 val* var1 /* : nullable Object */;
4475 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4476 val* var2 /* : nullable Object */;
4477 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4478 val* var3 /* : nullable Object */;
4479 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4480 val* var4 /* : nullable Object */;
4481 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4482 val* var5 /* : nullable Object */;
4483 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4484 val* var6 /* : nullable Object */;
4485 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4486 val* var_toparnode2 /* var toparnode2: nullable Object */;
4487 short int var7 /* : Bool */;
4488 int cltype;
4489 int idtype;
4490 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
4491 short int var8 /* : Bool */;
4492 int cltype9;
4493 int idtype10;
4494 val* var_tcparnode4 /* var tcparnode4: nullable Object */;
4495 short int var11 /* : Bool */;
4496 int cltype12;
4497 int idtype13;
4498 val* var_pannotationsnode5 /* var pannotationsnode5: nullable Object */;
4499 short int var14 /* : Bool */;
4500 int cltype15;
4501 int idtype16;
4502 val* var17 /* : AParExpr */;
4503 val* var_pexprnode1 /* var pexprnode1: nullable AParExpr */;
4504 long var18 /* : Int */;
4505 long var19 /* : Int */;
4506 var_p = p0;
4507 var = NULL;
4508 var_node_list = var;
4509 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4510 var_nodearraylist6 = var1;
4511 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4512 var_nodearraylist5 = var2;
4513 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4514 var_nodearraylist4 = var3;
4515 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4516 var_nodearraylist3 = var4;
4517 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4518 var_nodearraylist2 = var5;
4519 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4520 var_nodearraylist1 = var6;
4521 var_toparnode2 = var_nodearraylist1;
4522 /* <var_toparnode2:nullable Object> isa nullable TOpar */
4523 cltype = type_nullable_parser_nodes__TOpar.color;
4524 idtype = type_nullable_parser_nodes__TOpar.id;
4525 if(var_toparnode2 == NULL) {
4526 var7 = 1;
4527 } else {
4528 if(cltype >= var_toparnode2->type->table_size) {
4529 var7 = 0;
4530 } else {
4531 var7 = var_toparnode2->type->type_table[cltype] == idtype;
4532 }
4533 }
4534 if (!var7) {
4535 fprintf(stderr, "Runtime error: %s", "Assert failed");
4536 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27755);
4537 exit(1);
4538 }
4539 var_pexprnode3 = var_nodearraylist3;
4540 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
4541 cltype9 = type_nullable_parser_nodes__AExpr.color;
4542 idtype10 = type_nullable_parser_nodes__AExpr.id;
4543 if(var_pexprnode3 == NULL) {
4544 var8 = 1;
4545 } else {
4546 if(cltype9 >= var_pexprnode3->type->table_size) {
4547 var8 = 0;
4548 } else {
4549 var8 = var_pexprnode3->type->type_table[cltype9] == idtype10;
4550 }
4551 }
4552 if (!var8) {
4553 fprintf(stderr, "Runtime error: %s", "Assert failed");
4554 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27757);
4555 exit(1);
4556 }
4557 var_tcparnode4 = var_nodearraylist5;
4558 /* <var_tcparnode4:nullable Object> isa nullable TCpar */
4559 cltype12 = type_nullable_parser_nodes__TCpar.color;
4560 idtype13 = type_nullable_parser_nodes__TCpar.id;
4561 if(var_tcparnode4 == NULL) {
4562 var11 = 1;
4563 } else {
4564 if(cltype12 >= var_tcparnode4->type->table_size) {
4565 var11 = 0;
4566 } else {
4567 var11 = var_tcparnode4->type->type_table[cltype12] == idtype13;
4568 }
4569 }
4570 if (!var11) {
4571 fprintf(stderr, "Runtime error: %s", "Assert failed");
4572 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27759);
4573 exit(1);
4574 }
4575 var_pannotationsnode5 = var_nodearraylist6;
4576 /* <var_pannotationsnode5:nullable Object> isa nullable AAnnotations */
4577 cltype15 = type_nullable_parser_nodes__AAnnotations.color;
4578 idtype16 = type_nullable_parser_nodes__AAnnotations.id;
4579 if(var_pannotationsnode5 == NULL) {
4580 var14 = 1;
4581 } else {
4582 if(cltype15 >= var_pannotationsnode5->type->table_size) {
4583 var14 = 0;
4584 } else {
4585 var14 = var_pannotationsnode5->type->type_table[cltype15] == idtype16;
4586 }
4587 }
4588 if (!var14) {
4589 fprintf(stderr, "Runtime error: %s", "Assert failed");
4590 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27761);
4591 exit(1);
4592 }
4593 var17 = NEW_parser_nodes__AParExpr(&type_parser_nodes__AParExpr);
4594 ((void (*)(val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AParExpr__init_aparexpr]))(var17, var_toparnode2, var_pexprnode3, var_tcparnode4, var_pannotationsnode5) /* init_aparexpr on <var17:AParExpr>*/;
4595 CHECK_NEW_parser_nodes__AParExpr(var17);
4596 var_pexprnode1 = var17;
4597 var_node_list = var_pexprnode1;
4598 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction800> */
4599 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
4600 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
4601 RET_LABEL:;
4602 }
4603 /* method parser#ReduceAction800#action for (self: Object, Parser) */
4604 void VIRTUAL_parser__ReduceAction800__action(val* self, val* p0) {
4605 parser__ReduceAction800__action(self, p0);
4606 RET_LABEL:;
4607 }
4608 /* method parser#ReduceAction801#action for (self: ReduceAction801, Parser) */
4609 void parser__ReduceAction801__action(val* self, val* p0) {
4610 val* var_p /* var p: Parser */;
4611 val* var /* : null */;
4612 val* var_node_list /* var node_list: nullable Object */;
4613 val* var1 /* : nullable Object */;
4614 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
4615 val* var2 /* : nullable Object */;
4616 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
4617 val* var3 /* : nullable Object */;
4618 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
4619 val* var4 /* : nullable Object */;
4620 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
4621 val* var5 /* : nullable Object */;
4622 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4623 val* var6 /* : nullable Object */;
4624 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4625 val* var7 /* : nullable Object */;
4626 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4627 val* var8 /* : nullable Object */;
4628 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4629 val* var9 /* : nullable Object */;
4630 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4631 val* var10 /* : nullable Object */;
4632 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4633 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
4634 short int var11 /* : Bool */;
4635 int cltype;
4636 int idtype;
4637 val* var_tkwasnode3 /* var tkwasnode3: nullable Object */;
4638 short int var12 /* : Bool */;
4639 int cltype13;
4640 int idtype14;
4641 val* var_toparnode4 /* var toparnode4: nullable Object */;
4642 short int var15 /* : Bool */;
4643 int cltype16;
4644 int idtype17;
4645 val* var_ptypenode5 /* var ptypenode5: nullable Object */;
4646 short int var18 /* : Bool */;
4647 int cltype19;
4648 int idtype20;
4649 val* var_tcparnode6 /* var tcparnode6: nullable Object */;
4650 short int var21 /* : Bool */;
4651 int cltype22;
4652 int idtype23;
4653 val* var24 /* : AAsCastExpr */;
4654 val* var_pexprnode1 /* var pexprnode1: nullable AAsCastExpr */;
4655 long var25 /* : Int */;
4656 long var26 /* : Int */;
4657 var_p = p0;
4658 var = NULL;
4659 var_node_list = var;
4660 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4661 var_nodearraylist10 = var1;
4662 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4663 var_nodearraylist9 = var2;
4664 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4665 var_nodearraylist8 = var3;
4666 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4667 var_nodearraylist7 = var4;
4668 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4669 var_nodearraylist6 = var5;
4670 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4671 var_nodearraylist5 = var6;
4672 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4673 var_nodearraylist4 = var7;
4674 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4675 var_nodearraylist3 = var8;
4676 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4677 var_nodearraylist2 = var9;
4678 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4679 var_nodearraylist1 = var10;
4680 var_pexprnode2 = var_nodearraylist1;
4681 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
4682 cltype = type_nullable_parser_nodes__AExpr.color;
4683 idtype = type_nullable_parser_nodes__AExpr.id;
4684 if(var_pexprnode2 == NULL) {
4685 var11 = 1;
4686 } else {
4687 if(cltype >= var_pexprnode2->type->table_size) {
4688 var11 = 0;
4689 } else {
4690 var11 = var_pexprnode2->type->type_table[cltype] == idtype;
4691 }
4692 }
4693 if (!var11) {
4694 fprintf(stderr, "Runtime error: %s", "Assert failed");
4695 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27788);
4696 exit(1);
4697 }
4698 var_tkwasnode3 = var_nodearraylist4;
4699 /* <var_tkwasnode3:nullable Object> isa nullable TKwas */
4700 cltype13 = type_nullable_parser_nodes__TKwas.color;
4701 idtype14 = type_nullable_parser_nodes__TKwas.id;
4702 if(var_tkwasnode3 == NULL) {
4703 var12 = 1;
4704 } else {
4705 if(cltype13 >= var_tkwasnode3->type->table_size) {
4706 var12 = 0;
4707 } else {
4708 var12 = var_tkwasnode3->type->type_table[cltype13] == idtype14;
4709 }
4710 }
4711 if (!var12) {
4712 fprintf(stderr, "Runtime error: %s", "Assert failed");
4713 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27790);
4714 exit(1);
4715 }
4716 var_toparnode4 = var_nodearraylist6;
4717 /* <var_toparnode4:nullable Object> isa nullable TOpar */
4718 cltype16 = type_nullable_parser_nodes__TOpar.color;
4719 idtype17 = type_nullable_parser_nodes__TOpar.id;
4720 if(var_toparnode4 == NULL) {
4721 var15 = 1;
4722 } else {
4723 if(cltype16 >= var_toparnode4->type->table_size) {
4724 var15 = 0;
4725 } else {
4726 var15 = var_toparnode4->type->type_table[cltype16] == idtype17;
4727 }
4728 }
4729 if (!var15) {
4730 fprintf(stderr, "Runtime error: %s", "Assert failed");
4731 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27792);
4732 exit(1);
4733 }
4734 var_ptypenode5 = var_nodearraylist8;
4735 /* <var_ptypenode5:nullable Object> isa nullable AType */
4736 cltype19 = type_nullable_parser_nodes__AType.color;
4737 idtype20 = type_nullable_parser_nodes__AType.id;
4738 if(var_ptypenode5 == NULL) {
4739 var18 = 1;
4740 } else {
4741 if(cltype19 >= var_ptypenode5->type->table_size) {
4742 var18 = 0;
4743 } else {
4744 var18 = var_ptypenode5->type->type_table[cltype19] == idtype20;
4745 }
4746 }
4747 if (!var18) {
4748 fprintf(stderr, "Runtime error: %s", "Assert failed");
4749 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27794);
4750 exit(1);
4751 }
4752 var_tcparnode6 = var_nodearraylist10;
4753 /* <var_tcparnode6:nullable Object> isa nullable TCpar */
4754 cltype22 = type_nullable_parser_nodes__TCpar.color;
4755 idtype23 = type_nullable_parser_nodes__TCpar.id;
4756 if(var_tcparnode6 == NULL) {
4757 var21 = 1;
4758 } else {
4759 if(cltype22 >= var_tcparnode6->type->table_size) {
4760 var21 = 0;
4761 } else {
4762 var21 = var_tcparnode6->type->type_table[cltype22] == idtype23;
4763 }
4764 }
4765 if (!var21) {
4766 fprintf(stderr, "Runtime error: %s", "Assert failed");
4767 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27796);
4768 exit(1);
4769 }
4770 var24 = NEW_parser_nodes__AAsCastExpr(&type_parser_nodes__AAsCastExpr);
4771 ((void (*)(val*, val*, val*, val*, val*, val*))(var24->class->vft[COLOR_parser_prod__AAsCastExpr__init_aascastexpr]))(var24, var_pexprnode2, var_tkwasnode3, var_toparnode4, var_ptypenode5, var_tcparnode6) /* init_aascastexpr on <var24:AAsCastExpr>*/;
4772 CHECK_NEW_parser_nodes__AAsCastExpr(var24);
4773 var_pexprnode1 = var24;
4774 var_node_list = var_pexprnode1;
4775 var25 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction801> */
4776 var26 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var25) /* go_to on <var_p:Parser>*/;
4777 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var26, var_node_list) /* push on <var_p:Parser>*/;
4778 RET_LABEL:;
4779 }
4780 /* method parser#ReduceAction801#action for (self: Object, Parser) */
4781 void VIRTUAL_parser__ReduceAction801__action(val* self, val* p0) {
4782 parser__ReduceAction801__action(self, p0);
4783 RET_LABEL:;
4784 }
4785 /* method parser#ReduceAction802#action for (self: ReduceAction802, Parser) */
4786 void parser__ReduceAction802__action(val* self, val* p0) {
4787 val* var_p /* var p: Parser */;
4788 val* var /* : null */;
4789 val* var_node_list /* var node_list: nullable Object */;
4790 val* var1 /* : nullable Object */;
4791 val* var_nodearraylist12 /* var nodearraylist12: nullable Object */;
4792 val* var2 /* : nullable Object */;
4793 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
4794 val* var3 /* : nullable Object */;
4795 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
4796 val* var4 /* : nullable Object */;
4797 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
4798 val* var5 /* : nullable Object */;
4799 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
4800 val* var6 /* : nullable Object */;
4801 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
4802 val* var7 /* : nullable Object */;
4803 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4804 val* var8 /* : nullable Object */;
4805 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4806 val* var9 /* : nullable Object */;
4807 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4808 val* var10 /* : nullable Object */;
4809 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4810 val* var11 /* : nullable Object */;
4811 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4812 val* var12 /* : nullable Object */;
4813 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4814 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
4815 short int var13 /* : Bool */;
4816 int cltype;
4817 int idtype;
4818 val* var_tkwasnode3 /* var tkwasnode3: nullable Object */;
4819 short int var14 /* : Bool */;
4820 int cltype15;
4821 int idtype16;
4822 val* var_toparnode4 /* var toparnode4: nullable Object */;
4823 short int var17 /* : Bool */;
4824 int cltype18;
4825 int idtype19;
4826 val* var_tkwnotnode5 /* var tkwnotnode5: nullable Object */;
4827 short int var20 /* : Bool */;
4828 int cltype21;
4829 int idtype22;
4830 val* var_tkwnullnode6 /* var tkwnullnode6: nullable Object */;
4831 short int var23 /* : Bool */;
4832 int cltype24;
4833 int idtype25;
4834 val* var_tcparnode7 /* var tcparnode7: nullable Object */;
4835 short int var26 /* : Bool */;
4836 int cltype27;
4837 int idtype28;
4838 val* var29 /* : AAsNotnullExpr */;
4839 val* var_pexprnode1 /* var pexprnode1: nullable AAsNotnullExpr */;
4840 long var30 /* : Int */;
4841 long var31 /* : Int */;
4842 var_p = p0;
4843 var = NULL;
4844 var_node_list = var;
4845 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4846 var_nodearraylist12 = var1;
4847 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4848 var_nodearraylist11 = var2;
4849 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4850 var_nodearraylist10 = var3;
4851 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4852 var_nodearraylist9 = var4;
4853 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4854 var_nodearraylist8 = var5;
4855 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4856 var_nodearraylist7 = var6;
4857 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4858 var_nodearraylist6 = var7;
4859 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4860 var_nodearraylist5 = var8;
4861 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4862 var_nodearraylist4 = var9;
4863 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4864 var_nodearraylist3 = var10;
4865 var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4866 var_nodearraylist2 = var11;
4867 var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4868 var_nodearraylist1 = var12;
4869 var_pexprnode2 = var_nodearraylist1;
4870 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
4871 cltype = type_nullable_parser_nodes__AExpr.color;
4872 idtype = type_nullable_parser_nodes__AExpr.id;
4873 if(var_pexprnode2 == NULL) {
4874 var13 = 1;
4875 } else {
4876 if(cltype >= var_pexprnode2->type->table_size) {
4877 var13 = 0;
4878 } else {
4879 var13 = var_pexprnode2->type->type_table[cltype] == idtype;
4880 }
4881 }
4882 if (!var13) {
4883 fprintf(stderr, "Runtime error: %s", "Assert failed");
4884 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27826);
4885 exit(1);
4886 }
4887 var_tkwasnode3 = var_nodearraylist4;
4888 /* <var_tkwasnode3:nullable Object> isa nullable TKwas */
4889 cltype15 = type_nullable_parser_nodes__TKwas.color;
4890 idtype16 = type_nullable_parser_nodes__TKwas.id;
4891 if(var_tkwasnode3 == NULL) {
4892 var14 = 1;
4893 } else {
4894 if(cltype15 >= var_tkwasnode3->type->table_size) {
4895 var14 = 0;
4896 } else {
4897 var14 = var_tkwasnode3->type->type_table[cltype15] == idtype16;
4898 }
4899 }
4900 if (!var14) {
4901 fprintf(stderr, "Runtime error: %s", "Assert failed");
4902 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27828);
4903 exit(1);
4904 }
4905 var_toparnode4 = var_nodearraylist6;
4906 /* <var_toparnode4:nullable Object> isa nullable TOpar */
4907 cltype18 = type_nullable_parser_nodes__TOpar.color;
4908 idtype19 = type_nullable_parser_nodes__TOpar.id;
4909 if(var_toparnode4 == NULL) {
4910 var17 = 1;
4911 } else {
4912 if(cltype18 >= var_toparnode4->type->table_size) {
4913 var17 = 0;
4914 } else {
4915 var17 = var_toparnode4->type->type_table[cltype18] == idtype19;
4916 }
4917 }
4918 if (!var17) {
4919 fprintf(stderr, "Runtime error: %s", "Assert failed");
4920 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27830);
4921 exit(1);
4922 }
4923 var_tkwnotnode5 = var_nodearraylist8;
4924 /* <var_tkwnotnode5:nullable Object> isa nullable TKwnot */
4925 cltype21 = type_nullable_parser_nodes__TKwnot.color;
4926 idtype22 = type_nullable_parser_nodes__TKwnot.id;
4927 if(var_tkwnotnode5 == NULL) {
4928 var20 = 1;
4929 } else {
4930 if(cltype21 >= var_tkwnotnode5->type->table_size) {
4931 var20 = 0;
4932 } else {
4933 var20 = var_tkwnotnode5->type->type_table[cltype21] == idtype22;
4934 }
4935 }
4936 if (!var20) {
4937 fprintf(stderr, "Runtime error: %s", "Assert failed");
4938 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27832);
4939 exit(1);
4940 }
4941 var_tkwnullnode6 = var_nodearraylist10;
4942 /* <var_tkwnullnode6:nullable Object> isa nullable TKwnull */
4943 cltype24 = type_nullable_parser_nodes__TKwnull.color;
4944 idtype25 = type_nullable_parser_nodes__TKwnull.id;
4945 if(var_tkwnullnode6 == NULL) {
4946 var23 = 1;
4947 } else {
4948 if(cltype24 >= var_tkwnullnode6->type->table_size) {
4949 var23 = 0;
4950 } else {
4951 var23 = var_tkwnullnode6->type->type_table[cltype24] == idtype25;
4952 }
4953 }
4954 if (!var23) {
4955 fprintf(stderr, "Runtime error: %s", "Assert failed");
4956 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27834);
4957 exit(1);
4958 }
4959 var_tcparnode7 = var_nodearraylist12;
4960 /* <var_tcparnode7:nullable Object> isa nullable TCpar */
4961 cltype27 = type_nullable_parser_nodes__TCpar.color;
4962 idtype28 = type_nullable_parser_nodes__TCpar.id;
4963 if(var_tcparnode7 == NULL) {
4964 var26 = 1;
4965 } else {
4966 if(cltype27 >= var_tcparnode7->type->table_size) {
4967 var26 = 0;
4968 } else {
4969 var26 = var_tcparnode7->type->type_table[cltype27] == idtype28;
4970 }
4971 }
4972 if (!var26) {
4973 fprintf(stderr, "Runtime error: %s", "Assert failed");
4974 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27836);
4975 exit(1);
4976 }
4977 var29 = NEW_parser_nodes__AAsNotnullExpr(&type_parser_nodes__AAsNotnullExpr);
4978 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var29->class->vft[COLOR_parser_prod__AAsNotnullExpr__init_aasnotnullexpr]))(var29, var_pexprnode2, var_tkwasnode3, var_toparnode4, var_tkwnotnode5, var_tkwnullnode6, var_tcparnode7) /* init_aasnotnullexpr on <var29:AAsNotnullExpr>*/;
4979 CHECK_NEW_parser_nodes__AAsNotnullExpr(var29);
4980 var_pexprnode1 = var29;
4981 var_node_list = var_pexprnode1;
4982 var30 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction802> */
4983 var31 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var30) /* go_to on <var_p:Parser>*/;
4984 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var31, var_node_list) /* push on <var_p:Parser>*/;
4985 RET_LABEL:;
4986 }
4987 /* method parser#ReduceAction802#action for (self: Object, Parser) */
4988 void VIRTUAL_parser__ReduceAction802__action(val* self, val* p0) {
4989 parser__ReduceAction802__action(self, p0);
4990 RET_LABEL:;
4991 }
4992 /* method parser#ReduceAction803#action for (self: ReduceAction803, Parser) */
4993 void parser__ReduceAction803__action(val* self, val* p0) {
4994 val* var_p /* var p: Parser */;
4995 val* var /* : null */;
4996 val* var_node_list /* var node_list: nullable Object */;
4997 val* var1 /* : nullable Object */;
4998 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4999 val* var2 /* : nullable Object */;
5000 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5001 val* var3 /* : Array[Object] */;
5002 val* var_listnode4 /* var listnode4: Array[Object] */;
5003 val* var_listnode2 /* var listnode2: nullable Object */;
5004 short int var4 /* : Bool */;
5005 int cltype;
5006 int idtype;
5007 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
5008 short int var5 /* : Bool */;
5009 int cltype6;
5010 int idtype7;
5011 val* var8 /* : Array[Object] */;
5012 val* var9 /* : null */;
5013 short int var10 /* : Bool */;
5014 val* var11 /* : ASuperstringExpr */;
5015 val* var12 /* : null */;
5016 val* var_pexprnode1 /* var pexprnode1: nullable ASuperstringExpr */;
5017 long var13 /* : Int */;
5018 long var14 /* : Int */;
5019 var_p = p0;
5020 var = NULL;
5021 var_node_list = var;
5022 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5023 var_nodearraylist2 = var1;
5024 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5025 var_nodearraylist1 = var2;
5026 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
5027 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
5028 CHECK_NEW_array__Array(var3);
5029 var_listnode4 = var3;
5030 var_listnode2 = var_nodearraylist1;
5031 /* <var_listnode2:nullable Object> isa Array[Object] */
5032 cltype = type_array__Arraykernel__Object.color;
5033 idtype = type_array__Arraykernel__Object.id;
5034 if(var_listnode2 == NULL) {
5035 var4 = 0;
5036 } else {
5037 if(cltype >= var_listnode2->type->table_size) {
5038 var4 = 0;
5039 } else {
5040 var4 = var_listnode2->type->type_table[cltype] == idtype;
5041 }
5042 }
5043 if (!var4) {
5044 fprintf(stderr, "Runtime error: %s", "Assert failed");
5045 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27858);
5046 exit(1);
5047 }
5048 var_pexprnode3 = var_nodearraylist2;
5049 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
5050 cltype6 = type_nullable_parser_nodes__AExpr.color;
5051 idtype7 = type_nullable_parser_nodes__AExpr.id;
5052 if(var_pexprnode3 == NULL) {
5053 var5 = 1;
5054 } else {
5055 if(cltype6 >= var_pexprnode3->type->table_size) {
5056 var5 = 0;
5057 } else {
5058 var5 = var_pexprnode3->type->type_table[cltype6] == idtype7;
5059 }
5060 }
5061 if (!var5) {
5062 fprintf(stderr, "Runtime error: %s", "Assert failed");
5063 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27860);
5064 exit(1);
5065 }
5066 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode2) /* concat on <self:ReduceAction803>*/;
5067 var_listnode4 = var8;
5068 var9 = NULL;
5069 if (var_pexprnode3 == NULL) {
5070 var10 = 0; /* is null */
5071 } else {
5072 var10 = 1; /* arg is null and recv is not */
5073 }
5074 if (var10){
5075 ((void (*)(val*, val*))(var_listnode4->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode4, var_pexprnode3) /* add on <var_listnode4:Array[Object]>*/;
5076 } else {
5077 }
5078 var11 = NEW_parser_nodes__ASuperstringExpr(&type_parser_nodes__ASuperstringExpr);
5079 var12 = NULL;
5080 ((void (*)(val*, val*, val*))(var11->class->vft[COLOR_parser_prod__ASuperstringExpr__init_asuperstringexpr]))(var11, var_listnode4, var12) /* init_asuperstringexpr on <var11:ASuperstringExpr>*/;
5081 CHECK_NEW_parser_nodes__ASuperstringExpr(var11);
5082 var_pexprnode1 = var11;
5083 var_node_list = var_pexprnode1;
5084 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction803> */
5085 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
5086 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
5087 RET_LABEL:;
5088 }
5089 /* method parser#ReduceAction803#action for (self: Object, Parser) */
5090 void VIRTUAL_parser__ReduceAction803__action(val* self, val* p0) {
5091 parser__ReduceAction803__action(self, p0);
5092 RET_LABEL:;
5093 }
5094 /* method parser#ReduceAction804#action for (self: ReduceAction804, Parser) */
5095 void parser__ReduceAction804__action(val* self, val* p0) {
5096 val* var_p /* var p: Parser */;
5097 val* var /* : null */;
5098 val* var_node_list /* var node_list: nullable Object */;
5099 val* var1 /* : nullable Object */;
5100 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5101 val* var2 /* : nullable Object */;
5102 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5103 val* var3 /* : nullable Object */;
5104 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5105 val* var4 /* : Array[Object] */;
5106 val* var_listnode5 /* var listnode5: Array[Object] */;
5107 val* var_listnode2 /* var listnode2: nullable Object */;
5108 short int var5 /* : Bool */;
5109 int cltype;
5110 int idtype;
5111 val* var_listnode3 /* var listnode3: nullable Object */;
5112 short int var6 /* : Bool */;
5113 int cltype7;
5114 int idtype8;
5115 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
5116 short int var9 /* : Bool */;
5117 int cltype10;
5118 int idtype11;
5119 val* var12 /* : Array[Object] */;
5120 val* var13 /* : Array[Object] */;
5121 val* var14 /* : null */;
5122 short int var15 /* : Bool */;
5123 val* var16 /* : ASuperstringExpr */;
5124 val* var17 /* : null */;
5125 val* var_pexprnode1 /* var pexprnode1: nullable ASuperstringExpr */;
5126 long var18 /* : Int */;
5127 long var19 /* : Int */;
5128 var_p = p0;
5129 var = NULL;
5130 var_node_list = var;
5131 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5132 var_nodearraylist3 = var1;
5133 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5134 var_nodearraylist2 = var2;
5135 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5136 var_nodearraylist1 = var3;
5137 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
5138 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
5139 CHECK_NEW_array__Array(var4);
5140 var_listnode5 = var4;
5141 var_listnode2 = var_nodearraylist1;
5142 /* <var_listnode2:nullable Object> isa Array[Object] */
5143 cltype = type_array__Arraykernel__Object.color;
5144 idtype = type_array__Arraykernel__Object.id;
5145 if(var_listnode2 == NULL) {
5146 var5 = 0;
5147 } else {
5148 if(cltype >= var_listnode2->type->table_size) {
5149 var5 = 0;
5150 } else {
5151 var5 = var_listnode2->type->type_table[cltype] == idtype;
5152 }
5153 }
5154 if (!var5) {
5155 fprintf(stderr, "Runtime error: %s", "Assert failed");
5156 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27883);
5157 exit(1);
5158 }
5159 var_listnode3 = var_nodearraylist2;
5160 /* <var_listnode3:nullable Object> isa Array[Object] */
5161 cltype7 = type_array__Arraykernel__Object.color;
5162 idtype8 = type_array__Arraykernel__Object.id;
5163 if(var_listnode3 == NULL) {
5164 var6 = 0;
5165 } else {
5166 if(cltype7 >= var_listnode3->type->table_size) {
5167 var6 = 0;
5168 } else {
5169 var6 = var_listnode3->type->type_table[cltype7] == idtype8;
5170 }
5171 }
5172 if (!var6) {
5173 fprintf(stderr, "Runtime error: %s", "Assert failed");
5174 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27885);
5175 exit(1);
5176 }
5177 var_pexprnode4 = var_nodearraylist3;
5178 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
5179 cltype10 = type_nullable_parser_nodes__AExpr.color;
5180 idtype11 = type_nullable_parser_nodes__AExpr.id;
5181 if(var_pexprnode4 == NULL) {
5182 var9 = 1;
5183 } else {
5184 if(cltype10 >= var_pexprnode4->type->table_size) {
5185 var9 = 0;
5186 } else {
5187 var9 = var_pexprnode4->type->type_table[cltype10] == idtype11;
5188 }
5189 }
5190 if (!var9) {
5191 fprintf(stderr, "Runtime error: %s", "Assert failed");
5192 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27887);
5193 exit(1);
5194 }
5195 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode2) /* concat on <self:ReduceAction804>*/;
5196 var_listnode5 = var12;
5197 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode3) /* concat on <self:ReduceAction804>*/;
5198 var_listnode5 = var13;
5199 var14 = NULL;
5200 if (var_pexprnode4 == NULL) {
5201 var15 = 0; /* is null */
5202 } else {
5203 var15 = 1; /* arg is null and recv is not */
5204 }
5205 if (var15){
5206 ((void (*)(val*, val*))(var_listnode5->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode5, var_pexprnode4) /* add on <var_listnode5:Array[Object]>*/;
5207 } else {
5208 }
5209 var16 = NEW_parser_nodes__ASuperstringExpr(&type_parser_nodes__ASuperstringExpr);
5210 var17 = NULL;
5211 ((void (*)(val*, val*, val*))(var16->class->vft[COLOR_parser_prod__ASuperstringExpr__init_asuperstringexpr]))(var16, var_listnode5, var17) /* init_asuperstringexpr on <var16:ASuperstringExpr>*/;
5212 CHECK_NEW_parser_nodes__ASuperstringExpr(var16);
5213 var_pexprnode1 = var16;
5214 var_node_list = var_pexprnode1;
5215 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction804> */
5216 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
5217 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
5218 RET_LABEL:;
5219 }
5220 /* method parser#ReduceAction804#action for (self: Object, Parser) */
5221 void VIRTUAL_parser__ReduceAction804__action(val* self, val* p0) {
5222 parser__ReduceAction804__action(self, p0);
5223 RET_LABEL:;
5224 }
5225 /* method parser#ReduceAction805#action for (self: ReduceAction805, Parser) */
5226 void parser__ReduceAction805__action(val* self, val* p0) {
5227 val* var_p /* var p: Parser */;
5228 val* var /* : null */;
5229 val* var_node_list /* var node_list: nullable Object */;
5230 val* var1 /* : nullable Object */;
5231 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5232 val* var2 /* : nullable Object */;
5233 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5234 val* var3 /* : nullable Object */;
5235 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5236 val* var4 /* : Array[Object] */;
5237 val* var_listnode4 /* var listnode4: Array[Object] */;
5238 val* var_listnode2 /* var listnode2: nullable Object */;
5239 short int var5 /* : Bool */;
5240 int cltype;
5241 int idtype;
5242 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
5243 short int var6 /* : Bool */;
5244 int cltype7;
5245 int idtype8;
5246 val* var9 /* : Array[Object] */;
5247 val* var10 /* : null */;
5248 short int var11 /* : Bool */;
5249 val* var_pannotationsnode5 /* var pannotationsnode5: nullable Object */;
5250 short int var12 /* : Bool */;
5251 int cltype13;
5252 int idtype14;
5253 val* var15 /* : ASuperstringExpr */;
5254 val* var_pexprnode1 /* var pexprnode1: nullable ASuperstringExpr */;
5255 long var16 /* : Int */;
5256 long var17 /* : Int */;
5257 var_p = p0;
5258 var = NULL;
5259 var_node_list = var;
5260 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5261 var_nodearraylist3 = var1;
5262 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5263 var_nodearraylist2 = var2;
5264 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5265 var_nodearraylist1 = var3;
5266 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
5267 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
5268 CHECK_NEW_array__Array(var4);
5269 var_listnode4 = var4;
5270 var_listnode2 = var_nodearraylist1;
5271 /* <var_listnode2:nullable Object> isa Array[Object] */
5272 cltype = type_array__Arraykernel__Object.color;
5273 idtype = type_array__Arraykernel__Object.id;
5274 if(var_listnode2 == NULL) {
5275 var5 = 0;
5276 } else {
5277 if(cltype >= var_listnode2->type->table_size) {
5278 var5 = 0;
5279 } else {
5280 var5 = var_listnode2->type->type_table[cltype] == idtype;
5281 }
5282 }
5283 if (!var5) {
5284 fprintf(stderr, "Runtime error: %s", "Assert failed");
5285 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27911);
5286 exit(1);
5287 }
5288 var_pexprnode3 = var_nodearraylist2;
5289 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
5290 cltype7 = type_nullable_parser_nodes__AExpr.color;
5291 idtype8 = type_nullable_parser_nodes__AExpr.id;
5292 if(var_pexprnode3 == NULL) {
5293 var6 = 1;
5294 } else {
5295 if(cltype7 >= var_pexprnode3->type->table_size) {
5296 var6 = 0;
5297 } else {
5298 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
5299 }
5300 }
5301 if (!var6) {
5302 fprintf(stderr, "Runtime error: %s", "Assert failed");
5303 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27913);
5304 exit(1);
5305 }
5306 var9 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode2) /* concat on <self:ReduceAction805>*/;
5307 var_listnode4 = var9;
5308 var10 = NULL;
5309 if (var_pexprnode3 == NULL) {
5310 var11 = 0; /* is null */
5311 } else {
5312 var11 = 1; /* arg is null and recv is not */
5313 }
5314 if (var11){
5315 ((void (*)(val*, val*))(var_listnode4->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode4, var_pexprnode3) /* add on <var_listnode4:Array[Object]>*/;
5316 } else {
5317 }
5318 var_pannotationsnode5 = var_nodearraylist3;
5319 /* <var_pannotationsnode5:nullable Object> isa nullable AAnnotations */
5320 cltype13 = type_nullable_parser_nodes__AAnnotations.color;
5321 idtype14 = type_nullable_parser_nodes__AAnnotations.id;
5322 if(var_pannotationsnode5 == NULL) {
5323 var12 = 1;
5324 } else {
5325 if(cltype13 >= var_pannotationsnode5->type->table_size) {
5326 var12 = 0;
5327 } else {
5328 var12 = var_pannotationsnode5->type->type_table[cltype13] == idtype14;
5329 }
5330 }
5331 if (!var12) {
5332 fprintf(stderr, "Runtime error: %s", "Assert failed");
5333 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27919);
5334 exit(1);
5335 }
5336 var15 = NEW_parser_nodes__ASuperstringExpr(&type_parser_nodes__ASuperstringExpr);
5337 ((void (*)(val*, val*, val*))(var15->class->vft[COLOR_parser_prod__ASuperstringExpr__init_asuperstringexpr]))(var15, var_listnode4, var_pannotationsnode5) /* init_asuperstringexpr on <var15:ASuperstringExpr>*/;
5338 CHECK_NEW_parser_nodes__ASuperstringExpr(var15);
5339 var_pexprnode1 = var15;
5340 var_node_list = var_pexprnode1;
5341 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction805> */
5342 var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
5343 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
5344 RET_LABEL:;
5345 }
5346 /* method parser#ReduceAction805#action for (self: Object, Parser) */
5347 void VIRTUAL_parser__ReduceAction805__action(val* self, val* p0) {
5348 parser__ReduceAction805__action(self, p0);
5349 RET_LABEL:;
5350 }
5351 /* method parser#ReduceAction806#action for (self: ReduceAction806, Parser) */
5352 void parser__ReduceAction806__action(val* self, val* p0) {
5353 val* var_p /* var p: Parser */;
5354 val* var /* : null */;
5355 val* var_node_list /* var node_list: nullable Object */;
5356 val* var1 /* : nullable Object */;
5357 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5358 val* var2 /* : nullable Object */;
5359 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5360 val* var3 /* : nullable Object */;
5361 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5362 val* var4 /* : nullable Object */;
5363 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5364 val* var5 /* : Array[Object] */;
5365 val* var_listnode5 /* var listnode5: Array[Object] */;
5366 val* var_listnode2 /* var listnode2: nullable Object */;
5367 short int var6 /* : Bool */;
5368 int cltype;
5369 int idtype;
5370 val* var_listnode3 /* var listnode3: nullable Object */;
5371 short int var7 /* : Bool */;
5372 int cltype8;
5373 int idtype9;
5374 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
5375 short int var10 /* : Bool */;
5376 int cltype11;
5377 int idtype12;
5378 val* var13 /* : Array[Object] */;
5379 val* var14 /* : Array[Object] */;
5380 val* var15 /* : null */;
5381 short int var16 /* : Bool */;
5382 val* var_pannotationsnode6 /* var pannotationsnode6: nullable Object */;
5383 short int var17 /* : Bool */;
5384 int cltype18;
5385 int idtype19;
5386 val* var20 /* : ASuperstringExpr */;
5387 val* var_pexprnode1 /* var pexprnode1: nullable ASuperstringExpr */;
5388 long var21 /* : Int */;
5389 long var22 /* : Int */;
5390 var_p = p0;
5391 var = NULL;
5392 var_node_list = var;
5393 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5394 var_nodearraylist4 = var1;
5395 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5396 var_nodearraylist3 = var2;
5397 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5398 var_nodearraylist2 = var3;
5399 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5400 var_nodearraylist1 = var4;
5401 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
5402 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
5403 CHECK_NEW_array__Array(var5);
5404 var_listnode5 = var5;
5405 var_listnode2 = var_nodearraylist1;
5406 /* <var_listnode2:nullable Object> isa Array[Object] */
5407 cltype = type_array__Arraykernel__Object.color;
5408 idtype = type_array__Arraykernel__Object.id;
5409 if(var_listnode2 == NULL) {
5410 var6 = 0;
5411 } else {
5412 if(cltype >= var_listnode2->type->table_size) {
5413 var6 = 0;
5414 } else {
5415 var6 = var_listnode2->type->type_table[cltype] == idtype;
5416 }
5417 }
5418 if (!var6) {
5419 fprintf(stderr, "Runtime error: %s", "Assert failed");
5420 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27939);
5421 exit(1);
5422 }
5423 var_listnode3 = var_nodearraylist2;
5424 /* <var_listnode3:nullable Object> isa Array[Object] */
5425 cltype8 = type_array__Arraykernel__Object.color;
5426 idtype9 = type_array__Arraykernel__Object.id;
5427 if(var_listnode3 == NULL) {
5428 var7 = 0;
5429 } else {
5430 if(cltype8 >= var_listnode3->type->table_size) {
5431 var7 = 0;
5432 } else {
5433 var7 = var_listnode3->type->type_table[cltype8] == idtype9;
5434 }
5435 }
5436 if (!var7) {
5437 fprintf(stderr, "Runtime error: %s", "Assert failed");
5438 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27941);
5439 exit(1);
5440 }
5441 var_pexprnode4 = var_nodearraylist3;
5442 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
5443 cltype11 = type_nullable_parser_nodes__AExpr.color;
5444 idtype12 = type_nullable_parser_nodes__AExpr.id;
5445 if(var_pexprnode4 == NULL) {
5446 var10 = 1;
5447 } else {
5448 if(cltype11 >= var_pexprnode4->type->table_size) {
5449 var10 = 0;
5450 } else {
5451 var10 = var_pexprnode4->type->type_table[cltype11] == idtype12;
5452 }
5453 }
5454 if (!var10) {
5455 fprintf(stderr, "Runtime error: %s", "Assert failed");
5456 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27943);
5457 exit(1);
5458 }
5459 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode2) /* concat on <self:ReduceAction806>*/;
5460 var_listnode5 = var13;
5461 var14 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode3) /* concat on <self:ReduceAction806>*/;
5462 var_listnode5 = var14;
5463 var15 = NULL;
5464 if (var_pexprnode4 == NULL) {
5465 var16 = 0; /* is null */
5466 } else {
5467 var16 = 1; /* arg is null and recv is not */
5468 }
5469 if (var16){
5470 ((void (*)(val*, val*))(var_listnode5->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode5, var_pexprnode4) /* add on <var_listnode5:Array[Object]>*/;
5471 } else {
5472 }
5473 var_pannotationsnode6 = var_nodearraylist4;
5474 /* <var_pannotationsnode6:nullable Object> isa nullable AAnnotations */
5475 cltype18 = type_nullable_parser_nodes__AAnnotations.color;
5476 idtype19 = type_nullable_parser_nodes__AAnnotations.id;
5477 if(var_pannotationsnode6 == NULL) {
5478 var17 = 1;
5479 } else {
5480 if(cltype18 >= var_pannotationsnode6->type->table_size) {
5481 var17 = 0;
5482 } else {
5483 var17 = var_pannotationsnode6->type->type_table[cltype18] == idtype19;
5484 }
5485 }
5486 if (!var17) {
5487 fprintf(stderr, "Runtime error: %s", "Assert failed");
5488 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27950);
5489 exit(1);
5490 }
5491 var20 = NEW_parser_nodes__ASuperstringExpr(&type_parser_nodes__ASuperstringExpr);
5492 ((void (*)(val*, val*, val*))(var20->class->vft[COLOR_parser_prod__ASuperstringExpr__init_asuperstringexpr]))(var20, var_listnode5, var_pannotationsnode6) /* init_asuperstringexpr on <var20:ASuperstringExpr>*/;
5493 CHECK_NEW_parser_nodes__ASuperstringExpr(var20);
5494 var_pexprnode1 = var20;
5495 var_node_list = var_pexprnode1;
5496 var21 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction806> */
5497 var22 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var21) /* go_to on <var_p:Parser>*/;
5498 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var22, var_node_list) /* push on <var_p:Parser>*/;
5499 RET_LABEL:;
5500 }
5501 /* method parser#ReduceAction806#action for (self: Object, Parser) */
5502 void VIRTUAL_parser__ReduceAction806__action(val* self, val* p0) {
5503 parser__ReduceAction806__action(self, p0);
5504 RET_LABEL:;
5505 }
5506 /* method parser#ReduceAction807#action for (self: ReduceAction807, Parser) */
5507 void parser__ReduceAction807__action(val* self, val* p0) {
5508 val* var_p /* var p: Parser */;
5509 val* var /* : null */;
5510 val* var_node_list /* var node_list: nullable Object */;
5511 val* var1 /* : nullable Object */;
5512 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5513 val* var2 /* : nullable Object */;
5514 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5515 val* var3 /* : nullable Object */;
5516 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5517 val* var4 /* : nullable Object */;
5518 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5519 val* var5 /* : Array[Object] */;
5520 val* var_listnode3 /* var listnode3: Array[Object] */;
5521 val* var_pexprnode1 /* var pexprnode1: nullable Object */;
5522 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
5523 val* var6 /* : null */;
5524 short int var7 /* : Bool */;
5525 val* var8 /* : null */;
5526 short int var9 /* : Bool */;
5527 long var10 /* : Int */;
5528 long var11 /* : Int */;
5529 var_p = p0;
5530 var = NULL;
5531 var_node_list = var;
5532 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5533 var_nodearraylist4 = var1;
5534 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5535 var_nodearraylist3 = var2;
5536 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5537 var_nodearraylist2 = var3;
5538 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5539 var_nodearraylist1 = var4;
5540 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
5541 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
5542 CHECK_NEW_array__Array(var5);
5543 var_listnode3 = var5;
5544 var_pexprnode1 = var_nodearraylist1;
5545 var_pexprnode2 = var_nodearraylist3;
5546 var6 = NULL;
5547 if (var_pexprnode1 == NULL) {
5548 var7 = 0; /* is null */
5549 } else {
5550 var7 = 1; /* arg is null and recv is not */
5551 }
5552 if (var7){
5553 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pexprnode1) /* add on <var_listnode3:Array[Object]>*/;
5554 } else {
5555 }
5556 var8 = NULL;
5557 if (var_pexprnode2 == NULL) {
5558 var9 = 0; /* is null */
5559 } else {
5560 var9 = 1; /* arg is null and recv is not */
5561 }
5562 if (var9){
5563 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pexprnode2) /* add on <var_listnode3:Array[Object]>*/;
5564 } else {
5565 }
5566 var_node_list = var_listnode3;
5567 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction807> */
5568 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
5569 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
5570 RET_LABEL:;
5571 }
5572 /* method parser#ReduceAction807#action for (self: Object, Parser) */
5573 void VIRTUAL_parser__ReduceAction807__action(val* self, val* p0) {
5574 parser__ReduceAction807__action(self, p0);
5575 RET_LABEL:;
5576 }
5577 /* method parser#ReduceAction808#action for (self: ReduceAction808, Parser) */
5578 void parser__ReduceAction808__action(val* self, val* p0) {
5579 val* var_p /* var p: Parser */;
5580 val* var /* : null */;
5581 val* var_node_list /* var node_list: nullable Object */;
5582 val* var1 /* : nullable Object */;
5583 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5584 val* var_tstartstringnode2 /* var tstartstringnode2: nullable Object */;
5585 short int var2 /* : Bool */;
5586 int cltype;
5587 int idtype;
5588 val* var3 /* : AStartStringExpr */;
5589 val* var_pexprnode1 /* var pexprnode1: nullable AStartStringExpr */;
5590 long var4 /* : Int */;
5591 long var5 /* : Int */;
5592 var_p = p0;
5593 var = NULL;
5594 var_node_list = var;
5595 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5596 var_nodearraylist1 = var1;
5597 var_tstartstringnode2 = var_nodearraylist1;
5598 /* <var_tstartstringnode2:nullable Object> isa nullable TStartString */
5599 cltype = type_nullable_parser_nodes__TStartString.color;
5600 idtype = type_nullable_parser_nodes__TStartString.id;
5601 if(var_tstartstringnode2 == NULL) {
5602 var2 = 1;
5603 } else {
5604 if(cltype >= var_tstartstringnode2->type->table_size) {
5605 var2 = 0;
5606 } else {
5607 var2 = var_tstartstringnode2->type->type_table[cltype] == idtype;
5608 }
5609 }
5610 if (!var2) {
5611 fprintf(stderr, "Runtime error: %s", "Assert failed");
5612 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 27988);
5613 exit(1);
5614 }
5615 var3 = NEW_parser_nodes__AStartStringExpr(&type_parser_nodes__AStartStringExpr);
5616 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AStartStringExpr__init_astartstringexpr]))(var3, var_tstartstringnode2) /* init_astartstringexpr on <var3:AStartStringExpr>*/;
5617 CHECK_NEW_parser_nodes__AStartStringExpr(var3);
5618 var_pexprnode1 = var3;
5619 var_node_list = var_pexprnode1;
5620 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction808> */
5621 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
5622 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
5623 RET_LABEL:;
5624 }
5625 /* method parser#ReduceAction808#action for (self: Object, Parser) */
5626 void VIRTUAL_parser__ReduceAction808__action(val* self, val* p0) {
5627 parser__ReduceAction808__action(self, p0);
5628 RET_LABEL:;
5629 }
5630 /* method parser#ReduceAction810#action for (self: ReduceAction810, Parser) */
5631 void parser__ReduceAction810__action(val* self, val* p0) {
5632 val* var_p /* var p: Parser */;
5633 val* var /* : null */;
5634 val* var_node_list /* var node_list: nullable Object */;
5635 val* var1 /* : nullable Object */;
5636 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5637 val* var_tmidstringnode2 /* var tmidstringnode2: nullable Object */;
5638 short int var2 /* : Bool */;
5639 int cltype;
5640 int idtype;
5641 val* var3 /* : AMidStringExpr */;
5642 val* var_pexprnode1 /* var pexprnode1: nullable AMidStringExpr */;
5643 long var4 /* : Int */;
5644 long var5 /* : Int */;
5645 var_p = p0;
5646 var = NULL;
5647 var_node_list = var;
5648 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5649 var_nodearraylist1 = var1;
5650 var_tmidstringnode2 = var_nodearraylist1;
5651 /* <var_tmidstringnode2:nullable Object> isa nullable TMidString */
5652 cltype = type_nullable_parser_nodes__TMidString.color;
5653 idtype = type_nullable_parser_nodes__TMidString.id;
5654 if(var_tmidstringnode2 == NULL) {
5655 var2 = 1;
5656 } else {
5657 if(cltype >= var_tmidstringnode2->type->table_size) {
5658 var2 = 0;
5659 } else {
5660 var2 = var_tmidstringnode2->type->type_table[cltype] == idtype;
5661 }
5662 }
5663 if (!var2) {
5664 fprintf(stderr, "Runtime error: %s", "Assert failed");
5665 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28003);
5666 exit(1);
5667 }
5668 var3 = NEW_parser_nodes__AMidStringExpr(&type_parser_nodes__AMidStringExpr);
5669 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AMidStringExpr__init_amidstringexpr]))(var3, var_tmidstringnode2) /* init_amidstringexpr on <var3:AMidStringExpr>*/;
5670 CHECK_NEW_parser_nodes__AMidStringExpr(var3);
5671 var_pexprnode1 = var3;
5672 var_node_list = var_pexprnode1;
5673 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction810> */
5674 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
5675 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
5676 RET_LABEL:;
5677 }
5678 /* method parser#ReduceAction810#action for (self: Object, Parser) */
5679 void VIRTUAL_parser__ReduceAction810__action(val* self, val* p0) {
5680 parser__ReduceAction810__action(self, p0);
5681 RET_LABEL:;
5682 }
5683 /* method parser#ReduceAction811#action for (self: ReduceAction811, Parser) */
5684 void parser__ReduceAction811__action(val* self, val* p0) {
5685 val* var_p /* var p: Parser */;
5686 val* var /* : null */;
5687 val* var_node_list /* var node_list: nullable Object */;
5688 val* var1 /* : nullable Object */;
5689 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5690 val* var_tendstringnode2 /* var tendstringnode2: nullable Object */;
5691 short int var2 /* : Bool */;
5692 int cltype;
5693 int idtype;
5694 val* var3 /* : AEndStringExpr */;
5695 val* var_pexprnode1 /* var pexprnode1: nullable AEndStringExpr */;
5696 long var4 /* : Int */;
5697 long var5 /* : Int */;
5698 var_p = p0;
5699 var = NULL;
5700 var_node_list = var;
5701 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5702 var_nodearraylist1 = var1;
5703 var_tendstringnode2 = var_nodearraylist1;
5704 /* <var_tendstringnode2:nullable Object> isa nullable TEndString */
5705 cltype = type_nullable_parser_nodes__TEndString.color;
5706 idtype = type_nullable_parser_nodes__TEndString.id;
5707 if(var_tendstringnode2 == NULL) {
5708 var2 = 1;
5709 } else {
5710 if(cltype >= var_tendstringnode2->type->table_size) {
5711 var2 = 0;
5712 } else {
5713 var2 = var_tendstringnode2->type->type_table[cltype] == idtype;
5714 }
5715 }
5716 if (!var2) {
5717 fprintf(stderr, "Runtime error: %s", "Assert failed");
5718 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28018);
5719 exit(1);
5720 }
5721 var3 = NEW_parser_nodes__AEndStringExpr(&type_parser_nodes__AEndStringExpr);
5722 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AEndStringExpr__init_aendstringexpr]))(var3, var_tendstringnode2) /* init_aendstringexpr on <var3:AEndStringExpr>*/;
5723 CHECK_NEW_parser_nodes__AEndStringExpr(var3);
5724 var_pexprnode1 = var3;
5725 var_node_list = var_pexprnode1;
5726 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction811> */
5727 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
5728 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
5729 RET_LABEL:;
5730 }
5731 /* method parser#ReduceAction811#action for (self: Object, Parser) */
5732 void VIRTUAL_parser__ReduceAction811__action(val* self, val* p0) {
5733 parser__ReduceAction811__action(self, p0);
5734 RET_LABEL:;
5735 }
5736 /* method parser#ReduceAction812#action for (self: ReduceAction812, Parser) */
5737 void parser__ReduceAction812__action(val* self, val* p0) {
5738 val* var_p /* var p: Parser */;
5739 val* var /* : null */;
5740 val* var_node_list /* var node_list: nullable Object */;
5741 val* var1 /* : nullable Object */;
5742 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5743 val* var2 /* : nullable Object */;
5744 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5745 val* var3 /* : Array[Object] */;
5746 val* var_listnode5 /* var listnode5: Array[Object] */;
5747 val* var_tatnode2 /* var tatnode2: nullable Object */;
5748 short int var4 /* : Bool */;
5749 int cltype;
5750 int idtype;
5751 val* var_pannotationnode4 /* var pannotationnode4: nullable Object */;
5752 short int var5 /* : Bool */;
5753 int cltype6;
5754 int idtype7;
5755 val* var8 /* : null */;
5756 short int var9 /* : Bool */;
5757 val* var10 /* : AAnnotations */;
5758 val* var11 /* : null */;
5759 val* var12 /* : null */;
5760 val* var_pannotationsnode1 /* var pannotationsnode1: nullable AAnnotations */;
5761 long var13 /* : Int */;
5762 long var14 /* : Int */;
5763 var_p = p0;
5764 var = NULL;
5765 var_node_list = var;
5766 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5767 var_nodearraylist2 = var1;
5768 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5769 var_nodearraylist1 = var2;
5770 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
5771 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
5772 CHECK_NEW_array__Array(var3);
5773 var_listnode5 = var3;
5774 var_tatnode2 = var_nodearraylist1;
5775 /* <var_tatnode2:nullable Object> isa nullable TAt */
5776 cltype = type_nullable_parser_nodes__TAt.color;
5777 idtype = type_nullable_parser_nodes__TAt.id;
5778 if(var_tatnode2 == NULL) {
5779 var4 = 1;
5780 } else {
5781 if(cltype >= var_tatnode2->type->table_size) {
5782 var4 = 0;
5783 } else {
5784 var4 = var_tatnode2->type->type_table[cltype] == idtype;
5785 }
5786 }
5787 if (!var4) {
5788 fprintf(stderr, "Runtime error: %s", "Assert failed");
5789 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28035);
5790 exit(1);
5791 }
5792 var_pannotationnode4 = var_nodearraylist2;
5793 /* <var_pannotationnode4:nullable Object> isa nullable AAnnotation */
5794 cltype6 = type_nullable_parser_nodes__AAnnotation.color;
5795 idtype7 = type_nullable_parser_nodes__AAnnotation.id;
5796 if(var_pannotationnode4 == NULL) {
5797 var5 = 1;
5798 } else {
5799 if(cltype6 >= var_pannotationnode4->type->table_size) {
5800 var5 = 0;
5801 } else {
5802 var5 = var_pannotationnode4->type->type_table[cltype6] == idtype7;
5803 }
5804 }
5805 if (!var5) {
5806 fprintf(stderr, "Runtime error: %s", "Assert failed");
5807 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28037);
5808 exit(1);
5809 }
5810 var8 = NULL;
5811 if (var_pannotationnode4 == NULL) {
5812 var9 = 0; /* is null */
5813 } else {
5814 var9 = 1; /* arg is null and recv is not */
5815 }
5816 if (var9){
5817 ((void (*)(val*, val*))(var_listnode5->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode5, var_pannotationnode4) /* add on <var_listnode5:Array[Object]>*/;
5818 } else {
5819 }
5820 var10 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations);
5821 var11 = NULL;
5822 var12 = NULL;
5823 ((void (*)(val*, val*, val*, val*, val*))(var10->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var10, var_tatnode2, var11, var_listnode5, var12) /* init_aannotations on <var10:AAnnotations>*/;
5824 CHECK_NEW_parser_nodes__AAnnotations(var10);
5825 var_pannotationsnode1 = var10;
5826 var_node_list = var_pannotationsnode1;
5827 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction812> */
5828 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
5829 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
5830 RET_LABEL:;
5831 }
5832 /* method parser#ReduceAction812#action for (self: Object, Parser) */
5833 void VIRTUAL_parser__ReduceAction812__action(val* self, val* p0) {
5834 parser__ReduceAction812__action(self, p0);
5835 RET_LABEL:;
5836 }
5837 /* method parser#ReduceAction813#action for (self: ReduceAction813, Parser) */
5838 void parser__ReduceAction813__action(val* self, val* p0) {
5839 val* var_p /* var p: Parser */;
5840 val* var /* : null */;
5841 val* var_node_list /* var node_list: nullable Object */;
5842 val* var1 /* : nullable Object */;
5843 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5844 val* var2 /* : nullable Object */;
5845 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5846 val* var3 /* : nullable Object */;
5847 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5848 val* var4 /* : nullable Object */;
5849 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5850 val* var5 /* : nullable Object */;
5851 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5852 val* var6 /* : nullable Object */;
5853 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5854 val* var7 /* : Array[Object] */;
5855 val* var_listnode5 /* var listnode5: Array[Object] */;
5856 val* var_tatnode2 /* var tatnode2: nullable Object */;
5857 short int var8 /* : Bool */;
5858 int cltype;
5859 int idtype;
5860 val* var_toparnode3 /* var toparnode3: nullable Object */;
5861 short int var9 /* : Bool */;
5862 int cltype10;
5863 int idtype11;
5864 val* var_listnode4 /* var listnode4: nullable Object */;
5865 short int var12 /* : Bool */;
5866 int cltype13;
5867 int idtype14;
5868 val* var15 /* : Array[Object] */;
5869 val* var_tcparnode6 /* var tcparnode6: nullable Object */;
5870 short int var16 /* : Bool */;
5871 int cltype17;
5872 int idtype18;
5873 val* var19 /* : AAnnotations */;
5874 val* var_pannotationsnode1 /* var pannotationsnode1: nullable AAnnotations */;
5875 long var20 /* : Int */;
5876 long var21 /* : Int */;
5877 var_p = p0;
5878 var = NULL;
5879 var_node_list = var;
5880 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5881 var_nodearraylist6 = var1;
5882 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5883 var_nodearraylist5 = var2;
5884 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5885 var_nodearraylist4 = var3;
5886 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5887 var_nodearraylist3 = var4;
5888 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5889 var_nodearraylist2 = var5;
5890 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5891 var_nodearraylist1 = var6;
5892 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
5893 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
5894 CHECK_NEW_array__Array(var7);
5895 var_listnode5 = var7;
5896 var_tatnode2 = var_nodearraylist1;
5897 /* <var_tatnode2:nullable Object> isa nullable TAt */
5898 cltype = type_nullable_parser_nodes__TAt.color;
5899 idtype = type_nullable_parser_nodes__TAt.id;
5900 if(var_tatnode2 == NULL) {
5901 var8 = 1;
5902 } else {
5903 if(cltype >= var_tatnode2->type->table_size) {
5904 var8 = 0;
5905 } else {
5906 var8 = var_tatnode2->type->type_table[cltype] == idtype;
5907 }
5908 }
5909 if (!var8) {
5910 fprintf(stderr, "Runtime error: %s", "Assert failed");
5911 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28064);
5912 exit(1);
5913 }
5914 var_toparnode3 = var_nodearraylist2;
5915 /* <var_toparnode3:nullable Object> isa nullable TOpar */
5916 cltype10 = type_nullable_parser_nodes__TOpar.color;
5917 idtype11 = type_nullable_parser_nodes__TOpar.id;
5918 if(var_toparnode3 == NULL) {
5919 var9 = 1;
5920 } else {
5921 if(cltype10 >= var_toparnode3->type->table_size) {
5922 var9 = 0;
5923 } else {
5924 var9 = var_toparnode3->type->type_table[cltype10] == idtype11;
5925 }
5926 }
5927 if (!var9) {
5928 fprintf(stderr, "Runtime error: %s", "Assert failed");
5929 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28066);
5930 exit(1);
5931 }
5932 var_listnode4 = var_nodearraylist4;
5933 /* <var_listnode4:nullable Object> isa Array[Object] */
5934 cltype13 = type_array__Arraykernel__Object.color;
5935 idtype14 = type_array__Arraykernel__Object.id;
5936 if(var_listnode4 == NULL) {
5937 var12 = 0;
5938 } else {
5939 if(cltype13 >= var_listnode4->type->table_size) {
5940 var12 = 0;
5941 } else {
5942 var12 = var_listnode4->type->type_table[cltype13] == idtype14;
5943 }
5944 }
5945 if (!var12) {
5946 fprintf(stderr, "Runtime error: %s", "Assert failed");
5947 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28068);
5948 exit(1);
5949 }
5950 var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction813>*/;
5951 var_listnode5 = var15;
5952 var_tcparnode6 = var_nodearraylist6;
5953 /* <var_tcparnode6:nullable Object> isa nullable TCpar */
5954 cltype17 = type_nullable_parser_nodes__TCpar.color;
5955 idtype18 = type_nullable_parser_nodes__TCpar.id;
5956 if(var_tcparnode6 == NULL) {
5957 var16 = 1;
5958 } else {
5959 if(cltype17 >= var_tcparnode6->type->table_size) {
5960 var16 = 0;
5961 } else {
5962 var16 = var_tcparnode6->type->type_table[cltype17] == idtype18;
5963 }
5964 }
5965 if (!var16) {
5966 fprintf(stderr, "Runtime error: %s", "Assert failed");
5967 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28071);
5968 exit(1);
5969 }
5970 var19 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations);
5971 ((void (*)(val*, val*, val*, val*, val*))(var19->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var19, var_tatnode2, var_toparnode3, var_listnode5, var_tcparnode6) /* init_aannotations on <var19:AAnnotations>*/;
5972 CHECK_NEW_parser_nodes__AAnnotations(var19);
5973 var_pannotationsnode1 = var19;
5974 var_node_list = var_pannotationsnode1;
5975 var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction813> */
5976 var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on <var_p:Parser>*/;
5977 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on <var_p:Parser>*/;
5978 RET_LABEL:;
5979 }
5980 /* method parser#ReduceAction813#action for (self: Object, Parser) */
5981 void VIRTUAL_parser__ReduceAction813__action(val* self, val* p0) {
5982 parser__ReduceAction813__action(self, p0);
5983 RET_LABEL:;
5984 }
5985 /* method parser#ReduceAction814#action for (self: ReduceAction814, Parser) */
5986 void parser__ReduceAction814__action(val* self, val* p0) {
5987 val* var_p /* var p: Parser */;
5988 val* var /* : null */;
5989 val* var_node_list /* var node_list: nullable Object */;
5990 val* var1 /* : nullable Object */;
5991 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5992 val* var2 /* : Array[Object] */;
5993 val* var_listnode4 /* var listnode4: Array[Object] */;
5994 val* var_patidnode2 /* var patidnode2: nullable Object */;
5995 short int var3 /* : Bool */;
5996 int cltype;
5997 int idtype;
5998 val* var4 /* : AAnnotation */;
5999 val* var5 /* : null */;
6000 val* var6 /* : null */;
6001 val* var7 /* : null */;
6002 val* var_pannotationnode1 /* var pannotationnode1: nullable AAnnotation */;
6003 long var8 /* : Int */;
6004 long var9 /* : Int */;
6005 var_p = p0;
6006 var = NULL;
6007 var_node_list = var;
6008 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6009 var_nodearraylist1 = var1;
6010 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
6011 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
6012 CHECK_NEW_array__Array(var2);
6013 var_listnode4 = var2;
6014 var_patidnode2 = var_nodearraylist1;
6015 /* <var_patidnode2:nullable Object> isa nullable AAtid */
6016 cltype = type_nullable_parser_nodes__AAtid.color;
6017 idtype = type_nullable_parser_nodes__AAtid.id;
6018 if(var_patidnode2 == NULL) {
6019 var3 = 1;
6020 } else {
6021 if(cltype >= var_patidnode2->type->table_size) {
6022 var3 = 0;
6023 } else {
6024 var3 = var_patidnode2->type->type_table[cltype] == idtype;
6025 }
6026 }
6027 if (!var3) {
6028 fprintf(stderr, "Runtime error: %s", "Assert failed");
6029 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28090);
6030 exit(1);
6031 }
6032 var4 = NEW_parser_nodes__AAnnotation(&type_parser_nodes__AAnnotation);
6033 var5 = NULL;
6034 var6 = NULL;
6035 var7 = NULL;
6036 ((void (*)(val*, val*, val*, val*, val*, val*))(var4->class->vft[COLOR_parser_prod__AAnnotation__init_aannotation]))(var4, var_patidnode2, var5, var_listnode4, var6, var7) /* init_aannotation on <var4:AAnnotation>*/;
6037 CHECK_NEW_parser_nodes__AAnnotation(var4);
6038 var_pannotationnode1 = var4;
6039 var_node_list = var_pannotationnode1;
6040 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction814> */
6041 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
6042 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
6043 RET_LABEL:;
6044 }
6045 /* method parser#ReduceAction814#action for (self: Object, Parser) */
6046 void VIRTUAL_parser__ReduceAction814__action(val* self, val* p0) {
6047 parser__ReduceAction814__action(self, p0);
6048 RET_LABEL:;
6049 }
6050 /* method parser#ReduceAction815#action for (self: ReduceAction815, Parser) */
6051 void parser__ReduceAction815__action(val* self, val* p0) {
6052 val* var_p /* var p: Parser */;
6053 val* var /* : null */;
6054 val* var_node_list /* var node_list: nullable Object */;
6055 val* var1 /* : nullable Object */;
6056 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6057 val* var2 /* : nullable Object */;
6058 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6059 val* var3 /* : Array[Object] */;
6060 val* var_listnode4 /* var listnode4: Array[Object] */;
6061 val* var_patidnode2 /* var patidnode2: nullable Object */;
6062 short int var4 /* : Bool */;
6063 int cltype;
6064 int idtype;
6065 val* var_pannotationsnode6 /* var pannotationsnode6: nullable Object */;
6066 short int var5 /* : Bool */;
6067 int cltype6;
6068 int idtype7;
6069 val* var8 /* : AAnnotation */;
6070 val* var9 /* : null */;
6071 val* var10 /* : null */;
6072 val* var_pannotationnode1 /* var pannotationnode1: nullable AAnnotation */;
6073 long var11 /* : Int */;
6074 long var12 /* : Int */;
6075 var_p = p0;
6076 var = NULL;
6077 var_node_list = var;
6078 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6079 var_nodearraylist2 = var1;
6080 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6081 var_nodearraylist1 = var2;
6082 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
6083 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
6084 CHECK_NEW_array__Array(var3);
6085 var_listnode4 = var3;
6086 var_patidnode2 = var_nodearraylist1;
6087 /* <var_patidnode2:nullable Object> isa nullable AAtid */
6088 cltype = type_nullable_parser_nodes__AAtid.color;
6089 idtype = type_nullable_parser_nodes__AAtid.id;
6090 if(var_patidnode2 == NULL) {
6091 var4 = 1;
6092 } else {
6093 if(cltype >= var_patidnode2->type->table_size) {
6094 var4 = 0;
6095 } else {
6096 var4 = var_patidnode2->type->type_table[cltype] == idtype;
6097 }
6098 }
6099 if (!var4) {
6100 fprintf(stderr, "Runtime error: %s", "Assert failed");
6101 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28111);
6102 exit(1);
6103 }
6104 var_pannotationsnode6 = var_nodearraylist2;
6105 /* <var_pannotationsnode6:nullable Object> isa nullable AAnnotations */
6106 cltype6 = type_nullable_parser_nodes__AAnnotations.color;
6107 idtype7 = type_nullable_parser_nodes__AAnnotations.id;
6108 if(var_pannotationsnode6 == NULL) {
6109 var5 = 1;
6110 } else {
6111 if(cltype6 >= var_pannotationsnode6->type->table_size) {
6112 var5 = 0;
6113 } else {
6114 var5 = var_pannotationsnode6->type->type_table[cltype6] == idtype7;
6115 }
6116 }
6117 if (!var5) {
6118 fprintf(stderr, "Runtime error: %s", "Assert failed");
6119 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28113);
6120 exit(1);
6121 }
6122 var8 = NEW_parser_nodes__AAnnotation(&type_parser_nodes__AAnnotation);
6123 var9 = NULL;
6124 var10 = NULL;
6125 ((void (*)(val*, val*, val*, val*, val*, val*))(var8->class->vft[COLOR_parser_prod__AAnnotation__init_aannotation]))(var8, var_patidnode2, var9, var_listnode4, var10, var_pannotationsnode6) /* init_aannotation on <var8:AAnnotation>*/;
6126 CHECK_NEW_parser_nodes__AAnnotation(var8);
6127 var_pannotationnode1 = var8;
6128 var_node_list = var_pannotationnode1;
6129 var11 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction815> */
6130 var12 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var11) /* go_to on <var_p:Parser>*/;
6131 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var12, var_node_list) /* push on <var_p:Parser>*/;
6132 RET_LABEL:;
6133 }
6134 /* method parser#ReduceAction815#action for (self: Object, Parser) */
6135 void VIRTUAL_parser__ReduceAction815__action(val* self, val* p0) {
6136 parser__ReduceAction815__action(self, p0);
6137 RET_LABEL:;
6138 }
6139 /* method parser#ReduceAction816#action for (self: ReduceAction816, Parser) */
6140 void parser__ReduceAction816__action(val* self, val* p0) {
6141 val* var_p /* var p: Parser */;
6142 val* var /* : null */;
6143 val* var_node_list /* var node_list: nullable Object */;
6144 val* var1 /* : nullable Object */;
6145 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6146 val* var2 /* : nullable Object */;
6147 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6148 val* var3 /* : nullable Object */;
6149 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6150 val* var4 /* : nullable Object */;
6151 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6152 val* var5 /* : nullable Object */;
6153 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6154 val* var6 /* : nullable Object */;
6155 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6156 val* var7 /* : Array[Object] */;
6157 val* var_listnode5 /* var listnode5: Array[Object] */;
6158 val* var_patidnode2 /* var patidnode2: nullable Object */;
6159 short int var8 /* : Bool */;
6160 int cltype;
6161 int idtype;
6162 val* var_toparnode3 /* var toparnode3: nullable Object */;
6163 short int var9 /* : Bool */;
6164 int cltype10;
6165 int idtype11;
6166 val* var_listnode4 /* var listnode4: nullable Object */;
6167 short int var12 /* : Bool */;
6168 int cltype13;
6169 int idtype14;
6170 val* var15 /* : Array[Object] */;
6171 val* var_tcparnode6 /* var tcparnode6: nullable Object */;
6172 short int var16 /* : Bool */;
6173 int cltype17;
6174 int idtype18;
6175 val* var19 /* : AAnnotation */;
6176 val* var20 /* : null */;
6177 val* var_pannotationnode1 /* var pannotationnode1: nullable AAnnotation */;
6178 long var21 /* : Int */;
6179 long var22 /* : Int */;
6180 var_p = p0;
6181 var = NULL;
6182 var_node_list = var;
6183 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6184 var_nodearraylist6 = var1;
6185 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6186 var_nodearraylist5 = var2;
6187 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6188 var_nodearraylist4 = var3;
6189 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6190 var_nodearraylist3 = var4;
6191 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6192 var_nodearraylist2 = var5;
6193 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6194 var_nodearraylist1 = var6;
6195 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
6196 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
6197 CHECK_NEW_array__Array(var7);
6198 var_listnode5 = var7;
6199 var_patidnode2 = var_nodearraylist1;
6200 /* <var_patidnode2:nullable Object> isa nullable AAtid */
6201 cltype = type_nullable_parser_nodes__AAtid.color;
6202 idtype = type_nullable_parser_nodes__AAtid.id;
6203 if(var_patidnode2 == NULL) {
6204 var8 = 1;
6205 } else {
6206 if(cltype >= var_patidnode2->type->table_size) {
6207 var8 = 0;
6208 } else {
6209 var8 = var_patidnode2->type->type_table[cltype] == idtype;
6210 }
6211 }
6212 if (!var8) {
6213 fprintf(stderr, "Runtime error: %s", "Assert failed");
6214 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28138);
6215 exit(1);
6216 }
6217 var_toparnode3 = var_nodearraylist2;
6218 /* <var_toparnode3:nullable Object> isa nullable TOpar */
6219 cltype10 = type_nullable_parser_nodes__TOpar.color;
6220 idtype11 = type_nullable_parser_nodes__TOpar.id;
6221 if(var_toparnode3 == NULL) {
6222 var9 = 1;
6223 } else {
6224 if(cltype10 >= var_toparnode3->type->table_size) {
6225 var9 = 0;
6226 } else {
6227 var9 = var_toparnode3->type->type_table[cltype10] == idtype11;
6228 }
6229 }
6230 if (!var9) {
6231 fprintf(stderr, "Runtime error: %s", "Assert failed");
6232 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28140);
6233 exit(1);
6234 }
6235 var_listnode4 = var_nodearraylist4;
6236 /* <var_listnode4:nullable Object> isa Array[Object] */
6237 cltype13 = type_array__Arraykernel__Object.color;
6238 idtype14 = type_array__Arraykernel__Object.id;
6239 if(var_listnode4 == NULL) {
6240 var12 = 0;
6241 } else {
6242 if(cltype13 >= var_listnode4->type->table_size) {
6243 var12 = 0;
6244 } else {
6245 var12 = var_listnode4->type->type_table[cltype13] == idtype14;
6246 }
6247 }
6248 if (!var12) {
6249 fprintf(stderr, "Runtime error: %s", "Assert failed");
6250 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28142);
6251 exit(1);
6252 }
6253 var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction816>*/;
6254 var_listnode5 = var15;
6255 var_tcparnode6 = var_nodearraylist6;
6256 /* <var_tcparnode6:nullable Object> isa nullable TCpar */
6257 cltype17 = type_nullable_parser_nodes__TCpar.color;
6258 idtype18 = type_nullable_parser_nodes__TCpar.id;
6259 if(var_tcparnode6 == NULL) {
6260 var16 = 1;
6261 } else {
6262 if(cltype17 >= var_tcparnode6->type->table_size) {
6263 var16 = 0;
6264 } else {
6265 var16 = var_tcparnode6->type->type_table[cltype17] == idtype18;
6266 }
6267 }
6268 if (!var16) {
6269 fprintf(stderr, "Runtime error: %s", "Assert failed");
6270 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28145);
6271 exit(1);
6272 }
6273 var19 = NEW_parser_nodes__AAnnotation(&type_parser_nodes__AAnnotation);
6274 var20 = NULL;
6275 ((void (*)(val*, val*, val*, val*, val*, val*))(var19->class->vft[COLOR_parser_prod__AAnnotation__init_aannotation]))(var19, var_patidnode2, var_toparnode3, var_listnode5, var_tcparnode6, var20) /* init_aannotation on <var19:AAnnotation>*/;
6276 CHECK_NEW_parser_nodes__AAnnotation(var19);
6277 var_pannotationnode1 = var19;
6278 var_node_list = var_pannotationnode1;
6279 var21 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction816> */
6280 var22 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var21) /* go_to on <var_p:Parser>*/;
6281 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var22, var_node_list) /* push on <var_p:Parser>*/;
6282 RET_LABEL:;
6283 }
6284 /* method parser#ReduceAction816#action for (self: Object, Parser) */
6285 void VIRTUAL_parser__ReduceAction816__action(val* self, val* p0) {
6286 parser__ReduceAction816__action(self, p0);
6287 RET_LABEL:;
6288 }
6289 /* method parser#ReduceAction817#action for (self: ReduceAction817, Parser) */
6290 void parser__ReduceAction817__action(val* self, val* p0) {
6291 val* var_p /* var p: Parser */;
6292 val* var /* : null */;
6293 val* var_node_list /* var node_list: nullable Object */;
6294 val* var1 /* : nullable Object */;
6295 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
6296 val* var2 /* : nullable Object */;
6297 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6298 val* var3 /* : nullable Object */;
6299 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6300 val* var4 /* : nullable Object */;
6301 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6302 val* var5 /* : nullable Object */;
6303 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6304 val* var6 /* : nullable Object */;
6305 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6306 val* var7 /* : nullable Object */;
6307 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6308 val* var8 /* : Array[Object] */;
6309 val* var_listnode5 /* var listnode5: Array[Object] */;
6310 val* var_patidnode2 /* var patidnode2: nullable Object */;
6311 short int var9 /* : Bool */;
6312 int cltype;
6313 int idtype;
6314 val* var_toparnode3 /* var toparnode3: nullable Object */;
6315 short int var10 /* : Bool */;
6316 int cltype11;
6317 int idtype12;
6318 val* var_listnode4 /* var listnode4: nullable Object */;
6319 short int var13 /* : Bool */;
6320 int cltype14;
6321 int idtype15;
6322 val* var16 /* : Array[Object] */;
6323 val* var_tcparnode6 /* var tcparnode6: nullable Object */;
6324 short int var17 /* : Bool */;
6325 int cltype18;
6326 int idtype19;
6327 val* var_pannotationsnode7 /* var pannotationsnode7: nullable Object */;
6328 short int var20 /* : Bool */;
6329 int cltype21;
6330 int idtype22;
6331 val* var23 /* : AAnnotation */;
6332 val* var_pannotationnode1 /* var pannotationnode1: nullable AAnnotation */;
6333 long var24 /* : Int */;
6334 long var25 /* : Int */;
6335 var_p = p0;
6336 var = NULL;
6337 var_node_list = var;
6338 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6339 var_nodearraylist7 = var1;
6340 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6341 var_nodearraylist6 = var2;
6342 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6343 var_nodearraylist5 = var3;
6344 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6345 var_nodearraylist4 = var4;
6346 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6347 var_nodearraylist3 = var5;
6348 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6349 var_nodearraylist2 = var6;
6350 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6351 var_nodearraylist1 = var7;
6352 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
6353 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
6354 CHECK_NEW_array__Array(var8);
6355 var_listnode5 = var8;
6356 var_patidnode2 = var_nodearraylist1;
6357 /* <var_patidnode2:nullable Object> isa nullable AAtid */
6358 cltype = type_nullable_parser_nodes__AAtid.color;
6359 idtype = type_nullable_parser_nodes__AAtid.id;
6360 if(var_patidnode2 == NULL) {
6361 var9 = 1;
6362 } else {
6363 if(cltype >= var_patidnode2->type->table_size) {
6364 var9 = 0;
6365 } else {
6366 var9 = var_patidnode2->type->type_table[cltype] == idtype;
6367 }
6368 }
6369 if (!var9) {
6370 fprintf(stderr, "Runtime error: %s", "Assert failed");
6371 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28171);
6372 exit(1);
6373 }
6374 var_toparnode3 = var_nodearraylist2;
6375 /* <var_toparnode3:nullable Object> isa nullable TOpar */
6376 cltype11 = type_nullable_parser_nodes__TOpar.color;
6377 idtype12 = type_nullable_parser_nodes__TOpar.id;
6378 if(var_toparnode3 == NULL) {
6379 var10 = 1;
6380 } else {
6381 if(cltype11 >= var_toparnode3->type->table_size) {
6382 var10 = 0;
6383 } else {
6384 var10 = var_toparnode3->type->type_table[cltype11] == idtype12;
6385 }
6386 }
6387 if (!var10) {
6388 fprintf(stderr, "Runtime error: %s", "Assert failed");
6389 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28173);
6390 exit(1);
6391 }
6392 var_listnode4 = var_nodearraylist4;
6393 /* <var_listnode4:nullable Object> isa Array[Object] */
6394 cltype14 = type_array__Arraykernel__Object.color;
6395 idtype15 = type_array__Arraykernel__Object.id;
6396 if(var_listnode4 == NULL) {
6397 var13 = 0;
6398 } else {
6399 if(cltype14 >= var_listnode4->type->table_size) {
6400 var13 = 0;
6401 } else {
6402 var13 = var_listnode4->type->type_table[cltype14] == idtype15;
6403 }
6404 }
6405 if (!var13) {
6406 fprintf(stderr, "Runtime error: %s", "Assert failed");
6407 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28175);
6408 exit(1);
6409 }
6410 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction817>*/;
6411 var_listnode5 = var16;
6412 var_tcparnode6 = var_nodearraylist6;
6413 /* <var_tcparnode6:nullable Object> isa nullable TCpar */
6414 cltype18 = type_nullable_parser_nodes__TCpar.color;
6415 idtype19 = type_nullable_parser_nodes__TCpar.id;
6416 if(var_tcparnode6 == NULL) {
6417 var17 = 1;
6418 } else {
6419 if(cltype18 >= var_tcparnode6->type->table_size) {
6420 var17 = 0;
6421 } else {
6422 var17 = var_tcparnode6->type->type_table[cltype18] == idtype19;
6423 }
6424 }
6425 if (!var17) {
6426 fprintf(stderr, "Runtime error: %s", "Assert failed");
6427 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28178);
6428 exit(1);
6429 }
6430 var_pannotationsnode7 = var_nodearraylist7;
6431 /* <var_pannotationsnode7:nullable Object> isa nullable AAnnotations */
6432 cltype21 = type_nullable_parser_nodes__AAnnotations.color;
6433 idtype22 = type_nullable_parser_nodes__AAnnotations.id;
6434 if(var_pannotationsnode7 == NULL) {
6435 var20 = 1;
6436 } else {
6437 if(cltype21 >= var_pannotationsnode7->type->table_size) {
6438 var20 = 0;
6439 } else {
6440 var20 = var_pannotationsnode7->type->type_table[cltype21] == idtype22;
6441 }
6442 }
6443 if (!var20) {
6444 fprintf(stderr, "Runtime error: %s", "Assert failed");
6445 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28180);
6446 exit(1);
6447 }
6448 var23 = NEW_parser_nodes__AAnnotation(&type_parser_nodes__AAnnotation);
6449 ((void (*)(val*, val*, val*, val*, val*, val*))(var23->class->vft[COLOR_parser_prod__AAnnotation__init_aannotation]))(var23, var_patidnode2, var_toparnode3, var_listnode5, var_tcparnode6, var_pannotationsnode7) /* init_aannotation on <var23:AAnnotation>*/;
6450 CHECK_NEW_parser_nodes__AAnnotation(var23);
6451 var_pannotationnode1 = var23;
6452 var_node_list = var_pannotationnode1;
6453 var24 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction817> */
6454 var25 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var24) /* go_to on <var_p:Parser>*/;
6455 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var25, var_node_list) /* push on <var_p:Parser>*/;
6456 RET_LABEL:;
6457 }
6458 /* method parser#ReduceAction817#action for (self: Object, Parser) */
6459 void VIRTUAL_parser__ReduceAction817__action(val* self, val* p0) {
6460 parser__ReduceAction817__action(self, p0);
6461 RET_LABEL:;
6462 }
6463 /* method parser#ReduceAction818#action for (self: ReduceAction818, Parser) */
6464 void parser__ReduceAction818__action(val* self, val* p0) {
6465 val* var_p /* var p: Parser */;
6466 val* var /* : null */;
6467 val* var_node_list /* var node_list: nullable Object */;
6468 val* var1 /* : nullable Object */;
6469 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6470 val* var2 /* : Array[Object] */;
6471 val* var_listnode5 /* var listnode5: Array[Object] */;
6472 val* var_listnode4 /* var listnode4: nullable Object */;
6473 short int var3 /* : Bool */;
6474 int cltype;
6475 int idtype;
6476 val* var4 /* : Array[Object] */;
6477 val* var5 /* : AAnnotations */;
6478 val* var6 /* : null */;
6479 val* var7 /* : null */;
6480 val* var8 /* : null */;
6481 val* var_pannotationsnode1 /* var pannotationsnode1: nullable AAnnotations */;
6482 long var9 /* : Int */;
6483 long var10 /* : Int */;
6484 var_p = p0;
6485 var = NULL;
6486 var_node_list = var;
6487 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6488 var_nodearraylist1 = var1;
6489 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
6490 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
6491 CHECK_NEW_array__Array(var2);
6492 var_listnode5 = var2;
6493 var_listnode4 = var_nodearraylist1;
6494 /* <var_listnode4:nullable Object> isa Array[Object] */
6495 cltype = type_array__Arraykernel__Object.color;
6496 idtype = type_array__Arraykernel__Object.id;
6497 if(var_listnode4 == NULL) {
6498 var3 = 0;
6499 } else {
6500 if(cltype >= var_listnode4->type->table_size) {
6501 var3 = 0;
6502 } else {
6503 var3 = var_listnode4->type->type_table[cltype] == idtype;
6504 }
6505 }
6506 if (!var3) {
6507 fprintf(stderr, "Runtime error: %s", "Assert failed");
6508 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28200);
6509 exit(1);
6510 }
6511 var4 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction818>*/;
6512 var_listnode5 = var4;
6513 var5 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations);
6514 var6 = NULL;
6515 var7 = NULL;
6516 var8 = NULL;
6517 ((void (*)(val*, val*, val*, val*, val*))(var5->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var5, var6, var7, var_listnode5, var8) /* init_aannotations on <var5:AAnnotations>*/;
6518 CHECK_NEW_parser_nodes__AAnnotations(var5);
6519 var_pannotationsnode1 = var5;
6520 var_node_list = var_pannotationsnode1;
6521 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction818> */
6522 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
6523 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
6524 RET_LABEL:;
6525 }
6526 /* method parser#ReduceAction818#action for (self: Object, Parser) */
6527 void VIRTUAL_parser__ReduceAction818__action(val* self, val* p0) {
6528 parser__ReduceAction818__action(self, p0);
6529 RET_LABEL:;
6530 }
6531 /* method parser#ReduceAction819#action for (self: ReduceAction819, Parser) */
6532 void parser__ReduceAction819__action(val* self, val* p0) {
6533 val* var_p /* var p: Parser */;
6534 val* var /* : null */;
6535 val* var_node_list /* var node_list: nullable Object */;
6536 val* var1 /* : nullable Object */;
6537 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6538 val* var2 /* : Array[Object] */;
6539 val* var_listnode2 /* var listnode2: Array[Object] */;
6540 val* var_pannotationnode1 /* var pannotationnode1: nullable Object */;
6541 val* var3 /* : null */;
6542 short int var4 /* : Bool */;
6543 long var5 /* : Int */;
6544 long var6 /* : Int */;
6545 var_p = p0;
6546 var = NULL;
6547 var_node_list = var;
6548 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6549 var_nodearraylist1 = var1;
6550 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
6551 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
6552 CHECK_NEW_array__Array(var2);
6553 var_listnode2 = var2;
6554 var_pannotationnode1 = var_nodearraylist1;
6555 var3 = NULL;
6556 if (var_pannotationnode1 == NULL) {
6557 var4 = 0; /* is null */
6558 } else {
6559 var4 = 1; /* arg is null and recv is not */
6560 }
6561 if (var4){
6562 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_pannotationnode1) /* add on <var_listnode2:Array[Object]>*/;
6563 } else {
6564 }
6565 var_node_list = var_listnode2;
6566 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction819> */
6567 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
6568 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
6569 RET_LABEL:;
6570 }
6571 /* method parser#ReduceAction819#action for (self: Object, Parser) */
6572 void VIRTUAL_parser__ReduceAction819__action(val* self, val* p0) {
6573 parser__ReduceAction819__action(self, p0);
6574 RET_LABEL:;
6575 }
6576 /* method parser#ReduceAction820#action for (self: ReduceAction820, Parser) */
6577 void parser__ReduceAction820__action(val* self, val* p0) {
6578 val* var_p /* var p: Parser */;
6579 val* var /* : null */;
6580 val* var_node_list /* var node_list: nullable Object */;
6581 val* var1 /* : nullable Object */;
6582 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6583 val* var2 /* : nullable Object */;
6584 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6585 val* var3 /* : Array[Object] */;
6586 val* var_listnode3 /* var listnode3: Array[Object] */;
6587 val* var_pannotationnode1 /* var pannotationnode1: nullable Object */;
6588 val* var_listnode2 /* var listnode2: nullable Object */;
6589 short int var4 /* : Bool */;
6590 int cltype;
6591 int idtype;
6592 val* var5 /* : null */;
6593 short int var6 /* : Bool */;
6594 val* var7 /* : Array[Object] */;
6595 long var8 /* : Int */;
6596 long var9 /* : Int */;
6597 var_p = p0;
6598 var = NULL;
6599 var_node_list = var;
6600 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6601 var_nodearraylist2 = var1;
6602 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6603 var_nodearraylist1 = var2;
6604 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
6605 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
6606 CHECK_NEW_array__Array(var3);
6607 var_listnode3 = var3;
6608 var_pannotationnode1 = var_nodearraylist1;
6609 var_listnode2 = var_nodearraylist2;
6610 /* <var_listnode2:nullable Object> isa Array[Object] */
6611 cltype = type_array__Arraykernel__Object.color;
6612 idtype = type_array__Arraykernel__Object.id;
6613 if(var_listnode2 == NULL) {
6614 var4 = 0;
6615 } else {
6616 if(cltype >= var_listnode2->type->table_size) {
6617 var4 = 0;
6618 } else {
6619 var4 = var_listnode2->type->type_table[cltype] == idtype;
6620 }
6621 }
6622 if (!var4) {
6623 fprintf(stderr, "Runtime error: %s", "Assert failed");
6624 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28237);
6625 exit(1);
6626 }
6627 var5 = NULL;
6628 if (var_pannotationnode1 == NULL) {
6629 var6 = 0; /* is null */
6630 } else {
6631 var6 = 1; /* arg is null and recv is not */
6632 }
6633 if (var6){
6634 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pannotationnode1) /* add on <var_listnode3:Array[Object]>*/;
6635 } else {
6636 }
6637 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode2) /* concat on <self:ReduceAction820>*/;
6638 var_listnode3 = var7;
6639 var_node_list = var_listnode3;
6640 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction820> */
6641 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
6642 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
6643 RET_LABEL:;
6644 }
6645 /* method parser#ReduceAction820#action for (self: Object, Parser) */
6646 void VIRTUAL_parser__ReduceAction820__action(val* self, val* p0) {
6647 parser__ReduceAction820__action(self, p0);
6648 RET_LABEL:;
6649 }
6650 /* method parser#ReduceAction822#action for (self: ReduceAction822, Parser) */
6651 void parser__ReduceAction822__action(val* self, val* p0) {
6652 val* var_p /* var p: Parser */;
6653 val* var /* : null */;
6654 val* var_node_list /* var node_list: nullable Object */;
6655 val* var1 /* : nullable Object */;
6656 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6657 val* var2 /* : nullable Object */;
6658 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6659 val* var3 /* : nullable Object */;
6660 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6661 val* var4 /* : Array[Object] */;
6662 val* var_listnode4 /* var listnode4: Array[Object] */;
6663 val* var_patidnode2 /* var patidnode2: nullable Object */;
6664 short int var5 /* : Bool */;
6665 int cltype;
6666 int idtype;
6667 val* var6 /* : AAnnotation */;
6668 val* var7 /* : null */;
6669 val* var8 /* : null */;
6670 val* var9 /* : null */;
6671 val* var_pannotationnode1 /* var pannotationnode1: nullable AAnnotation */;
6672 long var10 /* : Int */;
6673 long var11 /* : Int */;
6674 var_p = p0;
6675 var = NULL;
6676 var_node_list = var;
6677 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6678 var_nodearraylist3 = var1;
6679 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6680 var_nodearraylist2 = var2;
6681 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6682 var_nodearraylist1 = var3;
6683 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
6684 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
6685 CHECK_NEW_array__Array(var4);
6686 var_listnode4 = var4;
6687 var_patidnode2 = var_nodearraylist2;
6688 /* <var_patidnode2:nullable Object> isa nullable AAtid */
6689 cltype = type_nullable_parser_nodes__AAtid.color;
6690 idtype = type_nullable_parser_nodes__AAtid.id;
6691 if(var_patidnode2 == NULL) {
6692 var5 = 1;
6693 } else {
6694 if(cltype >= var_patidnode2->type->table_size) {
6695 var5 = 0;
6696 } else {
6697 var5 = var_patidnode2->type->type_table[cltype] == idtype;
6698 }
6699 }
6700 if (!var5) {
6701 fprintf(stderr, "Runtime error: %s", "Assert failed");
6702 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28256);
6703 exit(1);
6704 }
6705 var6 = NEW_parser_nodes__AAnnotation(&type_parser_nodes__AAnnotation);
6706 var7 = NULL;
6707 var8 = NULL;
6708 var9 = NULL;
6709 ((void (*)(val*, val*, val*, val*, val*, val*))(var6->class->vft[COLOR_parser_prod__AAnnotation__init_aannotation]))(var6, var_patidnode2, var7, var_listnode4, var8, var9) /* init_aannotation on <var6:AAnnotation>*/;
6710 CHECK_NEW_parser_nodes__AAnnotation(var6);
6711 var_pannotationnode1 = var6;
6712 var_node_list = var_pannotationnode1;
6713 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction822> */
6714 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
6715 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
6716 RET_LABEL:;
6717 }
6718 /* method parser#ReduceAction822#action for (self: Object, Parser) */
6719 void VIRTUAL_parser__ReduceAction822__action(val* self, val* p0) {
6720 parser__ReduceAction822__action(self, p0);
6721 RET_LABEL:;
6722 }
6723 /* method parser#ReduceAction823#action for (self: ReduceAction823, Parser) */
6724 void parser__ReduceAction823__action(val* self, val* p0) {
6725 val* var_p /* var p: Parser */;
6726 val* var /* : null */;
6727 val* var_node_list /* var node_list: nullable Object */;
6728 val* var1 /* : nullable Object */;
6729 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6730 val* var2 /* : nullable Object */;
6731 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6732 val* var3 /* : nullable Object */;
6733 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6734 val* var4 /* : nullable Object */;
6735 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6736 val* var5 /* : Array[Object] */;
6737 val* var_listnode4 /* var listnode4: Array[Object] */;
6738 val* var_patidnode2 /* var patidnode2: nullable Object */;
6739 short int var6 /* : Bool */;
6740 int cltype;
6741 int idtype;
6742 val* var_pannotationsnode6 /* var pannotationsnode6: nullable Object */;
6743 short int var7 /* : Bool */;
6744 int cltype8;
6745 int idtype9;
6746 val* var10 /* : AAnnotation */;
6747 val* var11 /* : null */;
6748 val* var12 /* : null */;
6749 val* var_pannotationnode1 /* var pannotationnode1: nullable AAnnotation */;
6750 long var13 /* : Int */;
6751 long var14 /* : Int */;
6752 var_p = p0;
6753 var = NULL;
6754 var_node_list = var;
6755 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6756 var_nodearraylist4 = var1;
6757 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6758 var_nodearraylist3 = var2;
6759 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6760 var_nodearraylist2 = var3;
6761 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6762 var_nodearraylist1 = var4;
6763 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
6764 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
6765 CHECK_NEW_array__Array(var5);
6766 var_listnode4 = var5;
6767 var_patidnode2 = var_nodearraylist2;
6768 /* <var_patidnode2:nullable Object> isa nullable AAtid */
6769 cltype = type_nullable_parser_nodes__AAtid.color;
6770 idtype = type_nullable_parser_nodes__AAtid.id;
6771 if(var_patidnode2 == NULL) {
6772 var6 = 1;
6773 } else {
6774 if(cltype >= var_patidnode2->type->table_size) {
6775 var6 = 0;
6776 } else {
6777 var6 = var_patidnode2->type->type_table[cltype] == idtype;
6778 }
6779 }
6780 if (!var6) {
6781 fprintf(stderr, "Runtime error: %s", "Assert failed");
6782 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28279);
6783 exit(1);
6784 }
6785 var_pannotationsnode6 = var_nodearraylist3;
6786 /* <var_pannotationsnode6:nullable Object> isa nullable AAnnotations */
6787 cltype8 = type_nullable_parser_nodes__AAnnotations.color;
6788 idtype9 = type_nullable_parser_nodes__AAnnotations.id;
6789 if(var_pannotationsnode6 == NULL) {
6790 var7 = 1;
6791 } else {
6792 if(cltype8 >= var_pannotationsnode6->type->table_size) {
6793 var7 = 0;
6794 } else {
6795 var7 = var_pannotationsnode6->type->type_table[cltype8] == idtype9;
6796 }
6797 }
6798 if (!var7) {
6799 fprintf(stderr, "Runtime error: %s", "Assert failed");
6800 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28281);
6801 exit(1);
6802 }
6803 var10 = NEW_parser_nodes__AAnnotation(&type_parser_nodes__AAnnotation);
6804 var11 = NULL;
6805 var12 = NULL;
6806 ((void (*)(val*, val*, val*, val*, val*, val*))(var10->class->vft[COLOR_parser_prod__AAnnotation__init_aannotation]))(var10, var_patidnode2, var11, var_listnode4, var12, var_pannotationsnode6) /* init_aannotation on <var10:AAnnotation>*/;
6807 CHECK_NEW_parser_nodes__AAnnotation(var10);
6808 var_pannotationnode1 = var10;
6809 var_node_list = var_pannotationnode1;
6810 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction823> */
6811 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
6812 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
6813 RET_LABEL:;
6814 }
6815 /* method parser#ReduceAction823#action for (self: Object, Parser) */
6816 void VIRTUAL_parser__ReduceAction823__action(val* self, val* p0) {
6817 parser__ReduceAction823__action(self, p0);
6818 RET_LABEL:;
6819 }
6820 /* method parser#ReduceAction824#action for (self: ReduceAction824, Parser) */
6821 void parser__ReduceAction824__action(val* self, val* p0) {
6822 val* var_p /* var p: Parser */;
6823 val* var /* : null */;
6824 val* var_node_list /* var node_list: nullable Object */;
6825 val* var1 /* : nullable Object */;
6826 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
6827 val* var2 /* : nullable Object */;
6828 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6829 val* var3 /* : nullable Object */;
6830 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6831 val* var4 /* : nullable Object */;
6832 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6833 val* var5 /* : nullable Object */;
6834 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6835 val* var6 /* : nullable Object */;
6836 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6837 val* var7 /* : nullable Object */;
6838 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6839 val* var8 /* : Array[Object] */;
6840 val* var_listnode5 /* var listnode5: Array[Object] */;
6841 val* var_patidnode2 /* var patidnode2: nullable Object */;
6842 short int var9 /* : Bool */;
6843 int cltype;
6844 int idtype;
6845 val* var_toparnode3 /* var toparnode3: nullable Object */;
6846 short int var10 /* : Bool */;
6847 int cltype11;
6848 int idtype12;
6849 val* var_listnode4 /* var listnode4: nullable Object */;
6850 short int var13 /* : Bool */;
6851 int cltype14;
6852 int idtype15;
6853 val* var16 /* : Array[Object] */;
6854 val* var_tcparnode6 /* var tcparnode6: nullable Object */;
6855 short int var17 /* : Bool */;
6856 int cltype18;
6857 int idtype19;
6858 val* var20 /* : AAnnotation */;
6859 val* var21 /* : null */;
6860 val* var_pannotationnode1 /* var pannotationnode1: nullable AAnnotation */;
6861 long var22 /* : Int */;
6862 long var23 /* : Int */;
6863 var_p = p0;
6864 var = NULL;
6865 var_node_list = var;
6866 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6867 var_nodearraylist7 = var1;
6868 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6869 var_nodearraylist6 = var2;
6870 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6871 var_nodearraylist5 = var3;
6872 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6873 var_nodearraylist4 = var4;
6874 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6875 var_nodearraylist3 = var5;
6876 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6877 var_nodearraylist2 = var6;
6878 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6879 var_nodearraylist1 = var7;
6880 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
6881 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
6882 CHECK_NEW_array__Array(var8);
6883 var_listnode5 = var8;
6884 var_patidnode2 = var_nodearraylist2;
6885 /* <var_patidnode2:nullable Object> isa nullable AAtid */
6886 cltype = type_nullable_parser_nodes__AAtid.color;
6887 idtype = type_nullable_parser_nodes__AAtid.id;
6888 if(var_patidnode2 == NULL) {
6889 var9 = 1;
6890 } else {
6891 if(cltype >= var_patidnode2->type->table_size) {
6892 var9 = 0;
6893 } else {
6894 var9 = var_patidnode2->type->type_table[cltype] == idtype;
6895 }
6896 }
6897 if (!var9) {
6898 fprintf(stderr, "Runtime error: %s", "Assert failed");
6899 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28307);
6900 exit(1);
6901 }
6902 var_toparnode3 = var_nodearraylist3;
6903 /* <var_toparnode3:nullable Object> isa nullable TOpar */
6904 cltype11 = type_nullable_parser_nodes__TOpar.color;
6905 idtype12 = type_nullable_parser_nodes__TOpar.id;
6906 if(var_toparnode3 == NULL) {
6907 var10 = 1;
6908 } else {
6909 if(cltype11 >= var_toparnode3->type->table_size) {
6910 var10 = 0;
6911 } else {
6912 var10 = var_toparnode3->type->type_table[cltype11] == idtype12;
6913 }
6914 }
6915 if (!var10) {
6916 fprintf(stderr, "Runtime error: %s", "Assert failed");
6917 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28309);
6918 exit(1);
6919 }
6920 var_listnode4 = var_nodearraylist5;
6921 /* <var_listnode4:nullable Object> isa Array[Object] */
6922 cltype14 = type_array__Arraykernel__Object.color;
6923 idtype15 = type_array__Arraykernel__Object.id;
6924 if(var_listnode4 == NULL) {
6925 var13 = 0;
6926 } else {
6927 if(cltype14 >= var_listnode4->type->table_size) {
6928 var13 = 0;
6929 } else {
6930 var13 = var_listnode4->type->type_table[cltype14] == idtype15;
6931 }
6932 }
6933 if (!var13) {
6934 fprintf(stderr, "Runtime error: %s", "Assert failed");
6935 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28311);
6936 exit(1);
6937 }
6938 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction824>*/;
6939 var_listnode5 = var16;
6940 var_tcparnode6 = var_nodearraylist6;
6941 /* <var_tcparnode6:nullable Object> isa nullable TCpar */
6942 cltype18 = type_nullable_parser_nodes__TCpar.color;
6943 idtype19 = type_nullable_parser_nodes__TCpar.id;
6944 if(var_tcparnode6 == NULL) {
6945 var17 = 1;
6946 } else {
6947 if(cltype18 >= var_tcparnode6->type->table_size) {
6948 var17 = 0;
6949 } else {
6950 var17 = var_tcparnode6->type->type_table[cltype18] == idtype19;
6951 }
6952 }
6953 if (!var17) {
6954 fprintf(stderr, "Runtime error: %s", "Assert failed");
6955 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28314);
6956 exit(1);
6957 }
6958 var20 = NEW_parser_nodes__AAnnotation(&type_parser_nodes__AAnnotation);
6959 var21 = NULL;
6960 ((void (*)(val*, val*, val*, val*, val*, val*))(var20->class->vft[COLOR_parser_prod__AAnnotation__init_aannotation]))(var20, var_patidnode2, var_toparnode3, var_listnode5, var_tcparnode6, var21) /* init_aannotation on <var20:AAnnotation>*/;
6961 CHECK_NEW_parser_nodes__AAnnotation(var20);
6962 var_pannotationnode1 = var20;
6963 var_node_list = var_pannotationnode1;
6964 var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction824> */
6965 var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
6966 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
6967 RET_LABEL:;
6968 }
6969 /* method parser#ReduceAction824#action for (self: Object, Parser) */
6970 void VIRTUAL_parser__ReduceAction824__action(val* self, val* p0) {
6971 parser__ReduceAction824__action(self, p0);
6972 RET_LABEL:;
6973 }
6974 /* method parser#ReduceAction825#action for (self: ReduceAction825, Parser) */
6975 void parser__ReduceAction825__action(val* self, val* p0) {
6976 val* var_p /* var p: Parser */;
6977 val* var /* : null */;
6978 val* var_node_list /* var node_list: nullable Object */;
6979 val* var1 /* : nullable Object */;
6980 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
6981 val* var2 /* : nullable Object */;
6982 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
6983 val* var3 /* : nullable Object */;
6984 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6985 val* var4 /* : nullable Object */;
6986 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6987 val* var5 /* : nullable Object */;
6988 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6989 val* var6 /* : nullable Object */;
6990 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6991 val* var7 /* : nullable Object */;
6992 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6993 val* var8 /* : nullable Object */;
6994 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6995 val* var9 /* : Array[Object] */;
6996 val* var_listnode5 /* var listnode5: Array[Object] */;
6997 val* var_patidnode2 /* var patidnode2: nullable Object */;
6998 short int var10 /* : Bool */;
6999 int cltype;
7000 int idtype;
7001 val* var_toparnode3 /* var toparnode3: nullable Object */;
7002 short int var11 /* : Bool */;
7003 int cltype12;
7004 int idtype13;
7005 val* var_listnode4 /* var listnode4: nullable Object */;
7006 short int var14 /* : Bool */;
7007 int cltype15;
7008 int idtype16;
7009 val* var17 /* : Array[Object] */;
7010 val* var_tcparnode6 /* var tcparnode6: nullable Object */;
7011 short int var18 /* : Bool */;
7012 int cltype19;
7013 int idtype20;
7014 val* var_pannotationsnode7 /* var pannotationsnode7: nullable Object */;
7015 short int var21 /* : Bool */;
7016 int cltype22;
7017 int idtype23;
7018 val* var24 /* : AAnnotation */;
7019 val* var_pannotationnode1 /* var pannotationnode1: nullable AAnnotation */;
7020 long var25 /* : Int */;
7021 long var26 /* : Int */;
7022 var_p = p0;
7023 var = NULL;
7024 var_node_list = var;
7025 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7026 var_nodearraylist8 = var1;
7027 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7028 var_nodearraylist7 = var2;
7029 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7030 var_nodearraylist6 = var3;
7031 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7032 var_nodearraylist5 = var4;
7033 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7034 var_nodearraylist4 = var5;
7035 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7036 var_nodearraylist3 = var6;
7037 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7038 var_nodearraylist2 = var7;
7039 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7040 var_nodearraylist1 = var8;
7041 var9 = NEW_array__Array(&type_array__Arraykernel__Object);
7042 ((void (*)(val*))(var9->class->vft[COLOR_array__Array__init]))(var9) /* init on <var9:Array[Object]>*/;
7043 CHECK_NEW_array__Array(var9);
7044 var_listnode5 = var9;
7045 var_patidnode2 = var_nodearraylist2;
7046 /* <var_patidnode2:nullable Object> isa nullable AAtid */
7047 cltype = type_nullable_parser_nodes__AAtid.color;
7048 idtype = type_nullable_parser_nodes__AAtid.id;
7049 if(var_patidnode2 == NULL) {
7050 var10 = 1;
7051 } else {
7052 if(cltype >= var_patidnode2->type->table_size) {
7053 var10 = 0;
7054 } else {
7055 var10 = var_patidnode2->type->type_table[cltype] == idtype;
7056 }
7057 }
7058 if (!var10) {
7059 fprintf(stderr, "Runtime error: %s", "Assert failed");
7060 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28341);
7061 exit(1);
7062 }
7063 var_toparnode3 = var_nodearraylist3;
7064 /* <var_toparnode3:nullable Object> isa nullable TOpar */
7065 cltype12 = type_nullable_parser_nodes__TOpar.color;
7066 idtype13 = type_nullable_parser_nodes__TOpar.id;
7067 if(var_toparnode3 == NULL) {
7068 var11 = 1;
7069 } else {
7070 if(cltype12 >= var_toparnode3->type->table_size) {
7071 var11 = 0;
7072 } else {
7073 var11 = var_toparnode3->type->type_table[cltype12] == idtype13;
7074 }
7075 }
7076 if (!var11) {
7077 fprintf(stderr, "Runtime error: %s", "Assert failed");
7078 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28343);
7079 exit(1);
7080 }
7081 var_listnode4 = var_nodearraylist5;
7082 /* <var_listnode4:nullable Object> isa Array[Object] */
7083 cltype15 = type_array__Arraykernel__Object.color;
7084 idtype16 = type_array__Arraykernel__Object.id;
7085 if(var_listnode4 == NULL) {
7086 var14 = 0;
7087 } else {
7088 if(cltype15 >= var_listnode4->type->table_size) {
7089 var14 = 0;
7090 } else {
7091 var14 = var_listnode4->type->type_table[cltype15] == idtype16;
7092 }
7093 }
7094 if (!var14) {
7095 fprintf(stderr, "Runtime error: %s", "Assert failed");
7096 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28345);
7097 exit(1);
7098 }
7099 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction825>*/;
7100 var_listnode5 = var17;
7101 var_tcparnode6 = var_nodearraylist6;
7102 /* <var_tcparnode6:nullable Object> isa nullable TCpar */
7103 cltype19 = type_nullable_parser_nodes__TCpar.color;
7104 idtype20 = type_nullable_parser_nodes__TCpar.id;
7105 if(var_tcparnode6 == NULL) {
7106 var18 = 1;
7107 } else {
7108 if(cltype19 >= var_tcparnode6->type->table_size) {
7109 var18 = 0;
7110 } else {
7111 var18 = var_tcparnode6->type->type_table[cltype19] == idtype20;
7112 }
7113 }
7114 if (!var18) {
7115 fprintf(stderr, "Runtime error: %s", "Assert failed");
7116 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28348);
7117 exit(1);
7118 }
7119 var_pannotationsnode7 = var_nodearraylist7;
7120 /* <var_pannotationsnode7:nullable Object> isa nullable AAnnotations */
7121 cltype22 = type_nullable_parser_nodes__AAnnotations.color;
7122 idtype23 = type_nullable_parser_nodes__AAnnotations.id;
7123 if(var_pannotationsnode7 == NULL) {
7124 var21 = 1;
7125 } else {
7126 if(cltype22 >= var_pannotationsnode7->type->table_size) {
7127 var21 = 0;
7128 } else {
7129 var21 = var_pannotationsnode7->type->type_table[cltype22] == idtype23;
7130 }
7131 }
7132 if (!var21) {
7133 fprintf(stderr, "Runtime error: %s", "Assert failed");
7134 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28350);
7135 exit(1);
7136 }
7137 var24 = NEW_parser_nodes__AAnnotation(&type_parser_nodes__AAnnotation);
7138 ((void (*)(val*, val*, val*, val*, val*, val*))(var24->class->vft[COLOR_parser_prod__AAnnotation__init_aannotation]))(var24, var_patidnode2, var_toparnode3, var_listnode5, var_tcparnode6, var_pannotationsnode7) /* init_aannotation on <var24:AAnnotation>*/;
7139 CHECK_NEW_parser_nodes__AAnnotation(var24);
7140 var_pannotationnode1 = var24;
7141 var_node_list = var_pannotationnode1;
7142 var25 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction825> */
7143 var26 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var25) /* go_to on <var_p:Parser>*/;
7144 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var26, var_node_list) /* push on <var_p:Parser>*/;
7145 RET_LABEL:;
7146 }
7147 /* method parser#ReduceAction825#action for (self: Object, Parser) */
7148 void VIRTUAL_parser__ReduceAction825__action(val* self, val* p0) {
7149 parser__ReduceAction825__action(self, p0);
7150 RET_LABEL:;
7151 }
7152 /* method parser#ReduceAction826#action for (self: ReduceAction826, Parser) */
7153 void parser__ReduceAction826__action(val* self, val* p0) {
7154 val* var_p /* var p: Parser */;
7155 val* var /* : null */;
7156 val* var_node_list /* var node_list: nullable Object */;
7157 val* var1 /* : nullable Object */;
7158 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7159 val* var2 /* : nullable Object */;
7160 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7161 val* var3 /* : nullable Object */;
7162 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7163 val* var4 /* : nullable Object */;
7164 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7165 val* var5 /* : Array[Object] */;
7166 val* var_listnode5 /* var listnode5: Array[Object] */;
7167 val* var_patidnode2 /* var patidnode2: nullable Object */;
7168 short int var6 /* : Bool */;
7169 int cltype;
7170 int idtype;
7171 val* var_listnode4 /* var listnode4: nullable Object */;
7172 short int var7 /* : Bool */;
7173 int cltype8;
7174 int idtype9;
7175 val* var10 /* : Array[Object] */;
7176 val* var11 /* : AAnnotation */;
7177 val* var12 /* : null */;
7178 val* var13 /* : null */;
7179 val* var14 /* : null */;
7180 val* var_pannotationnode1 /* var pannotationnode1: nullable AAnnotation */;
7181 long var15 /* : Int */;
7182 long var16 /* : Int */;
7183 var_p = p0;
7184 var = NULL;
7185 var_node_list = var;
7186 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7187 var_nodearraylist4 = var1;
7188 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7189 var_nodearraylist3 = var2;
7190 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7191 var_nodearraylist2 = var3;
7192 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7193 var_nodearraylist1 = var4;
7194 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
7195 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
7196 CHECK_NEW_array__Array(var5);
7197 var_listnode5 = var5;
7198 var_patidnode2 = var_nodearraylist2;
7199 /* <var_patidnode2:nullable Object> isa nullable AAtid */
7200 cltype = type_nullable_parser_nodes__AAtid.color;
7201 idtype = type_nullable_parser_nodes__AAtid.id;
7202 if(var_patidnode2 == NULL) {
7203 var6 = 1;
7204 } else {
7205 if(cltype >= var_patidnode2->type->table_size) {
7206 var6 = 0;
7207 } else {
7208 var6 = var_patidnode2->type->type_table[cltype] == idtype;
7209 }
7210 }
7211 if (!var6) {
7212 fprintf(stderr, "Runtime error: %s", "Assert failed");
7213 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28373);
7214 exit(1);
7215 }
7216 var_listnode4 = var_nodearraylist3;
7217 /* <var_listnode4:nullable Object> isa Array[Object] */
7218 cltype8 = type_array__Arraykernel__Object.color;
7219 idtype9 = type_array__Arraykernel__Object.id;
7220 if(var_listnode4 == NULL) {
7221 var7 = 0;
7222 } else {
7223 if(cltype8 >= var_listnode4->type->table_size) {
7224 var7 = 0;
7225 } else {
7226 var7 = var_listnode4->type->type_table[cltype8] == idtype9;
7227 }
7228 }
7229 if (!var7) {
7230 fprintf(stderr, "Runtime error: %s", "Assert failed");
7231 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28375);
7232 exit(1);
7233 }
7234 var10 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction826>*/;
7235 var_listnode5 = var10;
7236 var11 = NEW_parser_nodes__AAnnotation(&type_parser_nodes__AAnnotation);
7237 var12 = NULL;
7238 var13 = NULL;
7239 var14 = NULL;
7240 ((void (*)(val*, val*, val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AAnnotation__init_aannotation]))(var11, var_patidnode2, var12, var_listnode5, var13, var14) /* init_aannotation on <var11:AAnnotation>*/;
7241 CHECK_NEW_parser_nodes__AAnnotation(var11);
7242 var_pannotationnode1 = var11;
7243 var_node_list = var_pannotationnode1;
7244 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction826> */
7245 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
7246 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
7247 RET_LABEL:;
7248 }
7249 /* method parser#ReduceAction826#action for (self: Object, Parser) */
7250 void VIRTUAL_parser__ReduceAction826__action(val* self, val* p0) {
7251 parser__ReduceAction826__action(self, p0);
7252 RET_LABEL:;
7253 }
7254 /* method parser#ReduceAction827#action for (self: ReduceAction827, Parser) */
7255 void parser__ReduceAction827__action(val* self, val* p0) {
7256 val* var_p /* var p: Parser */;
7257 val* var /* : null */;
7258 val* var_node_list /* var node_list: nullable Object */;
7259 val* var1 /* : nullable Object */;
7260 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7261 val* var2 /* : nullable Object */;
7262 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7263 val* var3 /* : nullable Object */;
7264 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7265 val* var_pannotationnode1 /* var pannotationnode1: nullable Object */;
7266 long var4 /* : Int */;
7267 long var5 /* : Int */;
7268 var_p = p0;
7269 var = NULL;
7270 var_node_list = var;
7271 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7272 var_nodearraylist3 = var1;
7273 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7274 var_nodearraylist2 = var2;
7275 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7276 var_nodearraylist1 = var3;
7277 var_pannotationnode1 = var_nodearraylist3;
7278 var_node_list = var_pannotationnode1;
7279 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction827> */
7280 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
7281 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
7282 RET_LABEL:;
7283 }
7284 /* method parser#ReduceAction827#action for (self: Object, Parser) */
7285 void VIRTUAL_parser__ReduceAction827__action(val* self, val* p0) {
7286 parser__ReduceAction827__action(self, p0);
7287 RET_LABEL:;
7288 }
7289 /* method parser#ReduceAction828#action for (self: ReduceAction828, Parser) */
7290 void parser__ReduceAction828__action(val* self, val* p0) {
7291 val* var_p /* var p: Parser */;
7292 val* var /* : null */;
7293 val* var_node_list /* var node_list: nullable Object */;
7294 val* var1 /* : nullable Object */;
7295 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7296 val* var2 /* : Array[Object] */;
7297 val* var_listnode2 /* var listnode2: Array[Object] */;
7298 val* var_patargnode1 /* var patargnode1: nullable Object */;
7299 val* var3 /* : null */;
7300 short int var4 /* : Bool */;
7301 long var5 /* : Int */;
7302 long var6 /* : Int */;
7303 var_p = p0;
7304 var = NULL;
7305 var_node_list = var;
7306 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7307 var_nodearraylist1 = var1;
7308 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
7309 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
7310 CHECK_NEW_array__Array(var2);
7311 var_listnode2 = var2;
7312 var_patargnode1 = var_nodearraylist1;
7313 var3 = NULL;
7314 if (var_patargnode1 == NULL) {
7315 var4 = 0; /* is null */
7316 } else {
7317 var4 = 1; /* arg is null and recv is not */
7318 }
7319 if (var4){
7320 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_patargnode1) /* add on <var_listnode2:Array[Object]>*/;
7321 } else {
7322 }
7323 var_node_list = var_listnode2;
7324 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction828> */
7325 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
7326 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
7327 RET_LABEL:;
7328 }
7329 /* method parser#ReduceAction828#action for (self: Object, Parser) */
7330 void VIRTUAL_parser__ReduceAction828__action(val* self, val* p0) {
7331 parser__ReduceAction828__action(self, p0);
7332 RET_LABEL:;
7333 }
7334 /* method parser#ReduceAction829#action for (self: ReduceAction829, Parser) */
7335 void parser__ReduceAction829__action(val* self, val* p0) {
7336 val* var_p /* var p: Parser */;
7337 val* var /* : null */;
7338 val* var_node_list /* var node_list: nullable Object */;
7339 val* var1 /* : nullable Object */;
7340 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7341 val* var2 /* : nullable Object */;
7342 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7343 val* var3 /* : Array[Object] */;
7344 val* var_listnode3 /* var listnode3: Array[Object] */;
7345 val* var_patargnode1 /* var patargnode1: nullable Object */;
7346 val* var_listnode2 /* var listnode2: nullable Object */;
7347 short int var4 /* : Bool */;
7348 int cltype;
7349 int idtype;
7350 val* var5 /* : null */;
7351 short int var6 /* : Bool */;
7352 val* var7 /* : Array[Object] */;
7353 long var8 /* : Int */;
7354 long var9 /* : Int */;
7355 var_p = p0;
7356 var = NULL;
7357 var_node_list = var;
7358 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7359 var_nodearraylist2 = var1;
7360 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7361 var_nodearraylist1 = var2;
7362 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
7363 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
7364 CHECK_NEW_array__Array(var3);
7365 var_listnode3 = var3;
7366 var_patargnode1 = var_nodearraylist1;
7367 var_listnode2 = var_nodearraylist2;
7368 /* <var_listnode2:nullable Object> isa Array[Object] */
7369 cltype = type_array__Arraykernel__Object.color;
7370 idtype = type_array__Arraykernel__Object.id;
7371 if(var_listnode2 == NULL) {
7372 var4 = 0;
7373 } else {
7374 if(cltype >= var_listnode2->type->table_size) {
7375 var4 = 0;
7376 } else {
7377 var4 = var_listnode2->type->type_table[cltype] == idtype;
7378 }
7379 }
7380 if (!var4) {
7381 fprintf(stderr, "Runtime error: %s", "Assert failed");
7382 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28426);
7383 exit(1);
7384 }
7385 var5 = NULL;
7386 if (var_patargnode1 == NULL) {
7387 var6 = 0; /* is null */
7388 } else {
7389 var6 = 1; /* arg is null and recv is not */
7390 }
7391 if (var6){
7392 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_patargnode1) /* add on <var_listnode3:Array[Object]>*/;
7393 } else {
7394 }
7395 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode2) /* concat on <self:ReduceAction829>*/;
7396 var_listnode3 = var7;
7397 var_node_list = var_listnode3;
7398 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction829> */
7399 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
7400 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
7401 RET_LABEL:;
7402 }
7403 /* method parser#ReduceAction829#action for (self: Object, Parser) */
7404 void VIRTUAL_parser__ReduceAction829__action(val* self, val* p0) {
7405 parser__ReduceAction829__action(self, p0);
7406 RET_LABEL:;
7407 }
7408 /* method parser#ReduceAction830#action for (self: ReduceAction830, Parser) */
7409 void parser__ReduceAction830__action(val* self, val* p0) {
7410 val* var_p /* var p: Parser */;
7411 val* var /* : null */;
7412 val* var_node_list /* var node_list: nullable Object */;
7413 val* var1 /* : nullable Object */;
7414 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7415 val* var2 /* : nullable Object */;
7416 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7417 val* var3 /* : nullable Object */;
7418 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7419 val* var_patargnode1 /* var patargnode1: nullable Object */;
7420 long var4 /* : Int */;
7421 long var5 /* : Int */;
7422 var_p = p0;
7423 var = NULL;
7424 var_node_list = var;
7425 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7426 var_nodearraylist3 = var1;
7427 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7428 var_nodearraylist2 = var2;
7429 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7430 var_nodearraylist1 = var3;
7431 var_patargnode1 = var_nodearraylist3;
7432 var_node_list = var_patargnode1;
7433 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction830> */
7434 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
7435 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
7436 RET_LABEL:;
7437 }
7438 /* method parser#ReduceAction830#action for (self: Object, Parser) */
7439 void VIRTUAL_parser__ReduceAction830__action(val* self, val* p0) {
7440 parser__ReduceAction830__action(self, p0);
7441 RET_LABEL:;
7442 }
7443 /* method parser#ReduceAction831#action for (self: ReduceAction831, Parser) */
7444 void parser__ReduceAction831__action(val* self, val* p0) {
7445 val* var_p /* var p: Parser */;
7446 val* var /* : null */;
7447 val* var_node_list /* var node_list: nullable Object */;
7448 val* var1 /* : nullable Object */;
7449 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7450 val* var_ptypenode2 /* var ptypenode2: nullable Object */;
7451 short int var2 /* : Bool */;
7452 int cltype;
7453 int idtype;
7454 val* var3 /* : ATypeAtArg */;
7455 val* var_patargnode1 /* var patargnode1: nullable ATypeAtArg */;
7456 long var4 /* : Int */;
7457 long var5 /* : Int */;
7458 var_p = p0;
7459 var = NULL;
7460 var_node_list = var;
7461 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7462 var_nodearraylist1 = var1;
7463 var_ptypenode2 = var_nodearraylist1;
7464 /* <var_ptypenode2:nullable Object> isa nullable AType */
7465 cltype = type_nullable_parser_nodes__AType.color;
7466 idtype = type_nullable_parser_nodes__AType.id;
7467 if(var_ptypenode2 == NULL) {
7468 var2 = 1;
7469 } else {
7470 if(cltype >= var_ptypenode2->type->table_size) {
7471 var2 = 0;
7472 } else {
7473 var2 = var_ptypenode2->type->type_table[cltype] == idtype;
7474 }
7475 }
7476 if (!var2) {
7477 fprintf(stderr, "Runtime error: %s", "Assert failed");
7478 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28455);
7479 exit(1);
7480 }
7481 var3 = NEW_parser_nodes__ATypeAtArg(&type_parser_nodes__ATypeAtArg);
7482 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__ATypeAtArg__init_atypeatarg]))(var3, var_ptypenode2) /* init_atypeatarg on <var3:ATypeAtArg>*/;
7483 CHECK_NEW_parser_nodes__ATypeAtArg(var3);
7484 var_patargnode1 = var3;
7485 var_node_list = var_patargnode1;
7486 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction831> */
7487 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
7488 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
7489 RET_LABEL:;
7490 }
7491 /* method parser#ReduceAction831#action for (self: Object, Parser) */
7492 void VIRTUAL_parser__ReduceAction831__action(val* self, val* p0) {
7493 parser__ReduceAction831__action(self, p0);
7494 RET_LABEL:;
7495 }
7496 /* method parser#ReduceAction832#action for (self: ReduceAction832, Parser) */
7497 void parser__ReduceAction832__action(val* self, val* p0) {
7498 val* var_p /* var p: Parser */;
7499 val* var /* : null */;
7500 val* var_node_list /* var node_list: nullable Object */;
7501 val* var1 /* : nullable Object */;
7502 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7503 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7504 short int var2 /* : Bool */;
7505 int cltype;
7506 int idtype;
7507 val* var3 /* : AExprAtArg */;
7508 val* var_patargnode1 /* var patargnode1: nullable AExprAtArg */;
7509 long var4 /* : Int */;
7510 long var5 /* : Int */;
7511 var_p = p0;
7512 var = NULL;
7513 var_node_list = var;
7514 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7515 var_nodearraylist1 = var1;
7516 var_pexprnode2 = var_nodearraylist1;
7517 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7518 cltype = type_nullable_parser_nodes__AExpr.color;
7519 idtype = type_nullable_parser_nodes__AExpr.id;
7520 if(var_pexprnode2 == NULL) {
7521 var2 = 1;
7522 } else {
7523 if(cltype >= var_pexprnode2->type->table_size) {
7524 var2 = 0;
7525 } else {
7526 var2 = var_pexprnode2->type->type_table[cltype] == idtype;
7527 }
7528 }
7529 if (!var2) {
7530 fprintf(stderr, "Runtime error: %s", "Assert failed");
7531 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28470);
7532 exit(1);
7533 }
7534 var3 = NEW_parser_nodes__AExprAtArg(&type_parser_nodes__AExprAtArg);
7535 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AExprAtArg__init_aexpratarg]))(var3, var_pexprnode2) /* init_aexpratarg on <var3:AExprAtArg>*/;
7536 CHECK_NEW_parser_nodes__AExprAtArg(var3);
7537 var_patargnode1 = var3;
7538 var_node_list = var_patargnode1;
7539 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction832> */
7540 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
7541 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
7542 RET_LABEL:;
7543 }
7544 /* method parser#ReduceAction832#action for (self: Object, Parser) */
7545 void VIRTUAL_parser__ReduceAction832__action(val* self, val* p0) {
7546 parser__ReduceAction832__action(self, p0);
7547 RET_LABEL:;
7548 }
7549 /* method parser#ReduceAction834#action for (self: ReduceAction834, Parser) */
7550 void parser__ReduceAction834__action(val* self, val* p0) {
7551 val* var_p /* var p: Parser */;
7552 val* var /* : null */;
7553 val* var_node_list /* var node_list: nullable Object */;
7554 val* var1 /* : nullable Object */;
7555 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7556 val* var_pannotationsnode2 /* var pannotationsnode2: nullable Object */;
7557 short int var2 /* : Bool */;
7558 int cltype;
7559 int idtype;
7560 val* var3 /* : AAtAtArg */;
7561 val* var_patargnode1 /* var patargnode1: nullable AAtAtArg */;
7562 long var4 /* : Int */;
7563 long var5 /* : Int */;
7564 var_p = p0;
7565 var = NULL;
7566 var_node_list = var;
7567 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7568 var_nodearraylist1 = var1;
7569 var_pannotationsnode2 = var_nodearraylist1;
7570 /* <var_pannotationsnode2:nullable Object> isa nullable AAnnotations */
7571 cltype = type_nullable_parser_nodes__AAnnotations.color;
7572 idtype = type_nullable_parser_nodes__AAnnotations.id;
7573 if(var_pannotationsnode2 == NULL) {
7574 var2 = 1;
7575 } else {
7576 if(cltype >= var_pannotationsnode2->type->table_size) {
7577 var2 = 0;
7578 } else {
7579 var2 = var_pannotationsnode2->type->type_table[cltype] == idtype;
7580 }
7581 }
7582 if (!var2) {
7583 fprintf(stderr, "Runtime error: %s", "Assert failed");
7584 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28485);
7585 exit(1);
7586 }
7587 var3 = NEW_parser_nodes__AAtAtArg(&type_parser_nodes__AAtAtArg);
7588 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AAtAtArg__init_aatatarg]))(var3, var_pannotationsnode2) /* init_aatatarg on <var3:AAtAtArg>*/;
7589 CHECK_NEW_parser_nodes__AAtAtArg(var3);
7590 var_patargnode1 = var3;
7591 var_node_list = var_patargnode1;
7592 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction834> */
7593 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
7594 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
7595 RET_LABEL:;
7596 }
7597 /* method parser#ReduceAction834#action for (self: Object, Parser) */
7598 void VIRTUAL_parser__ReduceAction834__action(val* self, val* p0) {
7599 parser__ReduceAction834__action(self, p0);
7600 RET_LABEL:;
7601 }
7602 /* method parser#ReduceAction835#action for (self: ReduceAction835, Parser) */
7603 void parser__ReduceAction835__action(val* self, val* p0) {
7604 val* var_p /* var p: Parser */;
7605 val* var /* : null */;
7606 val* var_node_list /* var node_list: nullable Object */;
7607 val* var1 /* : nullable Object */;
7608 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7609 val* var_tidnode2 /* var tidnode2: nullable Object */;
7610 short int var2 /* : Bool */;
7611 int cltype;
7612 int idtype;
7613 val* var3 /* : AIdAtid */;
7614 val* var_patidnode1 /* var patidnode1: nullable AIdAtid */;
7615 long var4 /* : Int */;
7616 long var5 /* : Int */;
7617 var_p = p0;
7618 var = NULL;
7619 var_node_list = var;
7620 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7621 var_nodearraylist1 = var1;
7622 var_tidnode2 = var_nodearraylist1;
7623 /* <var_tidnode2:nullable Object> isa nullable TId */
7624 cltype = type_nullable_parser_nodes__TId.color;
7625 idtype = type_nullable_parser_nodes__TId.id;
7626 if(var_tidnode2 == NULL) {
7627 var2 = 1;
7628 } else {
7629 if(cltype >= var_tidnode2->type->table_size) {
7630 var2 = 0;
7631 } else {
7632 var2 = var_tidnode2->type->type_table[cltype] == idtype;
7633 }
7634 }
7635 if (!var2) {
7636 fprintf(stderr, "Runtime error: %s", "Assert failed");
7637 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28500);
7638 exit(1);
7639 }
7640 var3 = NEW_parser_nodes__AIdAtid(&type_parser_nodes__AIdAtid);
7641 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AIdAtid__init_aidatid]))(var3, var_tidnode2) /* init_aidatid on <var3:AIdAtid>*/;
7642 CHECK_NEW_parser_nodes__AIdAtid(var3);
7643 var_patidnode1 = var3;
7644 var_node_list = var_patidnode1;
7645 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction835> */
7646 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
7647 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
7648 RET_LABEL:;
7649 }
7650 /* method parser#ReduceAction835#action for (self: Object, Parser) */
7651 void VIRTUAL_parser__ReduceAction835__action(val* self, val* p0) {
7652 parser__ReduceAction835__action(self, p0);
7653 RET_LABEL:;
7654 }
7655 /* method parser#ReduceAction836#action for (self: ReduceAction836, Parser) */
7656 void parser__ReduceAction836__action(val* self, val* p0) {
7657 val* var_p /* var p: Parser */;
7658 val* var /* : null */;
7659 val* var_node_list /* var node_list: nullable Object */;
7660 val* var1 /* : nullable Object */;
7661 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7662 val* var2 /* : nullable Object */;
7663 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7664 val* var_tidnode2 /* var tidnode2: nullable Object */;
7665 short int var3 /* : Bool */;
7666 int cltype;
7667 int idtype;
7668 val* var4 /* : AIdAtid */;
7669 val* var_patidnode1 /* var patidnode1: nullable AIdAtid */;
7670 long var5 /* : Int */;
7671 long var6 /* : Int */;
7672 var_p = p0;
7673 var = NULL;
7674 var_node_list = var;
7675 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7676 var_nodearraylist2 = var1;
7677 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7678 var_nodearraylist1 = var2;
7679 var_tidnode2 = var_nodearraylist2;
7680 /* <var_tidnode2:nullable Object> isa nullable TId */
7681 cltype = type_nullable_parser_nodes__TId.color;
7682 idtype = type_nullable_parser_nodes__TId.id;
7683 if(var_tidnode2 == NULL) {
7684 var3 = 1;
7685 } else {
7686 if(cltype >= var_tidnode2->type->table_size) {
7687 var3 = 0;
7688 } else {
7689 var3 = var_tidnode2->type->type_table[cltype] == idtype;
7690 }
7691 }
7692 if (!var3) {
7693 fprintf(stderr, "Runtime error: %s", "Assert failed");
7694 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28516);
7695 exit(1);
7696 }
7697 var4 = NEW_parser_nodes__AIdAtid(&type_parser_nodes__AIdAtid);
7698 ((void (*)(val*, val*))(var4->class->vft[COLOR_parser_prod__AIdAtid__init_aidatid]))(var4, var_tidnode2) /* init_aidatid on <var4:AIdAtid>*/;
7699 CHECK_NEW_parser_nodes__AIdAtid(var4);
7700 var_patidnode1 = var4;
7701 var_node_list = var_patidnode1;
7702 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction836> */
7703 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
7704 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
7705 RET_LABEL:;
7706 }
7707 /* method parser#ReduceAction836#action for (self: Object, Parser) */
7708 void VIRTUAL_parser__ReduceAction836__action(val* self, val* p0) {
7709 parser__ReduceAction836__action(self, p0);
7710 RET_LABEL:;
7711 }
7712 /* method parser#ReduceAction837#action for (self: ReduceAction837, Parser) */
7713 void parser__ReduceAction837__action(val* self, val* p0) {
7714 val* var_p /* var p: Parser */;
7715 val* var /* : null */;
7716 val* var_node_list /* var node_list: nullable Object */;
7717 val* var1 /* : nullable Object */;
7718 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7719 val* var2 /* : nullable Object */;
7720 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7721 val* var3 /* : nullable Object */;
7722 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7723 val* var_tidnode2 /* var tidnode2: nullable Object */;
7724 short int var4 /* : Bool */;
7725 int cltype;
7726 int idtype;
7727 val* var5 /* : AIdAtid */;
7728 val* var_patidnode1 /* var patidnode1: nullable AIdAtid */;
7729 long var6 /* : Int */;
7730 long var7 /* : Int */;
7731 var_p = p0;
7732 var = NULL;
7733 var_node_list = var;
7734 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7735 var_nodearraylist3 = var1;
7736 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7737 var_nodearraylist2 = var2;
7738 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7739 var_nodearraylist1 = var3;
7740 var_tidnode2 = var_nodearraylist3;
7741 /* <var_tidnode2:nullable Object> isa nullable TId */
7742 cltype = type_nullable_parser_nodes__TId.color;
7743 idtype = type_nullable_parser_nodes__TId.id;
7744 if(var_tidnode2 == NULL) {
7745 var4 = 1;
7746 } else {
7747 if(cltype >= var_tidnode2->type->table_size) {
7748 var4 = 0;
7749 } else {
7750 var4 = var_tidnode2->type->type_table[cltype] == idtype;
7751 }
7752 }
7753 if (!var4) {
7754 fprintf(stderr, "Runtime error: %s", "Assert failed");
7755 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28533);
7756 exit(1);
7757 }
7758 var5 = NEW_parser_nodes__AIdAtid(&type_parser_nodes__AIdAtid);
7759 ((void (*)(val*, val*))(var5->class->vft[COLOR_parser_prod__AIdAtid__init_aidatid]))(var5, var_tidnode2) /* init_aidatid on <var5:AIdAtid>*/;
7760 CHECK_NEW_parser_nodes__AIdAtid(var5);
7761 var_patidnode1 = var5;
7762 var_node_list = var_patidnode1;
7763 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction837> */
7764 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
7765 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
7766 RET_LABEL:;
7767 }
7768 /* method parser#ReduceAction837#action for (self: Object, Parser) */
7769 void VIRTUAL_parser__ReduceAction837__action(val* self, val* p0) {
7770 parser__ReduceAction837__action(self, p0);
7771 RET_LABEL:;
7772 }
7773 /* method parser#ReduceAction839#action for (self: ReduceAction839, Parser) */
7774 void parser__ReduceAction839__action(val* self, val* p0) {
7775 val* var_p /* var p: Parser */;
7776 val* var /* : null */;
7777 val* var_node_list /* var node_list: nullable Object */;
7778 val* var1 /* : nullable Object */;
7779 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7780 val* var_tkwreadablenode2 /* var tkwreadablenode2: nullable Object */;
7781 short int var2 /* : Bool */;
7782 int cltype;
7783 int idtype;
7784 val* var3 /* : AKwreadableAtid */;
7785 val* var_patidnode1 /* var patidnode1: nullable AKwreadableAtid */;
7786 long var4 /* : Int */;
7787 long var5 /* : Int */;
7788 var_p = p0;
7789 var = NULL;
7790 var_node_list = var;
7791 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7792 var_nodearraylist1 = var1;
7793 var_tkwreadablenode2 = var_nodearraylist1;
7794 /* <var_tkwreadablenode2:nullable Object> isa nullable TKwreadable */
7795 cltype = type_nullable_parser_nodes__TKwreadable.color;
7796 idtype = type_nullable_parser_nodes__TKwreadable.id;
7797 if(var_tkwreadablenode2 == NULL) {
7798 var2 = 1;
7799 } else {
7800 if(cltype >= var_tkwreadablenode2->type->table_size) {
7801 var2 = 0;
7802 } else {
7803 var2 = var_tkwreadablenode2->type->type_table[cltype] == idtype;
7804 }
7805 }
7806 if (!var2) {
7807 fprintf(stderr, "Runtime error: %s", "Assert failed");
7808 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28548);
7809 exit(1);
7810 }
7811 var3 = NEW_parser_nodes__AKwreadableAtid(&type_parser_nodes__AKwreadableAtid);
7812 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AKwreadableAtid__init_akwreadableatid]))(var3, var_tkwreadablenode2) /* init_akwreadableatid on <var3:AKwreadableAtid>*/;
7813 CHECK_NEW_parser_nodes__AKwreadableAtid(var3);
7814 var_patidnode1 = var3;
7815 var_node_list = var_patidnode1;
7816 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction839> */
7817 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
7818 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
7819 RET_LABEL:;
7820 }
7821 /* method parser#ReduceAction839#action for (self: Object, Parser) */
7822 void VIRTUAL_parser__ReduceAction839__action(val* self, val* p0) {
7823 parser__ReduceAction839__action(self, p0);
7824 RET_LABEL:;
7825 }
7826 /* method parser#ReduceAction840#action for (self: ReduceAction840, Parser) */
7827 void parser__ReduceAction840__action(val* self, val* p0) {
7828 val* var_p /* var p: Parser */;
7829 val* var /* : null */;
7830 val* var_node_list /* var node_list: nullable Object */;
7831 val* var1 /* : nullable Object */;
7832 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7833 val* var2 /* : nullable Object */;
7834 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7835 val* var_tkwreadablenode2 /* var tkwreadablenode2: nullable Object */;
7836 short int var3 /* : Bool */;
7837 int cltype;
7838 int idtype;
7839 val* var4 /* : AKwreadableAtid */;
7840 val* var_patidnode1 /* var patidnode1: nullable AKwreadableAtid */;
7841 long var5 /* : Int */;
7842 long var6 /* : Int */;
7843 var_p = p0;
7844 var = NULL;
7845 var_node_list = var;
7846 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7847 var_nodearraylist2 = var1;
7848 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7849 var_nodearraylist1 = var2;
7850 var_tkwreadablenode2 = var_nodearraylist2;
7851 /* <var_tkwreadablenode2:nullable Object> isa nullable TKwreadable */
7852 cltype = type_nullable_parser_nodes__TKwreadable.color;
7853 idtype = type_nullable_parser_nodes__TKwreadable.id;
7854 if(var_tkwreadablenode2 == NULL) {
7855 var3 = 1;
7856 } else {
7857 if(cltype >= var_tkwreadablenode2->type->table_size) {
7858 var3 = 0;
7859 } else {
7860 var3 = var_tkwreadablenode2->type->type_table[cltype] == idtype;
7861 }
7862 }
7863 if (!var3) {
7864 fprintf(stderr, "Runtime error: %s", "Assert failed");
7865 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28564);
7866 exit(1);
7867 }
7868 var4 = NEW_parser_nodes__AKwreadableAtid(&type_parser_nodes__AKwreadableAtid);
7869 ((void (*)(val*, val*))(var4->class->vft[COLOR_parser_prod__AKwreadableAtid__init_akwreadableatid]))(var4, var_tkwreadablenode2) /* init_akwreadableatid on <var4:AKwreadableAtid>*/;
7870 CHECK_NEW_parser_nodes__AKwreadableAtid(var4);
7871 var_patidnode1 = var4;
7872 var_node_list = var_patidnode1;
7873 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction840> */
7874 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
7875 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
7876 RET_LABEL:;
7877 }
7878 /* method parser#ReduceAction840#action for (self: Object, Parser) */
7879 void VIRTUAL_parser__ReduceAction840__action(val* self, val* p0) {
7880 parser__ReduceAction840__action(self, p0);
7881 RET_LABEL:;
7882 }
7883 /* method parser#ReduceAction841#action for (self: ReduceAction841, Parser) */
7884 void parser__ReduceAction841__action(val* self, val* p0) {
7885 val* var_p /* var p: Parser */;
7886 val* var /* : null */;
7887 val* var_node_list /* var node_list: nullable Object */;
7888 val* var1 /* : nullable Object */;
7889 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7890 val* var2 /* : nullable Object */;
7891 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7892 val* var3 /* : nullable Object */;
7893 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7894 val* var_tkwreadablenode2 /* var tkwreadablenode2: nullable Object */;
7895 short int var4 /* : Bool */;
7896 int cltype;
7897 int idtype;
7898 val* var5 /* : AKwreadableAtid */;
7899 val* var_patidnode1 /* var patidnode1: nullable AKwreadableAtid */;
7900 long var6 /* : Int */;
7901 long var7 /* : Int */;
7902 var_p = p0;
7903 var = NULL;
7904 var_node_list = var;
7905 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7906 var_nodearraylist3 = var1;
7907 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7908 var_nodearraylist2 = var2;
7909 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7910 var_nodearraylist1 = var3;
7911 var_tkwreadablenode2 = var_nodearraylist3;
7912 /* <var_tkwreadablenode2:nullable Object> isa nullable TKwreadable */
7913 cltype = type_nullable_parser_nodes__TKwreadable.color;
7914 idtype = type_nullable_parser_nodes__TKwreadable.id;
7915 if(var_tkwreadablenode2 == NULL) {
7916 var4 = 1;
7917 } else {
7918 if(cltype >= var_tkwreadablenode2->type->table_size) {
7919 var4 = 0;
7920 } else {
7921 var4 = var_tkwreadablenode2->type->type_table[cltype] == idtype;
7922 }
7923 }
7924 if (!var4) {
7925 fprintf(stderr, "Runtime error: %s", "Assert failed");
7926 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28581);
7927 exit(1);
7928 }
7929 var5 = NEW_parser_nodes__AKwreadableAtid(&type_parser_nodes__AKwreadableAtid);
7930 ((void (*)(val*, val*))(var5->class->vft[COLOR_parser_prod__AKwreadableAtid__init_akwreadableatid]))(var5, var_tkwreadablenode2) /* init_akwreadableatid on <var5:AKwreadableAtid>*/;
7931 CHECK_NEW_parser_nodes__AKwreadableAtid(var5);
7932 var_patidnode1 = var5;
7933 var_node_list = var_patidnode1;
7934 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction841> */
7935 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
7936 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
7937 RET_LABEL:;
7938 }
7939 /* method parser#ReduceAction841#action for (self: Object, Parser) */
7940 void VIRTUAL_parser__ReduceAction841__action(val* self, val* p0) {
7941 parser__ReduceAction841__action(self, p0);
7942 RET_LABEL:;
7943 }
7944 /* method parser#ReduceAction843#action for (self: ReduceAction843, Parser) */
7945 void parser__ReduceAction843__action(val* self, val* p0) {
7946 val* var_p /* var p: Parser */;
7947 val* var /* : null */;
7948 val* var_node_list /* var node_list: nullable Object */;
7949 val* var1 /* : nullable Object */;
7950 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7951 val* var_tkwwritablenode2 /* var tkwwritablenode2: nullable Object */;
7952 short int var2 /* : Bool */;
7953 int cltype;
7954 int idtype;
7955 val* var3 /* : AKwwritableAtid */;
7956 val* var_patidnode1 /* var patidnode1: nullable AKwwritableAtid */;
7957 long var4 /* : Int */;
7958 long var5 /* : Int */;
7959 var_p = p0;
7960 var = NULL;
7961 var_node_list = var;
7962 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7963 var_nodearraylist1 = var1;
7964 var_tkwwritablenode2 = var_nodearraylist1;
7965 /* <var_tkwwritablenode2:nullable Object> isa nullable TKwwritable */
7966 cltype = type_nullable_parser_nodes__TKwwritable.color;
7967 idtype = type_nullable_parser_nodes__TKwwritable.id;
7968 if(var_tkwwritablenode2 == NULL) {
7969 var2 = 1;
7970 } else {
7971 if(cltype >= var_tkwwritablenode2->type->table_size) {
7972 var2 = 0;
7973 } else {
7974 var2 = var_tkwwritablenode2->type->type_table[cltype] == idtype;
7975 }
7976 }
7977 if (!var2) {
7978 fprintf(stderr, "Runtime error: %s", "Assert failed");
7979 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28596);
7980 exit(1);
7981 }
7982 var3 = NEW_parser_nodes__AKwwritableAtid(&type_parser_nodes__AKwwritableAtid);
7983 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AKwwritableAtid__init_akwwritableatid]))(var3, var_tkwwritablenode2) /* init_akwwritableatid on <var3:AKwwritableAtid>*/;
7984 CHECK_NEW_parser_nodes__AKwwritableAtid(var3);
7985 var_patidnode1 = var3;
7986 var_node_list = var_patidnode1;
7987 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction843> */
7988 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
7989 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
7990 RET_LABEL:;
7991 }
7992 /* method parser#ReduceAction843#action for (self: Object, Parser) */
7993 void VIRTUAL_parser__ReduceAction843__action(val* self, val* p0) {
7994 parser__ReduceAction843__action(self, p0);
7995 RET_LABEL:;
7996 }
7997 /* method parser#ReduceAction844#action for (self: ReduceAction844, Parser) */
7998 void parser__ReduceAction844__action(val* self, val* p0) {
7999 val* var_p /* var p: Parser */;
8000 val* var /* : null */;
8001 val* var_node_list /* var node_list: nullable Object */;
8002 val* var1 /* : nullable Object */;
8003 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8004 val* var2 /* : nullable Object */;
8005 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8006 val* var_tkwwritablenode2 /* var tkwwritablenode2: nullable Object */;
8007 short int var3 /* : Bool */;
8008 int cltype;
8009 int idtype;
8010 val* var4 /* : AKwwritableAtid */;
8011 val* var_patidnode1 /* var patidnode1: nullable AKwwritableAtid */;
8012 long var5 /* : Int */;
8013 long var6 /* : Int */;
8014 var_p = p0;
8015 var = NULL;
8016 var_node_list = var;
8017 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8018 var_nodearraylist2 = var1;
8019 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8020 var_nodearraylist1 = var2;
8021 var_tkwwritablenode2 = var_nodearraylist2;
8022 /* <var_tkwwritablenode2:nullable Object> isa nullable TKwwritable */
8023 cltype = type_nullable_parser_nodes__TKwwritable.color;
8024 idtype = type_nullable_parser_nodes__TKwwritable.id;
8025 if(var_tkwwritablenode2 == NULL) {
8026 var3 = 1;
8027 } else {
8028 if(cltype >= var_tkwwritablenode2->type->table_size) {
8029 var3 = 0;
8030 } else {
8031 var3 = var_tkwwritablenode2->type->type_table[cltype] == idtype;
8032 }
8033 }
8034 if (!var3) {
8035 fprintf(stderr, "Runtime error: %s", "Assert failed");
8036 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28612);
8037 exit(1);
8038 }
8039 var4 = NEW_parser_nodes__AKwwritableAtid(&type_parser_nodes__AKwwritableAtid);
8040 ((void (*)(val*, val*))(var4->class->vft[COLOR_parser_prod__AKwwritableAtid__init_akwwritableatid]))(var4, var_tkwwritablenode2) /* init_akwwritableatid on <var4:AKwwritableAtid>*/;
8041 CHECK_NEW_parser_nodes__AKwwritableAtid(var4);
8042 var_patidnode1 = var4;
8043 var_node_list = var_patidnode1;
8044 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction844> */
8045 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
8046 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
8047 RET_LABEL:;
8048 }
8049 /* method parser#ReduceAction844#action for (self: Object, Parser) */
8050 void VIRTUAL_parser__ReduceAction844__action(val* self, val* p0) {
8051 parser__ReduceAction844__action(self, p0);
8052 RET_LABEL:;
8053 }
8054 /* method parser#ReduceAction845#action for (self: ReduceAction845, Parser) */
8055 void parser__ReduceAction845__action(val* self, val* p0) {
8056 val* var_p /* var p: Parser */;
8057 val* var /* : null */;
8058 val* var_node_list /* var node_list: nullable Object */;
8059 val* var1 /* : nullable Object */;
8060 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8061 val* var2 /* : nullable Object */;
8062 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8063 val* var3 /* : nullable Object */;
8064 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8065 val* var_tkwwritablenode2 /* var tkwwritablenode2: nullable Object */;
8066 short int var4 /* : Bool */;
8067 int cltype;
8068 int idtype;
8069 val* var5 /* : AKwwritableAtid */;
8070 val* var_patidnode1 /* var patidnode1: nullable AKwwritableAtid */;
8071 long var6 /* : Int */;
8072 long var7 /* : Int */;
8073 var_p = p0;
8074 var = NULL;
8075 var_node_list = var;
8076 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8077 var_nodearraylist3 = var1;
8078 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8079 var_nodearraylist2 = var2;
8080 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8081 var_nodearraylist1 = var3;
8082 var_tkwwritablenode2 = var_nodearraylist3;
8083 /* <var_tkwwritablenode2:nullable Object> isa nullable TKwwritable */
8084 cltype = type_nullable_parser_nodes__TKwwritable.color;
8085 idtype = type_nullable_parser_nodes__TKwwritable.id;
8086 if(var_tkwwritablenode2 == NULL) {
8087 var4 = 1;
8088 } else {
8089 if(cltype >= var_tkwwritablenode2->type->table_size) {
8090 var4 = 0;
8091 } else {
8092 var4 = var_tkwwritablenode2->type->type_table[cltype] == idtype;
8093 }
8094 }
8095 if (!var4) {
8096 fprintf(stderr, "Runtime error: %s", "Assert failed");
8097 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28629);
8098 exit(1);
8099 }
8100 var5 = NEW_parser_nodes__AKwwritableAtid(&type_parser_nodes__AKwwritableAtid);
8101 ((void (*)(val*, val*))(var5->class->vft[COLOR_parser_prod__AKwwritableAtid__init_akwwritableatid]))(var5, var_tkwwritablenode2) /* init_akwwritableatid on <var5:AKwwritableAtid>*/;
8102 CHECK_NEW_parser_nodes__AKwwritableAtid(var5);
8103 var_patidnode1 = var5;
8104 var_node_list = var_patidnode1;
8105 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction845> */
8106 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
8107 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
8108 RET_LABEL:;
8109 }
8110 /* method parser#ReduceAction845#action for (self: Object, Parser) */
8111 void VIRTUAL_parser__ReduceAction845__action(val* self, val* p0) {
8112 parser__ReduceAction845__action(self, p0);
8113 RET_LABEL:;
8114 }
8115 /* method parser#ReduceAction847#action for (self: ReduceAction847, Parser) */
8116 void parser__ReduceAction847__action(val* self, val* p0) {
8117 val* var_p /* var p: Parser */;
8118 val* var /* : null */;
8119 val* var_node_list /* var node_list: nullable Object */;
8120 val* var1 /* : nullable Object */;
8121 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8122 val* var_tkwimportnode2 /* var tkwimportnode2: nullable Object */;
8123 short int var2 /* : Bool */;
8124 int cltype;
8125 int idtype;
8126 val* var3 /* : AKwimportAtid */;
8127 val* var_patidnode1 /* var patidnode1: nullable AKwimportAtid */;
8128 long var4 /* : Int */;
8129 long var5 /* : Int */;
8130 var_p = p0;
8131 var = NULL;
8132 var_node_list = var;
8133 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8134 var_nodearraylist1 = var1;
8135 var_tkwimportnode2 = var_nodearraylist1;
8136 /* <var_tkwimportnode2:nullable Object> isa nullable TKwimport */
8137 cltype = type_nullable_parser_nodes__TKwimport.color;
8138 idtype = type_nullable_parser_nodes__TKwimport.id;
8139 if(var_tkwimportnode2 == NULL) {
8140 var2 = 1;
8141 } else {
8142 if(cltype >= var_tkwimportnode2->type->table_size) {
8143 var2 = 0;
8144 } else {
8145 var2 = var_tkwimportnode2->type->type_table[cltype] == idtype;
8146 }
8147 }
8148 if (!var2) {
8149 fprintf(stderr, "Runtime error: %s", "Assert failed");
8150 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28644);
8151 exit(1);
8152 }
8153 var3 = NEW_parser_nodes__AKwimportAtid(&type_parser_nodes__AKwimportAtid);
8154 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AKwimportAtid__init_akwimportatid]))(var3, var_tkwimportnode2) /* init_akwimportatid on <var3:AKwimportAtid>*/;
8155 CHECK_NEW_parser_nodes__AKwimportAtid(var3);
8156 var_patidnode1 = var3;
8157 var_node_list = var_patidnode1;
8158 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction847> */
8159 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
8160 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
8161 RET_LABEL:;
8162 }
8163 /* method parser#ReduceAction847#action for (self: Object, Parser) */
8164 void VIRTUAL_parser__ReduceAction847__action(val* self, val* p0) {
8165 parser__ReduceAction847__action(self, p0);
8166 RET_LABEL:;
8167 }
8168 /* method parser#ReduceAction848#action for (self: ReduceAction848, Parser) */
8169 void parser__ReduceAction848__action(val* self, val* p0) {
8170 val* var_p /* var p: Parser */;
8171 val* var /* : null */;
8172 val* var_node_list /* var node_list: nullable Object */;
8173 val* var1 /* : nullable Object */;
8174 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8175 val* var2 /* : nullable Object */;
8176 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8177 val* var_tkwimportnode2 /* var tkwimportnode2: nullable Object */;
8178 short int var3 /* : Bool */;
8179 int cltype;
8180 int idtype;
8181 val* var4 /* : AKwimportAtid */;
8182 val* var_patidnode1 /* var patidnode1: nullable AKwimportAtid */;
8183 long var5 /* : Int */;
8184 long var6 /* : Int */;
8185 var_p = p0;
8186 var = NULL;
8187 var_node_list = var;
8188 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8189 var_nodearraylist2 = var1;
8190 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8191 var_nodearraylist1 = var2;
8192 var_tkwimportnode2 = var_nodearraylist2;
8193 /* <var_tkwimportnode2:nullable Object> isa nullable TKwimport */
8194 cltype = type_nullable_parser_nodes__TKwimport.color;
8195 idtype = type_nullable_parser_nodes__TKwimport.id;
8196 if(var_tkwimportnode2 == NULL) {
8197 var3 = 1;
8198 } else {
8199 if(cltype >= var_tkwimportnode2->type->table_size) {
8200 var3 = 0;
8201 } else {
8202 var3 = var_tkwimportnode2->type->type_table[cltype] == idtype;
8203 }
8204 }
8205 if (!var3) {
8206 fprintf(stderr, "Runtime error: %s", "Assert failed");
8207 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28660);
8208 exit(1);
8209 }
8210 var4 = NEW_parser_nodes__AKwimportAtid(&type_parser_nodes__AKwimportAtid);
8211 ((void (*)(val*, val*))(var4->class->vft[COLOR_parser_prod__AKwimportAtid__init_akwimportatid]))(var4, var_tkwimportnode2) /* init_akwimportatid on <var4:AKwimportAtid>*/;
8212 CHECK_NEW_parser_nodes__AKwimportAtid(var4);
8213 var_patidnode1 = var4;
8214 var_node_list = var_patidnode1;
8215 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction848> */
8216 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
8217 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
8218 RET_LABEL:;
8219 }
8220 /* method parser#ReduceAction848#action for (self: Object, Parser) */
8221 void VIRTUAL_parser__ReduceAction848__action(val* self, val* p0) {
8222 parser__ReduceAction848__action(self, p0);
8223 RET_LABEL:;
8224 }
8225 /* method parser#ReduceAction849#action for (self: ReduceAction849, Parser) */
8226 void parser__ReduceAction849__action(val* self, val* p0) {
8227 val* var_p /* var p: Parser */;
8228 val* var /* : null */;
8229 val* var_node_list /* var node_list: nullable Object */;
8230 val* var1 /* : nullable Object */;
8231 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8232 val* var2 /* : nullable Object */;
8233 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8234 val* var3 /* : nullable Object */;
8235 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8236 val* var_tkwimportnode2 /* var tkwimportnode2: nullable Object */;
8237 short int var4 /* : Bool */;
8238 int cltype;
8239 int idtype;
8240 val* var5 /* : AKwimportAtid */;
8241 val* var_patidnode1 /* var patidnode1: nullable AKwimportAtid */;
8242 long var6 /* : Int */;
8243 long var7 /* : Int */;
8244 var_p = p0;
8245 var = NULL;
8246 var_node_list = var;
8247 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8248 var_nodearraylist3 = var1;
8249 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8250 var_nodearraylist2 = var2;
8251 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8252 var_nodearraylist1 = var3;
8253 var_tkwimportnode2 = var_nodearraylist3;
8254 /* <var_tkwimportnode2:nullable Object> isa nullable TKwimport */
8255 cltype = type_nullable_parser_nodes__TKwimport.color;
8256 idtype = type_nullable_parser_nodes__TKwimport.id;
8257 if(var_tkwimportnode2 == NULL) {
8258 var4 = 1;
8259 } else {
8260 if(cltype >= var_tkwimportnode2->type->table_size) {
8261 var4 = 0;
8262 } else {
8263 var4 = var_tkwimportnode2->type->type_table[cltype] == idtype;
8264 }
8265 }
8266 if (!var4) {
8267 fprintf(stderr, "Runtime error: %s", "Assert failed");
8268 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28677);
8269 exit(1);
8270 }
8271 var5 = NEW_parser_nodes__AKwimportAtid(&type_parser_nodes__AKwimportAtid);
8272 ((void (*)(val*, val*))(var5->class->vft[COLOR_parser_prod__AKwimportAtid__init_akwimportatid]))(var5, var_tkwimportnode2) /* init_akwimportatid on <var5:AKwimportAtid>*/;
8273 CHECK_NEW_parser_nodes__AKwimportAtid(var5);
8274 var_patidnode1 = var5;
8275 var_node_list = var_patidnode1;
8276 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction849> */
8277 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
8278 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
8279 RET_LABEL:;
8280 }
8281 /* method parser#ReduceAction849#action for (self: Object, Parser) */
8282 void VIRTUAL_parser__ReduceAction849__action(val* self, val* p0) {
8283 parser__ReduceAction849__action(self, p0);
8284 RET_LABEL:;
8285 }
8286 /* method parser#ReduceAction851#action for (self: ReduceAction851, Parser) */
8287 void parser__ReduceAction851__action(val* self, val* p0) {
8288 val* var_p /* var p: Parser */;
8289 val* var /* : null */;
8290 val* var_node_list /* var node_list: nullable Object */;
8291 val* var1 /* : nullable Object */;
8292 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8293 val* var2 /* : nullable Object */;
8294 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8295 val* var3 /* : nullable Object */;
8296 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8297 val* var4 /* : nullable Object */;
8298 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8299 val* var5 /* : Array[Object] */;
8300 val* var_listnode4 /* var listnode4: Array[Object] */;
8301 val* var_toparnode2 /* var toparnode2: nullable Object */;
8302 short int var6 /* : Bool */;
8303 int cltype;
8304 int idtype;
8305 val* var_listnode3 /* var listnode3: nullable Object */;
8306 short int var7 /* : Bool */;
8307 int cltype8;
8308 int idtype9;
8309 val* var10 /* : Array[Object] */;
8310 val* var_tcparnode5 /* var tcparnode5: nullable Object */;
8311 short int var11 /* : Bool */;
8312 int cltype12;
8313 int idtype13;
8314 val* var14 /* : AParExprs */;
8315 val* var_pexprsnode1 /* var pexprsnode1: nullable AParExprs */;
8316 long var15 /* : Int */;
8317 long var16 /* : Int */;
8318 var_p = p0;
8319 var = NULL;
8320 var_node_list = var;
8321 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8322 var_nodearraylist4 = var1;
8323 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8324 var_nodearraylist3 = var2;
8325 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8326 var_nodearraylist2 = var3;
8327 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8328 var_nodearraylist1 = var4;
8329 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
8330 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
8331 CHECK_NEW_array__Array(var5);
8332 var_listnode4 = var5;
8333 var_toparnode2 = var_nodearraylist1;
8334 /* <var_toparnode2:nullable Object> isa nullable TOpar */
8335 cltype = type_nullable_parser_nodes__TOpar.color;
8336 idtype = type_nullable_parser_nodes__TOpar.id;
8337 if(var_toparnode2 == NULL) {
8338 var6 = 1;
8339 } else {
8340 if(cltype >= var_toparnode2->type->table_size) {
8341 var6 = 0;
8342 } else {
8343 var6 = var_toparnode2->type->type_table[cltype] == idtype;
8344 }
8345 }
8346 if (!var6) {
8347 fprintf(stderr, "Runtime error: %s", "Assert failed");
8348 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28696);
8349 exit(1);
8350 }
8351 var_listnode3 = var_nodearraylist3;
8352 /* <var_listnode3:nullable Object> isa Array[Object] */
8353 cltype8 = type_array__Arraykernel__Object.color;
8354 idtype9 = type_array__Arraykernel__Object.id;
8355 if(var_listnode3 == NULL) {
8356 var7 = 0;
8357 } else {
8358 if(cltype8 >= var_listnode3->type->table_size) {
8359 var7 = 0;
8360 } else {
8361 var7 = var_listnode3->type->type_table[cltype8] == idtype9;
8362 }
8363 }
8364 if (!var7) {
8365 fprintf(stderr, "Runtime error: %s", "Assert failed");
8366 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28698);
8367 exit(1);
8368 }
8369 var10 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction851>*/;
8370 var_listnode4 = var10;
8371 var_tcparnode5 = var_nodearraylist4;
8372 /* <var_tcparnode5:nullable Object> isa nullable TCpar */
8373 cltype12 = type_nullable_parser_nodes__TCpar.color;
8374 idtype13 = type_nullable_parser_nodes__TCpar.id;
8375 if(var_tcparnode5 == NULL) {
8376 var11 = 1;
8377 } else {
8378 if(cltype12 >= var_tcparnode5->type->table_size) {
8379 var11 = 0;
8380 } else {
8381 var11 = var_tcparnode5->type->type_table[cltype12] == idtype13;
8382 }
8383 }
8384 if (!var11) {
8385 fprintf(stderr, "Runtime error: %s", "Assert failed");
8386 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28701);
8387 exit(1);
8388 }
8389 var14 = NEW_parser_nodes__AParExprs(&type_parser_nodes__AParExprs);
8390 ((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>*/;
8391 CHECK_NEW_parser_nodes__AParExprs(var14);
8392 var_pexprsnode1 = var14;
8393 var_node_list = var_pexprsnode1;
8394 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction851> */
8395 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
8396 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
8397 RET_LABEL:;
8398 }
8399 /* method parser#ReduceAction851#action for (self: Object, Parser) */
8400 void VIRTUAL_parser__ReduceAction851__action(val* self, val* p0) {
8401 parser__ReduceAction851__action(self, p0);
8402 RET_LABEL:;
8403 }
8404 /* method parser#ReduceAction852#action for (self: ReduceAction852, Parser) */
8405 void parser__ReduceAction852__action(val* self, val* p0) {
8406 val* var_p /* var p: Parser */;
8407 val* var /* : null */;
8408 val* var_node_list /* var node_list: nullable Object */;
8409 val* var1 /* : nullable Object */;
8410 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8411 val* var2 /* : nullable Object */;
8412 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8413 val* var3 /* : nullable Object */;
8414 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8415 val* var4 /* : Array[Object] */;
8416 val* var_listnode3 /* var listnode3: Array[Object] */;
8417 val* var_toparnode2 /* var toparnode2: nullable Object */;
8418 short int var5 /* : Bool */;
8419 int cltype;
8420 int idtype;
8421 val* var_tcparnode4 /* var tcparnode4: nullable Object */;
8422 short int var6 /* : Bool */;
8423 int cltype7;
8424 int idtype8;
8425 val* var9 /* : AParExprs */;
8426 val* var_pexprsnode1 /* var pexprsnode1: nullable AParExprs */;
8427 long var10 /* : Int */;
8428 long var11 /* : Int */;
8429 var_p = p0;
8430 var = NULL;
8431 var_node_list = var;
8432 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8433 var_nodearraylist3 = var1;
8434 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8435 var_nodearraylist2 = var2;
8436 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8437 var_nodearraylist1 = var3;
8438 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
8439 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
8440 CHECK_NEW_array__Array(var4);
8441 var_listnode3 = var4;
8442 var_toparnode2 = var_nodearraylist1;
8443 /* <var_toparnode2:nullable Object> isa nullable TOpar */
8444 cltype = type_nullable_parser_nodes__TOpar.color;
8445 idtype = type_nullable_parser_nodes__TOpar.id;
8446 if(var_toparnode2 == NULL) {
8447 var5 = 1;
8448 } else {
8449 if(cltype >= var_toparnode2->type->table_size) {
8450 var5 = 0;
8451 } else {
8452 var5 = var_toparnode2->type->type_table[cltype] == idtype;
8453 }
8454 }
8455 if (!var5) {
8456 fprintf(stderr, "Runtime error: %s", "Assert failed");
8457 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28721);
8458 exit(1);
8459 }
8460 var_tcparnode4 = var_nodearraylist3;
8461 /* <var_tcparnode4:nullable Object> isa nullable TCpar */
8462 cltype7 = type_nullable_parser_nodes__TCpar.color;
8463 idtype8 = type_nullable_parser_nodes__TCpar.id;
8464 if(var_tcparnode4 == NULL) {
8465 var6 = 1;
8466 } else {
8467 if(cltype7 >= var_tcparnode4->type->table_size) {
8468 var6 = 0;
8469 } else {
8470 var6 = var_tcparnode4->type->type_table[cltype7] == idtype8;
8471 }
8472 }
8473 if (!var6) {
8474 fprintf(stderr, "Runtime error: %s", "Assert failed");
8475 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28723);
8476 exit(1);
8477 }
8478 var9 = NEW_parser_nodes__AParExprs(&type_parser_nodes__AParExprs);
8479 ((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>*/;
8480 CHECK_NEW_parser_nodes__AParExprs(var9);
8481 var_pexprsnode1 = var9;
8482 var_node_list = var_pexprsnode1;
8483 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction852> */
8484 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
8485 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
8486 RET_LABEL:;
8487 }
8488 /* method parser#ReduceAction852#action for (self: Object, Parser) */
8489 void VIRTUAL_parser__ReduceAction852__action(val* self, val* p0) {
8490 parser__ReduceAction852__action(self, p0);
8491 RET_LABEL:;
8492 }
8493 /* method parser#ReduceAction853#action for (self: ReduceAction853, Parser) */
8494 void parser__ReduceAction853__action(val* self, val* p0) {
8495 val* var_p /* var p: Parser */;
8496 val* var /* : null */;
8497 val* var_node_list /* var node_list: nullable Object */;
8498 val* var1 /* : Array[Object] */;
8499 val* var_listnode2 /* var listnode2: Array[Object] */;
8500 val* var2 /* : AListExprs */;
8501 val* var_pexprsnode1 /* var pexprsnode1: nullable AListExprs */;
8502 long var3 /* : Int */;
8503 long var4 /* : Int */;
8504 var_p = p0;
8505 var = NULL;
8506 var_node_list = var;
8507 var1 = NEW_array__Array(&type_array__Arraykernel__Object);
8508 ((void (*)(val*))(var1->class->vft[COLOR_array__Array__init]))(var1) /* init on <var1:Array[Object]>*/;
8509 CHECK_NEW_array__Array(var1);
8510 var_listnode2 = var1;
8511 var2 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs);
8512 ((void (*)(val*, val*))(var2->class->vft[COLOR_parser_prod__AListExprs__init_alistexprs]))(var2, var_listnode2) /* init_alistexprs on <var2:AListExprs>*/;
8513 CHECK_NEW_parser_nodes__AListExprs(var2);
8514 var_pexprsnode1 = var2;
8515 var_node_list = var_pexprsnode1;
8516 var3 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction853> */
8517 var4 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var3) /* go_to on <var_p:Parser>*/;
8518 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var4, var_node_list) /* push on <var_p:Parser>*/;
8519 RET_LABEL:;
8520 }
8521 /* method parser#ReduceAction853#action for (self: Object, Parser) */
8522 void VIRTUAL_parser__ReduceAction853__action(val* self, val* p0) {
8523 parser__ReduceAction853__action(self, p0);
8524 RET_LABEL:;
8525 }
8526 /* method parser#ReduceAction855#action for (self: ReduceAction855, Parser) */
8527 void parser__ReduceAction855__action(val* self, val* p0) {
8528 val* var_p /* var p: Parser */;
8529 val* var /* : null */;
8530 val* var_node_list /* var node_list: nullable Object */;
8531 val* var1 /* : nullable Object */;
8532 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8533 val* var2 /* : Array[Object] */;
8534 val* var_listnode3 /* var listnode3: Array[Object] */;
8535 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
8536 short int var3 /* : Bool */;
8537 int cltype;
8538 int idtype;
8539 val* var4 /* : null */;
8540 short int var5 /* : Bool */;
8541 val* var6 /* : AListExprs */;
8542 val* var_pexprsnode1 /* var pexprsnode1: nullable AListExprs */;
8543 long var7 /* : Int */;
8544 long var8 /* : Int */;
8545 var_p = p0;
8546 var = NULL;
8547 var_node_list = var;
8548 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8549 var_nodearraylist1 = var1;
8550 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
8551 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
8552 CHECK_NEW_array__Array(var2);
8553 var_listnode3 = var2;
8554 var_pexprnode2 = var_nodearraylist1;
8555 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
8556 cltype = type_nullable_parser_nodes__AExpr.color;
8557 idtype = type_nullable_parser_nodes__AExpr.id;
8558 if(var_pexprnode2 == NULL) {
8559 var3 = 1;
8560 } else {
8561 if(cltype >= var_pexprnode2->type->table_size) {
8562 var3 = 0;
8563 } else {
8564 var3 = var_pexprnode2->type->type_table[cltype] == idtype;
8565 }
8566 }
8567 if (!var3) {
8568 fprintf(stderr, "Runtime error: %s", "Assert failed");
8569 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28754);
8570 exit(1);
8571 }
8572 var4 = NULL;
8573 if (var_pexprnode2 == NULL) {
8574 var5 = 0; /* is null */
8575 } else {
8576 var5 = 1; /* arg is null and recv is not */
8577 }
8578 if (var5){
8579 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pexprnode2) /* add on <var_listnode3:Array[Object]>*/;
8580 } else {
8581 }
8582 var6 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs);
8583 ((void (*)(val*, val*))(var6->class->vft[COLOR_parser_prod__AListExprs__init_alistexprs]))(var6, var_listnode3) /* init_alistexprs on <var6:AListExprs>*/;
8584 CHECK_NEW_parser_nodes__AListExprs(var6);
8585 var_pexprsnode1 = var6;
8586 var_node_list = var_pexprsnode1;
8587 var7 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction855> */
8588 var8 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var7) /* go_to on <var_p:Parser>*/;
8589 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var8, var_node_list) /* push on <var_p:Parser>*/;
8590 RET_LABEL:;
8591 }
8592 /* method parser#ReduceAction855#action for (self: Object, Parser) */
8593 void VIRTUAL_parser__ReduceAction855__action(val* self, val* p0) {
8594 parser__ReduceAction855__action(self, p0);
8595 RET_LABEL:;
8596 }
8597 /* method parser#ReduceAction858#action for (self: ReduceAction858, Parser) */
8598 void parser__ReduceAction858__action(val* self, val* p0) {
8599 val* var_p /* var p: Parser */;
8600 val* var /* : null */;
8601 val* var_node_list /* var node_list: nullable Object */;
8602 val* var1 /* : nullable Object */;
8603 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8604 val* var2 /* : nullable Object */;
8605 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8606 val* var3 /* : nullable Object */;
8607 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8608 val* var4 /* : nullable Object */;
8609 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8610 val* var5 /* : Array[Object] */;
8611 val* var_listnode4 /* var listnode4: Array[Object] */;
8612 val* var_tobranode2 /* var tobranode2: nullable Object */;
8613 short int var6 /* : Bool */;
8614 int cltype;
8615 int idtype;
8616 val* var_listnode3 /* var listnode3: nullable Object */;
8617 short int var7 /* : Bool */;
8618 int cltype8;
8619 int idtype9;
8620 val* var10 /* : Array[Object] */;
8621 val* var_tcbranode5 /* var tcbranode5: nullable Object */;
8622 short int var11 /* : Bool */;
8623 int cltype12;
8624 int idtype13;
8625 val* var14 /* : ABraExprs */;
8626 val* var_pexprsnode1 /* var pexprsnode1: nullable ABraExprs */;
8627 long var15 /* : Int */;
8628 long var16 /* : Int */;
8629 var_p = p0;
8630 var = NULL;
8631 var_node_list = var;
8632 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8633 var_nodearraylist4 = var1;
8634 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8635 var_nodearraylist3 = var2;
8636 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8637 var_nodearraylist2 = var3;
8638 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8639 var_nodearraylist1 = var4;
8640 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
8641 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
8642 CHECK_NEW_array__Array(var5);
8643 var_listnode4 = var5;
8644 var_tobranode2 = var_nodearraylist1;
8645 /* <var_tobranode2:nullable Object> isa nullable TObra */
8646 cltype = type_nullable_parser_nodes__TObra.color;
8647 idtype = type_nullable_parser_nodes__TObra.id;
8648 if(var_tobranode2 == NULL) {
8649 var6 = 1;
8650 } else {
8651 if(cltype >= var_tobranode2->type->table_size) {
8652 var6 = 0;
8653 } else {
8654 var6 = var_tobranode2->type->type_table[cltype] == idtype;
8655 }
8656 }
8657 if (!var6) {
8658 fprintf(stderr, "Runtime error: %s", "Assert failed");
8659 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28776);
8660 exit(1);
8661 }
8662 var_listnode3 = var_nodearraylist3;
8663 /* <var_listnode3:nullable Object> isa Array[Object] */
8664 cltype8 = type_array__Arraykernel__Object.color;
8665 idtype9 = type_array__Arraykernel__Object.id;
8666 if(var_listnode3 == NULL) {
8667 var7 = 0;
8668 } else {
8669 if(cltype8 >= var_listnode3->type->table_size) {
8670 var7 = 0;
8671 } else {
8672 var7 = var_listnode3->type->type_table[cltype8] == idtype9;
8673 }
8674 }
8675 if (!var7) {
8676 fprintf(stderr, "Runtime error: %s", "Assert failed");
8677 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28778);
8678 exit(1);
8679 }
8680 var10 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction858>*/;
8681 var_listnode4 = var10;
8682 var_tcbranode5 = var_nodearraylist4;
8683 /* <var_tcbranode5:nullable Object> isa nullable TCbra */
8684 cltype12 = type_nullable_parser_nodes__TCbra.color;
8685 idtype13 = type_nullable_parser_nodes__TCbra.id;
8686 if(var_tcbranode5 == NULL) {
8687 var11 = 1;
8688 } else {
8689 if(cltype12 >= var_tcbranode5->type->table_size) {
8690 var11 = 0;
8691 } else {
8692 var11 = var_tcbranode5->type->type_table[cltype12] == idtype13;
8693 }
8694 }
8695 if (!var11) {
8696 fprintf(stderr, "Runtime error: %s", "Assert failed");
8697 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28781);
8698 exit(1);
8699 }
8700 var14 = NEW_parser_nodes__ABraExprs(&type_parser_nodes__ABraExprs);
8701 ((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>*/;
8702 CHECK_NEW_parser_nodes__ABraExprs(var14);
8703 var_pexprsnode1 = var14;
8704 var_node_list = var_pexprsnode1;
8705 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction858> */
8706 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
8707 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
8708 RET_LABEL:;
8709 }
8710 /* method parser#ReduceAction858#action for (self: Object, Parser) */
8711 void VIRTUAL_parser__ReduceAction858__action(val* self, val* p0) {
8712 parser__ReduceAction858__action(self, p0);
8713 RET_LABEL:;
8714 }
8715 /* method parser#ReduceAction859#action for (self: ReduceAction859, Parser) */
8716 void parser__ReduceAction859__action(val* self, val* p0) {
8717 val* var_p /* var p: Parser */;
8718 val* var /* : null */;
8719 val* var_node_list /* var node_list: nullable Object */;
8720 val* var1 /* : nullable Object */;
8721 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8722 val* var2 /* : nullable Object */;
8723 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8724 val* var3 /* : Array[Object] */;
8725 val* var_listnode2 /* var listnode2: Array[Object] */;
8726 val* var_pexprnode1 /* var pexprnode1: nullable Object */;
8727 val* var4 /* : null */;
8728 short int var5 /* : Bool */;
8729 long var6 /* : Int */;
8730 long var7 /* : Int */;
8731 var_p = p0;
8732 var = NULL;
8733 var_node_list = var;
8734 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8735 var_nodearraylist2 = var1;
8736 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8737 var_nodearraylist1 = var2;
8738 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
8739 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
8740 CHECK_NEW_array__Array(var3);
8741 var_listnode2 = var3;
8742 var_pexprnode1 = var_nodearraylist1;
8743 var4 = NULL;
8744 if (var_pexprnode1 == NULL) {
8745 var5 = 0; /* is null */
8746 } else {
8747 var5 = 1; /* arg is null and recv is not */
8748 }
8749 if (var5){
8750 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_pexprnode1) /* add on <var_listnode2:Array[Object]>*/;
8751 } else {
8752 }
8753 var_node_list = var_listnode2;
8754 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction859> */
8755 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
8756 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
8757 RET_LABEL:;
8758 }
8759 /* method parser#ReduceAction859#action for (self: Object, Parser) */
8760 void VIRTUAL_parser__ReduceAction859__action(val* self, val* p0) {
8761 parser__ReduceAction859__action(self, p0);
8762 RET_LABEL:;
8763 }
8764 /* method parser#ReduceAction860#action for (self: ReduceAction860, Parser) */
8765 void parser__ReduceAction860__action(val* self, val* p0) {
8766 val* var_p /* var p: Parser */;
8767 val* var /* : null */;
8768 val* var_node_list /* var node_list: nullable Object */;
8769 val* var1 /* : nullable Object */;
8770 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8771 val* var2 /* : nullable Object */;
8772 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8773 val* var3 /* : nullable Object */;
8774 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8775 val* var4 /* : Array[Object] */;
8776 val* var_listnode3 /* var listnode3: Array[Object] */;
8777 val* var_pexprnode1 /* var pexprnode1: nullable Object */;
8778 val* var_listnode2 /* var listnode2: nullable Object */;
8779 short int var5 /* : Bool */;
8780 int cltype;
8781 int idtype;
8782 val* var6 /* : null */;
8783 short int var7 /* : Bool */;
8784 val* var8 /* : Array[Object] */;
8785 long var9 /* : Int */;
8786 long var10 /* : Int */;
8787 var_p = p0;
8788 var = NULL;
8789 var_node_list = var;
8790 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8791 var_nodearraylist3 = var1;
8792 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8793 var_nodearraylist2 = var2;
8794 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8795 var_nodearraylist1 = var3;
8796 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
8797 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
8798 CHECK_NEW_array__Array(var4);
8799 var_listnode3 = var4;
8800 var_pexprnode1 = var_nodearraylist1;
8801 var_listnode2 = var_nodearraylist3;
8802 /* <var_listnode2:nullable Object> isa Array[Object] */
8803 cltype = type_array__Arraykernel__Object.color;
8804 idtype = type_array__Arraykernel__Object.id;
8805 if(var_listnode2 == NULL) {
8806 var5 = 0;
8807 } else {
8808 if(cltype >= var_listnode2->type->table_size) {
8809 var5 = 0;
8810 } else {
8811 var5 = var_listnode2->type->type_table[cltype] == idtype;
8812 }
8813 }
8814 if (!var5) {
8815 fprintf(stderr, "Runtime error: %s", "Assert failed");
8816 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28818);
8817 exit(1);
8818 }
8819 var6 = NULL;
8820 if (var_pexprnode1 == NULL) {
8821 var7 = 0; /* is null */
8822 } else {
8823 var7 = 1; /* arg is null and recv is not */
8824 }
8825 if (var7){
8826 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pexprnode1) /* add on <var_listnode3:Array[Object]>*/;
8827 } else {
8828 }
8829 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode2) /* concat on <self:ReduceAction860>*/;
8830 var_listnode3 = var8;
8831 var_node_list = var_listnode3;
8832 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction860> */
8833 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
8834 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
8835 RET_LABEL:;
8836 }
8837 /* method parser#ReduceAction860#action for (self: Object, Parser) */
8838 void VIRTUAL_parser__ReduceAction860__action(val* self, val* p0) {
8839 parser__ReduceAction860__action(self, p0);
8840 RET_LABEL:;
8841 }
8842 /* method parser#ReduceAction861#action for (self: ReduceAction861, Parser) */
8843 void parser__ReduceAction861__action(val* self, val* p0) {
8844 val* var_p /* var p: Parser */;
8845 val* var /* : null */;
8846 val* var_node_list /* var node_list: nullable Object */;
8847 val* var1 /* : nullable Object */;
8848 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8849 val* var2 /* : nullable Object */;
8850 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8851 val* var3 /* : nullable Object */;
8852 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8853 val* var4 /* : nullable Object */;
8854 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8855 val* var_pexprnode1 /* var pexprnode1: nullable Object */;
8856 long var5 /* : Int */;
8857 long var6 /* : Int */;
8858 var_p = p0;
8859 var = NULL;
8860 var_node_list = var;
8861 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8862 var_nodearraylist4 = var1;
8863 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8864 var_nodearraylist3 = var2;
8865 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8866 var_nodearraylist2 = var3;
8867 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8868 var_nodearraylist1 = var4;
8869 var_pexprnode1 = var_nodearraylist3;
8870 var_node_list = var_pexprnode1;
8871 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction861> */
8872 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
8873 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
8874 RET_LABEL:;
8875 }
8876 /* method parser#ReduceAction861#action for (self: Object, Parser) */
8877 void VIRTUAL_parser__ReduceAction861__action(val* self, val* p0) {
8878 parser__ReduceAction861__action(self, p0);
8879 RET_LABEL:;
8880 }
8881 /* method parser#ReduceAction862#action for (self: ReduceAction862, Parser) */
8882 void parser__ReduceAction862__action(val* self, val* p0) {
8883 val* var_p /* var p: Parser */;
8884 val* var /* : null */;
8885 val* var_node_list /* var node_list: nullable Object */;
8886 val* var1 /* : nullable Object */;
8887 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8888 val* var2 /* : Array[Object] */;
8889 val* var_listnode2 /* var listnode2: Array[Object] */;
8890 val* var_tidnode1 /* var tidnode1: nullable Object */;
8891 val* var3 /* : null */;
8892 short int var4 /* : Bool */;
8893 long var5 /* : Int */;
8894 long var6 /* : Int */;
8895 var_p = p0;
8896 var = NULL;
8897 var_node_list = var;
8898 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8899 var_nodearraylist1 = var1;
8900 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
8901 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
8902 CHECK_NEW_array__Array(var2);
8903 var_listnode2 = var2;
8904 var_tidnode1 = var_nodearraylist1;
8905 var3 = NULL;
8906 if (var_tidnode1 == NULL) {
8907 var4 = 0; /* is null */
8908 } else {
8909 var4 = 1; /* arg is null and recv is not */
8910 }
8911 if (var4){
8912 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_tidnode1) /* add on <var_listnode2:Array[Object]>*/;
8913 } else {
8914 }
8915 var_node_list = var_listnode2;
8916 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction862> */
8917 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
8918 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
8919 RET_LABEL:;
8920 }
8921 /* method parser#ReduceAction862#action for (self: Object, Parser) */
8922 void VIRTUAL_parser__ReduceAction862__action(val* self, val* p0) {
8923 parser__ReduceAction862__action(self, p0);
8924 RET_LABEL:;
8925 }
8926 /* method parser#ReduceAction863#action for (self: ReduceAction863, Parser) */
8927 void parser__ReduceAction863__action(val* self, val* p0) {
8928 val* var_p /* var p: Parser */;
8929 val* var /* : null */;
8930 val* var_node_list /* var node_list: nullable Object */;
8931 val* var1 /* : nullable Object */;
8932 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
8933 val* var2 /* : nullable Object */;
8934 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8935 val* var3 /* : nullable Object */;
8936 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8937 val* var4 /* : nullable Object */;
8938 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8939 val* var5 /* : nullable Object */;
8940 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8941 val* var6 /* : Array[Object] */;
8942 val* var_listnode3 /* var listnode3: Array[Object] */;
8943 val* var_listnode1 /* var listnode1: nullable Object */;
8944 short int var7 /* : Bool */;
8945 int cltype;
8946 int idtype;
8947 val* var_tidnode2 /* var tidnode2: nullable Object */;
8948 val* var8 /* : Array[Object] */;
8949 val* var9 /* : null */;
8950 short int var10 /* : Bool */;
8951 long var11 /* : Int */;
8952 long var12 /* : Int */;
8953 var_p = p0;
8954 var = NULL;
8955 var_node_list = var;
8956 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8957 var_nodearraylist5 = var1;
8958 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8959 var_nodearraylist4 = var2;
8960 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8961 var_nodearraylist3 = var3;
8962 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8963 var_nodearraylist2 = var4;
8964 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8965 var_nodearraylist1 = var5;
8966 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
8967 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
8968 CHECK_NEW_array__Array(var6);
8969 var_listnode3 = var6;
8970 var_listnode1 = var_nodearraylist1;
8971 /* <var_listnode1:nullable Object> isa Array[Object] */
8972 cltype = type_array__Arraykernel__Object.color;
8973 idtype = type_array__Arraykernel__Object.id;
8974 if(var_listnode1 == NULL) {
8975 var7 = 0;
8976 } else {
8977 if(cltype >= var_listnode1->type->table_size) {
8978 var7 = 0;
8979 } else {
8980 var7 = var_listnode1->type->type_table[cltype] == idtype;
8981 }
8982 }
8983 if (!var7) {
8984 fprintf(stderr, "Runtime error: %s", "Assert failed");
8985 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28868);
8986 exit(1);
8987 }
8988 var_tidnode2 = var_nodearraylist5;
8989 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode1) /* concat on <self:ReduceAction863>*/;
8990 var_listnode3 = var8;
8991 var9 = NULL;
8992 if (var_tidnode2 == NULL) {
8993 var10 = 0; /* is null */
8994 } else {
8995 var10 = 1; /* arg is null and recv is not */
8996 }
8997 if (var10){
8998 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_tidnode2) /* add on <var_listnode3:Array[Object]>*/;
8999 } else {
9000 }
9001 var_node_list = var_listnode3;
9002 var11 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction863> */
9003 var12 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var11) /* go_to on <var_p:Parser>*/;
9004 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var12, var_node_list) /* push on <var_p:Parser>*/;
9005 RET_LABEL:;
9006 }
9007 /* method parser#ReduceAction863#action for (self: Object, Parser) */
9008 void VIRTUAL_parser__ReduceAction863__action(val* self, val* p0) {
9009 parser__ReduceAction863__action(self, p0);
9010 RET_LABEL:;
9011 }
9012 /* method parser#ReduceAction864#action for (self: ReduceAction864, Parser) */
9013 void parser__ReduceAction864__action(val* self, val* p0) {
9014 val* var_p /* var p: Parser */;
9015 val* var /* : null */;
9016 val* var_node_list /* var node_list: nullable Object */;
9017 val* var1 /* : nullable Object */;
9018 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9019 val* var2 /* : Array[Object] */;
9020 val* var_listnode3 /* var listnode3: Array[Object] */;
9021 val* var_tidnode4 /* var tidnode4: nullable Object */;
9022 short int var3 /* : Bool */;
9023 int cltype;
9024 int idtype;
9025 val* var4 /* : AModuleName */;
9026 val* var5 /* : null */;
9027 val* var_pmodulenamenode1 /* var pmodulenamenode1: nullable AModuleName */;
9028 long var6 /* : Int */;
9029 long var7 /* : Int */;
9030 var_p = p0;
9031 var = NULL;
9032 var_node_list = var;
9033 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9034 var_nodearraylist1 = var1;
9035 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
9036 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
9037 CHECK_NEW_array__Array(var2);
9038 var_listnode3 = var2;
9039 var_tidnode4 = var_nodearraylist1;
9040 /* <var_tidnode4:nullable Object> isa nullable TId */
9041 cltype = type_nullable_parser_nodes__TId.color;
9042 idtype = type_nullable_parser_nodes__TId.id;
9043 if(var_tidnode4 == NULL) {
9044 var3 = 1;
9045 } else {
9046 if(cltype >= var_tidnode4->type->table_size) {
9047 var3 = 0;
9048 } else {
9049 var3 = var_tidnode4->type->type_table[cltype] == idtype;
9050 }
9051 }
9052 if (!var3) {
9053 fprintf(stderr, "Runtime error: %s", "Assert failed");
9054 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28886);
9055 exit(1);
9056 }
9057 var4 = NEW_parser_nodes__AModuleName(&type_parser_nodes__AModuleName);
9058 var5 = NULL;
9059 ((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>*/;
9060 CHECK_NEW_parser_nodes__AModuleName(var4);
9061 var_pmodulenamenode1 = var4;
9062 var_node_list = var_pmodulenamenode1;
9063 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction864> */
9064 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
9065 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
9066 RET_LABEL:;
9067 }
9068 /* method parser#ReduceAction864#action for (self: Object, Parser) */
9069 void VIRTUAL_parser__ReduceAction864__action(val* self, val* p0) {
9070 parser__ReduceAction864__action(self, p0);
9071 RET_LABEL:;
9072 }
9073 /* method parser#ReduceAction865#action for (self: ReduceAction865, Parser) */
9074 void parser__ReduceAction865__action(val* self, val* p0) {
9075 val* var_p /* var p: Parser */;
9076 val* var /* : null */;
9077 val* var_node_list /* var node_list: nullable Object */;
9078 val* var1 /* : nullable Object */;
9079 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9080 val* var2 /* : nullable Object */;
9081 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9082 val* var3 /* : Array[Object] */;
9083 val* var_listnode4 /* var listnode4: Array[Object] */;
9084 val* var_listnode3 /* var listnode3: nullable Object */;
9085 short int var4 /* : Bool */;
9086 int cltype;
9087 int idtype;
9088 val* var5 /* : Array[Object] */;
9089 val* var_tidnode5 /* var tidnode5: nullable Object */;
9090 short int var6 /* : Bool */;
9091 int cltype7;
9092 int idtype8;
9093 val* var9 /* : AModuleName */;
9094 val* var10 /* : null */;
9095 val* var_pmodulenamenode1 /* var pmodulenamenode1: nullable AModuleName */;
9096 long var11 /* : Int */;
9097 long var12 /* : Int */;
9098 var_p = p0;
9099 var = NULL;
9100 var_node_list = var;
9101 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9102 var_nodearraylist2 = var1;
9103 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9104 var_nodearraylist1 = var2;
9105 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
9106 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
9107 CHECK_NEW_array__Array(var3);
9108 var_listnode4 = var3;
9109 var_listnode3 = var_nodearraylist1;
9110 /* <var_listnode3:nullable Object> isa Array[Object] */
9111 cltype = type_array__Arraykernel__Object.color;
9112 idtype = type_array__Arraykernel__Object.id;
9113 if(var_listnode3 == NULL) {
9114 var4 = 0;
9115 } else {
9116 if(cltype >= var_listnode3->type->table_size) {
9117 var4 = 0;
9118 } else {
9119 var4 = var_listnode3->type->type_table[cltype] == idtype;
9120 }
9121 }
9122 if (!var4) {
9123 fprintf(stderr, "Runtime error: %s", "Assert failed");
9124 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28905);
9125 exit(1);
9126 }
9127 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction865>*/;
9128 var_listnode4 = var5;
9129 var_tidnode5 = var_nodearraylist2;
9130 /* <var_tidnode5:nullable Object> isa nullable TId */
9131 cltype7 = type_nullable_parser_nodes__TId.color;
9132 idtype8 = type_nullable_parser_nodes__TId.id;
9133 if(var_tidnode5 == NULL) {
9134 var6 = 1;
9135 } else {
9136 if(cltype7 >= var_tidnode5->type->table_size) {
9137 var6 = 0;
9138 } else {
9139 var6 = var_tidnode5->type->type_table[cltype7] == idtype8;
9140 }
9141 }
9142 if (!var6) {
9143 fprintf(stderr, "Runtime error: %s", "Assert failed");
9144 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28908);
9145 exit(1);
9146 }
9147 var9 = NEW_parser_nodes__AModuleName(&type_parser_nodes__AModuleName);
9148 var10 = NULL;
9149 ((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>*/;
9150 CHECK_NEW_parser_nodes__AModuleName(var9);
9151 var_pmodulenamenode1 = var9;
9152 var_node_list = var_pmodulenamenode1;
9153 var11 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction865> */
9154 var12 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var11) /* go_to on <var_p:Parser>*/;
9155 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var12, var_node_list) /* push on <var_p:Parser>*/;
9156 RET_LABEL:;
9157 }
9158 /* method parser#ReduceAction865#action for (self: Object, Parser) */
9159 void VIRTUAL_parser__ReduceAction865__action(val* self, val* p0) {
9160 parser__ReduceAction865__action(self, p0);
9161 RET_LABEL:;
9162 }
9163 /* method parser#ReduceAction866#action for (self: ReduceAction866, Parser) */
9164 void parser__ReduceAction866__action(val* self, val* p0) {
9165 val* var_p /* var p: Parser */;
9166 val* var /* : null */;
9167 val* var_node_list /* var node_list: nullable Object */;
9168 val* var1 /* : nullable Object */;
9169 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9170 val* var2 /* : nullable Object */;
9171 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9172 val* var3 /* : nullable Object */;
9173 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9174 val* var4 /* : Array[Object] */;
9175 val* var_listnode3 /* var listnode3: Array[Object] */;
9176 val* var_tquadnode2 /* var tquadnode2: nullable Object */;
9177 short int var5 /* : Bool */;
9178 int cltype;
9179 int idtype;
9180 val* var_tidnode4 /* var tidnode4: nullable Object */;
9181 short int var6 /* : Bool */;
9182 int cltype7;
9183 int idtype8;
9184 val* var9 /* : AModuleName */;
9185 val* var_pmodulenamenode1 /* var pmodulenamenode1: nullable AModuleName */;
9186 long var10 /* : Int */;
9187 long var11 /* : Int */;
9188 var_p = p0;
9189 var = NULL;
9190 var_node_list = var;
9191 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9192 var_nodearraylist3 = var1;
9193 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9194 var_nodearraylist2 = var2;
9195 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9196 var_nodearraylist1 = var3;
9197 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
9198 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
9199 CHECK_NEW_array__Array(var4);
9200 var_listnode3 = var4;
9201 var_tquadnode2 = var_nodearraylist1;
9202 /* <var_tquadnode2:nullable Object> isa nullable TQuad */
9203 cltype = type_nullable_parser_nodes__TQuad.color;
9204 idtype = type_nullable_parser_nodes__TQuad.id;
9205 if(var_tquadnode2 == NULL) {
9206 var5 = 1;
9207 } else {
9208 if(cltype >= var_tquadnode2->type->table_size) {
9209 var5 = 0;
9210 } else {
9211 var5 = var_tquadnode2->type->type_table[cltype] == idtype;
9212 }
9213 }
9214 if (!var5) {
9215 fprintf(stderr, "Runtime error: %s", "Assert failed");
9216 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28928);
9217 exit(1);
9218 }
9219 var_tidnode4 = var_nodearraylist3;
9220 /* <var_tidnode4:nullable Object> isa nullable TId */
9221 cltype7 = type_nullable_parser_nodes__TId.color;
9222 idtype8 = type_nullable_parser_nodes__TId.id;
9223 if(var_tidnode4 == NULL) {
9224 var6 = 1;
9225 } else {
9226 if(cltype7 >= var_tidnode4->type->table_size) {
9227 var6 = 0;
9228 } else {
9229 var6 = var_tidnode4->type->type_table[cltype7] == idtype8;
9230 }
9231 }
9232 if (!var6) {
9233 fprintf(stderr, "Runtime error: %s", "Assert failed");
9234 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28930);
9235 exit(1);
9236 }
9237 var9 = NEW_parser_nodes__AModuleName(&type_parser_nodes__AModuleName);
9238 ((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>*/;
9239 CHECK_NEW_parser_nodes__AModuleName(var9);
9240 var_pmodulenamenode1 = var9;
9241 var_node_list = var_pmodulenamenode1;
9242 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction866> */
9243 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
9244 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
9245 RET_LABEL:;
9246 }
9247 /* method parser#ReduceAction866#action for (self: Object, Parser) */
9248 void VIRTUAL_parser__ReduceAction866__action(val* self, val* p0) {
9249 parser__ReduceAction866__action(self, p0);
9250 RET_LABEL:;
9251 }
9252 /* method parser#ReduceAction867#action for (self: ReduceAction867, Parser) */
9253 void parser__ReduceAction867__action(val* self, val* p0) {
9254 val* var_p /* var p: Parser */;
9255 val* var /* : null */;
9256 val* var_node_list /* var node_list: nullable Object */;
9257 val* var1 /* : nullable Object */;
9258 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9259 val* var2 /* : nullable Object */;
9260 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9261 val* var3 /* : nullable Object */;
9262 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9263 val* var4 /* : nullable Object */;
9264 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9265 val* var5 /* : Array[Object] */;
9266 val* var_listnode4 /* var listnode4: Array[Object] */;
9267 val* var_tquadnode2 /* var tquadnode2: nullable Object */;
9268 short int var6 /* : Bool */;
9269 int cltype;
9270 int idtype;
9271 val* var_listnode3 /* var listnode3: nullable Object */;
9272 short int var7 /* : Bool */;
9273 int cltype8;
9274 int idtype9;
9275 val* var10 /* : Array[Object] */;
9276 val* var_tidnode5 /* var tidnode5: nullable Object */;
9277 short int var11 /* : Bool */;
9278 int cltype12;
9279 int idtype13;
9280 val* var14 /* : AModuleName */;
9281 val* var_pmodulenamenode1 /* var pmodulenamenode1: nullable AModuleName */;
9282 long var15 /* : Int */;
9283 long var16 /* : Int */;
9284 var_p = p0;
9285 var = NULL;
9286 var_node_list = var;
9287 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9288 var_nodearraylist4 = var1;
9289 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9290 var_nodearraylist3 = var2;
9291 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9292 var_nodearraylist2 = var3;
9293 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9294 var_nodearraylist1 = var4;
9295 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
9296 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
9297 CHECK_NEW_array__Array(var5);
9298 var_listnode4 = var5;
9299 var_tquadnode2 = var_nodearraylist1;
9300 /* <var_tquadnode2:nullable Object> isa nullable TQuad */
9301 cltype = type_nullable_parser_nodes__TQuad.color;
9302 idtype = type_nullable_parser_nodes__TQuad.id;
9303 if(var_tquadnode2 == NULL) {
9304 var6 = 1;
9305 } else {
9306 if(cltype >= var_tquadnode2->type->table_size) {
9307 var6 = 0;
9308 } else {
9309 var6 = var_tquadnode2->type->type_table[cltype] == idtype;
9310 }
9311 }
9312 if (!var6) {
9313 fprintf(stderr, "Runtime error: %s", "Assert failed");
9314 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28951);
9315 exit(1);
9316 }
9317 var_listnode3 = var_nodearraylist3;
9318 /* <var_listnode3:nullable Object> isa Array[Object] */
9319 cltype8 = type_array__Arraykernel__Object.color;
9320 idtype9 = type_array__Arraykernel__Object.id;
9321 if(var_listnode3 == NULL) {
9322 var7 = 0;
9323 } else {
9324 if(cltype8 >= var_listnode3->type->table_size) {
9325 var7 = 0;
9326 } else {
9327 var7 = var_listnode3->type->type_table[cltype8] == idtype9;
9328 }
9329 }
9330 if (!var7) {
9331 fprintf(stderr, "Runtime error: %s", "Assert failed");
9332 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28953);
9333 exit(1);
9334 }
9335 var10 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction867>*/;
9336 var_listnode4 = var10;
9337 var_tidnode5 = var_nodearraylist4;
9338 /* <var_tidnode5:nullable Object> isa nullable TId */
9339 cltype12 = type_nullable_parser_nodes__TId.color;
9340 idtype13 = type_nullable_parser_nodes__TId.id;
9341 if(var_tidnode5 == NULL) {
9342 var11 = 1;
9343 } else {
9344 if(cltype12 >= var_tidnode5->type->table_size) {
9345 var11 = 0;
9346 } else {
9347 var11 = var_tidnode5->type->type_table[cltype12] == idtype13;
9348 }
9349 }
9350 if (!var11) {
9351 fprintf(stderr, "Runtime error: %s", "Assert failed");
9352 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 28956);
9353 exit(1);
9354 }
9355 var14 = NEW_parser_nodes__AModuleName(&type_parser_nodes__AModuleName);
9356 ((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>*/;
9357 CHECK_NEW_parser_nodes__AModuleName(var14);
9358 var_pmodulenamenode1 = var14;
9359 var_node_list = var_pmodulenamenode1;
9360 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction867> */
9361 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
9362 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
9363 RET_LABEL:;
9364 }
9365 /* method parser#ReduceAction867#action for (self: Object, Parser) */
9366 void VIRTUAL_parser__ReduceAction867__action(val* self, val* p0) {
9367 parser__ReduceAction867__action(self, p0);
9368 RET_LABEL:;
9369 }
9370 /* method parser#ReduceAction868#action for (self: ReduceAction868, Parser) */
9371 void parser__ReduceAction868__action(val* self, val* p0) {
9372 val* var_p /* var p: Parser */;
9373 val* var /* : null */;
9374 val* var_node_list /* var node_list: nullable Object */;
9375 val* var1 /* : nullable Object */;
9376 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9377 val* var2 /* : nullable Object */;
9378 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9379 val* var3 /* : nullable Object */;
9380 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9381 val* var_tidnode1 /* var tidnode1: nullable Object */;
9382 long var4 /* : Int */;
9383 long var5 /* : Int */;
9384 var_p = p0;
9385 var = NULL;
9386 var_node_list = var;
9387 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9388 var_nodearraylist3 = var1;
9389 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9390 var_nodearraylist2 = var2;
9391 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9392 var_nodearraylist1 = var3;
9393 var_tidnode1 = var_nodearraylist1;
9394 var_node_list = var_tidnode1;
9395 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction868> */
9396 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
9397 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
9398 RET_LABEL:;
9399 }
9400 /* method parser#ReduceAction868#action for (self: Object, Parser) */
9401 void VIRTUAL_parser__ReduceAction868__action(val* self, val* p0) {
9402 parser__ReduceAction868__action(self, p0);
9403 RET_LABEL:;
9404 }
9405 /* method parser#ReduceAction869#action for (self: ReduceAction869, Parser) */
9406 void parser__ReduceAction869__action(val* self, val* p0) {
9407 val* var_p /* var p: Parser */;
9408 val* var /* : null */;
9409 val* var_node_list /* var node_list: nullable Object */;
9410 val* var1 /* : nullable Object */;
9411 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9412 val* var2 /* : nullable Object */;
9413 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9414 val* var3 /* : nullable Object */;
9415 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9416 val* var_tclassidnode1 /* var tclassidnode1: nullable Object */;
9417 long var4 /* : Int */;
9418 long var5 /* : Int */;
9419 var_p = p0;
9420 var = NULL;
9421 var_node_list = var;
9422 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9423 var_nodearraylist3 = var1;
9424 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9425 var_nodearraylist2 = var2;
9426 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9427 var_nodearraylist1 = var3;
9428 var_tclassidnode1 = var_nodearraylist1;
9429 var_node_list = var_tclassidnode1;
9430 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction869> */
9431 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
9432 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
9433 RET_LABEL:;
9434 }
9435 /* method parser#ReduceAction869#action for (self: Object, Parser) */
9436 void VIRTUAL_parser__ReduceAction869__action(val* self, val* p0) {
9437 parser__ReduceAction869__action(self, p0);
9438 RET_LABEL:;
9439 }
9440 /* method parser#ReduceAction870#action for (self: ReduceAction870, Parser) */
9441 void parser__ReduceAction870__action(val* self, val* p0) {
9442 val* var_p /* var p: Parser */;
9443 val* var /* : null */;
9444 val* var_node_list /* var node_list: nullable Object */;
9445 val* var1 /* : nullable Object */;
9446 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9447 long var2 /* : Int */;
9448 long var3 /* : Int */;
9449 var_p = p0;
9450 var = NULL;
9451 var_node_list = var;
9452 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9453 var_nodearraylist1 = var1;
9454 var2 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction870> */
9455 var3 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var2) /* go_to on <var_p:Parser>*/;
9456 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var3, var_node_list) /* push on <var_p:Parser>*/;
9457 RET_LABEL:;
9458 }
9459 /* method parser#ReduceAction870#action for (self: Object, Parser) */
9460 void VIRTUAL_parser__ReduceAction870__action(val* self, val* p0) {
9461 parser__ReduceAction870__action(self, p0);
9462 RET_LABEL:;
9463 }
9464 /* method parser#ReduceAction872#action for (self: ReduceAction872, Parser) */
9465 void parser__ReduceAction872__action(val* self, val* p0) {
9466 val* var_p /* var p: Parser */;
9467 val* var /* : null */;
9468 val* var_node_list /* var node_list: nullable Object */;
9469 val* var1 /* : nullable Object */;
9470 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9471 val* var2 /* : Array[Object] */;
9472 val* var_listnode3 /* var listnode3: Array[Object] */;
9473 val* var_listnode2 /* var listnode2: nullable Object */;
9474 short int var3 /* : Bool */;
9475 int cltype;
9476 int idtype;
9477 val* var4 /* : Array[Object] */;
9478 val* var5 /* : ADoc */;
9479 val* var_pdocnode1 /* var pdocnode1: nullable ADoc */;
9480 long var6 /* : Int */;
9481 long var7 /* : Int */;
9482 var_p = p0;
9483 var = NULL;
9484 var_node_list = var;
9485 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9486 var_nodearraylist1 = var1;
9487 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
9488 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
9489 CHECK_NEW_array__Array(var2);
9490 var_listnode3 = var2;
9491 var_listnode2 = var_nodearraylist1;
9492 /* <var_listnode2:nullable Object> isa Array[Object] */
9493 cltype = type_array__Arraykernel__Object.color;
9494 idtype = type_array__Arraykernel__Object.id;
9495 if(var_listnode2 == NULL) {
9496 var3 = 0;
9497 } else {
9498 if(cltype >= var_listnode2->type->table_size) {
9499 var3 = 0;
9500 } else {
9501 var3 = var_listnode2->type->type_table[cltype] == idtype;
9502 }
9503 }
9504 if (!var3) {
9505 fprintf(stderr, "Runtime error: %s", "Assert failed");
9506 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29009);
9507 exit(1);
9508 }
9509 var4 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode2) /* concat on <self:ReduceAction872>*/;
9510 var_listnode3 = var4;
9511 var5 = NEW_parser_nodes__ADoc(&type_parser_nodes__ADoc);
9512 ((void (*)(val*, val*))(var5->class->vft[COLOR_parser_prod__ADoc__init_adoc]))(var5, var_listnode3) /* init_adoc on <var5:ADoc>*/;
9513 CHECK_NEW_parser_nodes__ADoc(var5);
9514 var_pdocnode1 = var5;
9515 var_node_list = var_pdocnode1;
9516 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction872> */
9517 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
9518 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
9519 RET_LABEL:;
9520 }
9521 /* method parser#ReduceAction872#action for (self: Object, Parser) */
9522 void VIRTUAL_parser__ReduceAction872__action(val* self, val* p0) {
9523 parser__ReduceAction872__action(self, p0);
9524 RET_LABEL:;
9525 }
9526 /* method parser#ReduceAction873#action for (self: ReduceAction873, Parser) */
9527 void parser__ReduceAction873__action(val* self, val* p0) {
9528 val* var_p /* var p: Parser */;
9529 val* var /* : null */;
9530 val* var_node_list /* var node_list: nullable Object */;
9531 val* var1 /* : nullable Object */;
9532 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9533 val* var2 /* : nullable Object */;
9534 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9535 val* var3 /* : Array[Object] */;
9536 val* var_listnode3 /* var listnode3: Array[Object] */;
9537 val* var_listnode2 /* var listnode2: nullable Object */;
9538 short int var4 /* : Bool */;
9539 int cltype;
9540 int idtype;
9541 val* var5 /* : Array[Object] */;
9542 val* var6 /* : ADoc */;
9543 val* var_pdocnode1 /* var pdocnode1: nullable ADoc */;
9544 long var7 /* : Int */;
9545 long var8 /* : Int */;
9546 var_p = p0;
9547 var = NULL;
9548 var_node_list = var;
9549 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9550 var_nodearraylist2 = var1;
9551 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9552 var_nodearraylist1 = var2;
9553 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
9554 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
9555 CHECK_NEW_array__Array(var3);
9556 var_listnode3 = var3;
9557 var_listnode2 = var_nodearraylist2;
9558 /* <var_listnode2:nullable Object> isa Array[Object] */
9559 cltype = type_array__Arraykernel__Object.color;
9560 idtype = type_array__Arraykernel__Object.id;
9561 if(var_listnode2 == NULL) {
9562 var4 = 0;
9563 } else {
9564 if(cltype >= var_listnode2->type->table_size) {
9565 var4 = 0;
9566 } else {
9567 var4 = var_listnode2->type->type_table[cltype] == idtype;
9568 }
9569 }
9570 if (!var4) {
9571 fprintf(stderr, "Runtime error: %s", "Assert failed");
9572 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29027);
9573 exit(1);
9574 }
9575 var5 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode2) /* concat on <self:ReduceAction873>*/;
9576 var_listnode3 = var5;
9577 var6 = NEW_parser_nodes__ADoc(&type_parser_nodes__ADoc);
9578 ((void (*)(val*, val*))(var6->class->vft[COLOR_parser_prod__ADoc__init_adoc]))(var6, var_listnode3) /* init_adoc on <var6:ADoc>*/;
9579 CHECK_NEW_parser_nodes__ADoc(var6);
9580 var_pdocnode1 = var6;
9581 var_node_list = var_pdocnode1;
9582 var7 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction873> */
9583 var8 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var7) /* go_to on <var_p:Parser>*/;
9584 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var8, var_node_list) /* push on <var_p:Parser>*/;
9585 RET_LABEL:;
9586 }
9587 /* method parser#ReduceAction873#action for (self: Object, Parser) */
9588 void VIRTUAL_parser__ReduceAction873__action(val* self, val* p0) {
9589 parser__ReduceAction873__action(self, p0);
9590 RET_LABEL:;
9591 }
9592 /* method parser#ReduceAction875#action for (self: ReduceAction875, Parser) */
9593 void parser__ReduceAction875__action(val* self, val* p0) {
9594 val* var_p /* var p: Parser */;
9595 val* var /* : null */;
9596 val* var_node_list /* var node_list: nullable Object */;
9597 val* var1 /* : null */;
9598 long var2 /* : Int */;
9599 long var3 /* : Int */;
9600 var_p = p0;
9601 var = NULL;
9602 var_node_list = var;
9603 var1 = NULL;
9604 var_node_list = var1;
9605 var2 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction875> */
9606 var3 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var2) /* go_to on <var_p:Parser>*/;
9607 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var3, var_node_list) /* push on <var_p:Parser>*/;
9608 RET_LABEL:;
9609 }
9610 /* method parser#ReduceAction875#action for (self: Object, Parser) */
9611 void VIRTUAL_parser__ReduceAction875__action(val* self, val* p0) {
9612 parser__ReduceAction875__action(self, p0);
9613 RET_LABEL:;
9614 }
9615 /* method parser#ReduceAction876#action for (self: ReduceAction876, Parser) */
9616 void parser__ReduceAction876__action(val* self, val* p0) {
9617 val* var_p /* var p: Parser */;
9618 val* var /* : null */;
9619 val* var_node_list /* var node_list: nullable Object */;
9620 val* var1 /* : nullable Object */;
9621 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9622 val* var_pdocnode1 /* var pdocnode1: nullable Object */;
9623 long var2 /* : Int */;
9624 long var3 /* : Int */;
9625 var_p = p0;
9626 var = NULL;
9627 var_node_list = var;
9628 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9629 var_nodearraylist1 = var1;
9630 var_pdocnode1 = var_nodearraylist1;
9631 var_node_list = var_pdocnode1;
9632 var2 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction876> */
9633 var3 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var2) /* go_to on <var_p:Parser>*/;
9634 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var3, var_node_list) /* push on <var_p:Parser>*/;
9635 RET_LABEL:;
9636 }
9637 /* method parser#ReduceAction876#action for (self: Object, Parser) */
9638 void VIRTUAL_parser__ReduceAction876__action(val* self, val* p0) {
9639 parser__ReduceAction876__action(self, p0);
9640 RET_LABEL:;
9641 }
9642 /* method parser#ReduceAction877#action for (self: ReduceAction877, Parser) */
9643 void parser__ReduceAction877__action(val* self, val* p0) {
9644 val* var_p /* var p: Parser */;
9645 val* var /* : null */;
9646 val* var_node_list /* var node_list: nullable Object */;
9647 val* var1 /* : nullable Object */;
9648 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9649 val* var2 /* : nullable Object */;
9650 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9651 long var3 /* : Int */;
9652 long var4 /* : Int */;
9653 var_p = p0;
9654 var = NULL;
9655 var_node_list = var;
9656 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9657 var_nodearraylist2 = var1;
9658 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9659 var_nodearraylist1 = var2;
9660 var3 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction877> */
9661 var4 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var3) /* go_to on <var_p:Parser>*/;
9662 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var4, var_node_list) /* push on <var_p:Parser>*/;
9663 RET_LABEL:;
9664 }
9665 /* method parser#ReduceAction877#action for (self: Object, Parser) */
9666 void VIRTUAL_parser__ReduceAction877__action(val* self, val* p0) {
9667 parser__ReduceAction877__action(self, p0);
9668 RET_LABEL:;
9669 }
9670 /* method parser#ReduceAction878#action for (self: ReduceAction878, Parser) */
9671 void parser__ReduceAction878__action(val* self, val* p0) {
9672 val* var_p /* var p: Parser */;
9673 val* var /* : null */;
9674 val* var_node_list /* var node_list: nullable Object */;
9675 val* var1 /* : nullable Object */;
9676 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9677 val* var2 /* : nullable Object */;
9678 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9679 val* var3 /* : nullable Object */;
9680 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9681 long var4 /* : Int */;
9682 long var5 /* : Int */;
9683 var_p = p0;
9684 var = NULL;
9685 var_node_list = var;
9686 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9687 var_nodearraylist3 = var1;
9688 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9689 var_nodearraylist2 = var2;
9690 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9691 var_nodearraylist1 = var3;
9692 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction878> */
9693 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
9694 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
9695 RET_LABEL:;
9696 }
9697 /* method parser#ReduceAction878#action for (self: Object, Parser) */
9698 void VIRTUAL_parser__ReduceAction878__action(val* self, val* p0) {
9699 parser__ReduceAction878__action(self, p0);
9700 RET_LABEL:;
9701 }
9702 /* method parser#ReduceAction1223#action for (self: ReduceAction1223, Parser) */
9703 void parser__ReduceAction1223__action(val* self, val* p0) {
9704 val* var_p /* var p: Parser */;
9705 val* var /* : null */;
9706 val* var_node_list /* var node_list: nullable Object */;
9707 val* var1 /* : nullable Object */;
9708 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9709 val* var2 /* : nullable Object */;
9710 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9711 val* var3 /* : nullable Object */;
9712 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9713 val* var_tkwissetnode2 /* var tkwissetnode2: nullable Object */;
9714 short int var4 /* : Bool */;
9715 int cltype;
9716 int idtype;
9717 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
9718 short int var5 /* : Bool */;
9719 int cltype6;
9720 int idtype7;
9721 val* var_tattridnode4 /* var tattridnode4: nullable Object */;
9722 short int var8 /* : Bool */;
9723 int cltype9;
9724 int idtype10;
9725 val* var11 /* : AIssetAttrExpr */;
9726 val* var_pexprnode1 /* var pexprnode1: nullable AIssetAttrExpr */;
9727 long var12 /* : Int */;
9728 long var13 /* : Int */;
9729 var_p = p0;
9730 var = NULL;
9731 var_node_list = var;
9732 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9733 var_nodearraylist3 = var1;
9734 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9735 var_nodearraylist2 = var2;
9736 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9737 var_nodearraylist1 = var3;
9738 var_tkwissetnode2 = var_nodearraylist1;
9739 /* <var_tkwissetnode2:nullable Object> isa nullable TKwisset */
9740 cltype = type_nullable_parser_nodes__TKwisset.color;
9741 idtype = type_nullable_parser_nodes__TKwisset.id;
9742 if(var_tkwissetnode2 == NULL) {
9743 var4 = 1;
9744 } else {
9745 if(cltype >= var_tkwissetnode2->type->table_size) {
9746 var4 = 0;
9747 } else {
9748 var4 = var_tkwissetnode2->type->type_table[cltype] == idtype;
9749 }
9750 }
9751 if (!var4) {
9752 fprintf(stderr, "Runtime error: %s", "Assert failed");
9753 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29086);
9754 exit(1);
9755 }
9756 var_pexprnode3 = var_nodearraylist2;
9757 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
9758 cltype6 = type_nullable_parser_nodes__AExpr.color;
9759 idtype7 = type_nullable_parser_nodes__AExpr.id;
9760 if(var_pexprnode3 == NULL) {
9761 var5 = 1;
9762 } else {
9763 if(cltype6 >= var_pexprnode3->type->table_size) {
9764 var5 = 0;
9765 } else {
9766 var5 = var_pexprnode3->type->type_table[cltype6] == idtype7;
9767 }
9768 }
9769 if (!var5) {
9770 fprintf(stderr, "Runtime error: %s", "Assert failed");
9771 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29088);
9772 exit(1);
9773 }
9774 var_tattridnode4 = var_nodearraylist3;
9775 /* <var_tattridnode4:nullable Object> isa nullable TAttrid */
9776 cltype9 = type_nullable_parser_nodes__TAttrid.color;
9777 idtype10 = type_nullable_parser_nodes__TAttrid.id;
9778 if(var_tattridnode4 == NULL) {
9779 var8 = 1;
9780 } else {
9781 if(cltype9 >= var_tattridnode4->type->table_size) {
9782 var8 = 0;
9783 } else {
9784 var8 = var_tattridnode4->type->type_table[cltype9] == idtype10;
9785 }
9786 }
9787 if (!var8) {
9788 fprintf(stderr, "Runtime error: %s", "Assert failed");
9789 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29090);
9790 exit(1);
9791 }
9792 var11 = NEW_parser_nodes__AIssetAttrExpr(&type_parser_nodes__AIssetAttrExpr);
9793 ((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>*/;
9794 CHECK_NEW_parser_nodes__AIssetAttrExpr(var11);
9795 var_pexprnode1 = var11;
9796 var_node_list = var_pexprnode1;
9797 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1223> */
9798 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
9799 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
9800 RET_LABEL:;
9801 }
9802 /* method parser#ReduceAction1223#action for (self: Object, Parser) */
9803 void VIRTUAL_parser__ReduceAction1223__action(val* self, val* p0) {
9804 parser__ReduceAction1223__action(self, p0);
9805 RET_LABEL:;
9806 }
9807 /* method parser#ReduceAction1224#action for (self: ReduceAction1224, Parser) */
9808 void parser__ReduceAction1224__action(val* self, val* p0) {
9809 val* var_p /* var p: Parser */;
9810 val* var /* : null */;
9811 val* var_node_list /* var node_list: nullable Object */;
9812 val* var1 /* : nullable Object */;
9813 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9814 val* var2 /* : nullable Object */;
9815 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9816 val* var3 /* : nullable Object */;
9817 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9818 val* var4 /* : nullable Object */;
9819 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9820 val* var_tkwissetnode2 /* var tkwissetnode2: nullable Object */;
9821 short int var5 /* : Bool */;
9822 int cltype;
9823 int idtype;
9824 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
9825 short int var6 /* : Bool */;
9826 int cltype7;
9827 int idtype8;
9828 val* var_tattridnode4 /* var tattridnode4: nullable Object */;
9829 short int var9 /* : Bool */;
9830 int cltype10;
9831 int idtype11;
9832 val* var12 /* : AIssetAttrExpr */;
9833 val* var_pexprnode1 /* var pexprnode1: nullable AIssetAttrExpr */;
9834 long var13 /* : Int */;
9835 long var14 /* : Int */;
9836 var_p = p0;
9837 var = NULL;
9838 var_node_list = var;
9839 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9840 var_nodearraylist4 = var1;
9841 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9842 var_nodearraylist3 = var2;
9843 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9844 var_nodearraylist2 = var3;
9845 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9846 var_nodearraylist1 = var4;
9847 var_tkwissetnode2 = var_nodearraylist1;
9848 /* <var_tkwissetnode2:nullable Object> isa nullable TKwisset */
9849 cltype = type_nullable_parser_nodes__TKwisset.color;
9850 idtype = type_nullable_parser_nodes__TKwisset.id;
9851 if(var_tkwissetnode2 == NULL) {
9852 var5 = 1;
9853 } else {
9854 if(cltype >= var_tkwissetnode2->type->table_size) {
9855 var5 = 0;
9856 } else {
9857 var5 = var_tkwissetnode2->type->type_table[cltype] == idtype;
9858 }
9859 }
9860 if (!var5) {
9861 fprintf(stderr, "Runtime error: %s", "Assert failed");
9862 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29110);
9863 exit(1);
9864 }
9865 var_pexprnode3 = var_nodearraylist2;
9866 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
9867 cltype7 = type_nullable_parser_nodes__AExpr.color;
9868 idtype8 = type_nullable_parser_nodes__AExpr.id;
9869 if(var_pexprnode3 == NULL) {
9870 var6 = 1;
9871 } else {
9872 if(cltype7 >= var_pexprnode3->type->table_size) {
9873 var6 = 0;
9874 } else {
9875 var6 = var_pexprnode3->type->type_table[cltype7] == idtype8;
9876 }
9877 }
9878 if (!var6) {
9879 fprintf(stderr, "Runtime error: %s", "Assert failed");
9880 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29112);
9881 exit(1);
9882 }
9883 var_tattridnode4 = var_nodearraylist4;
9884 /* <var_tattridnode4:nullable Object> isa nullable TAttrid */
9885 cltype10 = type_nullable_parser_nodes__TAttrid.color;
9886 idtype11 = type_nullable_parser_nodes__TAttrid.id;
9887 if(var_tattridnode4 == NULL) {
9888 var9 = 1;
9889 } else {
9890 if(cltype10 >= var_tattridnode4->type->table_size) {
9891 var9 = 0;
9892 } else {
9893 var9 = var_tattridnode4->type->type_table[cltype10] == idtype11;
9894 }
9895 }
9896 if (!var9) {
9897 fprintf(stderr, "Runtime error: %s", "Assert failed");
9898 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29114);
9899 exit(1);
9900 }
9901 var12 = NEW_parser_nodes__AIssetAttrExpr(&type_parser_nodes__AIssetAttrExpr);
9902 ((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>*/;
9903 CHECK_NEW_parser_nodes__AIssetAttrExpr(var12);
9904 var_pexprnode1 = var12;
9905 var_node_list = var_pexprnode1;
9906 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1224> */
9907 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
9908 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
9909 RET_LABEL:;
9910 }
9911 /* method parser#ReduceAction1224#action for (self: Object, Parser) */
9912 void VIRTUAL_parser__ReduceAction1224__action(val* self, val* p0) {
9913 parser__ReduceAction1224__action(self, p0);
9914 RET_LABEL:;
9915 }
9916 /* method parser#ReduceAction1227#action for (self: ReduceAction1227, Parser) */
9917 void parser__ReduceAction1227__action(val* self, val* p0) {
9918 val* var_p /* var p: Parser */;
9919 val* var /* : null */;
9920 val* var_node_list /* var node_list: nullable Object */;
9921 val* var1 /* : nullable Object */;
9922 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9923 val* var2 /* : nullable Object */;
9924 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9925 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
9926 short int var3 /* : Bool */;
9927 int cltype;
9928 int idtype;
9929 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
9930 short int var4 /* : Bool */;
9931 int cltype5;
9932 int idtype6;
9933 val* var7 /* : AAttrExpr */;
9934 val* var_pexprnode1 /* var pexprnode1: nullable AAttrExpr */;
9935 long var8 /* : Int */;
9936 long var9 /* : Int */;
9937 var_p = p0;
9938 var = NULL;
9939 var_node_list = var;
9940 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9941 var_nodearraylist2 = var1;
9942 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9943 var_nodearraylist1 = var2;
9944 var_pexprnode2 = var_nodearraylist1;
9945 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
9946 cltype = type_nullable_parser_nodes__AExpr.color;
9947 idtype = type_nullable_parser_nodes__AExpr.id;
9948 if(var_pexprnode2 == NULL) {
9949 var3 = 1;
9950 } else {
9951 if(cltype >= var_pexprnode2->type->table_size) {
9952 var3 = 0;
9953 } else {
9954 var3 = var_pexprnode2->type->type_table[cltype] == idtype;
9955 }
9956 }
9957 if (!var3) {
9958 fprintf(stderr, "Runtime error: %s", "Assert failed");
9959 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29132);
9960 exit(1);
9961 }
9962 var_tattridnode3 = var_nodearraylist2;
9963 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
9964 cltype5 = type_nullable_parser_nodes__TAttrid.color;
9965 idtype6 = type_nullable_parser_nodes__TAttrid.id;
9966 if(var_tattridnode3 == NULL) {
9967 var4 = 1;
9968 } else {
9969 if(cltype5 >= var_tattridnode3->type->table_size) {
9970 var4 = 0;
9971 } else {
9972 var4 = var_tattridnode3->type->type_table[cltype5] == idtype6;
9973 }
9974 }
9975 if (!var4) {
9976 fprintf(stderr, "Runtime error: %s", "Assert failed");
9977 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 29134);
9978 exit(1);
9979 }
9980 var7 = NEW_parser_nodes__AAttrExpr(&type_parser_nodes__AAttrExpr);
9981 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AAttrExpr__init_aattrexpr]))(var7, var_pexprnode2, var_tattridnode3) /* init_aattrexpr on <var7:AAttrExpr>*/;
9982 CHECK_NEW_parser_nodes__AAttrExpr(var7);
9983 var_pexprnode1 = var7;
9984 var_node_list = var_pexprnode1;
9985 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction1227> */
9986 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
9987 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
9988 RET_LABEL:;
9989 }
9990 /* method parser#ReduceAction1227#action for (self: Object, Parser) */
9991 void VIRTUAL_parser__ReduceAction1227__action(val* self, val* p0) {
9992 parser__ReduceAction1227__action(self, p0);
9993 RET_LABEL:;
9994 }