global: compiler remove a useless `const` that cause C warnings
[nit.git] / c_src / parser.sep.13.c
1 #include "parser.sep.0.h"
2 /* method parser#ReduceAction516#action for (self: Object, Parser) */
3 void VIRTUAL_parser__ReduceAction516__action(val* self, val* p0) {
4 parser__ReduceAction516__action(self, p0);
5 RET_LABEL:;
6 }
7 /* method parser#ReduceAction517#action for (self: ReduceAction517, Parser) */
8 void parser__ReduceAction517__action(val* self, val* p0) {
9 val* var_p /* var p: Parser */;
10 val* var /* : null */;
11 val* var_node_list /* var node_list: nullable Object */;
12 val* var1 /* : nullable Object */;
13 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
14 val* var_tkwreadablenode3 /* var tkwreadablenode3: nullable Object */;
15 short int var2 /* : Bool */;
16 int cltype;
17 int idtype;
18 val* var3 /* : AReadAble */;
19 val* var4 /* : null */;
20 val* var_pablenode1 /* var pablenode1: nullable AReadAble */;
21 long var5 /* : Int */;
22 long var6 /* : Int */;
23 var_p = p0;
24 var = NULL;
25 var_node_list = var;
26 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
27 var_nodearraylist1 = var1;
28 var_tkwreadablenode3 = var_nodearraylist1;
29 /* <var_tkwreadablenode3:nullable Object> isa nullable TKwreadable */
30 cltype = type_nullable_parser_nodes__TKwreadable.color;
31 idtype = type_nullable_parser_nodes__TKwreadable.id;
32 if(var_tkwreadablenode3 == NULL) {
33 var2 = 1;
34 } else {
35 if(cltype >= var_tkwreadablenode3->type->table_size) {
36 var2 = 0;
37 } else {
38 var2 = var_tkwreadablenode3->type->type_table[cltype] == idtype;
39 }
40 }
41 if (!var2) {
42 fprintf(stderr, "Runtime error: %s", "Assert failed");
43 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22522);
44 show_backtrace(1);
45 }
46 var3 = NEW_parser_nodes__AReadAble(&type_parser_nodes__AReadAble);
47 var4 = NULL;
48 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AReadAble__init_areadable]))(var3, var4, var_tkwreadablenode3) /* init_areadable on <var3:AReadAble>*/;
49 var_pablenode1 = var3;
50 var_node_list = var_pablenode1;
51 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction517> */
52 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
53 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
54 RET_LABEL:;
55 }
56 /* method parser#ReduceAction517#action for (self: Object, Parser) */
57 void VIRTUAL_parser__ReduceAction517__action(val* self, val* p0) {
58 parser__ReduceAction517__action(self, p0);
59 RET_LABEL:;
60 }
61 /* method parser#ReduceAction518#action for (self: ReduceAction518, Parser) */
62 void parser__ReduceAction518__action(val* self, val* p0) {
63 val* var_p /* var p: Parser */;
64 val* var /* : null */;
65 val* var_node_list /* var node_list: nullable Object */;
66 val* var1 /* : nullable Object */;
67 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
68 val* var2 /* : nullable Object */;
69 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
70 val* var_tkwredefnode2 /* var tkwredefnode2: nullable Object */;
71 short int var3 /* : Bool */;
72 int cltype;
73 int idtype;
74 val* var_tkwreadablenode3 /* var tkwreadablenode3: nullable Object */;
75 short int var4 /* : Bool */;
76 int cltype5;
77 int idtype6;
78 val* var7 /* : AReadAble */;
79 val* var_pablenode1 /* var pablenode1: nullable AReadAble */;
80 long var8 /* : Int */;
81 long var9 /* : Int */;
82 var_p = p0;
83 var = NULL;
84 var_node_list = var;
85 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
86 var_nodearraylist2 = var1;
87 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
88 var_nodearraylist1 = var2;
89 var_tkwredefnode2 = var_nodearraylist1;
90 /* <var_tkwredefnode2:nullable Object> isa nullable TKwredef */
91 cltype = type_nullable_parser_nodes__TKwredef.color;
92 idtype = type_nullable_parser_nodes__TKwredef.id;
93 if(var_tkwredefnode2 == NULL) {
94 var3 = 1;
95 } else {
96 if(cltype >= var_tkwredefnode2->type->table_size) {
97 var3 = 0;
98 } else {
99 var3 = var_tkwredefnode2->type->type_table[cltype] == idtype;
100 }
101 }
102 if (!var3) {
103 fprintf(stderr, "Runtime error: %s", "Assert failed");
104 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22539);
105 show_backtrace(1);
106 }
107 var_tkwreadablenode3 = var_nodearraylist2;
108 /* <var_tkwreadablenode3:nullable Object> isa nullable TKwreadable */
109 cltype5 = type_nullable_parser_nodes__TKwreadable.color;
110 idtype6 = type_nullable_parser_nodes__TKwreadable.id;
111 if(var_tkwreadablenode3 == NULL) {
112 var4 = 1;
113 } else {
114 if(cltype5 >= var_tkwreadablenode3->type->table_size) {
115 var4 = 0;
116 } else {
117 var4 = var_tkwreadablenode3->type->type_table[cltype5] == idtype6;
118 }
119 }
120 if (!var4) {
121 fprintf(stderr, "Runtime error: %s", "Assert failed");
122 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22541);
123 show_backtrace(1);
124 }
125 var7 = NEW_parser_nodes__AReadAble(&type_parser_nodes__AReadAble);
126 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AReadAble__init_areadable]))(var7, var_tkwredefnode2, var_tkwreadablenode3) /* init_areadable on <var7:AReadAble>*/;
127 var_pablenode1 = var7;
128 var_node_list = var_pablenode1;
129 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction518> */
130 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
131 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
132 RET_LABEL:;
133 }
134 /* method parser#ReduceAction518#action for (self: Object, Parser) */
135 void VIRTUAL_parser__ReduceAction518__action(val* self, val* p0) {
136 parser__ReduceAction518__action(self, p0);
137 RET_LABEL:;
138 }
139 /* method parser#ReduceAction519#action for (self: ReduceAction519, Parser) */
140 void parser__ReduceAction519__action(val* self, val* p0) {
141 val* var_p /* var p: Parser */;
142 val* var /* : null */;
143 val* var_node_list /* var node_list: nullable Object */;
144 val* var1 /* : nullable Object */;
145 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
146 val* var_tkwwritablenode4 /* var tkwwritablenode4: nullable Object */;
147 short int var2 /* : Bool */;
148 int cltype;
149 int idtype;
150 val* var3 /* : AWriteAble */;
151 val* var4 /* : null */;
152 val* var5 /* : null */;
153 val* var_pablenode1 /* var pablenode1: nullable AWriteAble */;
154 long var6 /* : Int */;
155 long var7 /* : Int */;
156 var_p = p0;
157 var = NULL;
158 var_node_list = var;
159 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
160 var_nodearraylist1 = var1;
161 var_tkwwritablenode4 = var_nodearraylist1;
162 /* <var_tkwwritablenode4:nullable Object> isa nullable TKwwritable */
163 cltype = type_nullable_parser_nodes__TKwwritable.color;
164 idtype = type_nullable_parser_nodes__TKwwritable.id;
165 if(var_tkwwritablenode4 == NULL) {
166 var2 = 1;
167 } else {
168 if(cltype >= var_tkwwritablenode4->type->table_size) {
169 var2 = 0;
170 } else {
171 var2 = var_tkwwritablenode4->type->type_table[cltype] == idtype;
172 }
173 }
174 if (!var2) {
175 fprintf(stderr, "Runtime error: %s", "Assert failed");
176 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22557);
177 show_backtrace(1);
178 }
179 var3 = NEW_parser_nodes__AWriteAble(&type_parser_nodes__AWriteAble);
180 var4 = NULL;
181 var5 = NULL;
182 ((void (*)(val*, val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AWriteAble__init_awriteable]))(var3, var4, var5, var_tkwwritablenode4) /* init_awriteable on <var3:AWriteAble>*/;
183 var_pablenode1 = var3;
184 var_node_list = var_pablenode1;
185 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction519> */
186 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
187 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
188 RET_LABEL:;
189 }
190 /* method parser#ReduceAction519#action for (self: Object, Parser) */
191 void VIRTUAL_parser__ReduceAction519__action(val* self, val* p0) {
192 parser__ReduceAction519__action(self, p0);
193 RET_LABEL:;
194 }
195 /* method parser#ReduceAction520#action for (self: ReduceAction520, Parser) */
196 void parser__ReduceAction520__action(val* self, val* p0) {
197 val* var_p /* var p: Parser */;
198 val* var /* : null */;
199 val* var_node_list /* var node_list: nullable Object */;
200 val* var1 /* : nullable Object */;
201 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
202 val* var2 /* : nullable Object */;
203 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
204 val* var_tkwredefnode2 /* var tkwredefnode2: nullable Object */;
205 short int var3 /* : Bool */;
206 int cltype;
207 int idtype;
208 val* var_tkwwritablenode4 /* var tkwwritablenode4: nullable Object */;
209 short int var4 /* : Bool */;
210 int cltype5;
211 int idtype6;
212 val* var7 /* : AWriteAble */;
213 val* var8 /* : null */;
214 val* var_pablenode1 /* var pablenode1: nullable AWriteAble */;
215 long var9 /* : Int */;
216 long var10 /* : Int */;
217 var_p = p0;
218 var = NULL;
219 var_node_list = var;
220 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
221 var_nodearraylist2 = var1;
222 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
223 var_nodearraylist1 = var2;
224 var_tkwredefnode2 = var_nodearraylist1;
225 /* <var_tkwredefnode2:nullable Object> isa nullable TKwredef */
226 cltype = type_nullable_parser_nodes__TKwredef.color;
227 idtype = type_nullable_parser_nodes__TKwredef.id;
228 if(var_tkwredefnode2 == NULL) {
229 var3 = 1;
230 } else {
231 if(cltype >= var_tkwredefnode2->type->table_size) {
232 var3 = 0;
233 } else {
234 var3 = var_tkwredefnode2->type->type_table[cltype] == idtype;
235 }
236 }
237 if (!var3) {
238 fprintf(stderr, "Runtime error: %s", "Assert failed");
239 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22575);
240 show_backtrace(1);
241 }
242 var_tkwwritablenode4 = var_nodearraylist2;
243 /* <var_tkwwritablenode4:nullable Object> isa nullable TKwwritable */
244 cltype5 = type_nullable_parser_nodes__TKwwritable.color;
245 idtype6 = type_nullable_parser_nodes__TKwwritable.id;
246 if(var_tkwwritablenode4 == NULL) {
247 var4 = 1;
248 } else {
249 if(cltype5 >= var_tkwwritablenode4->type->table_size) {
250 var4 = 0;
251 } else {
252 var4 = var_tkwwritablenode4->type->type_table[cltype5] == idtype6;
253 }
254 }
255 if (!var4) {
256 fprintf(stderr, "Runtime error: %s", "Assert failed");
257 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22577);
258 show_backtrace(1);
259 }
260 var7 = NEW_parser_nodes__AWriteAble(&type_parser_nodes__AWriteAble);
261 var8 = NULL;
262 ((void (*)(val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AWriteAble__init_awriteable]))(var7, var_tkwredefnode2, var8, var_tkwwritablenode4) /* init_awriteable on <var7:AWriteAble>*/;
263 var_pablenode1 = var7;
264 var_node_list = var_pablenode1;
265 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction520> */
266 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
267 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
268 RET_LABEL:;
269 }
270 /* method parser#ReduceAction520#action for (self: Object, Parser) */
271 void VIRTUAL_parser__ReduceAction520__action(val* self, val* p0) {
272 parser__ReduceAction520__action(self, p0);
273 RET_LABEL:;
274 }
275 /* method parser#ReduceAction521#action for (self: ReduceAction521, Parser) */
276 void parser__ReduceAction521__action(val* self, val* p0) {
277 val* var_p /* var p: Parser */;
278 val* var /* : null */;
279 val* var_node_list /* var node_list: nullable Object */;
280 val* var1 /* : nullable Object */;
281 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
282 val* var2 /* : nullable Object */;
283 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
284 val* var_pvisibilitynode3 /* var pvisibilitynode3: nullable Object */;
285 short int var3 /* : Bool */;
286 int cltype;
287 int idtype;
288 val* var_tkwwritablenode4 /* var tkwwritablenode4: nullable Object */;
289 short int var4 /* : Bool */;
290 int cltype5;
291 int idtype6;
292 val* var7 /* : AWriteAble */;
293 val* var8 /* : null */;
294 val* var_pablenode1 /* var pablenode1: nullable AWriteAble */;
295 long var9 /* : Int */;
296 long var10 /* : Int */;
297 var_p = p0;
298 var = NULL;
299 var_node_list = var;
300 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
301 var_nodearraylist2 = var1;
302 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
303 var_nodearraylist1 = var2;
304 var_pvisibilitynode3 = var_nodearraylist1;
305 /* <var_pvisibilitynode3:nullable Object> isa nullable AVisibility */
306 cltype = type_nullable_parser_nodes__AVisibility.color;
307 idtype = type_nullable_parser_nodes__AVisibility.id;
308 if(var_pvisibilitynode3 == NULL) {
309 var3 = 1;
310 } else {
311 if(cltype >= var_pvisibilitynode3->type->table_size) {
312 var3 = 0;
313 } else {
314 var3 = var_pvisibilitynode3->type->type_table[cltype] == idtype;
315 }
316 }
317 if (!var3) {
318 fprintf(stderr, "Runtime error: %s", "Assert failed");
319 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22595);
320 show_backtrace(1);
321 }
322 var_tkwwritablenode4 = var_nodearraylist2;
323 /* <var_tkwwritablenode4:nullable Object> isa nullable TKwwritable */
324 cltype5 = type_nullable_parser_nodes__TKwwritable.color;
325 idtype6 = type_nullable_parser_nodes__TKwwritable.id;
326 if(var_tkwwritablenode4 == NULL) {
327 var4 = 1;
328 } else {
329 if(cltype5 >= var_tkwwritablenode4->type->table_size) {
330 var4 = 0;
331 } else {
332 var4 = var_tkwwritablenode4->type->type_table[cltype5] == idtype6;
333 }
334 }
335 if (!var4) {
336 fprintf(stderr, "Runtime error: %s", "Assert failed");
337 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22597);
338 show_backtrace(1);
339 }
340 var7 = NEW_parser_nodes__AWriteAble(&type_parser_nodes__AWriteAble);
341 var8 = NULL;
342 ((void (*)(val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AWriteAble__init_awriteable]))(var7, var8, var_pvisibilitynode3, var_tkwwritablenode4) /* init_awriteable on <var7:AWriteAble>*/;
343 var_pablenode1 = var7;
344 var_node_list = var_pablenode1;
345 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction521> */
346 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
347 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
348 RET_LABEL:;
349 }
350 /* method parser#ReduceAction521#action for (self: Object, Parser) */
351 void VIRTUAL_parser__ReduceAction521__action(val* self, val* p0) {
352 parser__ReduceAction521__action(self, p0);
353 RET_LABEL:;
354 }
355 /* method parser#ReduceAction522#action for (self: ReduceAction522, Parser) */
356 void parser__ReduceAction522__action(val* self, val* p0) {
357 val* var_p /* var p: Parser */;
358 val* var /* : null */;
359 val* var_node_list /* var node_list: nullable Object */;
360 val* var1 /* : nullable Object */;
361 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
362 val* var2 /* : nullable Object */;
363 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
364 val* var3 /* : nullable Object */;
365 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
366 val* var_tkwredefnode2 /* var tkwredefnode2: nullable Object */;
367 short int var4 /* : Bool */;
368 int cltype;
369 int idtype;
370 val* var_pvisibilitynode3 /* var pvisibilitynode3: nullable Object */;
371 short int var5 /* : Bool */;
372 int cltype6;
373 int idtype7;
374 val* var_tkwwritablenode4 /* var tkwwritablenode4: nullable Object */;
375 short int var8 /* : Bool */;
376 int cltype9;
377 int idtype10;
378 val* var11 /* : AWriteAble */;
379 val* var_pablenode1 /* var pablenode1: nullable AWriteAble */;
380 long var12 /* : Int */;
381 long var13 /* : Int */;
382 var_p = p0;
383 var = NULL;
384 var_node_list = var;
385 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
386 var_nodearraylist3 = var1;
387 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
388 var_nodearraylist2 = var2;
389 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
390 var_nodearraylist1 = var3;
391 var_tkwredefnode2 = var_nodearraylist1;
392 /* <var_tkwredefnode2:nullable Object> isa nullable TKwredef */
393 cltype = type_nullable_parser_nodes__TKwredef.color;
394 idtype = type_nullable_parser_nodes__TKwredef.id;
395 if(var_tkwredefnode2 == NULL) {
396 var4 = 1;
397 } else {
398 if(cltype >= var_tkwredefnode2->type->table_size) {
399 var4 = 0;
400 } else {
401 var4 = var_tkwredefnode2->type->type_table[cltype] == idtype;
402 }
403 }
404 if (!var4) {
405 fprintf(stderr, "Runtime error: %s", "Assert failed");
406 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22616);
407 show_backtrace(1);
408 }
409 var_pvisibilitynode3 = var_nodearraylist2;
410 /* <var_pvisibilitynode3:nullable Object> isa nullable AVisibility */
411 cltype6 = type_nullable_parser_nodes__AVisibility.color;
412 idtype7 = type_nullable_parser_nodes__AVisibility.id;
413 if(var_pvisibilitynode3 == NULL) {
414 var5 = 1;
415 } else {
416 if(cltype6 >= var_pvisibilitynode3->type->table_size) {
417 var5 = 0;
418 } else {
419 var5 = var_pvisibilitynode3->type->type_table[cltype6] == idtype7;
420 }
421 }
422 if (!var5) {
423 fprintf(stderr, "Runtime error: %s", "Assert failed");
424 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22618);
425 show_backtrace(1);
426 }
427 var_tkwwritablenode4 = var_nodearraylist3;
428 /* <var_tkwwritablenode4:nullable Object> isa nullable TKwwritable */
429 cltype9 = type_nullable_parser_nodes__TKwwritable.color;
430 idtype10 = type_nullable_parser_nodes__TKwwritable.id;
431 if(var_tkwwritablenode4 == NULL) {
432 var8 = 1;
433 } else {
434 if(cltype9 >= var_tkwwritablenode4->type->table_size) {
435 var8 = 0;
436 } else {
437 var8 = var_tkwwritablenode4->type->type_table[cltype9] == idtype10;
438 }
439 }
440 if (!var8) {
441 fprintf(stderr, "Runtime error: %s", "Assert failed");
442 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22620);
443 show_backtrace(1);
444 }
445 var11 = NEW_parser_nodes__AWriteAble(&type_parser_nodes__AWriteAble);
446 ((void (*)(val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AWriteAble__init_awriteable]))(var11, var_tkwredefnode2, var_pvisibilitynode3, var_tkwwritablenode4) /* init_awriteable on <var11:AWriteAble>*/;
447 var_pablenode1 = var11;
448 var_node_list = var_pablenode1;
449 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction522> */
450 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
451 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
452 RET_LABEL:;
453 }
454 /* method parser#ReduceAction522#action for (self: Object, Parser) */
455 void VIRTUAL_parser__ReduceAction522__action(val* self, val* p0) {
456 parser__ReduceAction522__action(self, p0);
457 RET_LABEL:;
458 }
459 /* method parser#ReduceAction523#action for (self: ReduceAction523, Parser) */
460 void parser__ReduceAction523__action(val* self, val* p0) {
461 val* var_p /* var p: Parser */;
462 val* var /* : null */;
463 val* var_node_list /* var node_list: nullable Object */;
464 val* var1 /* : APublicVisibility */;
465 val* var_pvisibilitynode1 /* var pvisibilitynode1: nullable APublicVisibility */;
466 long var2 /* : Int */;
467 long var3 /* : Int */;
468 var_p = p0;
469 var = NULL;
470 var_node_list = var;
471 var1 = NEW_parser_nodes__APublicVisibility(&type_parser_nodes__APublicVisibility);
472 ((void (*)(val*))(var1->class->vft[COLOR_parser_prod__APublicVisibility__init_apublicvisibility]))(var1) /* init_apublicvisibility on <var1:APublicVisibility>*/;
473 var_pvisibilitynode1 = var1;
474 var_node_list = var_pvisibilitynode1;
475 var2 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction523> */
476 var3 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var2) /* go_to on <var_p:Parser>*/;
477 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var3, var_node_list) /* push on <var_p:Parser>*/;
478 RET_LABEL:;
479 }
480 /* method parser#ReduceAction523#action for (self: Object, Parser) */
481 void VIRTUAL_parser__ReduceAction523__action(val* self, val* p0) {
482 parser__ReduceAction523__action(self, p0);
483 RET_LABEL:;
484 }
485 /* method parser#ReduceAction524#action for (self: ReduceAction524, Parser) */
486 void parser__ReduceAction524__action(val* self, val* p0) {
487 val* var_p /* var p: Parser */;
488 val* var /* : null */;
489 val* var_node_list /* var node_list: nullable Object */;
490 val* var1 /* : nullable Object */;
491 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
492 val* var2 /* : nullable Object */;
493 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
494 val* var_tkwprivatenode2 /* var tkwprivatenode2: nullable Object */;
495 short int var3 /* : Bool */;
496 int cltype;
497 int idtype;
498 val* var4 /* : APrivateVisibility */;
499 val* var_pvisibilitynode1 /* var pvisibilitynode1: nullable APrivateVisibility */;
500 long var5 /* : Int */;
501 long var6 /* : Int */;
502 var_p = p0;
503 var = NULL;
504 var_node_list = var;
505 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
506 var_nodearraylist2 = var1;
507 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
508 var_nodearraylist1 = var2;
509 var_tkwprivatenode2 = var_nodearraylist1;
510 /* <var_tkwprivatenode2:nullable Object> isa nullable TKwprivate */
511 cltype = type_nullable_parser_nodes__TKwprivate.color;
512 idtype = type_nullable_parser_nodes__TKwprivate.id;
513 if(var_tkwprivatenode2 == NULL) {
514 var3 = 1;
515 } else {
516 if(cltype >= var_tkwprivatenode2->type->table_size) {
517 var3 = 0;
518 } else {
519 var3 = var_tkwprivatenode2->type->type_table[cltype] == idtype;
520 }
521 }
522 if (!var3) {
523 fprintf(stderr, "Runtime error: %s", "Assert failed");
524 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22648);
525 show_backtrace(1);
526 }
527 var4 = NEW_parser_nodes__APrivateVisibility(&type_parser_nodes__APrivateVisibility);
528 ((void (*)(val*, val*))(var4->class->vft[COLOR_parser_prod__APrivateVisibility__init_aprivatevisibility]))(var4, var_tkwprivatenode2) /* init_aprivatevisibility on <var4:APrivateVisibility>*/;
529 var_pvisibilitynode1 = var4;
530 var_node_list = var_pvisibilitynode1;
531 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction524> */
532 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
533 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
534 RET_LABEL:;
535 }
536 /* method parser#ReduceAction524#action for (self: Object, Parser) */
537 void VIRTUAL_parser__ReduceAction524__action(val* self, val* p0) {
538 parser__ReduceAction524__action(self, p0);
539 RET_LABEL:;
540 }
541 /* method parser#ReduceAction525#action for (self: ReduceAction525, Parser) */
542 void parser__ReduceAction525__action(val* self, val* p0) {
543 val* var_p /* var p: Parser */;
544 val* var /* : null */;
545 val* var_node_list /* var node_list: nullable Object */;
546 val* var1 /* : nullable Object */;
547 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
548 val* var2 /* : nullable Object */;
549 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
550 val* var_tkwprotectednode2 /* var tkwprotectednode2: nullable Object */;
551 short int var3 /* : Bool */;
552 int cltype;
553 int idtype;
554 val* var4 /* : AProtectedVisibility */;
555 val* var_pvisibilitynode1 /* var pvisibilitynode1: nullable AProtectedVisibility */;
556 long var5 /* : Int */;
557 long var6 /* : Int */;
558 var_p = p0;
559 var = NULL;
560 var_node_list = var;
561 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
562 var_nodearraylist2 = var1;
563 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
564 var_nodearraylist1 = var2;
565 var_tkwprotectednode2 = var_nodearraylist1;
566 /* <var_tkwprotectednode2:nullable Object> isa nullable TKwprotected */
567 cltype = type_nullable_parser_nodes__TKwprotected.color;
568 idtype = type_nullable_parser_nodes__TKwprotected.id;
569 if(var_tkwprotectednode2 == NULL) {
570 var3 = 1;
571 } else {
572 if(cltype >= var_tkwprotectednode2->type->table_size) {
573 var3 = 0;
574 } else {
575 var3 = var_tkwprotectednode2->type->type_table[cltype] == idtype;
576 }
577 }
578 if (!var3) {
579 fprintf(stderr, "Runtime error: %s", "Assert failed");
580 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22664);
581 show_backtrace(1);
582 }
583 var4 = NEW_parser_nodes__AProtectedVisibility(&type_parser_nodes__AProtectedVisibility);
584 ((void (*)(val*, val*))(var4->class->vft[COLOR_parser_prod__AProtectedVisibility__init_aprotectedvisibility]))(var4, var_tkwprotectednode2) /* init_aprotectedvisibility on <var4:AProtectedVisibility>*/;
585 var_pvisibilitynode1 = var4;
586 var_node_list = var_pvisibilitynode1;
587 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction525> */
588 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
589 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
590 RET_LABEL:;
591 }
592 /* method parser#ReduceAction525#action for (self: Object, Parser) */
593 void VIRTUAL_parser__ReduceAction525__action(val* self, val* p0) {
594 parser__ReduceAction525__action(self, p0);
595 RET_LABEL:;
596 }
597 /* method parser#ReduceAction526#action for (self: ReduceAction526, Parser) */
598 void parser__ReduceAction526__action(val* self, val* p0) {
599 val* var_p /* var p: Parser */;
600 val* var /* : null */;
601 val* var_node_list /* var node_list: nullable Object */;
602 val* var1 /* : nullable Object */;
603 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
604 val* var2 /* : nullable Object */;
605 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
606 val* var_tkwintrudenode2 /* var tkwintrudenode2: nullable Object */;
607 short int var3 /* : Bool */;
608 int cltype;
609 int idtype;
610 val* var4 /* : AIntrudeVisibility */;
611 val* var_pvisibilitynode1 /* var pvisibilitynode1: nullable AIntrudeVisibility */;
612 long var5 /* : Int */;
613 long var6 /* : Int */;
614 var_p = p0;
615 var = NULL;
616 var_node_list = var;
617 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
618 var_nodearraylist2 = var1;
619 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
620 var_nodearraylist1 = var2;
621 var_tkwintrudenode2 = var_nodearraylist1;
622 /* <var_tkwintrudenode2:nullable Object> isa nullable TKwintrude */
623 cltype = type_nullable_parser_nodes__TKwintrude.color;
624 idtype = type_nullable_parser_nodes__TKwintrude.id;
625 if(var_tkwintrudenode2 == NULL) {
626 var3 = 1;
627 } else {
628 if(cltype >= var_tkwintrudenode2->type->table_size) {
629 var3 = 0;
630 } else {
631 var3 = var_tkwintrudenode2->type->type_table[cltype] == idtype;
632 }
633 }
634 if (!var3) {
635 fprintf(stderr, "Runtime error: %s", "Assert failed");
636 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22680);
637 show_backtrace(1);
638 }
639 var4 = NEW_parser_nodes__AIntrudeVisibility(&type_parser_nodes__AIntrudeVisibility);
640 ((void (*)(val*, val*))(var4->class->vft[COLOR_parser_prod__AIntrudeVisibility__init_aintrudevisibility]))(var4, var_tkwintrudenode2) /* init_aintrudevisibility on <var4:AIntrudeVisibility>*/;
641 var_pvisibilitynode1 = var4;
642 var_node_list = var_pvisibilitynode1;
643 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction526> */
644 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
645 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
646 RET_LABEL:;
647 }
648 /* method parser#ReduceAction526#action for (self: Object, Parser) */
649 void VIRTUAL_parser__ReduceAction526__action(val* self, val* p0) {
650 parser__ReduceAction526__action(self, p0);
651 RET_LABEL:;
652 }
653 /* method parser#ReduceAction527#action for (self: ReduceAction527, Parser) */
654 void parser__ReduceAction527__action(val* self, val* p0) {
655 val* var_p /* var p: Parser */;
656 val* var /* : null */;
657 val* var_node_list /* var node_list: nullable Object */;
658 val* var1 /* : nullable Object */;
659 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
660 val* var_tidnode2 /* var tidnode2: nullable Object */;
661 short int var2 /* : Bool */;
662 int cltype;
663 int idtype;
664 val* var3 /* : AIdMethid */;
665 val* var_pmethidnode1 /* var pmethidnode1: nullable AIdMethid */;
666 long var4 /* : Int */;
667 long var5 /* : Int */;
668 var_p = p0;
669 var = NULL;
670 var_node_list = var;
671 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
672 var_nodearraylist1 = var1;
673 var_tidnode2 = var_nodearraylist1;
674 /* <var_tidnode2:nullable Object> isa nullable TId */
675 cltype = type_nullable_parser_nodes__TId.color;
676 idtype = type_nullable_parser_nodes__TId.id;
677 if(var_tidnode2 == NULL) {
678 var2 = 1;
679 } else {
680 if(cltype >= var_tidnode2->type->table_size) {
681 var2 = 0;
682 } else {
683 var2 = var_tidnode2->type->type_table[cltype] == idtype;
684 }
685 }
686 if (!var2) {
687 fprintf(stderr, "Runtime error: %s", "Assert failed");
688 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22695);
689 show_backtrace(1);
690 }
691 var3 = NEW_parser_nodes__AIdMethid(&type_parser_nodes__AIdMethid);
692 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AIdMethid__init_aidmethid]))(var3, var_tidnode2) /* init_aidmethid on <var3:AIdMethid>*/;
693 var_pmethidnode1 = var3;
694 var_node_list = var_pmethidnode1;
695 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction527> */
696 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
697 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
698 RET_LABEL:;
699 }
700 /* method parser#ReduceAction527#action for (self: Object, Parser) */
701 void VIRTUAL_parser__ReduceAction527__action(val* self, val* p0) {
702 parser__ReduceAction527__action(self, p0);
703 RET_LABEL:;
704 }
705 /* method parser#ReduceAction528#action for (self: ReduceAction528, Parser) */
706 void parser__ReduceAction528__action(val* self, val* p0) {
707 val* var_p /* var p: Parser */;
708 val* var /* : null */;
709 val* var_node_list /* var node_list: nullable Object */;
710 val* var1 /* : nullable Object */;
711 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
712 val* var_tplusnode2 /* var tplusnode2: nullable Object */;
713 short int var2 /* : Bool */;
714 int cltype;
715 int idtype;
716 val* var3 /* : APlusMethid */;
717 val* var_pmethidnode1 /* var pmethidnode1: nullable APlusMethid */;
718 long var4 /* : Int */;
719 long var5 /* : Int */;
720 var_p = p0;
721 var = NULL;
722 var_node_list = var;
723 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
724 var_nodearraylist1 = var1;
725 var_tplusnode2 = var_nodearraylist1;
726 /* <var_tplusnode2:nullable Object> isa nullable TPlus */
727 cltype = type_nullable_parser_nodes__TPlus.color;
728 idtype = type_nullable_parser_nodes__TPlus.id;
729 if(var_tplusnode2 == NULL) {
730 var2 = 1;
731 } else {
732 if(cltype >= var_tplusnode2->type->table_size) {
733 var2 = 0;
734 } else {
735 var2 = var_tplusnode2->type->type_table[cltype] == idtype;
736 }
737 }
738 if (!var2) {
739 fprintf(stderr, "Runtime error: %s", "Assert failed");
740 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22710);
741 show_backtrace(1);
742 }
743 var3 = NEW_parser_nodes__APlusMethid(&type_parser_nodes__APlusMethid);
744 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__APlusMethid__init_aplusmethid]))(var3, var_tplusnode2) /* init_aplusmethid on <var3:APlusMethid>*/;
745 var_pmethidnode1 = var3;
746 var_node_list = var_pmethidnode1;
747 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction528> */
748 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
749 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
750 RET_LABEL:;
751 }
752 /* method parser#ReduceAction528#action for (self: Object, Parser) */
753 void VIRTUAL_parser__ReduceAction528__action(val* self, val* p0) {
754 parser__ReduceAction528__action(self, p0);
755 RET_LABEL:;
756 }
757 /* method parser#ReduceAction529#action for (self: ReduceAction529, Parser) */
758 void parser__ReduceAction529__action(val* self, val* p0) {
759 val* var_p /* var p: Parser */;
760 val* var /* : null */;
761 val* var_node_list /* var node_list: nullable Object */;
762 val* var1 /* : nullable Object */;
763 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
764 val* var_tminusnode2 /* var tminusnode2: nullable Object */;
765 short int var2 /* : Bool */;
766 int cltype;
767 int idtype;
768 val* var3 /* : AMinusMethid */;
769 val* var_pmethidnode1 /* var pmethidnode1: nullable AMinusMethid */;
770 long var4 /* : Int */;
771 long var5 /* : Int */;
772 var_p = p0;
773 var = NULL;
774 var_node_list = var;
775 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
776 var_nodearraylist1 = var1;
777 var_tminusnode2 = var_nodearraylist1;
778 /* <var_tminusnode2:nullable Object> isa nullable TMinus */
779 cltype = type_nullable_parser_nodes__TMinus.color;
780 idtype = type_nullable_parser_nodes__TMinus.id;
781 if(var_tminusnode2 == NULL) {
782 var2 = 1;
783 } else {
784 if(cltype >= var_tminusnode2->type->table_size) {
785 var2 = 0;
786 } else {
787 var2 = var_tminusnode2->type->type_table[cltype] == idtype;
788 }
789 }
790 if (!var2) {
791 fprintf(stderr, "Runtime error: %s", "Assert failed");
792 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22725);
793 show_backtrace(1);
794 }
795 var3 = NEW_parser_nodes__AMinusMethid(&type_parser_nodes__AMinusMethid);
796 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AMinusMethid__init_aminusmethid]))(var3, var_tminusnode2) /* init_aminusmethid on <var3:AMinusMethid>*/;
797 var_pmethidnode1 = var3;
798 var_node_list = var_pmethidnode1;
799 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction529> */
800 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
801 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
802 RET_LABEL:;
803 }
804 /* method parser#ReduceAction529#action for (self: Object, Parser) */
805 void VIRTUAL_parser__ReduceAction529__action(val* self, val* p0) {
806 parser__ReduceAction529__action(self, p0);
807 RET_LABEL:;
808 }
809 /* method parser#ReduceAction530#action for (self: ReduceAction530, Parser) */
810 void parser__ReduceAction530__action(val* self, val* p0) {
811 val* var_p /* var p: Parser */;
812 val* var /* : null */;
813 val* var_node_list /* var node_list: nullable Object */;
814 val* var1 /* : nullable Object */;
815 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
816 val* var_tstarnode2 /* var tstarnode2: nullable Object */;
817 short int var2 /* : Bool */;
818 int cltype;
819 int idtype;
820 val* var3 /* : AStarMethid */;
821 val* var_pmethidnode1 /* var pmethidnode1: nullable AStarMethid */;
822 long var4 /* : Int */;
823 long var5 /* : Int */;
824 var_p = p0;
825 var = NULL;
826 var_node_list = var;
827 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
828 var_nodearraylist1 = var1;
829 var_tstarnode2 = var_nodearraylist1;
830 /* <var_tstarnode2:nullable Object> isa nullable TStar */
831 cltype = type_nullable_parser_nodes__TStar.color;
832 idtype = type_nullable_parser_nodes__TStar.id;
833 if(var_tstarnode2 == NULL) {
834 var2 = 1;
835 } else {
836 if(cltype >= var_tstarnode2->type->table_size) {
837 var2 = 0;
838 } else {
839 var2 = var_tstarnode2->type->type_table[cltype] == idtype;
840 }
841 }
842 if (!var2) {
843 fprintf(stderr, "Runtime error: %s", "Assert failed");
844 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22740);
845 show_backtrace(1);
846 }
847 var3 = NEW_parser_nodes__AStarMethid(&type_parser_nodes__AStarMethid);
848 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AStarMethid__init_astarmethid]))(var3, var_tstarnode2) /* init_astarmethid on <var3:AStarMethid>*/;
849 var_pmethidnode1 = var3;
850 var_node_list = var_pmethidnode1;
851 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction530> */
852 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
853 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
854 RET_LABEL:;
855 }
856 /* method parser#ReduceAction530#action for (self: Object, Parser) */
857 void VIRTUAL_parser__ReduceAction530__action(val* self, val* p0) {
858 parser__ReduceAction530__action(self, p0);
859 RET_LABEL:;
860 }
861 /* method parser#ReduceAction531#action for (self: ReduceAction531, Parser) */
862 void parser__ReduceAction531__action(val* self, val* p0) {
863 val* var_p /* var p: Parser */;
864 val* var /* : null */;
865 val* var_node_list /* var node_list: nullable Object */;
866 val* var1 /* : nullable Object */;
867 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
868 val* var_tslashnode2 /* var tslashnode2: nullable Object */;
869 short int var2 /* : Bool */;
870 int cltype;
871 int idtype;
872 val* var3 /* : ASlashMethid */;
873 val* var_pmethidnode1 /* var pmethidnode1: nullable ASlashMethid */;
874 long var4 /* : Int */;
875 long var5 /* : Int */;
876 var_p = p0;
877 var = NULL;
878 var_node_list = var;
879 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
880 var_nodearraylist1 = var1;
881 var_tslashnode2 = var_nodearraylist1;
882 /* <var_tslashnode2:nullable Object> isa nullable TSlash */
883 cltype = type_nullable_parser_nodes__TSlash.color;
884 idtype = type_nullable_parser_nodes__TSlash.id;
885 if(var_tslashnode2 == NULL) {
886 var2 = 1;
887 } else {
888 if(cltype >= var_tslashnode2->type->table_size) {
889 var2 = 0;
890 } else {
891 var2 = var_tslashnode2->type->type_table[cltype] == idtype;
892 }
893 }
894 if (!var2) {
895 fprintf(stderr, "Runtime error: %s", "Assert failed");
896 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22755);
897 show_backtrace(1);
898 }
899 var3 = NEW_parser_nodes__ASlashMethid(&type_parser_nodes__ASlashMethid);
900 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__ASlashMethid__init_aslashmethid]))(var3, var_tslashnode2) /* init_aslashmethid on <var3:ASlashMethid>*/;
901 var_pmethidnode1 = var3;
902 var_node_list = var_pmethidnode1;
903 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction531> */
904 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
905 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
906 RET_LABEL:;
907 }
908 /* method parser#ReduceAction531#action for (self: Object, Parser) */
909 void VIRTUAL_parser__ReduceAction531__action(val* self, val* p0) {
910 parser__ReduceAction531__action(self, p0);
911 RET_LABEL:;
912 }
913 /* method parser#ReduceAction532#action for (self: ReduceAction532, Parser) */
914 void parser__ReduceAction532__action(val* self, val* p0) {
915 val* var_p /* var p: Parser */;
916 val* var /* : null */;
917 val* var_node_list /* var node_list: nullable Object */;
918 val* var1 /* : nullable Object */;
919 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
920 val* var_tpercentnode2 /* var tpercentnode2: nullable Object */;
921 short int var2 /* : Bool */;
922 int cltype;
923 int idtype;
924 val* var3 /* : APercentMethid */;
925 val* var_pmethidnode1 /* var pmethidnode1: nullable APercentMethid */;
926 long var4 /* : Int */;
927 long var5 /* : Int */;
928 var_p = p0;
929 var = NULL;
930 var_node_list = var;
931 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
932 var_nodearraylist1 = var1;
933 var_tpercentnode2 = var_nodearraylist1;
934 /* <var_tpercentnode2:nullable Object> isa nullable TPercent */
935 cltype = type_nullable_parser_nodes__TPercent.color;
936 idtype = type_nullable_parser_nodes__TPercent.id;
937 if(var_tpercentnode2 == NULL) {
938 var2 = 1;
939 } else {
940 if(cltype >= var_tpercentnode2->type->table_size) {
941 var2 = 0;
942 } else {
943 var2 = var_tpercentnode2->type->type_table[cltype] == idtype;
944 }
945 }
946 if (!var2) {
947 fprintf(stderr, "Runtime error: %s", "Assert failed");
948 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22770);
949 show_backtrace(1);
950 }
951 var3 = NEW_parser_nodes__APercentMethid(&type_parser_nodes__APercentMethid);
952 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__APercentMethid__init_apercentmethid]))(var3, var_tpercentnode2) /* init_apercentmethid on <var3:APercentMethid>*/;
953 var_pmethidnode1 = var3;
954 var_node_list = var_pmethidnode1;
955 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction532> */
956 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
957 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
958 RET_LABEL:;
959 }
960 /* method parser#ReduceAction532#action for (self: Object, Parser) */
961 void VIRTUAL_parser__ReduceAction532__action(val* self, val* p0) {
962 parser__ReduceAction532__action(self, p0);
963 RET_LABEL:;
964 }
965 /* method parser#ReduceAction533#action for (self: ReduceAction533, Parser) */
966 void parser__ReduceAction533__action(val* self, val* p0) {
967 val* var_p /* var p: Parser */;
968 val* var /* : null */;
969 val* var_node_list /* var node_list: nullable Object */;
970 val* var1 /* : nullable Object */;
971 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
972 val* var_teqnode2 /* var teqnode2: nullable Object */;
973 short int var2 /* : Bool */;
974 int cltype;
975 int idtype;
976 val* var3 /* : AEqMethid */;
977 val* var_pmethidnode1 /* var pmethidnode1: nullable AEqMethid */;
978 long var4 /* : Int */;
979 long var5 /* : Int */;
980 var_p = p0;
981 var = NULL;
982 var_node_list = var;
983 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
984 var_nodearraylist1 = var1;
985 var_teqnode2 = var_nodearraylist1;
986 /* <var_teqnode2:nullable Object> isa nullable TEq */
987 cltype = type_nullable_parser_nodes__TEq.color;
988 idtype = type_nullable_parser_nodes__TEq.id;
989 if(var_teqnode2 == NULL) {
990 var2 = 1;
991 } else {
992 if(cltype >= var_teqnode2->type->table_size) {
993 var2 = 0;
994 } else {
995 var2 = var_teqnode2->type->type_table[cltype] == idtype;
996 }
997 }
998 if (!var2) {
999 fprintf(stderr, "Runtime error: %s", "Assert failed");
1000 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22785);
1001 show_backtrace(1);
1002 }
1003 var3 = NEW_parser_nodes__AEqMethid(&type_parser_nodes__AEqMethid);
1004 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AEqMethid__init_aeqmethid]))(var3, var_teqnode2) /* init_aeqmethid on <var3:AEqMethid>*/;
1005 var_pmethidnode1 = var3;
1006 var_node_list = var_pmethidnode1;
1007 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction533> */
1008 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
1009 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
1010 RET_LABEL:;
1011 }
1012 /* method parser#ReduceAction533#action for (self: Object, Parser) */
1013 void VIRTUAL_parser__ReduceAction533__action(val* self, val* p0) {
1014 parser__ReduceAction533__action(self, p0);
1015 RET_LABEL:;
1016 }
1017 /* method parser#ReduceAction534#action for (self: ReduceAction534, Parser) */
1018 void parser__ReduceAction534__action(val* self, val* p0) {
1019 val* var_p /* var p: Parser */;
1020 val* var /* : null */;
1021 val* var_node_list /* var node_list: nullable Object */;
1022 val* var1 /* : nullable Object */;
1023 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1024 val* var_tnenode2 /* var tnenode2: nullable Object */;
1025 short int var2 /* : Bool */;
1026 int cltype;
1027 int idtype;
1028 val* var3 /* : ANeMethid */;
1029 val* var_pmethidnode1 /* var pmethidnode1: nullable ANeMethid */;
1030 long var4 /* : Int */;
1031 long var5 /* : Int */;
1032 var_p = p0;
1033 var = NULL;
1034 var_node_list = var;
1035 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1036 var_nodearraylist1 = var1;
1037 var_tnenode2 = var_nodearraylist1;
1038 /* <var_tnenode2:nullable Object> isa nullable TNe */
1039 cltype = type_nullable_parser_nodes__TNe.color;
1040 idtype = type_nullable_parser_nodes__TNe.id;
1041 if(var_tnenode2 == NULL) {
1042 var2 = 1;
1043 } else {
1044 if(cltype >= var_tnenode2->type->table_size) {
1045 var2 = 0;
1046 } else {
1047 var2 = var_tnenode2->type->type_table[cltype] == idtype;
1048 }
1049 }
1050 if (!var2) {
1051 fprintf(stderr, "Runtime error: %s", "Assert failed");
1052 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22800);
1053 show_backtrace(1);
1054 }
1055 var3 = NEW_parser_nodes__ANeMethid(&type_parser_nodes__ANeMethid);
1056 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__ANeMethid__init_anemethid]))(var3, var_tnenode2) /* init_anemethid on <var3:ANeMethid>*/;
1057 var_pmethidnode1 = var3;
1058 var_node_list = var_pmethidnode1;
1059 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction534> */
1060 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
1061 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
1062 RET_LABEL:;
1063 }
1064 /* method parser#ReduceAction534#action for (self: Object, Parser) */
1065 void VIRTUAL_parser__ReduceAction534__action(val* self, val* p0) {
1066 parser__ReduceAction534__action(self, p0);
1067 RET_LABEL:;
1068 }
1069 /* method parser#ReduceAction535#action for (self: ReduceAction535, Parser) */
1070 void parser__ReduceAction535__action(val* self, val* p0) {
1071 val* var_p /* var p: Parser */;
1072 val* var /* : null */;
1073 val* var_node_list /* var node_list: nullable Object */;
1074 val* var1 /* : nullable Object */;
1075 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1076 val* var_tlenode2 /* var tlenode2: nullable Object */;
1077 short int var2 /* : Bool */;
1078 int cltype;
1079 int idtype;
1080 val* var3 /* : ALeMethid */;
1081 val* var_pmethidnode1 /* var pmethidnode1: nullable ALeMethid */;
1082 long var4 /* : Int */;
1083 long var5 /* : Int */;
1084 var_p = p0;
1085 var = NULL;
1086 var_node_list = var;
1087 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1088 var_nodearraylist1 = var1;
1089 var_tlenode2 = var_nodearraylist1;
1090 /* <var_tlenode2:nullable Object> isa nullable TLe */
1091 cltype = type_nullable_parser_nodes__TLe.color;
1092 idtype = type_nullable_parser_nodes__TLe.id;
1093 if(var_tlenode2 == NULL) {
1094 var2 = 1;
1095 } else {
1096 if(cltype >= var_tlenode2->type->table_size) {
1097 var2 = 0;
1098 } else {
1099 var2 = var_tlenode2->type->type_table[cltype] == idtype;
1100 }
1101 }
1102 if (!var2) {
1103 fprintf(stderr, "Runtime error: %s", "Assert failed");
1104 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22815);
1105 show_backtrace(1);
1106 }
1107 var3 = NEW_parser_nodes__ALeMethid(&type_parser_nodes__ALeMethid);
1108 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__ALeMethid__init_alemethid]))(var3, var_tlenode2) /* init_alemethid on <var3:ALeMethid>*/;
1109 var_pmethidnode1 = var3;
1110 var_node_list = var_pmethidnode1;
1111 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction535> */
1112 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
1113 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
1114 RET_LABEL:;
1115 }
1116 /* method parser#ReduceAction535#action for (self: Object, Parser) */
1117 void VIRTUAL_parser__ReduceAction535__action(val* self, val* p0) {
1118 parser__ReduceAction535__action(self, p0);
1119 RET_LABEL:;
1120 }
1121 /* method parser#ReduceAction536#action for (self: ReduceAction536, Parser) */
1122 void parser__ReduceAction536__action(val* self, val* p0) {
1123 val* var_p /* var p: Parser */;
1124 val* var /* : null */;
1125 val* var_node_list /* var node_list: nullable Object */;
1126 val* var1 /* : nullable Object */;
1127 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1128 val* var_tgenode2 /* var tgenode2: nullable Object */;
1129 short int var2 /* : Bool */;
1130 int cltype;
1131 int idtype;
1132 val* var3 /* : AGeMethid */;
1133 val* var_pmethidnode1 /* var pmethidnode1: nullable AGeMethid */;
1134 long var4 /* : Int */;
1135 long var5 /* : Int */;
1136 var_p = p0;
1137 var = NULL;
1138 var_node_list = var;
1139 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1140 var_nodearraylist1 = var1;
1141 var_tgenode2 = var_nodearraylist1;
1142 /* <var_tgenode2:nullable Object> isa nullable TGe */
1143 cltype = type_nullable_parser_nodes__TGe.color;
1144 idtype = type_nullable_parser_nodes__TGe.id;
1145 if(var_tgenode2 == NULL) {
1146 var2 = 1;
1147 } else {
1148 if(cltype >= var_tgenode2->type->table_size) {
1149 var2 = 0;
1150 } else {
1151 var2 = var_tgenode2->type->type_table[cltype] == idtype;
1152 }
1153 }
1154 if (!var2) {
1155 fprintf(stderr, "Runtime error: %s", "Assert failed");
1156 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22830);
1157 show_backtrace(1);
1158 }
1159 var3 = NEW_parser_nodes__AGeMethid(&type_parser_nodes__AGeMethid);
1160 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AGeMethid__init_agemethid]))(var3, var_tgenode2) /* init_agemethid on <var3:AGeMethid>*/;
1161 var_pmethidnode1 = var3;
1162 var_node_list = var_pmethidnode1;
1163 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction536> */
1164 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
1165 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
1166 RET_LABEL:;
1167 }
1168 /* method parser#ReduceAction536#action for (self: Object, Parser) */
1169 void VIRTUAL_parser__ReduceAction536__action(val* self, val* p0) {
1170 parser__ReduceAction536__action(self, p0);
1171 RET_LABEL:;
1172 }
1173 /* method parser#ReduceAction537#action for (self: ReduceAction537, Parser) */
1174 void parser__ReduceAction537__action(val* self, val* p0) {
1175 val* var_p /* var p: Parser */;
1176 val* var /* : null */;
1177 val* var_node_list /* var node_list: nullable Object */;
1178 val* var1 /* : nullable Object */;
1179 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1180 val* var_tltnode2 /* var tltnode2: nullable Object */;
1181 short int var2 /* : Bool */;
1182 int cltype;
1183 int idtype;
1184 val* var3 /* : ALtMethid */;
1185 val* var_pmethidnode1 /* var pmethidnode1: nullable ALtMethid */;
1186 long var4 /* : Int */;
1187 long var5 /* : Int */;
1188 var_p = p0;
1189 var = NULL;
1190 var_node_list = var;
1191 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1192 var_nodearraylist1 = var1;
1193 var_tltnode2 = var_nodearraylist1;
1194 /* <var_tltnode2:nullable Object> isa nullable TLt */
1195 cltype = type_nullable_parser_nodes__TLt.color;
1196 idtype = type_nullable_parser_nodes__TLt.id;
1197 if(var_tltnode2 == NULL) {
1198 var2 = 1;
1199 } else {
1200 if(cltype >= var_tltnode2->type->table_size) {
1201 var2 = 0;
1202 } else {
1203 var2 = var_tltnode2->type->type_table[cltype] == idtype;
1204 }
1205 }
1206 if (!var2) {
1207 fprintf(stderr, "Runtime error: %s", "Assert failed");
1208 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22845);
1209 show_backtrace(1);
1210 }
1211 var3 = NEW_parser_nodes__ALtMethid(&type_parser_nodes__ALtMethid);
1212 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__ALtMethid__init_altmethid]))(var3, var_tltnode2) /* init_altmethid on <var3:ALtMethid>*/;
1213 var_pmethidnode1 = var3;
1214 var_node_list = var_pmethidnode1;
1215 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction537> */
1216 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
1217 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
1218 RET_LABEL:;
1219 }
1220 /* method parser#ReduceAction537#action for (self: Object, Parser) */
1221 void VIRTUAL_parser__ReduceAction537__action(val* self, val* p0) {
1222 parser__ReduceAction537__action(self, p0);
1223 RET_LABEL:;
1224 }
1225 /* method parser#ReduceAction538#action for (self: ReduceAction538, Parser) */
1226 void parser__ReduceAction538__action(val* self, val* p0) {
1227 val* var_p /* var p: Parser */;
1228 val* var /* : null */;
1229 val* var_node_list /* var node_list: nullable Object */;
1230 val* var1 /* : nullable Object */;
1231 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1232 val* var_tgtnode2 /* var tgtnode2: nullable Object */;
1233 short int var2 /* : Bool */;
1234 int cltype;
1235 int idtype;
1236 val* var3 /* : AGtMethid */;
1237 val* var_pmethidnode1 /* var pmethidnode1: nullable AGtMethid */;
1238 long var4 /* : Int */;
1239 long var5 /* : Int */;
1240 var_p = p0;
1241 var = NULL;
1242 var_node_list = var;
1243 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1244 var_nodearraylist1 = var1;
1245 var_tgtnode2 = var_nodearraylist1;
1246 /* <var_tgtnode2:nullable Object> isa nullable TGt */
1247 cltype = type_nullable_parser_nodes__TGt.color;
1248 idtype = type_nullable_parser_nodes__TGt.id;
1249 if(var_tgtnode2 == NULL) {
1250 var2 = 1;
1251 } else {
1252 if(cltype >= var_tgtnode2->type->table_size) {
1253 var2 = 0;
1254 } else {
1255 var2 = var_tgtnode2->type->type_table[cltype] == idtype;
1256 }
1257 }
1258 if (!var2) {
1259 fprintf(stderr, "Runtime error: %s", "Assert failed");
1260 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22860);
1261 show_backtrace(1);
1262 }
1263 var3 = NEW_parser_nodes__AGtMethid(&type_parser_nodes__AGtMethid);
1264 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AGtMethid__init_agtmethid]))(var3, var_tgtnode2) /* init_agtmethid on <var3:AGtMethid>*/;
1265 var_pmethidnode1 = var3;
1266 var_node_list = var_pmethidnode1;
1267 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction538> */
1268 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
1269 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
1270 RET_LABEL:;
1271 }
1272 /* method parser#ReduceAction538#action for (self: Object, Parser) */
1273 void VIRTUAL_parser__ReduceAction538__action(val* self, val* p0) {
1274 parser__ReduceAction538__action(self, p0);
1275 RET_LABEL:;
1276 }
1277 /* method parser#ReduceAction539#action for (self: ReduceAction539, Parser) */
1278 void parser__ReduceAction539__action(val* self, val* p0) {
1279 val* var_p /* var p: Parser */;
1280 val* var /* : null */;
1281 val* var_node_list /* var node_list: nullable Object */;
1282 val* var1 /* : nullable Object */;
1283 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1284 val* var_tllnode2 /* var tllnode2: nullable Object */;
1285 short int var2 /* : Bool */;
1286 int cltype;
1287 int idtype;
1288 val* var3 /* : ALlMethid */;
1289 val* var_pmethidnode1 /* var pmethidnode1: nullable ALlMethid */;
1290 long var4 /* : Int */;
1291 long var5 /* : Int */;
1292 var_p = p0;
1293 var = NULL;
1294 var_node_list = var;
1295 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1296 var_nodearraylist1 = var1;
1297 var_tllnode2 = var_nodearraylist1;
1298 /* <var_tllnode2:nullable Object> isa nullable TLl */
1299 cltype = type_nullable_parser_nodes__TLl.color;
1300 idtype = type_nullable_parser_nodes__TLl.id;
1301 if(var_tllnode2 == NULL) {
1302 var2 = 1;
1303 } else {
1304 if(cltype >= var_tllnode2->type->table_size) {
1305 var2 = 0;
1306 } else {
1307 var2 = var_tllnode2->type->type_table[cltype] == idtype;
1308 }
1309 }
1310 if (!var2) {
1311 fprintf(stderr, "Runtime error: %s", "Assert failed");
1312 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22875);
1313 show_backtrace(1);
1314 }
1315 var3 = NEW_parser_nodes__ALlMethid(&type_parser_nodes__ALlMethid);
1316 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__ALlMethid__init_allmethid]))(var3, var_tllnode2) /* init_allmethid on <var3:ALlMethid>*/;
1317 var_pmethidnode1 = var3;
1318 var_node_list = var_pmethidnode1;
1319 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction539> */
1320 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
1321 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
1322 RET_LABEL:;
1323 }
1324 /* method parser#ReduceAction539#action for (self: Object, Parser) */
1325 void VIRTUAL_parser__ReduceAction539__action(val* self, val* p0) {
1326 parser__ReduceAction539__action(self, p0);
1327 RET_LABEL:;
1328 }
1329 /* method parser#ReduceAction540#action for (self: ReduceAction540, Parser) */
1330 void parser__ReduceAction540__action(val* self, val* p0) {
1331 val* var_p /* var p: Parser */;
1332 val* var /* : null */;
1333 val* var_node_list /* var node_list: nullable Object */;
1334 val* var1 /* : nullable Object */;
1335 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1336 val* var_tggnode2 /* var tggnode2: nullable Object */;
1337 short int var2 /* : Bool */;
1338 int cltype;
1339 int idtype;
1340 val* var3 /* : AGgMethid */;
1341 val* var_pmethidnode1 /* var pmethidnode1: nullable AGgMethid */;
1342 long var4 /* : Int */;
1343 long var5 /* : Int */;
1344 var_p = p0;
1345 var = NULL;
1346 var_node_list = var;
1347 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1348 var_nodearraylist1 = var1;
1349 var_tggnode2 = var_nodearraylist1;
1350 /* <var_tggnode2:nullable Object> isa nullable TGg */
1351 cltype = type_nullable_parser_nodes__TGg.color;
1352 idtype = type_nullable_parser_nodes__TGg.id;
1353 if(var_tggnode2 == NULL) {
1354 var2 = 1;
1355 } else {
1356 if(cltype >= var_tggnode2->type->table_size) {
1357 var2 = 0;
1358 } else {
1359 var2 = var_tggnode2->type->type_table[cltype] == idtype;
1360 }
1361 }
1362 if (!var2) {
1363 fprintf(stderr, "Runtime error: %s", "Assert failed");
1364 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22890);
1365 show_backtrace(1);
1366 }
1367 var3 = NEW_parser_nodes__AGgMethid(&type_parser_nodes__AGgMethid);
1368 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AGgMethid__init_aggmethid]))(var3, var_tggnode2) /* init_aggmethid on <var3:AGgMethid>*/;
1369 var_pmethidnode1 = var3;
1370 var_node_list = var_pmethidnode1;
1371 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction540> */
1372 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
1373 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
1374 RET_LABEL:;
1375 }
1376 /* method parser#ReduceAction540#action for (self: Object, Parser) */
1377 void VIRTUAL_parser__ReduceAction540__action(val* self, val* p0) {
1378 parser__ReduceAction540__action(self, p0);
1379 RET_LABEL:;
1380 }
1381 /* method parser#ReduceAction541#action for (self: ReduceAction541, Parser) */
1382 void parser__ReduceAction541__action(val* self, val* p0) {
1383 val* var_p /* var p: Parser */;
1384 val* var /* : null */;
1385 val* var_node_list /* var node_list: nullable Object */;
1386 val* var1 /* : nullable Object */;
1387 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1388 val* var2 /* : nullable Object */;
1389 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1390 val* var_tobranode2 /* var tobranode2: nullable Object */;
1391 short int var3 /* : Bool */;
1392 int cltype;
1393 int idtype;
1394 val* var_tcbranode3 /* var tcbranode3: nullable Object */;
1395 short int var4 /* : Bool */;
1396 int cltype5;
1397 int idtype6;
1398 val* var7 /* : ABraMethid */;
1399 val* var_pmethidnode1 /* var pmethidnode1: nullable ABraMethid */;
1400 long var8 /* : Int */;
1401 long var9 /* : Int */;
1402 var_p = p0;
1403 var = NULL;
1404 var_node_list = var;
1405 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1406 var_nodearraylist2 = var1;
1407 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1408 var_nodearraylist1 = var2;
1409 var_tobranode2 = var_nodearraylist1;
1410 /* <var_tobranode2:nullable Object> isa nullable TObra */
1411 cltype = type_nullable_parser_nodes__TObra.color;
1412 idtype = type_nullable_parser_nodes__TObra.id;
1413 if(var_tobranode2 == NULL) {
1414 var3 = 1;
1415 } else {
1416 if(cltype >= var_tobranode2->type->table_size) {
1417 var3 = 0;
1418 } else {
1419 var3 = var_tobranode2->type->type_table[cltype] == idtype;
1420 }
1421 }
1422 if (!var3) {
1423 fprintf(stderr, "Runtime error: %s", "Assert failed");
1424 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22906);
1425 show_backtrace(1);
1426 }
1427 var_tcbranode3 = var_nodearraylist2;
1428 /* <var_tcbranode3:nullable Object> isa nullable TCbra */
1429 cltype5 = type_nullable_parser_nodes__TCbra.color;
1430 idtype6 = type_nullable_parser_nodes__TCbra.id;
1431 if(var_tcbranode3 == NULL) {
1432 var4 = 1;
1433 } else {
1434 if(cltype5 >= var_tcbranode3->type->table_size) {
1435 var4 = 0;
1436 } else {
1437 var4 = var_tcbranode3->type->type_table[cltype5] == idtype6;
1438 }
1439 }
1440 if (!var4) {
1441 fprintf(stderr, "Runtime error: %s", "Assert failed");
1442 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22908);
1443 show_backtrace(1);
1444 }
1445 var7 = NEW_parser_nodes__ABraMethid(&type_parser_nodes__ABraMethid);
1446 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ABraMethid__init_abramethid]))(var7, var_tobranode2, var_tcbranode3) /* init_abramethid on <var7:ABraMethid>*/;
1447 var_pmethidnode1 = var7;
1448 var_node_list = var_pmethidnode1;
1449 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction541> */
1450 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
1451 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
1452 RET_LABEL:;
1453 }
1454 /* method parser#ReduceAction541#action for (self: Object, Parser) */
1455 void VIRTUAL_parser__ReduceAction541__action(val* self, val* p0) {
1456 parser__ReduceAction541__action(self, p0);
1457 RET_LABEL:;
1458 }
1459 /* method parser#ReduceAction542#action for (self: ReduceAction542, Parser) */
1460 void parser__ReduceAction542__action(val* self, val* p0) {
1461 val* var_p /* var p: Parser */;
1462 val* var /* : null */;
1463 val* var_node_list /* var node_list: nullable Object */;
1464 val* var1 /* : nullable Object */;
1465 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1466 val* var_tstarshipnode2 /* var tstarshipnode2: nullable Object */;
1467 short int var2 /* : Bool */;
1468 int cltype;
1469 int idtype;
1470 val* var3 /* : AStarshipMethid */;
1471 val* var_pmethidnode1 /* var pmethidnode1: nullable AStarshipMethid */;
1472 long var4 /* : Int */;
1473 long var5 /* : Int */;
1474 var_p = p0;
1475 var = NULL;
1476 var_node_list = var;
1477 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1478 var_nodearraylist1 = var1;
1479 var_tstarshipnode2 = var_nodearraylist1;
1480 /* <var_tstarshipnode2:nullable Object> isa nullable TStarship */
1481 cltype = type_nullable_parser_nodes__TStarship.color;
1482 idtype = type_nullable_parser_nodes__TStarship.id;
1483 if(var_tstarshipnode2 == NULL) {
1484 var2 = 1;
1485 } else {
1486 if(cltype >= var_tstarshipnode2->type->table_size) {
1487 var2 = 0;
1488 } else {
1489 var2 = var_tstarshipnode2->type->type_table[cltype] == idtype;
1490 }
1491 }
1492 if (!var2) {
1493 fprintf(stderr, "Runtime error: %s", "Assert failed");
1494 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22924);
1495 show_backtrace(1);
1496 }
1497 var3 = NEW_parser_nodes__AStarshipMethid(&type_parser_nodes__AStarshipMethid);
1498 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AStarshipMethid__init_astarshipmethid]))(var3, var_tstarshipnode2) /* init_astarshipmethid on <var3:AStarshipMethid>*/;
1499 var_pmethidnode1 = var3;
1500 var_node_list = var_pmethidnode1;
1501 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction542> */
1502 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
1503 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
1504 RET_LABEL:;
1505 }
1506 /* method parser#ReduceAction542#action for (self: Object, Parser) */
1507 void VIRTUAL_parser__ReduceAction542__action(val* self, val* p0) {
1508 parser__ReduceAction542__action(self, p0);
1509 RET_LABEL:;
1510 }
1511 /* method parser#ReduceAction543#action for (self: ReduceAction543, Parser) */
1512 void parser__ReduceAction543__action(val* self, val* p0) {
1513 val* var_p /* var p: Parser */;
1514 val* var /* : null */;
1515 val* var_node_list /* var node_list: nullable Object */;
1516 val* var1 /* : nullable Object */;
1517 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1518 val* var2 /* : nullable Object */;
1519 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1520 val* var_tidnode2 /* var tidnode2: nullable Object */;
1521 short int var3 /* : Bool */;
1522 int cltype;
1523 int idtype;
1524 val* var_tassignnode3 /* var tassignnode3: nullable Object */;
1525 short int var4 /* : Bool */;
1526 int cltype5;
1527 int idtype6;
1528 val* var7 /* : AAssignMethid */;
1529 val* var_pmethidnode1 /* var pmethidnode1: nullable AAssignMethid */;
1530 long var8 /* : Int */;
1531 long var9 /* : Int */;
1532 var_p = p0;
1533 var = NULL;
1534 var_node_list = var;
1535 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1536 var_nodearraylist2 = var1;
1537 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1538 var_nodearraylist1 = var2;
1539 var_tidnode2 = var_nodearraylist1;
1540 /* <var_tidnode2:nullable Object> isa nullable TId */
1541 cltype = type_nullable_parser_nodes__TId.color;
1542 idtype = type_nullable_parser_nodes__TId.id;
1543 if(var_tidnode2 == NULL) {
1544 var3 = 1;
1545 } else {
1546 if(cltype >= var_tidnode2->type->table_size) {
1547 var3 = 0;
1548 } else {
1549 var3 = var_tidnode2->type->type_table[cltype] == idtype;
1550 }
1551 }
1552 if (!var3) {
1553 fprintf(stderr, "Runtime error: %s", "Assert failed");
1554 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22940);
1555 show_backtrace(1);
1556 }
1557 var_tassignnode3 = var_nodearraylist2;
1558 /* <var_tassignnode3:nullable Object> isa nullable TAssign */
1559 cltype5 = type_nullable_parser_nodes__TAssign.color;
1560 idtype6 = type_nullable_parser_nodes__TAssign.id;
1561 if(var_tassignnode3 == NULL) {
1562 var4 = 1;
1563 } else {
1564 if(cltype5 >= var_tassignnode3->type->table_size) {
1565 var4 = 0;
1566 } else {
1567 var4 = var_tassignnode3->type->type_table[cltype5] == idtype6;
1568 }
1569 }
1570 if (!var4) {
1571 fprintf(stderr, "Runtime error: %s", "Assert failed");
1572 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22942);
1573 show_backtrace(1);
1574 }
1575 var7 = NEW_parser_nodes__AAssignMethid(&type_parser_nodes__AAssignMethid);
1576 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AAssignMethid__init_aassignmethid]))(var7, var_tidnode2, var_tassignnode3) /* init_aassignmethid on <var7:AAssignMethid>*/;
1577 var_pmethidnode1 = var7;
1578 var_node_list = var_pmethidnode1;
1579 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction543> */
1580 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
1581 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
1582 RET_LABEL:;
1583 }
1584 /* method parser#ReduceAction543#action for (self: Object, Parser) */
1585 void VIRTUAL_parser__ReduceAction543__action(val* self, val* p0) {
1586 parser__ReduceAction543__action(self, p0);
1587 RET_LABEL:;
1588 }
1589 /* method parser#ReduceAction544#action for (self: ReduceAction544, Parser) */
1590 void parser__ReduceAction544__action(val* self, val* p0) {
1591 val* var_p /* var p: Parser */;
1592 val* var /* : null */;
1593 val* var_node_list /* var node_list: nullable Object */;
1594 val* var1 /* : nullable Object */;
1595 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1596 val* var2 /* : nullable Object */;
1597 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1598 val* var3 /* : nullable Object */;
1599 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1600 val* var_tobranode2 /* var tobranode2: nullable Object */;
1601 short int var4 /* : Bool */;
1602 int cltype;
1603 int idtype;
1604 val* var_tcbranode3 /* var tcbranode3: nullable Object */;
1605 short int var5 /* : Bool */;
1606 int cltype6;
1607 int idtype7;
1608 val* var_tassignnode4 /* var tassignnode4: nullable Object */;
1609 short int var8 /* : Bool */;
1610 int cltype9;
1611 int idtype10;
1612 val* var11 /* : ABraassignMethid */;
1613 val* var_pmethidnode1 /* var pmethidnode1: nullable ABraassignMethid */;
1614 long var12 /* : Int */;
1615 long var13 /* : Int */;
1616 var_p = p0;
1617 var = NULL;
1618 var_node_list = var;
1619 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1620 var_nodearraylist3 = var1;
1621 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1622 var_nodearraylist2 = var2;
1623 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1624 var_nodearraylist1 = var3;
1625 var_tobranode2 = var_nodearraylist1;
1626 /* <var_tobranode2:nullable Object> isa nullable TObra */
1627 cltype = type_nullable_parser_nodes__TObra.color;
1628 idtype = type_nullable_parser_nodes__TObra.id;
1629 if(var_tobranode2 == NULL) {
1630 var4 = 1;
1631 } else {
1632 if(cltype >= var_tobranode2->type->table_size) {
1633 var4 = 0;
1634 } else {
1635 var4 = var_tobranode2->type->type_table[cltype] == idtype;
1636 }
1637 }
1638 if (!var4) {
1639 fprintf(stderr, "Runtime error: %s", "Assert failed");
1640 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22960);
1641 show_backtrace(1);
1642 }
1643 var_tcbranode3 = var_nodearraylist2;
1644 /* <var_tcbranode3:nullable Object> isa nullable TCbra */
1645 cltype6 = type_nullable_parser_nodes__TCbra.color;
1646 idtype7 = type_nullable_parser_nodes__TCbra.id;
1647 if(var_tcbranode3 == NULL) {
1648 var5 = 1;
1649 } else {
1650 if(cltype6 >= var_tcbranode3->type->table_size) {
1651 var5 = 0;
1652 } else {
1653 var5 = var_tcbranode3->type->type_table[cltype6] == idtype7;
1654 }
1655 }
1656 if (!var5) {
1657 fprintf(stderr, "Runtime error: %s", "Assert failed");
1658 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22962);
1659 show_backtrace(1);
1660 }
1661 var_tassignnode4 = var_nodearraylist3;
1662 /* <var_tassignnode4:nullable Object> isa nullable TAssign */
1663 cltype9 = type_nullable_parser_nodes__TAssign.color;
1664 idtype10 = type_nullable_parser_nodes__TAssign.id;
1665 if(var_tassignnode4 == NULL) {
1666 var8 = 1;
1667 } else {
1668 if(cltype9 >= var_tassignnode4->type->table_size) {
1669 var8 = 0;
1670 } else {
1671 var8 = var_tassignnode4->type->type_table[cltype9] == idtype10;
1672 }
1673 }
1674 if (!var8) {
1675 fprintf(stderr, "Runtime error: %s", "Assert failed");
1676 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22964);
1677 show_backtrace(1);
1678 }
1679 var11 = NEW_parser_nodes__ABraassignMethid(&type_parser_nodes__ABraassignMethid);
1680 ((void (*)(val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__ABraassignMethid__init_abraassignmethid]))(var11, var_tobranode2, var_tcbranode3, var_tassignnode4) /* init_abraassignmethid on <var11:ABraassignMethid>*/;
1681 var_pmethidnode1 = var11;
1682 var_node_list = var_pmethidnode1;
1683 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction544> */
1684 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
1685 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
1686 RET_LABEL:;
1687 }
1688 /* method parser#ReduceAction544#action for (self: Object, Parser) */
1689 void VIRTUAL_parser__ReduceAction544__action(val* self, val* p0) {
1690 parser__ReduceAction544__action(self, p0);
1691 RET_LABEL:;
1692 }
1693 /* method parser#ReduceAction545#action for (self: ReduceAction545, Parser) */
1694 void parser__ReduceAction545__action(val* self, val* p0) {
1695 val* var_p /* var p: Parser */;
1696 val* var /* : null */;
1697 val* var_node_list /* var node_list: nullable Object */;
1698 val* var1 /* : nullable Object */;
1699 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1700 val* var2 /* : nullable Object */;
1701 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1702 val* var3 /* : nullable Object */;
1703 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1704 val* var4 /* : nullable Object */;
1705 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1706 val* var5 /* : nullable Object */;
1707 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1708 val* var6 /* : Array[Object] */;
1709 val* var_listnode3 /* var listnode3: Array[Object] */;
1710 val* var_toparnode2 /* var toparnode2: nullable Object */;
1711 short int var7 /* : Bool */;
1712 int cltype;
1713 int idtype;
1714 val* var_tcparnode4 /* var tcparnode4: nullable Object */;
1715 short int var8 /* : Bool */;
1716 int cltype9;
1717 int idtype10;
1718 val* var_ptypenode5 /* var ptypenode5: nullable Object */;
1719 short int var11 /* : Bool */;
1720 int cltype12;
1721 int idtype13;
1722 val* var14 /* : ASignature */;
1723 val* var_psignaturenode1 /* var psignaturenode1: nullable ASignature */;
1724 long var15 /* : Int */;
1725 long var16 /* : Int */;
1726 var_p = p0;
1727 var = NULL;
1728 var_node_list = var;
1729 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1730 var_nodearraylist5 = var1;
1731 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1732 var_nodearraylist4 = var2;
1733 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1734 var_nodearraylist3 = var3;
1735 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1736 var_nodearraylist2 = var4;
1737 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1738 var_nodearraylist1 = var5;
1739 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
1740 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
1741 var_listnode3 = var6;
1742 var_toparnode2 = var_nodearraylist1;
1743 /* <var_toparnode2:nullable Object> isa nullable TOpar */
1744 cltype = type_nullable_parser_nodes__TOpar.color;
1745 idtype = type_nullable_parser_nodes__TOpar.id;
1746 if(var_toparnode2 == NULL) {
1747 var7 = 1;
1748 } else {
1749 if(cltype >= var_toparnode2->type->table_size) {
1750 var7 = 0;
1751 } else {
1752 var7 = var_toparnode2->type->type_table[cltype] == idtype;
1753 }
1754 }
1755 if (!var7) {
1756 fprintf(stderr, "Runtime error: %s", "Assert failed");
1757 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22986);
1758 show_backtrace(1);
1759 }
1760 var_tcparnode4 = var_nodearraylist3;
1761 /* <var_tcparnode4:nullable Object> isa nullable TCpar */
1762 cltype9 = type_nullable_parser_nodes__TCpar.color;
1763 idtype10 = type_nullable_parser_nodes__TCpar.id;
1764 if(var_tcparnode4 == NULL) {
1765 var8 = 1;
1766 } else {
1767 if(cltype9 >= var_tcparnode4->type->table_size) {
1768 var8 = 0;
1769 } else {
1770 var8 = var_tcparnode4->type->type_table[cltype9] == idtype10;
1771 }
1772 }
1773 if (!var8) {
1774 fprintf(stderr, "Runtime error: %s", "Assert failed");
1775 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22988);
1776 show_backtrace(1);
1777 }
1778 var_ptypenode5 = var_nodearraylist4;
1779 /* <var_ptypenode5:nullable Object> isa nullable AType */
1780 cltype12 = type_nullable_parser_nodes__AType.color;
1781 idtype13 = type_nullable_parser_nodes__AType.id;
1782 if(var_ptypenode5 == NULL) {
1783 var11 = 1;
1784 } else {
1785 if(cltype12 >= var_ptypenode5->type->table_size) {
1786 var11 = 0;
1787 } else {
1788 var11 = var_ptypenode5->type->type_table[cltype12] == idtype13;
1789 }
1790 }
1791 if (!var11) {
1792 fprintf(stderr, "Runtime error: %s", "Assert failed");
1793 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 22990);
1794 show_backtrace(1);
1795 }
1796 var14 = NEW_parser_nodes__ASignature(&type_parser_nodes__ASignature);
1797 ((void (*)(val*, val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__ASignature__init_asignature]))(var14, var_toparnode2, var_listnode3, var_tcparnode4, var_ptypenode5) /* init_asignature on <var14:ASignature>*/;
1798 var_psignaturenode1 = var14;
1799 var_node_list = var_psignaturenode1;
1800 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction545> */
1801 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
1802 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
1803 RET_LABEL:;
1804 }
1805 /* method parser#ReduceAction545#action for (self: Object, Parser) */
1806 void VIRTUAL_parser__ReduceAction545__action(val* self, val* p0) {
1807 parser__ReduceAction545__action(self, p0);
1808 RET_LABEL:;
1809 }
1810 /* method parser#ReduceAction546#action for (self: ReduceAction546, Parser) */
1811 void parser__ReduceAction546__action(val* self, val* p0) {
1812 val* var_p /* var p: Parser */;
1813 val* var /* : null */;
1814 val* var_node_list /* var node_list: nullable Object */;
1815 val* var1 /* : nullable Object */;
1816 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
1817 val* var2 /* : nullable Object */;
1818 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1819 val* var3 /* : nullable Object */;
1820 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1821 val* var4 /* : nullable Object */;
1822 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1823 val* var5 /* : nullable Object */;
1824 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1825 val* var6 /* : nullable Object */;
1826 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1827 val* var7 /* : Array[Object] */;
1828 val* var_listnode4 /* var listnode4: Array[Object] */;
1829 val* var_toparnode2 /* var toparnode2: nullable Object */;
1830 short int var8 /* : Bool */;
1831 int cltype;
1832 int idtype;
1833 val* var_listnode3 /* var listnode3: nullable Object */;
1834 short int var9 /* : Bool */;
1835 int cltype10;
1836 int idtype11;
1837 val* var12 /* : Array[Object] */;
1838 val* var_tcparnode5 /* var tcparnode5: nullable Object */;
1839 short int var13 /* : Bool */;
1840 int cltype14;
1841 int idtype15;
1842 val* var_ptypenode6 /* var ptypenode6: nullable Object */;
1843 short int var16 /* : Bool */;
1844 int cltype17;
1845 int idtype18;
1846 val* var19 /* : ASignature */;
1847 val* var_psignaturenode1 /* var psignaturenode1: nullable ASignature */;
1848 long var20 /* : Int */;
1849 long var21 /* : Int */;
1850 var_p = p0;
1851 var = NULL;
1852 var_node_list = var;
1853 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1854 var_nodearraylist6 = var1;
1855 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1856 var_nodearraylist5 = var2;
1857 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1858 var_nodearraylist4 = var3;
1859 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1860 var_nodearraylist3 = var4;
1861 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1862 var_nodearraylist2 = var5;
1863 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1864 var_nodearraylist1 = var6;
1865 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
1866 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
1867 var_listnode4 = var7;
1868 var_toparnode2 = var_nodearraylist1;
1869 /* <var_toparnode2:nullable Object> isa nullable TOpar */
1870 cltype = type_nullable_parser_nodes__TOpar.color;
1871 idtype = type_nullable_parser_nodes__TOpar.id;
1872 if(var_toparnode2 == NULL) {
1873 var8 = 1;
1874 } else {
1875 if(cltype >= var_toparnode2->type->table_size) {
1876 var8 = 0;
1877 } else {
1878 var8 = var_toparnode2->type->type_table[cltype] == idtype;
1879 }
1880 }
1881 if (!var8) {
1882 fprintf(stderr, "Runtime error: %s", "Assert failed");
1883 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23014);
1884 show_backtrace(1);
1885 }
1886 var_listnode3 = var_nodearraylist3;
1887 /* <var_listnode3:nullable Object> isa Array[Object] */
1888 cltype10 = type_array__Arraykernel__Object.color;
1889 idtype11 = type_array__Arraykernel__Object.id;
1890 if(var_listnode3 == NULL) {
1891 var9 = 0;
1892 } else {
1893 if(cltype10 >= var_listnode3->type->table_size) {
1894 var9 = 0;
1895 } else {
1896 var9 = var_listnode3->type->type_table[cltype10] == idtype11;
1897 }
1898 }
1899 if (!var9) {
1900 fprintf(stderr, "Runtime error: %s", "Assert failed");
1901 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23016);
1902 show_backtrace(1);
1903 }
1904 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction546>*/;
1905 var_listnode4 = var12;
1906 var_tcparnode5 = var_nodearraylist4;
1907 /* <var_tcparnode5:nullable Object> isa nullable TCpar */
1908 cltype14 = type_nullable_parser_nodes__TCpar.color;
1909 idtype15 = type_nullable_parser_nodes__TCpar.id;
1910 if(var_tcparnode5 == NULL) {
1911 var13 = 1;
1912 } else {
1913 if(cltype14 >= var_tcparnode5->type->table_size) {
1914 var13 = 0;
1915 } else {
1916 var13 = var_tcparnode5->type->type_table[cltype14] == idtype15;
1917 }
1918 }
1919 if (!var13) {
1920 fprintf(stderr, "Runtime error: %s", "Assert failed");
1921 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23019);
1922 show_backtrace(1);
1923 }
1924 var_ptypenode6 = var_nodearraylist5;
1925 /* <var_ptypenode6:nullable Object> isa nullable AType */
1926 cltype17 = type_nullable_parser_nodes__AType.color;
1927 idtype18 = type_nullable_parser_nodes__AType.id;
1928 if(var_ptypenode6 == NULL) {
1929 var16 = 1;
1930 } else {
1931 if(cltype17 >= var_ptypenode6->type->table_size) {
1932 var16 = 0;
1933 } else {
1934 var16 = var_ptypenode6->type->type_table[cltype17] == idtype18;
1935 }
1936 }
1937 if (!var16) {
1938 fprintf(stderr, "Runtime error: %s", "Assert failed");
1939 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23021);
1940 show_backtrace(1);
1941 }
1942 var19 = NEW_parser_nodes__ASignature(&type_parser_nodes__ASignature);
1943 ((void (*)(val*, val*, val*, val*, val*))(var19->class->vft[COLOR_parser_prod__ASignature__init_asignature]))(var19, var_toparnode2, var_listnode4, var_tcparnode5, var_ptypenode6) /* init_asignature on <var19:ASignature>*/;
1944 var_psignaturenode1 = var19;
1945 var_node_list = var_psignaturenode1;
1946 var20 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction546> */
1947 var21 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var20) /* go_to on <var_p:Parser>*/;
1948 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var21, var_node_list) /* push on <var_p:Parser>*/;
1949 RET_LABEL:;
1950 }
1951 /* method parser#ReduceAction546#action for (self: Object, Parser) */
1952 void VIRTUAL_parser__ReduceAction546__action(val* self, val* p0) {
1953 parser__ReduceAction546__action(self, p0);
1954 RET_LABEL:;
1955 }
1956 /* method parser#ReduceAction547#action for (self: ReduceAction547, Parser) */
1957 void parser__ReduceAction547__action(val* self, val* p0) {
1958 val* var_p /* var p: Parser */;
1959 val* var /* : null */;
1960 val* var_node_list /* var node_list: nullable Object */;
1961 val* var1 /* : nullable Object */;
1962 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1963 val* var2 /* : nullable Object */;
1964 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1965 val* var3 /* : nullable Object */;
1966 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1967 val* var4 /* : nullable Object */;
1968 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1969 val* var5 /* : Array[Object] */;
1970 val* var_listnode3 /* var listnode3: Array[Object] */;
1971 val* var_toparnode2 /* var toparnode2: nullable Object */;
1972 short int var6 /* : Bool */;
1973 int cltype;
1974 int idtype;
1975 val* var_tcparnode4 /* var tcparnode4: nullable Object */;
1976 short int var7 /* : Bool */;
1977 int cltype8;
1978 int idtype9;
1979 val* var10 /* : ASignature */;
1980 val* var11 /* : null */;
1981 val* var_psignaturenode1 /* var psignaturenode1: nullable ASignature */;
1982 long var12 /* : Int */;
1983 long var13 /* : Int */;
1984 var_p = p0;
1985 var = NULL;
1986 var_node_list = var;
1987 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1988 var_nodearraylist4 = var1;
1989 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1990 var_nodearraylist3 = var2;
1991 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1992 var_nodearraylist2 = var3;
1993 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1994 var_nodearraylist1 = var4;
1995 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
1996 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
1997 var_listnode3 = var5;
1998 var_toparnode2 = var_nodearraylist1;
1999 /* <var_toparnode2:nullable Object> isa nullable TOpar */
2000 cltype = type_nullable_parser_nodes__TOpar.color;
2001 idtype = type_nullable_parser_nodes__TOpar.id;
2002 if(var_toparnode2 == NULL) {
2003 var6 = 1;
2004 } else {
2005 if(cltype >= var_toparnode2->type->table_size) {
2006 var6 = 0;
2007 } else {
2008 var6 = var_toparnode2->type->type_table[cltype] == idtype;
2009 }
2010 }
2011 if (!var6) {
2012 fprintf(stderr, "Runtime error: %s", "Assert failed");
2013 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23043);
2014 show_backtrace(1);
2015 }
2016 var_tcparnode4 = var_nodearraylist3;
2017 /* <var_tcparnode4:nullable Object> isa nullable TCpar */
2018 cltype8 = type_nullable_parser_nodes__TCpar.color;
2019 idtype9 = type_nullable_parser_nodes__TCpar.id;
2020 if(var_tcparnode4 == NULL) {
2021 var7 = 1;
2022 } else {
2023 if(cltype8 >= var_tcparnode4->type->table_size) {
2024 var7 = 0;
2025 } else {
2026 var7 = var_tcparnode4->type->type_table[cltype8] == idtype9;
2027 }
2028 }
2029 if (!var7) {
2030 fprintf(stderr, "Runtime error: %s", "Assert failed");
2031 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23045);
2032 show_backtrace(1);
2033 }
2034 var10 = NEW_parser_nodes__ASignature(&type_parser_nodes__ASignature);
2035 var11 = NULL;
2036 ((void (*)(val*, val*, val*, val*, val*))(var10->class->vft[COLOR_parser_prod__ASignature__init_asignature]))(var10, var_toparnode2, var_listnode3, var_tcparnode4, var11) /* init_asignature on <var10:ASignature>*/;
2037 var_psignaturenode1 = var10;
2038 var_node_list = var_psignaturenode1;
2039 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction547> */
2040 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
2041 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
2042 RET_LABEL:;
2043 }
2044 /* method parser#ReduceAction547#action for (self: Object, Parser) */
2045 void VIRTUAL_parser__ReduceAction547__action(val* self, val* p0) {
2046 parser__ReduceAction547__action(self, p0);
2047 RET_LABEL:;
2048 }
2049 /* method parser#ReduceAction548#action for (self: ReduceAction548, Parser) */
2050 void parser__ReduceAction548__action(val* self, val* p0) {
2051 val* var_p /* var p: Parser */;
2052 val* var /* : null */;
2053 val* var_node_list /* var node_list: nullable Object */;
2054 val* var1 /* : nullable Object */;
2055 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2056 val* var2 /* : nullable Object */;
2057 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2058 val* var3 /* : nullable Object */;
2059 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2060 val* var4 /* : nullable Object */;
2061 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2062 val* var5 /* : nullable Object */;
2063 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2064 val* var6 /* : Array[Object] */;
2065 val* var_listnode4 /* var listnode4: Array[Object] */;
2066 val* var_toparnode2 /* var toparnode2: nullable Object */;
2067 short int var7 /* : Bool */;
2068 int cltype;
2069 int idtype;
2070 val* var_listnode3 /* var listnode3: nullable Object */;
2071 short int var8 /* : Bool */;
2072 int cltype9;
2073 int idtype10;
2074 val* var11 /* : Array[Object] */;
2075 val* var_tcparnode5 /* var tcparnode5: nullable Object */;
2076 short int var12 /* : Bool */;
2077 int cltype13;
2078 int idtype14;
2079 val* var15 /* : ASignature */;
2080 val* var16 /* : null */;
2081 val* var_psignaturenode1 /* var psignaturenode1: nullable ASignature */;
2082 long var17 /* : Int */;
2083 long var18 /* : Int */;
2084 var_p = p0;
2085 var = NULL;
2086 var_node_list = var;
2087 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2088 var_nodearraylist5 = var1;
2089 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2090 var_nodearraylist4 = var2;
2091 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2092 var_nodearraylist3 = var3;
2093 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2094 var_nodearraylist2 = var4;
2095 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2096 var_nodearraylist1 = var5;
2097 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
2098 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
2099 var_listnode4 = var6;
2100 var_toparnode2 = var_nodearraylist1;
2101 /* <var_toparnode2:nullable Object> isa nullable TOpar */
2102 cltype = type_nullable_parser_nodes__TOpar.color;
2103 idtype = type_nullable_parser_nodes__TOpar.id;
2104 if(var_toparnode2 == NULL) {
2105 var7 = 1;
2106 } else {
2107 if(cltype >= var_toparnode2->type->table_size) {
2108 var7 = 0;
2109 } else {
2110 var7 = var_toparnode2->type->type_table[cltype] == idtype;
2111 }
2112 }
2113 if (!var7) {
2114 fprintf(stderr, "Runtime error: %s", "Assert failed");
2115 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23068);
2116 show_backtrace(1);
2117 }
2118 var_listnode3 = var_nodearraylist3;
2119 /* <var_listnode3:nullable Object> isa Array[Object] */
2120 cltype9 = type_array__Arraykernel__Object.color;
2121 idtype10 = type_array__Arraykernel__Object.id;
2122 if(var_listnode3 == NULL) {
2123 var8 = 0;
2124 } else {
2125 if(cltype9 >= var_listnode3->type->table_size) {
2126 var8 = 0;
2127 } else {
2128 var8 = var_listnode3->type->type_table[cltype9] == idtype10;
2129 }
2130 }
2131 if (!var8) {
2132 fprintf(stderr, "Runtime error: %s", "Assert failed");
2133 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23070);
2134 show_backtrace(1);
2135 }
2136 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction548>*/;
2137 var_listnode4 = var11;
2138 var_tcparnode5 = var_nodearraylist4;
2139 /* <var_tcparnode5:nullable Object> isa nullable TCpar */
2140 cltype13 = type_nullable_parser_nodes__TCpar.color;
2141 idtype14 = type_nullable_parser_nodes__TCpar.id;
2142 if(var_tcparnode5 == NULL) {
2143 var12 = 1;
2144 } else {
2145 if(cltype13 >= var_tcparnode5->type->table_size) {
2146 var12 = 0;
2147 } else {
2148 var12 = var_tcparnode5->type->type_table[cltype13] == idtype14;
2149 }
2150 }
2151 if (!var12) {
2152 fprintf(stderr, "Runtime error: %s", "Assert failed");
2153 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23073);
2154 show_backtrace(1);
2155 }
2156 var15 = NEW_parser_nodes__ASignature(&type_parser_nodes__ASignature);
2157 var16 = NULL;
2158 ((void (*)(val*, val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__ASignature__init_asignature]))(var15, var_toparnode2, var_listnode4, var_tcparnode5, var16) /* init_asignature on <var15:ASignature>*/;
2159 var_psignaturenode1 = var15;
2160 var_node_list = var_psignaturenode1;
2161 var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction548> */
2162 var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
2163 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
2164 RET_LABEL:;
2165 }
2166 /* method parser#ReduceAction548#action for (self: Object, Parser) */
2167 void VIRTUAL_parser__ReduceAction548__action(val* self, val* p0) {
2168 parser__ReduceAction548__action(self, p0);
2169 RET_LABEL:;
2170 }
2171 /* method parser#ReduceAction549#action for (self: ReduceAction549, Parser) */
2172 void parser__ReduceAction549__action(val* self, val* p0) {
2173 val* var_p /* var p: Parser */;
2174 val* var /* : null */;
2175 val* var_node_list /* var node_list: nullable Object */;
2176 val* var1 /* : nullable Object */;
2177 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2178 val* var2 /* : nullable Object */;
2179 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2180 val* var3 /* : Array[Object] */;
2181 val* var_listnode3 /* var listnode3: Array[Object] */;
2182 val* var_ptypenode5 /* var ptypenode5: nullable Object */;
2183 short int var4 /* : Bool */;
2184 int cltype;
2185 int idtype;
2186 val* var5 /* : ASignature */;
2187 val* var6 /* : null */;
2188 val* var7 /* : null */;
2189 val* var_psignaturenode1 /* var psignaturenode1: nullable ASignature */;
2190 long var8 /* : Int */;
2191 long var9 /* : Int */;
2192 var_p = p0;
2193 var = NULL;
2194 var_node_list = var;
2195 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2196 var_nodearraylist2 = var1;
2197 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2198 var_nodearraylist1 = var2;
2199 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
2200 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
2201 var_listnode3 = var3;
2202 var_ptypenode5 = var_nodearraylist1;
2203 /* <var_ptypenode5:nullable Object> isa nullable AType */
2204 cltype = type_nullable_parser_nodes__AType.color;
2205 idtype = type_nullable_parser_nodes__AType.id;
2206 if(var_ptypenode5 == NULL) {
2207 var4 = 1;
2208 } else {
2209 if(cltype >= var_ptypenode5->type->table_size) {
2210 var4 = 0;
2211 } else {
2212 var4 = var_ptypenode5->type->type_table[cltype] == idtype;
2213 }
2214 }
2215 if (!var4) {
2216 fprintf(stderr, "Runtime error: %s", "Assert failed");
2217 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23093);
2218 show_backtrace(1);
2219 }
2220 var5 = NEW_parser_nodes__ASignature(&type_parser_nodes__ASignature);
2221 var6 = NULL;
2222 var7 = NULL;
2223 ((void (*)(val*, val*, val*, val*, val*))(var5->class->vft[COLOR_parser_prod__ASignature__init_asignature]))(var5, var6, var_listnode3, var7, var_ptypenode5) /* init_asignature on <var5:ASignature>*/;
2224 var_psignaturenode1 = var5;
2225 var_node_list = var_psignaturenode1;
2226 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction549> */
2227 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
2228 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
2229 RET_LABEL:;
2230 }
2231 /* method parser#ReduceAction549#action for (self: Object, Parser) */
2232 void VIRTUAL_parser__ReduceAction549__action(val* self, val* p0) {
2233 parser__ReduceAction549__action(self, p0);
2234 RET_LABEL:;
2235 }
2236 /* method parser#ReduceAction550#action for (self: ReduceAction550, Parser) */
2237 void parser__ReduceAction550__action(val* self, val* p0) {
2238 val* var_p /* var p: Parser */;
2239 val* var /* : null */;
2240 val* var_node_list /* var node_list: nullable Object */;
2241 val* var1 /* : nullable Object */;
2242 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2243 val* var2 /* : Array[Object] */;
2244 val* var_listnode3 /* var listnode3: Array[Object] */;
2245 val* var3 /* : ASignature */;
2246 val* var4 /* : null */;
2247 val* var5 /* : null */;
2248 val* var6 /* : null */;
2249 val* var_psignaturenode1 /* var psignaturenode1: nullable ASignature */;
2250 long var7 /* : Int */;
2251 long var8 /* : Int */;
2252 var_p = p0;
2253 var = NULL;
2254 var_node_list = var;
2255 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2256 var_nodearraylist1 = var1;
2257 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
2258 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
2259 var_listnode3 = var2;
2260 var3 = NEW_parser_nodes__ASignature(&type_parser_nodes__ASignature);
2261 var4 = NULL;
2262 var5 = NULL;
2263 var6 = NULL;
2264 ((void (*)(val*, val*, val*, val*, val*))(var3->class->vft[COLOR_parser_prod__ASignature__init_asignature]))(var3, var4, var_listnode3, var5, var6) /* init_asignature on <var3:ASignature>*/;
2265 var_psignaturenode1 = var3;
2266 var_node_list = var_psignaturenode1;
2267 var7 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction550> */
2268 var8 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var7) /* go_to on <var_p:Parser>*/;
2269 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var8, var_node_list) /* push on <var_p:Parser>*/;
2270 RET_LABEL:;
2271 }
2272 /* method parser#ReduceAction550#action for (self: Object, Parser) */
2273 void VIRTUAL_parser__ReduceAction550__action(val* self, val* p0) {
2274 parser__ReduceAction550__action(self, p0);
2275 RET_LABEL:;
2276 }
2277 /* method parser#ReduceAction551#action for (self: ReduceAction551, Parser) */
2278 void parser__ReduceAction551__action(val* self, val* p0) {
2279 val* var_p /* var p: Parser */;
2280 val* var /* : null */;
2281 val* var_node_list /* var node_list: nullable Object */;
2282 val* var1 /* : nullable Object */;
2283 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2284 val* var2 /* : nullable Object */;
2285 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2286 val* var3 /* : Array[Object] */;
2287 val* var_listnode2 /* var listnode2: Array[Object] */;
2288 val* var_pparamnode1 /* var pparamnode1: nullable Object */;
2289 val* var4 /* : null */;
2290 short int var5 /* : Bool */;
2291 long var6 /* : Int */;
2292 long var7 /* : Int */;
2293 var_p = p0;
2294 var = NULL;
2295 var_node_list = var;
2296 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2297 var_nodearraylist2 = var1;
2298 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2299 var_nodearraylist1 = var2;
2300 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
2301 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
2302 var_listnode2 = var3;
2303 var_pparamnode1 = var_nodearraylist1;
2304 var4 = NULL;
2305 if (var_pparamnode1 == NULL) {
2306 var5 = 0; /* is null */
2307 } else {
2308 var5 = 1; /* arg is null and recv is not */
2309 }
2310 if (var5){
2311 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_pparamnode1) /* add on <var_listnode2:Array[Object]>*/;
2312 } else {
2313 }
2314 var_node_list = var_listnode2;
2315 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction551> */
2316 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
2317 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
2318 RET_LABEL:;
2319 }
2320 /* method parser#ReduceAction551#action for (self: Object, Parser) */
2321 void VIRTUAL_parser__ReduceAction551__action(val* self, val* p0) {
2322 parser__ReduceAction551__action(self, p0);
2323 RET_LABEL:;
2324 }
2325 /* method parser#ReduceAction552#action for (self: ReduceAction552, Parser) */
2326 void parser__ReduceAction552__action(val* self, val* p0) {
2327 val* var_p /* var p: Parser */;
2328 val* var /* : null */;
2329 val* var_node_list /* var node_list: nullable Object */;
2330 val* var1 /* : nullable Object */;
2331 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2332 val* var2 /* : nullable Object */;
2333 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2334 val* var3 /* : nullable Object */;
2335 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2336 val* var4 /* : Array[Object] */;
2337 val* var_listnode3 /* var listnode3: Array[Object] */;
2338 val* var_pparamnode1 /* var pparamnode1: nullable Object */;
2339 val* var_listnode2 /* var listnode2: nullable Object */;
2340 short int var5 /* : Bool */;
2341 int cltype;
2342 int idtype;
2343 val* var6 /* : null */;
2344 short int var7 /* : Bool */;
2345 val* var8 /* : Array[Object] */;
2346 long var9 /* : Int */;
2347 long var10 /* : Int */;
2348 var_p = p0;
2349 var = NULL;
2350 var_node_list = var;
2351 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2352 var_nodearraylist3 = var1;
2353 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2354 var_nodearraylist2 = var2;
2355 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2356 var_nodearraylist1 = var3;
2357 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
2358 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
2359 var_listnode3 = var4;
2360 var_pparamnode1 = var_nodearraylist1;
2361 var_listnode2 = var_nodearraylist2;
2362 /* <var_listnode2:nullable Object> isa Array[Object] */
2363 cltype = type_array__Arraykernel__Object.color;
2364 idtype = type_array__Arraykernel__Object.id;
2365 if(var_listnode2 == NULL) {
2366 var5 = 0;
2367 } else {
2368 if(cltype >= var_listnode2->type->table_size) {
2369 var5 = 0;
2370 } else {
2371 var5 = var_listnode2->type->type_table[cltype] == idtype;
2372 }
2373 }
2374 if (!var5) {
2375 fprintf(stderr, "Runtime error: %s", "Assert failed");
2376 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23148);
2377 show_backtrace(1);
2378 }
2379 var6 = NULL;
2380 if (var_pparamnode1 == NULL) {
2381 var7 = 0; /* is null */
2382 } else {
2383 var7 = 1; /* arg is null and recv is not */
2384 }
2385 if (var7){
2386 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pparamnode1) /* add on <var_listnode3:Array[Object]>*/;
2387 } else {
2388 }
2389 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode2) /* concat on <self:ReduceAction552>*/;
2390 var_listnode3 = var8;
2391 var_node_list = var_listnode3;
2392 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction552> */
2393 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
2394 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
2395 RET_LABEL:;
2396 }
2397 /* method parser#ReduceAction552#action for (self: Object, Parser) */
2398 void VIRTUAL_parser__ReduceAction552__action(val* self, val* p0) {
2399 parser__ReduceAction552__action(self, p0);
2400 RET_LABEL:;
2401 }
2402 /* method parser#ReduceAction553#action for (self: ReduceAction553, Parser) */
2403 void parser__ReduceAction553__action(val* self, val* p0) {
2404 val* var_p /* var p: Parser */;
2405 val* var /* : null */;
2406 val* var_node_list /* var node_list: nullable Object */;
2407 val* var1 /* : nullable Object */;
2408 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2409 val* var2 /* : nullable Object */;
2410 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2411 val* var3 /* : nullable Object */;
2412 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2413 val* var_pparamnode1 /* var pparamnode1: nullable Object */;
2414 long var4 /* : Int */;
2415 long var5 /* : Int */;
2416 var_p = p0;
2417 var = NULL;
2418 var_node_list = var;
2419 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2420 var_nodearraylist3 = var1;
2421 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2422 var_nodearraylist2 = var2;
2423 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2424 var_nodearraylist1 = var3;
2425 var_pparamnode1 = var_nodearraylist3;
2426 var_node_list = var_pparamnode1;
2427 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction553> */
2428 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
2429 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
2430 RET_LABEL:;
2431 }
2432 /* method parser#ReduceAction553#action for (self: Object, Parser) */
2433 void VIRTUAL_parser__ReduceAction553__action(val* self, val* p0) {
2434 parser__ReduceAction553__action(self, p0);
2435 RET_LABEL:;
2436 }
2437 /* method parser#ReduceAction554#action for (self: ReduceAction554, Parser) */
2438 void parser__ReduceAction554__action(val* self, val* p0) {
2439 val* var_p /* var p: Parser */;
2440 val* var /* : null */;
2441 val* var_node_list /* var node_list: nullable Object */;
2442 val* var1 /* : nullable Object */;
2443 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2444 val* var_tidnode2 /* var tidnode2: nullable Object */;
2445 short int var2 /* : Bool */;
2446 int cltype;
2447 int idtype;
2448 val* var3 /* : AParam */;
2449 val* var4 /* : null */;
2450 val* var5 /* : null */;
2451 val* var6 /* : null */;
2452 val* var_pparamnode1 /* var pparamnode1: nullable AParam */;
2453 long var7 /* : Int */;
2454 long var8 /* : Int */;
2455 var_p = p0;
2456 var = NULL;
2457 var_node_list = var;
2458 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2459 var_nodearraylist1 = var1;
2460 var_tidnode2 = var_nodearraylist1;
2461 /* <var_tidnode2:nullable Object> isa nullable TId */
2462 cltype = type_nullable_parser_nodes__TId.color;
2463 idtype = type_nullable_parser_nodes__TId.id;
2464 if(var_tidnode2 == NULL) {
2465 var2 = 1;
2466 } else {
2467 if(cltype >= var_tidnode2->type->table_size) {
2468 var2 = 0;
2469 } else {
2470 var2 = var_tidnode2->type->type_table[cltype] == idtype;
2471 }
2472 }
2473 if (!var2) {
2474 fprintf(stderr, "Runtime error: %s", "Assert failed");
2475 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23177);
2476 show_backtrace(1);
2477 }
2478 var3 = NEW_parser_nodes__AParam(&type_parser_nodes__AParam);
2479 var4 = NULL;
2480 var5 = NULL;
2481 var6 = NULL;
2482 ((void (*)(val*, val*, val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AParam__init_aparam]))(var3, var_tidnode2, var4, var5, var6) /* init_aparam on <var3:AParam>*/;
2483 var_pparamnode1 = var3;
2484 var_node_list = var_pparamnode1;
2485 var7 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction554> */
2486 var8 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var7) /* go_to on <var_p:Parser>*/;
2487 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var8, var_node_list) /* push on <var_p:Parser>*/;
2488 RET_LABEL:;
2489 }
2490 /* method parser#ReduceAction554#action for (self: Object, Parser) */
2491 void VIRTUAL_parser__ReduceAction554__action(val* self, val* p0) {
2492 parser__ReduceAction554__action(self, p0);
2493 RET_LABEL:;
2494 }
2495 /* method parser#ReduceAction555#action for (self: ReduceAction555, Parser) */
2496 void parser__ReduceAction555__action(val* self, val* p0) {
2497 val* var_p /* var p: Parser */;
2498 val* var /* : null */;
2499 val* var_node_list /* var node_list: nullable Object */;
2500 val* var1 /* : nullable Object */;
2501 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2502 val* var2 /* : nullable Object */;
2503 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2504 val* var_tidnode2 /* var tidnode2: nullable Object */;
2505 short int var3 /* : Bool */;
2506 int cltype;
2507 int idtype;
2508 val* var_pannotationsnode5 /* var pannotationsnode5: nullable Object */;
2509 short int var4 /* : Bool */;
2510 int cltype5;
2511 int idtype6;
2512 val* var7 /* : AParam */;
2513 val* var8 /* : null */;
2514 val* var9 /* : null */;
2515 val* var_pparamnode1 /* var pparamnode1: nullable AParam */;
2516 long var10 /* : Int */;
2517 long var11 /* : Int */;
2518 var_p = p0;
2519 var = NULL;
2520 var_node_list = var;
2521 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2522 var_nodearraylist2 = var1;
2523 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2524 var_nodearraylist1 = var2;
2525 var_tidnode2 = var_nodearraylist1;
2526 /* <var_tidnode2:nullable Object> isa nullable TId */
2527 cltype = type_nullable_parser_nodes__TId.color;
2528 idtype = type_nullable_parser_nodes__TId.id;
2529 if(var_tidnode2 == NULL) {
2530 var3 = 1;
2531 } else {
2532 if(cltype >= var_tidnode2->type->table_size) {
2533 var3 = 0;
2534 } else {
2535 var3 = var_tidnode2->type->type_table[cltype] == idtype;
2536 }
2537 }
2538 if (!var3) {
2539 fprintf(stderr, "Runtime error: %s", "Assert failed");
2540 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23196);
2541 show_backtrace(1);
2542 }
2543 var_pannotationsnode5 = var_nodearraylist2;
2544 /* <var_pannotationsnode5:nullable Object> isa nullable AAnnotations */
2545 cltype5 = type_nullable_parser_nodes__AAnnotations.color;
2546 idtype6 = type_nullable_parser_nodes__AAnnotations.id;
2547 if(var_pannotationsnode5 == NULL) {
2548 var4 = 1;
2549 } else {
2550 if(cltype5 >= var_pannotationsnode5->type->table_size) {
2551 var4 = 0;
2552 } else {
2553 var4 = var_pannotationsnode5->type->type_table[cltype5] == idtype6;
2554 }
2555 }
2556 if (!var4) {
2557 fprintf(stderr, "Runtime error: %s", "Assert failed");
2558 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23198);
2559 show_backtrace(1);
2560 }
2561 var7 = NEW_parser_nodes__AParam(&type_parser_nodes__AParam);
2562 var8 = NULL;
2563 var9 = NULL;
2564 ((void (*)(val*, val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AParam__init_aparam]))(var7, var_tidnode2, var8, var9, var_pannotationsnode5) /* init_aparam on <var7:AParam>*/;
2565 var_pparamnode1 = var7;
2566 var_node_list = var_pparamnode1;
2567 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction555> */
2568 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
2569 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
2570 RET_LABEL:;
2571 }
2572 /* method parser#ReduceAction555#action for (self: Object, Parser) */
2573 void VIRTUAL_parser__ReduceAction555__action(val* self, val* p0) {
2574 parser__ReduceAction555__action(self, p0);
2575 RET_LABEL:;
2576 }
2577 /* method parser#ReduceAction556#action for (self: ReduceAction556, Parser) */
2578 void parser__ReduceAction556__action(val* self, val* p0) {
2579 val* var_p /* var p: Parser */;
2580 val* var /* : null */;
2581 val* var_node_list /* var node_list: nullable Object */;
2582 val* var1 /* : nullable Object */;
2583 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2584 val* var2 /* : nullable Object */;
2585 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2586 val* var_tidnode2 /* var tidnode2: nullable Object */;
2587 short int var3 /* : Bool */;
2588 int cltype;
2589 int idtype;
2590 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
2591 short int var4 /* : Bool */;
2592 int cltype5;
2593 int idtype6;
2594 val* var7 /* : AParam */;
2595 val* var8 /* : null */;
2596 val* var9 /* : null */;
2597 val* var_pparamnode1 /* var pparamnode1: nullable AParam */;
2598 long var10 /* : Int */;
2599 long var11 /* : Int */;
2600 var_p = p0;
2601 var = NULL;
2602 var_node_list = var;
2603 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2604 var_nodearraylist2 = var1;
2605 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2606 var_nodearraylist1 = var2;
2607 var_tidnode2 = var_nodearraylist1;
2608 /* <var_tidnode2:nullable Object> isa nullable TId */
2609 cltype = type_nullable_parser_nodes__TId.color;
2610 idtype = type_nullable_parser_nodes__TId.id;
2611 if(var_tidnode2 == NULL) {
2612 var3 = 1;
2613 } else {
2614 if(cltype >= var_tidnode2->type->table_size) {
2615 var3 = 0;
2616 } else {
2617 var3 = var_tidnode2->type->type_table[cltype] == idtype;
2618 }
2619 }
2620 if (!var3) {
2621 fprintf(stderr, "Runtime error: %s", "Assert failed");
2622 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23217);
2623 show_backtrace(1);
2624 }
2625 var_ptypenode3 = var_nodearraylist2;
2626 /* <var_ptypenode3:nullable Object> isa nullable AType */
2627 cltype5 = type_nullable_parser_nodes__AType.color;
2628 idtype6 = type_nullable_parser_nodes__AType.id;
2629 if(var_ptypenode3 == NULL) {
2630 var4 = 1;
2631 } else {
2632 if(cltype5 >= var_ptypenode3->type->table_size) {
2633 var4 = 0;
2634 } else {
2635 var4 = var_ptypenode3->type->type_table[cltype5] == idtype6;
2636 }
2637 }
2638 if (!var4) {
2639 fprintf(stderr, "Runtime error: %s", "Assert failed");
2640 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23219);
2641 show_backtrace(1);
2642 }
2643 var7 = NEW_parser_nodes__AParam(&type_parser_nodes__AParam);
2644 var8 = NULL;
2645 var9 = NULL;
2646 ((void (*)(val*, val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AParam__init_aparam]))(var7, var_tidnode2, var_ptypenode3, var8, var9) /* init_aparam on <var7:AParam>*/;
2647 var_pparamnode1 = var7;
2648 var_node_list = var_pparamnode1;
2649 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction556> */
2650 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
2651 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
2652 RET_LABEL:;
2653 }
2654 /* method parser#ReduceAction556#action for (self: Object, Parser) */
2655 void VIRTUAL_parser__ReduceAction556__action(val* self, val* p0) {
2656 parser__ReduceAction556__action(self, p0);
2657 RET_LABEL:;
2658 }
2659 /* method parser#ReduceAction557#action for (self: ReduceAction557, Parser) */
2660 void parser__ReduceAction557__action(val* self, val* p0) {
2661 val* var_p /* var p: Parser */;
2662 val* var /* : null */;
2663 val* var_node_list /* var node_list: nullable Object */;
2664 val* var1 /* : nullable Object */;
2665 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2666 val* var2 /* : nullable Object */;
2667 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2668 val* var3 /* : nullable Object */;
2669 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2670 val* var_tidnode2 /* var tidnode2: nullable Object */;
2671 short int var4 /* : Bool */;
2672 int cltype;
2673 int idtype;
2674 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
2675 short int var5 /* : Bool */;
2676 int cltype6;
2677 int idtype7;
2678 val* var_pannotationsnode5 /* var pannotationsnode5: nullable Object */;
2679 short int var8 /* : Bool */;
2680 int cltype9;
2681 int idtype10;
2682 val* var11 /* : AParam */;
2683 val* var12 /* : null */;
2684 val* var_pparamnode1 /* var pparamnode1: nullable AParam */;
2685 long var13 /* : Int */;
2686 long var14 /* : Int */;
2687 var_p = p0;
2688 var = NULL;
2689 var_node_list = var;
2690 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2691 var_nodearraylist3 = var1;
2692 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2693 var_nodearraylist2 = var2;
2694 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2695 var_nodearraylist1 = var3;
2696 var_tidnode2 = var_nodearraylist1;
2697 /* <var_tidnode2:nullable Object> isa nullable TId */
2698 cltype = type_nullable_parser_nodes__TId.color;
2699 idtype = type_nullable_parser_nodes__TId.id;
2700 if(var_tidnode2 == NULL) {
2701 var4 = 1;
2702 } else {
2703 if(cltype >= var_tidnode2->type->table_size) {
2704 var4 = 0;
2705 } else {
2706 var4 = var_tidnode2->type->type_table[cltype] == idtype;
2707 }
2708 }
2709 if (!var4) {
2710 fprintf(stderr, "Runtime error: %s", "Assert failed");
2711 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23239);
2712 show_backtrace(1);
2713 }
2714 var_ptypenode3 = var_nodearraylist3;
2715 /* <var_ptypenode3:nullable Object> isa nullable AType */
2716 cltype6 = type_nullable_parser_nodes__AType.color;
2717 idtype7 = type_nullable_parser_nodes__AType.id;
2718 if(var_ptypenode3 == NULL) {
2719 var5 = 1;
2720 } else {
2721 if(cltype6 >= var_ptypenode3->type->table_size) {
2722 var5 = 0;
2723 } else {
2724 var5 = var_ptypenode3->type->type_table[cltype6] == idtype7;
2725 }
2726 }
2727 if (!var5) {
2728 fprintf(stderr, "Runtime error: %s", "Assert failed");
2729 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23241);
2730 show_backtrace(1);
2731 }
2732 var_pannotationsnode5 = var_nodearraylist2;
2733 /* <var_pannotationsnode5:nullable Object> isa nullable AAnnotations */
2734 cltype9 = type_nullable_parser_nodes__AAnnotations.color;
2735 idtype10 = type_nullable_parser_nodes__AAnnotations.id;
2736 if(var_pannotationsnode5 == NULL) {
2737 var8 = 1;
2738 } else {
2739 if(cltype9 >= var_pannotationsnode5->type->table_size) {
2740 var8 = 0;
2741 } else {
2742 var8 = var_pannotationsnode5->type->type_table[cltype9] == idtype10;
2743 }
2744 }
2745 if (!var8) {
2746 fprintf(stderr, "Runtime error: %s", "Assert failed");
2747 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23243);
2748 show_backtrace(1);
2749 }
2750 var11 = NEW_parser_nodes__AParam(&type_parser_nodes__AParam);
2751 var12 = NULL;
2752 ((void (*)(val*, val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AParam__init_aparam]))(var11, var_tidnode2, var_ptypenode3, var12, var_pannotationsnode5) /* init_aparam on <var11:AParam>*/;
2753 var_pparamnode1 = var11;
2754 var_node_list = var_pparamnode1;
2755 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction557> */
2756 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
2757 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
2758 RET_LABEL:;
2759 }
2760 /* method parser#ReduceAction557#action for (self: Object, Parser) */
2761 void VIRTUAL_parser__ReduceAction557__action(val* self, val* p0) {
2762 parser__ReduceAction557__action(self, p0);
2763 RET_LABEL:;
2764 }
2765 /* method parser#ReduceAction558#action for (self: ReduceAction558, Parser) */
2766 void parser__ReduceAction558__action(val* self, val* p0) {
2767 val* var_p /* var p: Parser */;
2768 val* var /* : null */;
2769 val* var_node_list /* var node_list: nullable Object */;
2770 val* var1 /* : nullable Object */;
2771 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2772 val* var2 /* : nullable Object */;
2773 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2774 val* var3 /* : nullable Object */;
2775 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2776 val* var_tidnode2 /* var tidnode2: nullable Object */;
2777 short int var4 /* : Bool */;
2778 int cltype;
2779 int idtype;
2780 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
2781 short int var5 /* : Bool */;
2782 int cltype6;
2783 int idtype7;
2784 val* var_tdotdotdotnode4 /* var tdotdotdotnode4: nullable Object */;
2785 short int var8 /* : Bool */;
2786 int cltype9;
2787 int idtype10;
2788 val* var11 /* : AParam */;
2789 val* var12 /* : null */;
2790 val* var_pparamnode1 /* var pparamnode1: nullable AParam */;
2791 long var13 /* : Int */;
2792 long var14 /* : Int */;
2793 var_p = p0;
2794 var = NULL;
2795 var_node_list = var;
2796 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2797 var_nodearraylist3 = var1;
2798 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2799 var_nodearraylist2 = var2;
2800 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2801 var_nodearraylist1 = var3;
2802 var_tidnode2 = var_nodearraylist1;
2803 /* <var_tidnode2:nullable Object> isa nullable TId */
2804 cltype = type_nullable_parser_nodes__TId.color;
2805 idtype = type_nullable_parser_nodes__TId.id;
2806 if(var_tidnode2 == NULL) {
2807 var4 = 1;
2808 } else {
2809 if(cltype >= var_tidnode2->type->table_size) {
2810 var4 = 0;
2811 } else {
2812 var4 = var_tidnode2->type->type_table[cltype] == idtype;
2813 }
2814 }
2815 if (!var4) {
2816 fprintf(stderr, "Runtime error: %s", "Assert failed");
2817 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23263);
2818 show_backtrace(1);
2819 }
2820 var_ptypenode3 = var_nodearraylist2;
2821 /* <var_ptypenode3:nullable Object> isa nullable AType */
2822 cltype6 = type_nullable_parser_nodes__AType.color;
2823 idtype7 = type_nullable_parser_nodes__AType.id;
2824 if(var_ptypenode3 == NULL) {
2825 var5 = 1;
2826 } else {
2827 if(cltype6 >= var_ptypenode3->type->table_size) {
2828 var5 = 0;
2829 } else {
2830 var5 = var_ptypenode3->type->type_table[cltype6] == idtype7;
2831 }
2832 }
2833 if (!var5) {
2834 fprintf(stderr, "Runtime error: %s", "Assert failed");
2835 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23265);
2836 show_backtrace(1);
2837 }
2838 var_tdotdotdotnode4 = var_nodearraylist3;
2839 /* <var_tdotdotdotnode4:nullable Object> isa nullable TDotdotdot */
2840 cltype9 = type_nullable_parser_nodes__TDotdotdot.color;
2841 idtype10 = type_nullable_parser_nodes__TDotdotdot.id;
2842 if(var_tdotdotdotnode4 == NULL) {
2843 var8 = 1;
2844 } else {
2845 if(cltype9 >= var_tdotdotdotnode4->type->table_size) {
2846 var8 = 0;
2847 } else {
2848 var8 = var_tdotdotdotnode4->type->type_table[cltype9] == idtype10;
2849 }
2850 }
2851 if (!var8) {
2852 fprintf(stderr, "Runtime error: %s", "Assert failed");
2853 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23267);
2854 show_backtrace(1);
2855 }
2856 var11 = NEW_parser_nodes__AParam(&type_parser_nodes__AParam);
2857 var12 = NULL;
2858 ((void (*)(val*, val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AParam__init_aparam]))(var11, var_tidnode2, var_ptypenode3, var_tdotdotdotnode4, var12) /* init_aparam on <var11:AParam>*/;
2859 var_pparamnode1 = var11;
2860 var_node_list = var_pparamnode1;
2861 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction558> */
2862 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
2863 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
2864 RET_LABEL:;
2865 }
2866 /* method parser#ReduceAction558#action for (self: Object, Parser) */
2867 void VIRTUAL_parser__ReduceAction558__action(val* self, val* p0) {
2868 parser__ReduceAction558__action(self, p0);
2869 RET_LABEL:;
2870 }
2871 /* method parser#ReduceAction559#action for (self: ReduceAction559, Parser) */
2872 void parser__ReduceAction559__action(val* self, val* p0) {
2873 val* var_p /* var p: Parser */;
2874 val* var /* : null */;
2875 val* var_node_list /* var node_list: nullable Object */;
2876 val* var1 /* : nullable Object */;
2877 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2878 val* var2 /* : nullable Object */;
2879 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2880 val* var3 /* : nullable Object */;
2881 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2882 val* var4 /* : nullable Object */;
2883 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2884 val* var_tidnode2 /* var tidnode2: nullable Object */;
2885 short int var5 /* : Bool */;
2886 int cltype;
2887 int idtype;
2888 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
2889 short int var6 /* : Bool */;
2890 int cltype7;
2891 int idtype8;
2892 val* var_tdotdotdotnode4 /* var tdotdotdotnode4: nullable Object */;
2893 short int var9 /* : Bool */;
2894 int cltype10;
2895 int idtype11;
2896 val* var_pannotationsnode5 /* var pannotationsnode5: nullable Object */;
2897 short int var12 /* : Bool */;
2898 int cltype13;
2899 int idtype14;
2900 val* var15 /* : AParam */;
2901 val* var_pparamnode1 /* var pparamnode1: nullable AParam */;
2902 long var16 /* : Int */;
2903 long var17 /* : Int */;
2904 var_p = p0;
2905 var = NULL;
2906 var_node_list = var;
2907 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2908 var_nodearraylist4 = var1;
2909 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2910 var_nodearraylist3 = var2;
2911 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2912 var_nodearraylist2 = var3;
2913 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2914 var_nodearraylist1 = var4;
2915 var_tidnode2 = var_nodearraylist1;
2916 /* <var_tidnode2:nullable Object> isa nullable TId */
2917 cltype = type_nullable_parser_nodes__TId.color;
2918 idtype = type_nullable_parser_nodes__TId.id;
2919 if(var_tidnode2 == NULL) {
2920 var5 = 1;
2921 } else {
2922 if(cltype >= var_tidnode2->type->table_size) {
2923 var5 = 0;
2924 } else {
2925 var5 = var_tidnode2->type->type_table[cltype] == idtype;
2926 }
2927 }
2928 if (!var5) {
2929 fprintf(stderr, "Runtime error: %s", "Assert failed");
2930 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23288);
2931 show_backtrace(1);
2932 }
2933 var_ptypenode3 = var_nodearraylist3;
2934 /* <var_ptypenode3:nullable Object> isa nullable AType */
2935 cltype7 = type_nullable_parser_nodes__AType.color;
2936 idtype8 = type_nullable_parser_nodes__AType.id;
2937 if(var_ptypenode3 == NULL) {
2938 var6 = 1;
2939 } else {
2940 if(cltype7 >= var_ptypenode3->type->table_size) {
2941 var6 = 0;
2942 } else {
2943 var6 = var_ptypenode3->type->type_table[cltype7] == idtype8;
2944 }
2945 }
2946 if (!var6) {
2947 fprintf(stderr, "Runtime error: %s", "Assert failed");
2948 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23290);
2949 show_backtrace(1);
2950 }
2951 var_tdotdotdotnode4 = var_nodearraylist4;
2952 /* <var_tdotdotdotnode4:nullable Object> isa nullable TDotdotdot */
2953 cltype10 = type_nullable_parser_nodes__TDotdotdot.color;
2954 idtype11 = type_nullable_parser_nodes__TDotdotdot.id;
2955 if(var_tdotdotdotnode4 == NULL) {
2956 var9 = 1;
2957 } else {
2958 if(cltype10 >= var_tdotdotdotnode4->type->table_size) {
2959 var9 = 0;
2960 } else {
2961 var9 = var_tdotdotdotnode4->type->type_table[cltype10] == idtype11;
2962 }
2963 }
2964 if (!var9) {
2965 fprintf(stderr, "Runtime error: %s", "Assert failed");
2966 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23292);
2967 show_backtrace(1);
2968 }
2969 var_pannotationsnode5 = var_nodearraylist2;
2970 /* <var_pannotationsnode5:nullable Object> isa nullable AAnnotations */
2971 cltype13 = type_nullable_parser_nodes__AAnnotations.color;
2972 idtype14 = type_nullable_parser_nodes__AAnnotations.id;
2973 if(var_pannotationsnode5 == NULL) {
2974 var12 = 1;
2975 } else {
2976 if(cltype13 >= var_pannotationsnode5->type->table_size) {
2977 var12 = 0;
2978 } else {
2979 var12 = var_pannotationsnode5->type->type_table[cltype13] == idtype14;
2980 }
2981 }
2982 if (!var12) {
2983 fprintf(stderr, "Runtime error: %s", "Assert failed");
2984 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23294);
2985 show_backtrace(1);
2986 }
2987 var15 = NEW_parser_nodes__AParam(&type_parser_nodes__AParam);
2988 ((void (*)(val*, val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__AParam__init_aparam]))(var15, var_tidnode2, var_ptypenode3, var_tdotdotdotnode4, var_pannotationsnode5) /* init_aparam on <var15:AParam>*/;
2989 var_pparamnode1 = var15;
2990 var_node_list = var_pparamnode1;
2991 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction559> */
2992 var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
2993 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
2994 RET_LABEL:;
2995 }
2996 /* method parser#ReduceAction559#action for (self: Object, Parser) */
2997 void VIRTUAL_parser__ReduceAction559__action(val* self, val* p0) {
2998 parser__ReduceAction559__action(self, p0);
2999 RET_LABEL:;
3000 }
3001 /* method parser#ReduceAction560#action for (self: ReduceAction560, Parser) */
3002 void parser__ReduceAction560__action(val* self, val* p0) {
3003 val* var_p /* var p: Parser */;
3004 val* var /* : null */;
3005 val* var_node_list /* var node_list: nullable Object */;
3006 val* var1 /* : nullable Object */;
3007 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3008 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
3009 short int var2 /* : Bool */;
3010 int cltype;
3011 int idtype;
3012 val* var3 /* : AReturnExpr */;
3013 val* var4 /* : null */;
3014 val* var_pexprnode1 /* var pexprnode1: nullable AReturnExpr */;
3015 long var5 /* : Int */;
3016 long var6 /* : Int */;
3017 var_p = p0;
3018 var = NULL;
3019 var_node_list = var;
3020 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3021 var_nodearraylist1 = var1;
3022 var_pexprnode3 = var_nodearraylist1;
3023 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
3024 cltype = type_nullable_parser_nodes__AExpr.color;
3025 idtype = type_nullable_parser_nodes__AExpr.id;
3026 if(var_pexprnode3 == NULL) {
3027 var2 = 1;
3028 } else {
3029 if(cltype >= var_pexprnode3->type->table_size) {
3030 var2 = 0;
3031 } else {
3032 var2 = var_pexprnode3->type->type_table[cltype] == idtype;
3033 }
3034 }
3035 if (!var2) {
3036 fprintf(stderr, "Runtime error: %s", "Assert failed");
3037 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23312);
3038 show_backtrace(1);
3039 }
3040 var3 = NEW_parser_nodes__AReturnExpr(&type_parser_nodes__AReturnExpr);
3041 var4 = NULL;
3042 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AReturnExpr__init_areturnexpr]))(var3, var4, var_pexprnode3) /* init_areturnexpr on <var3:AReturnExpr>*/;
3043 var_pexprnode1 = var3;
3044 var_node_list = var_pexprnode1;
3045 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction560> */
3046 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
3047 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
3048 RET_LABEL:;
3049 }
3050 /* method parser#ReduceAction560#action for (self: Object, Parser) */
3051 void VIRTUAL_parser__ReduceAction560__action(val* self, val* p0) {
3052 parser__ReduceAction560__action(self, p0);
3053 RET_LABEL:;
3054 }
3055 /* method parser#ReduceAction561#action for (self: ReduceAction561, Parser) */
3056 void parser__ReduceAction561__action(val* self, val* p0) {
3057 val* var_p /* var p: Parser */;
3058 val* var /* : null */;
3059 val* var_node_list /* var node_list: nullable Object */;
3060 val* var1 /* : nullable Object */;
3061 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3062 val* var2 /* : nullable Object */;
3063 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3064 val* var3 /* : nullable Object */;
3065 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3066 val* var4 /* : Array[Object] */;
3067 val* var_listnode4 /* var listnode4: Array[Object] */;
3068 val* var_tkwimportnode2 /* var tkwimportnode2: nullable Object */;
3069 short int var5 /* : Bool */;
3070 int cltype;
3071 int idtype;
3072 val* var_pexterncallnode3 /* var pexterncallnode3: nullable Object */;
3073 short int var6 /* : Bool */;
3074 int cltype7;
3075 int idtype8;
3076 val* var9 /* : null */;
3077 short int var10 /* : Bool */;
3078 val* var11 /* : AExternCalls */;
3079 val* var_pexterncallsnode1 /* var pexterncallsnode1: nullable AExternCalls */;
3080 long var12 /* : Int */;
3081 long var13 /* : Int */;
3082 var_p = p0;
3083 var = NULL;
3084 var_node_list = var;
3085 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3086 var_nodearraylist3 = var1;
3087 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3088 var_nodearraylist2 = var2;
3089 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3090 var_nodearraylist1 = var3;
3091 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
3092 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
3093 var_listnode4 = var4;
3094 var_tkwimportnode2 = var_nodearraylist1;
3095 /* <var_tkwimportnode2:nullable Object> isa nullable TKwimport */
3096 cltype = type_nullable_parser_nodes__TKwimport.color;
3097 idtype = type_nullable_parser_nodes__TKwimport.id;
3098 if(var_tkwimportnode2 == NULL) {
3099 var5 = 1;
3100 } else {
3101 if(cltype >= var_tkwimportnode2->type->table_size) {
3102 var5 = 0;
3103 } else {
3104 var5 = var_tkwimportnode2->type->type_table[cltype] == idtype;
3105 }
3106 }
3107 if (!var5) {
3108 fprintf(stderr, "Runtime error: %s", "Assert failed");
3109 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23331);
3110 show_backtrace(1);
3111 }
3112 var_pexterncallnode3 = var_nodearraylist3;
3113 /* <var_pexterncallnode3:nullable Object> isa nullable AExternCall */
3114 cltype7 = type_nullable_parser_nodes__AExternCall.color;
3115 idtype8 = type_nullable_parser_nodes__AExternCall.id;
3116 if(var_pexterncallnode3 == NULL) {
3117 var6 = 1;
3118 } else {
3119 if(cltype7 >= var_pexterncallnode3->type->table_size) {
3120 var6 = 0;
3121 } else {
3122 var6 = var_pexterncallnode3->type->type_table[cltype7] == idtype8;
3123 }
3124 }
3125 if (!var6) {
3126 fprintf(stderr, "Runtime error: %s", "Assert failed");
3127 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23333);
3128 show_backtrace(1);
3129 }
3130 var9 = NULL;
3131 if (var_pexterncallnode3 == NULL) {
3132 var10 = 0; /* is null */
3133 } else {
3134 var10 = 1; /* arg is null and recv is not */
3135 }
3136 if (var10){
3137 ((void (*)(val*, val*))(var_listnode4->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode4, var_pexterncallnode3) /* add on <var_listnode4:Array[Object]>*/;
3138 } else {
3139 }
3140 var11 = NEW_parser_nodes__AExternCalls(&type_parser_nodes__AExternCalls);
3141 ((void (*)(val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AExternCalls__init_aexterncalls]))(var11, var_tkwimportnode2, var_listnode4) /* init_aexterncalls on <var11:AExternCalls>*/;
3142 var_pexterncallsnode1 = var11;
3143 var_node_list = var_pexterncallsnode1;
3144 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction561> */
3145 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
3146 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
3147 RET_LABEL:;
3148 }
3149 /* method parser#ReduceAction561#action for (self: Object, Parser) */
3150 void VIRTUAL_parser__ReduceAction561__action(val* self, val* p0) {
3151 parser__ReduceAction561__action(self, p0);
3152 RET_LABEL:;
3153 }
3154 /* method parser#ReduceAction562#action for (self: ReduceAction562, Parser) */
3155 void parser__ReduceAction562__action(val* self, val* p0) {
3156 val* var_p /* var p: Parser */;
3157 val* var /* : null */;
3158 val* var_node_list /* var node_list: nullable Object */;
3159 val* var1 /* : nullable Object */;
3160 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3161 val* var2 /* : nullable Object */;
3162 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3163 val* var3 /* : nullable Object */;
3164 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3165 val* var4 /* : nullable Object */;
3166 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3167 val* var5 /* : Array[Object] */;
3168 val* var_listnode5 /* var listnode5: Array[Object] */;
3169 val* var_tkwimportnode2 /* var tkwimportnode2: nullable Object */;
3170 short int var6 /* : Bool */;
3171 int cltype;
3172 int idtype;
3173 val* var_pexterncallnode3 /* var pexterncallnode3: nullable Object */;
3174 short int var7 /* : Bool */;
3175 int cltype8;
3176 int idtype9;
3177 val* var_listnode4 /* var listnode4: nullable Object */;
3178 short int var10 /* : Bool */;
3179 int cltype11;
3180 int idtype12;
3181 val* var13 /* : null */;
3182 short int var14 /* : Bool */;
3183 val* var15 /* : Array[Object] */;
3184 val* var16 /* : AExternCalls */;
3185 val* var_pexterncallsnode1 /* var pexterncallsnode1: nullable AExternCalls */;
3186 long var17 /* : Int */;
3187 long var18 /* : Int */;
3188 var_p = p0;
3189 var = NULL;
3190 var_node_list = var;
3191 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3192 var_nodearraylist4 = var1;
3193 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3194 var_nodearraylist3 = var2;
3195 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3196 var_nodearraylist2 = var3;
3197 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3198 var_nodearraylist1 = var4;
3199 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
3200 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
3201 var_listnode5 = var5;
3202 var_tkwimportnode2 = var_nodearraylist1;
3203 /* <var_tkwimportnode2:nullable Object> isa nullable TKwimport */
3204 cltype = type_nullable_parser_nodes__TKwimport.color;
3205 idtype = type_nullable_parser_nodes__TKwimport.id;
3206 if(var_tkwimportnode2 == NULL) {
3207 var6 = 1;
3208 } else {
3209 if(cltype >= var_tkwimportnode2->type->table_size) {
3210 var6 = 0;
3211 } else {
3212 var6 = var_tkwimportnode2->type->type_table[cltype] == idtype;
3213 }
3214 }
3215 if (!var6) {
3216 fprintf(stderr, "Runtime error: %s", "Assert failed");
3217 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23356);
3218 show_backtrace(1);
3219 }
3220 var_pexterncallnode3 = var_nodearraylist3;
3221 /* <var_pexterncallnode3:nullable Object> isa nullable AExternCall */
3222 cltype8 = type_nullable_parser_nodes__AExternCall.color;
3223 idtype9 = type_nullable_parser_nodes__AExternCall.id;
3224 if(var_pexterncallnode3 == NULL) {
3225 var7 = 1;
3226 } else {
3227 if(cltype8 >= var_pexterncallnode3->type->table_size) {
3228 var7 = 0;
3229 } else {
3230 var7 = var_pexterncallnode3->type->type_table[cltype8] == idtype9;
3231 }
3232 }
3233 if (!var7) {
3234 fprintf(stderr, "Runtime error: %s", "Assert failed");
3235 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23358);
3236 show_backtrace(1);
3237 }
3238 var_listnode4 = var_nodearraylist4;
3239 /* <var_listnode4:nullable Object> isa Array[Object] */
3240 cltype11 = type_array__Arraykernel__Object.color;
3241 idtype12 = type_array__Arraykernel__Object.id;
3242 if(var_listnode4 == NULL) {
3243 var10 = 0;
3244 } else {
3245 if(cltype11 >= var_listnode4->type->table_size) {
3246 var10 = 0;
3247 } else {
3248 var10 = var_listnode4->type->type_table[cltype11] == idtype12;
3249 }
3250 }
3251 if (!var10) {
3252 fprintf(stderr, "Runtime error: %s", "Assert failed");
3253 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23360);
3254 show_backtrace(1);
3255 }
3256 var13 = NULL;
3257 if (var_pexterncallnode3 == NULL) {
3258 var14 = 0; /* is null */
3259 } else {
3260 var14 = 1; /* arg is null and recv is not */
3261 }
3262 if (var14){
3263 ((void (*)(val*, val*))(var_listnode5->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode5, var_pexterncallnode3) /* add on <var_listnode5:Array[Object]>*/;
3264 } else {
3265 }
3266 var15 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction562>*/;
3267 var_listnode5 = var15;
3268 var16 = NEW_parser_nodes__AExternCalls(&type_parser_nodes__AExternCalls);
3269 ((void (*)(val*, val*, val*))(var16->class->vft[COLOR_parser_prod__AExternCalls__init_aexterncalls]))(var16, var_tkwimportnode2, var_listnode5) /* init_aexterncalls on <var16:AExternCalls>*/;
3270 var_pexterncallsnode1 = var16;
3271 var_node_list = var_pexterncallsnode1;
3272 var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction562> */
3273 var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
3274 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
3275 RET_LABEL:;
3276 }
3277 /* method parser#ReduceAction562#action for (self: Object, Parser) */
3278 void VIRTUAL_parser__ReduceAction562__action(val* self, val* p0) {
3279 parser__ReduceAction562__action(self, p0);
3280 RET_LABEL:;
3281 }
3282 /* method parser#ReduceAction563#action for (self: ReduceAction563, Parser) */
3283 void parser__ReduceAction563__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_nodearraylist3 /* var nodearraylist3: nullable Object */;
3289 val* var2 /* : nullable Object */;
3290 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3291 val* var3 /* : nullable Object */;
3292 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3293 val* var_pexterncallnode1 /* var pexterncallnode1: nullable Object */;
3294 long var4 /* : Int */;
3295 long var5 /* : Int */;
3296 var_p = p0;
3297 var = NULL;
3298 var_node_list = var;
3299 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3300 var_nodearraylist3 = var1;
3301 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3302 var_nodearraylist2 = var2;
3303 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3304 var_nodearraylist1 = var3;
3305 var_pexterncallnode1 = var_nodearraylist3;
3306 var_node_list = var_pexterncallnode1;
3307 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction563> */
3308 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
3309 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
3310 RET_LABEL:;
3311 }
3312 /* method parser#ReduceAction563#action for (self: Object, Parser) */
3313 void VIRTUAL_parser__ReduceAction563__action(val* self, val* p0) {
3314 parser__ReduceAction563__action(self, p0);
3315 RET_LABEL:;
3316 }
3317 /* method parser#ReduceAction564#action for (self: ReduceAction564, Parser) */
3318 void parser__ReduceAction564__action(val* self, val* p0) {
3319 val* var_p /* var p: Parser */;
3320 val* var /* : null */;
3321 val* var_node_list /* var node_list: nullable Object */;
3322 val* var1 /* : nullable Object */;
3323 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3324 val* var_pexterncallnode1 /* var pexterncallnode1: nullable Object */;
3325 long var2 /* : Int */;
3326 long var3 /* : Int */;
3327 var_p = p0;
3328 var = NULL;
3329 var_node_list = var;
3330 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3331 var_nodearraylist1 = var1;
3332 var_pexterncallnode1 = var_nodearraylist1;
3333 var_node_list = var_pexterncallnode1;
3334 var2 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction564> */
3335 var3 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var2) /* go_to on <var_p:Parser>*/;
3336 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var3, var_node_list) /* push on <var_p:Parser>*/;
3337 RET_LABEL:;
3338 }
3339 /* method parser#ReduceAction564#action for (self: Object, Parser) */
3340 void VIRTUAL_parser__ReduceAction564__action(val* self, val* p0) {
3341 parser__ReduceAction564__action(self, p0);
3342 RET_LABEL:;
3343 }
3344 /* method parser#ReduceAction566#action for (self: ReduceAction566, Parser) */
3345 void parser__ReduceAction566__action(val* self, val* p0) {
3346 val* var_p /* var p: Parser */;
3347 val* var /* : null */;
3348 val* var_node_list /* var node_list: nullable Object */;
3349 val* var1 /* : nullable Object */;
3350 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3351 val* var_tkwsupernode2 /* var tkwsupernode2: nullable Object */;
3352 short int var2 /* : Bool */;
3353 int cltype;
3354 int idtype;
3355 val* var3 /* : ASuperExternCall */;
3356 val* var_pexterncallnode1 /* var pexterncallnode1: nullable ASuperExternCall */;
3357 long var4 /* : Int */;
3358 long var5 /* : Int */;
3359 var_p = p0;
3360 var = NULL;
3361 var_node_list = var;
3362 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3363 var_nodearraylist1 = var1;
3364 var_tkwsupernode2 = var_nodearraylist1;
3365 /* <var_tkwsupernode2:nullable Object> isa nullable TKwsuper */
3366 cltype = type_nullable_parser_nodes__TKwsuper.color;
3367 idtype = type_nullable_parser_nodes__TKwsuper.id;
3368 if(var_tkwsupernode2 == NULL) {
3369 var2 = 1;
3370 } else {
3371 if(cltype >= var_tkwsupernode2->type->table_size) {
3372 var2 = 0;
3373 } else {
3374 var2 = var_tkwsupernode2->type->type_table[cltype] == idtype;
3375 }
3376 }
3377 if (!var2) {
3378 fprintf(stderr, "Runtime error: %s", "Assert failed");
3379 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23404);
3380 show_backtrace(1);
3381 }
3382 var3 = NEW_parser_nodes__ASuperExternCall(&type_parser_nodes__ASuperExternCall);
3383 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__ASuperExternCall__init_asuperexterncall]))(var3, var_tkwsupernode2) /* init_asuperexterncall on <var3:ASuperExternCall>*/;
3384 var_pexterncallnode1 = var3;
3385 var_node_list = var_pexterncallnode1;
3386 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction566> */
3387 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
3388 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
3389 RET_LABEL:;
3390 }
3391 /* method parser#ReduceAction566#action for (self: Object, Parser) */
3392 void VIRTUAL_parser__ReduceAction566__action(val* self, val* p0) {
3393 parser__ReduceAction566__action(self, p0);
3394 RET_LABEL:;
3395 }
3396 /* method parser#ReduceAction567#action for (self: ReduceAction567, Parser) */
3397 void parser__ReduceAction567__action(val* self, val* p0) {
3398 val* var_p /* var p: Parser */;
3399 val* var /* : null */;
3400 val* var_node_list /* var node_list: nullable Object */;
3401 val* var1 /* : nullable Object */;
3402 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3403 val* var_pmethidnode2 /* var pmethidnode2: nullable Object */;
3404 short int var2 /* : Bool */;
3405 int cltype;
3406 int idtype;
3407 val* var3 /* : ALocalPropExternCall */;
3408 val* var_pexterncallnode1 /* var pexterncallnode1: nullable ALocalPropExternCall */;
3409 long var4 /* : Int */;
3410 long var5 /* : Int */;
3411 var_p = p0;
3412 var = NULL;
3413 var_node_list = var;
3414 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3415 var_nodearraylist1 = var1;
3416 var_pmethidnode2 = var_nodearraylist1;
3417 /* <var_pmethidnode2:nullable Object> isa nullable AMethid */
3418 cltype = type_nullable_parser_nodes__AMethid.color;
3419 idtype = type_nullable_parser_nodes__AMethid.id;
3420 if(var_pmethidnode2 == NULL) {
3421 var2 = 1;
3422 } else {
3423 if(cltype >= var_pmethidnode2->type->table_size) {
3424 var2 = 0;
3425 } else {
3426 var2 = var_pmethidnode2->type->type_table[cltype] == idtype;
3427 }
3428 }
3429 if (!var2) {
3430 fprintf(stderr, "Runtime error: %s", "Assert failed");
3431 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23419);
3432 show_backtrace(1);
3433 }
3434 var3 = NEW_parser_nodes__ALocalPropExternCall(&type_parser_nodes__ALocalPropExternCall);
3435 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__ALocalPropExternCall__init_alocalpropexterncall]))(var3, var_pmethidnode2) /* init_alocalpropexterncall on <var3:ALocalPropExternCall>*/;
3436 var_pexterncallnode1 = var3;
3437 var_node_list = var_pexterncallnode1;
3438 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction567> */
3439 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
3440 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
3441 RET_LABEL:;
3442 }
3443 /* method parser#ReduceAction567#action for (self: Object, Parser) */
3444 void VIRTUAL_parser__ReduceAction567__action(val* self, val* p0) {
3445 parser__ReduceAction567__action(self, p0);
3446 RET_LABEL:;
3447 }
3448 /* method parser#ReduceAction568#action for (self: ReduceAction568, Parser) */
3449 void parser__ReduceAction568__action(val* self, val* p0) {
3450 val* var_p /* var p: Parser */;
3451 val* var /* : null */;
3452 val* var_node_list /* var node_list: nullable Object */;
3453 val* var1 /* : nullable Object */;
3454 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3455 val* var2 /* : nullable Object */;
3456 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3457 val* var3 /* : nullable Object */;
3458 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3459 val* var_ptypenode2 /* var ptypenode2: nullable Object */;
3460 short int var4 /* : Bool */;
3461 int cltype;
3462 int idtype;
3463 val* var_pmethidnode4 /* var pmethidnode4: nullable Object */;
3464 short int var5 /* : Bool */;
3465 int cltype6;
3466 int idtype7;
3467 val* var8 /* : AFullPropExternCall */;
3468 val* var9 /* : null */;
3469 val* var_pexterncallnode1 /* var pexterncallnode1: nullable AFullPropExternCall */;
3470 long var10 /* : Int */;
3471 long var11 /* : Int */;
3472 var_p = p0;
3473 var = NULL;
3474 var_node_list = var;
3475 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3476 var_nodearraylist3 = var1;
3477 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3478 var_nodearraylist2 = var2;
3479 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3480 var_nodearraylist1 = var3;
3481 var_ptypenode2 = var_nodearraylist1;
3482 /* <var_ptypenode2:nullable Object> isa nullable AType */
3483 cltype = type_nullable_parser_nodes__AType.color;
3484 idtype = type_nullable_parser_nodes__AType.id;
3485 if(var_ptypenode2 == NULL) {
3486 var4 = 1;
3487 } else {
3488 if(cltype >= var_ptypenode2->type->table_size) {
3489 var4 = 0;
3490 } else {
3491 var4 = var_ptypenode2->type->type_table[cltype] == idtype;
3492 }
3493 }
3494 if (!var4) {
3495 fprintf(stderr, "Runtime error: %s", "Assert failed");
3496 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23436);
3497 show_backtrace(1);
3498 }
3499 var_pmethidnode4 = var_nodearraylist3;
3500 /* <var_pmethidnode4:nullable Object> isa nullable AMethid */
3501 cltype6 = type_nullable_parser_nodes__AMethid.color;
3502 idtype7 = type_nullable_parser_nodes__AMethid.id;
3503 if(var_pmethidnode4 == NULL) {
3504 var5 = 1;
3505 } else {
3506 if(cltype6 >= var_pmethidnode4->type->table_size) {
3507 var5 = 0;
3508 } else {
3509 var5 = var_pmethidnode4->type->type_table[cltype6] == idtype7;
3510 }
3511 }
3512 if (!var5) {
3513 fprintf(stderr, "Runtime error: %s", "Assert failed");
3514 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23438);
3515 show_backtrace(1);
3516 }
3517 var8 = NEW_parser_nodes__AFullPropExternCall(&type_parser_nodes__AFullPropExternCall);
3518 var9 = NULL;
3519 ((void (*)(val*, val*, val*, val*))(var8->class->vft[COLOR_parser_prod__AFullPropExternCall__init_afullpropexterncall]))(var8, var_ptypenode2, var9, var_pmethidnode4) /* init_afullpropexterncall on <var8:AFullPropExternCall>*/;
3520 var_pexterncallnode1 = var8;
3521 var_node_list = var_pexterncallnode1;
3522 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction568> */
3523 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
3524 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
3525 RET_LABEL:;
3526 }
3527 /* method parser#ReduceAction568#action for (self: Object, Parser) */
3528 void VIRTUAL_parser__ReduceAction568__action(val* self, val* p0) {
3529 parser__ReduceAction568__action(self, p0);
3530 RET_LABEL:;
3531 }
3532 /* method parser#ReduceAction569#action for (self: ReduceAction569, Parser) */
3533 void parser__ReduceAction569__action(val* self, val* p0) {
3534 val* var_p /* var p: Parser */;
3535 val* var /* : null */;
3536 val* var_node_list /* var node_list: nullable Object */;
3537 val* var1 /* : nullable Object */;
3538 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3539 val* var2 /* : nullable Object */;
3540 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3541 val* var3 /* : nullable Object */;
3542 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3543 val* var_ptypenode2 /* var ptypenode2: nullable Object */;
3544 short int var4 /* : Bool */;
3545 int cltype;
3546 int idtype;
3547 val* var_tdotnode3 /* var tdotnode3: nullable Object */;
3548 short int var5 /* : Bool */;
3549 int cltype6;
3550 int idtype7;
3551 val* var_pmethidnode4 /* var pmethidnode4: nullable Object */;
3552 short int var8 /* : Bool */;
3553 int cltype9;
3554 int idtype10;
3555 val* var11 /* : AFullPropExternCall */;
3556 val* var_pexterncallnode1 /* var pexterncallnode1: nullable AFullPropExternCall */;
3557 long var12 /* : Int */;
3558 long var13 /* : Int */;
3559 var_p = p0;
3560 var = NULL;
3561 var_node_list = var;
3562 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3563 var_nodearraylist3 = var1;
3564 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3565 var_nodearraylist2 = var2;
3566 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3567 var_nodearraylist1 = var3;
3568 var_ptypenode2 = var_nodearraylist1;
3569 /* <var_ptypenode2:nullable Object> isa nullable AType */
3570 cltype = type_nullable_parser_nodes__AType.color;
3571 idtype = type_nullable_parser_nodes__AType.id;
3572 if(var_ptypenode2 == NULL) {
3573 var4 = 1;
3574 } else {
3575 if(cltype >= var_ptypenode2->type->table_size) {
3576 var4 = 0;
3577 } else {
3578 var4 = var_ptypenode2->type->type_table[cltype] == idtype;
3579 }
3580 }
3581 if (!var4) {
3582 fprintf(stderr, "Runtime error: %s", "Assert failed");
3583 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23457);
3584 show_backtrace(1);
3585 }
3586 var_tdotnode3 = var_nodearraylist2;
3587 /* <var_tdotnode3:nullable Object> isa nullable TDot */
3588 cltype6 = type_nullable_parser_nodes__TDot.color;
3589 idtype7 = type_nullable_parser_nodes__TDot.id;
3590 if(var_tdotnode3 == NULL) {
3591 var5 = 1;
3592 } else {
3593 if(cltype6 >= var_tdotnode3->type->table_size) {
3594 var5 = 0;
3595 } else {
3596 var5 = var_tdotnode3->type->type_table[cltype6] == idtype7;
3597 }
3598 }
3599 if (!var5) {
3600 fprintf(stderr, "Runtime error: %s", "Assert failed");
3601 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23459);
3602 show_backtrace(1);
3603 }
3604 var_pmethidnode4 = var_nodearraylist3;
3605 /* <var_pmethidnode4:nullable Object> isa nullable AMethid */
3606 cltype9 = type_nullable_parser_nodes__AMethid.color;
3607 idtype10 = type_nullable_parser_nodes__AMethid.id;
3608 if(var_pmethidnode4 == NULL) {
3609 var8 = 1;
3610 } else {
3611 if(cltype9 >= var_pmethidnode4->type->table_size) {
3612 var8 = 0;
3613 } else {
3614 var8 = var_pmethidnode4->type->type_table[cltype9] == idtype10;
3615 }
3616 }
3617 if (!var8) {
3618 fprintf(stderr, "Runtime error: %s", "Assert failed");
3619 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23461);
3620 show_backtrace(1);
3621 }
3622 var11 = NEW_parser_nodes__AFullPropExternCall(&type_parser_nodes__AFullPropExternCall);
3623 ((void (*)(val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AFullPropExternCall__init_afullpropexterncall]))(var11, var_ptypenode2, var_tdotnode3, var_pmethidnode4) /* init_afullpropexterncall on <var11:AFullPropExternCall>*/;
3624 var_pexterncallnode1 = var11;
3625 var_node_list = var_pexterncallnode1;
3626 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction569> */
3627 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
3628 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
3629 RET_LABEL:;
3630 }
3631 /* method parser#ReduceAction569#action for (self: Object, Parser) */
3632 void VIRTUAL_parser__ReduceAction569__action(val* self, val* p0) {
3633 parser__ReduceAction569__action(self, p0);
3634 RET_LABEL:;
3635 }
3636 /* method parser#ReduceAction570#action for (self: ReduceAction570, Parser) */
3637 void parser__ReduceAction570__action(val* self, val* p0) {
3638 val* var_p /* var p: Parser */;
3639 val* var /* : null */;
3640 val* var_node_list /* var node_list: nullable Object */;
3641 val* var1 /* : nullable Object */;
3642 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3643 val* var_ptypenode2 /* var ptypenode2: nullable Object */;
3644 short int var2 /* : Bool */;
3645 int cltype;
3646 int idtype;
3647 val* var3 /* : AInitPropExternCall */;
3648 val* var_pexterncallnode1 /* var pexterncallnode1: nullable AInitPropExternCall */;
3649 long var4 /* : Int */;
3650 long var5 /* : Int */;
3651 var_p = p0;
3652 var = NULL;
3653 var_node_list = var;
3654 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3655 var_nodearraylist1 = var1;
3656 var_ptypenode2 = var_nodearraylist1;
3657 /* <var_ptypenode2:nullable Object> isa nullable AType */
3658 cltype = type_nullable_parser_nodes__AType.color;
3659 idtype = type_nullable_parser_nodes__AType.id;
3660 if(var_ptypenode2 == NULL) {
3661 var2 = 1;
3662 } else {
3663 if(cltype >= var_ptypenode2->type->table_size) {
3664 var2 = 0;
3665 } else {
3666 var2 = var_ptypenode2->type->type_table[cltype] == idtype;
3667 }
3668 }
3669 if (!var2) {
3670 fprintf(stderr, "Runtime error: %s", "Assert failed");
3671 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23478);
3672 show_backtrace(1);
3673 }
3674 var3 = NEW_parser_nodes__AInitPropExternCall(&type_parser_nodes__AInitPropExternCall);
3675 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AInitPropExternCall__init_ainitpropexterncall]))(var3, var_ptypenode2) /* init_ainitpropexterncall on <var3:AInitPropExternCall>*/;
3676 var_pexterncallnode1 = var3;
3677 var_node_list = var_pexterncallnode1;
3678 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction570> */
3679 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
3680 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
3681 RET_LABEL:;
3682 }
3683 /* method parser#ReduceAction570#action for (self: Object, Parser) */
3684 void VIRTUAL_parser__ReduceAction570__action(val* self, val* p0) {
3685 parser__ReduceAction570__action(self, p0);
3686 RET_LABEL:;
3687 }
3688 /* method parser#ReduceAction571#action for (self: ReduceAction571, Parser) */
3689 void parser__ReduceAction571__action(val* self, val* p0) {
3690 val* var_p /* var p: Parser */;
3691 val* var /* : null */;
3692 val* var_node_list /* var node_list: nullable Object */;
3693 val* var1 /* : nullable Object */;
3694 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
3695 val* var2 /* : nullable Object */;
3696 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
3697 val* var3 /* : nullable Object */;
3698 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
3699 val* var4 /* : nullable Object */;
3700 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
3701 val* var5 /* : nullable Object */;
3702 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3703 val* var6 /* : nullable Object */;
3704 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3705 val* var7 /* : nullable Object */;
3706 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3707 val* var8 /* : nullable Object */;
3708 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3709 val* var_ptypenode2 /* var ptypenode2: nullable Object */;
3710 short int var9 /* : Bool */;
3711 int cltype;
3712 int idtype;
3713 val* var_tkwasnode4 /* var tkwasnode4: nullable Object */;
3714 short int var10 /* : Bool */;
3715 int cltype11;
3716 int idtype12;
3717 val* var_ptypenode5 /* var ptypenode5: nullable Object */;
3718 short int var13 /* : Bool */;
3719 int cltype14;
3720 int idtype15;
3721 val* var16 /* : ACastAsExternCall */;
3722 val* var17 /* : null */;
3723 val* var_pexterncallnode1 /* var pexterncallnode1: nullable ACastAsExternCall */;
3724 long var18 /* : Int */;
3725 long var19 /* : Int */;
3726 var_p = p0;
3727 var = NULL;
3728 var_node_list = var;
3729 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3730 var_nodearraylist8 = var1;
3731 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3732 var_nodearraylist7 = var2;
3733 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3734 var_nodearraylist6 = var3;
3735 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3736 var_nodearraylist5 = var4;
3737 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3738 var_nodearraylist4 = var5;
3739 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3740 var_nodearraylist3 = var6;
3741 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3742 var_nodearraylist2 = var7;
3743 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3744 var_nodearraylist1 = var8;
3745 var_ptypenode2 = var_nodearraylist1;
3746 /* <var_ptypenode2:nullable Object> isa nullable AType */
3747 cltype = type_nullable_parser_nodes__AType.color;
3748 idtype = type_nullable_parser_nodes__AType.id;
3749 if(var_ptypenode2 == NULL) {
3750 var9 = 1;
3751 } else {
3752 if(cltype >= var_ptypenode2->type->table_size) {
3753 var9 = 0;
3754 } else {
3755 var9 = var_ptypenode2->type->type_table[cltype] == idtype;
3756 }
3757 }
3758 if (!var9) {
3759 fprintf(stderr, "Runtime error: %s", "Assert failed");
3760 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23500);
3761 show_backtrace(1);
3762 }
3763 var_tkwasnode4 = var_nodearraylist2;
3764 /* <var_tkwasnode4:nullable Object> isa nullable TKwas */
3765 cltype11 = type_nullable_parser_nodes__TKwas.color;
3766 idtype12 = type_nullable_parser_nodes__TKwas.id;
3767 if(var_tkwasnode4 == NULL) {
3768 var10 = 1;
3769 } else {
3770 if(cltype11 >= var_tkwasnode4->type->table_size) {
3771 var10 = 0;
3772 } else {
3773 var10 = var_tkwasnode4->type->type_table[cltype11] == idtype12;
3774 }
3775 }
3776 if (!var10) {
3777 fprintf(stderr, "Runtime error: %s", "Assert failed");
3778 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23502);
3779 show_backtrace(1);
3780 }
3781 var_ptypenode5 = var_nodearraylist6;
3782 /* <var_ptypenode5:nullable Object> isa nullable AType */
3783 cltype14 = type_nullable_parser_nodes__AType.color;
3784 idtype15 = type_nullable_parser_nodes__AType.id;
3785 if(var_ptypenode5 == NULL) {
3786 var13 = 1;
3787 } else {
3788 if(cltype14 >= var_ptypenode5->type->table_size) {
3789 var13 = 0;
3790 } else {
3791 var13 = var_ptypenode5->type->type_table[cltype14] == idtype15;
3792 }
3793 }
3794 if (!var13) {
3795 fprintf(stderr, "Runtime error: %s", "Assert failed");
3796 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23504);
3797 show_backtrace(1);
3798 }
3799 var16 = NEW_parser_nodes__ACastAsExternCall(&type_parser_nodes__ACastAsExternCall);
3800 var17 = NULL;
3801 ((void (*)(val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__ACastAsExternCall__init_acastasexterncall]))(var16, var_ptypenode2, var17, var_tkwasnode4, var_ptypenode5) /* init_acastasexterncall on <var16:ACastAsExternCall>*/;
3802 var_pexterncallnode1 = var16;
3803 var_node_list = var_pexterncallnode1;
3804 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction571> */
3805 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
3806 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
3807 RET_LABEL:;
3808 }
3809 /* method parser#ReduceAction571#action for (self: Object, Parser) */
3810 void VIRTUAL_parser__ReduceAction571__action(val* self, val* p0) {
3811 parser__ReduceAction571__action(self, p0);
3812 RET_LABEL:;
3813 }
3814 /* method parser#ReduceAction572#action for (self: ReduceAction572, Parser) */
3815 void parser__ReduceAction572__action(val* self, val* p0) {
3816 val* var_p /* var p: Parser */;
3817 val* var /* : null */;
3818 val* var_node_list /* var node_list: nullable Object */;
3819 val* var1 /* : nullable Object */;
3820 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
3821 val* var2 /* : nullable Object */;
3822 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
3823 val* var3 /* : nullable Object */;
3824 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
3825 val* var4 /* : nullable Object */;
3826 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
3827 val* var5 /* : nullable Object */;
3828 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
3829 val* var6 /* : nullable Object */;
3830 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3831 val* var7 /* : nullable Object */;
3832 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3833 val* var8 /* : nullable Object */;
3834 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3835 val* var9 /* : nullable Object */;
3836 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3837 val* var_ptypenode2 /* var ptypenode2: nullable Object */;
3838 short int var10 /* : Bool */;
3839 int cltype;
3840 int idtype;
3841 val* var_tdotnode3 /* var tdotnode3: nullable Object */;
3842 short int var11 /* : Bool */;
3843 int cltype12;
3844 int idtype13;
3845 val* var_tkwasnode4 /* var tkwasnode4: nullable Object */;
3846 short int var14 /* : Bool */;
3847 int cltype15;
3848 int idtype16;
3849 val* var_ptypenode5 /* var ptypenode5: nullable Object */;
3850 short int var17 /* : Bool */;
3851 int cltype18;
3852 int idtype19;
3853 val* var20 /* : ACastAsExternCall */;
3854 val* var_pexterncallnode1 /* var pexterncallnode1: nullable ACastAsExternCall */;
3855 long var21 /* : Int */;
3856 long var22 /* : Int */;
3857 var_p = p0;
3858 var = NULL;
3859 var_node_list = var;
3860 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3861 var_nodearraylist9 = var1;
3862 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3863 var_nodearraylist8 = var2;
3864 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3865 var_nodearraylist7 = var3;
3866 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3867 var_nodearraylist6 = var4;
3868 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3869 var_nodearraylist5 = var5;
3870 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3871 var_nodearraylist4 = var6;
3872 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3873 var_nodearraylist3 = var7;
3874 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3875 var_nodearraylist2 = var8;
3876 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3877 var_nodearraylist1 = var9;
3878 var_ptypenode2 = var_nodearraylist1;
3879 /* <var_ptypenode2:nullable Object> isa nullable AType */
3880 cltype = type_nullable_parser_nodes__AType.color;
3881 idtype = type_nullable_parser_nodes__AType.id;
3882 if(var_ptypenode2 == NULL) {
3883 var10 = 1;
3884 } else {
3885 if(cltype >= var_ptypenode2->type->table_size) {
3886 var10 = 0;
3887 } else {
3888 var10 = var_ptypenode2->type->type_table[cltype] == idtype;
3889 }
3890 }
3891 if (!var10) {
3892 fprintf(stderr, "Runtime error: %s", "Assert failed");
3893 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23530);
3894 show_backtrace(1);
3895 }
3896 var_tdotnode3 = var_nodearraylist2;
3897 /* <var_tdotnode3:nullable Object> isa nullable TDot */
3898 cltype12 = type_nullable_parser_nodes__TDot.color;
3899 idtype13 = type_nullable_parser_nodes__TDot.id;
3900 if(var_tdotnode3 == NULL) {
3901 var11 = 1;
3902 } else {
3903 if(cltype12 >= var_tdotnode3->type->table_size) {
3904 var11 = 0;
3905 } else {
3906 var11 = var_tdotnode3->type->type_table[cltype12] == idtype13;
3907 }
3908 }
3909 if (!var11) {
3910 fprintf(stderr, "Runtime error: %s", "Assert failed");
3911 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23532);
3912 show_backtrace(1);
3913 }
3914 var_tkwasnode4 = var_nodearraylist3;
3915 /* <var_tkwasnode4:nullable Object> isa nullable TKwas */
3916 cltype15 = type_nullable_parser_nodes__TKwas.color;
3917 idtype16 = type_nullable_parser_nodes__TKwas.id;
3918 if(var_tkwasnode4 == NULL) {
3919 var14 = 1;
3920 } else {
3921 if(cltype15 >= var_tkwasnode4->type->table_size) {
3922 var14 = 0;
3923 } else {
3924 var14 = var_tkwasnode4->type->type_table[cltype15] == idtype16;
3925 }
3926 }
3927 if (!var14) {
3928 fprintf(stderr, "Runtime error: %s", "Assert failed");
3929 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23534);
3930 show_backtrace(1);
3931 }
3932 var_ptypenode5 = var_nodearraylist7;
3933 /* <var_ptypenode5:nullable Object> isa nullable AType */
3934 cltype18 = type_nullable_parser_nodes__AType.color;
3935 idtype19 = type_nullable_parser_nodes__AType.id;
3936 if(var_ptypenode5 == NULL) {
3937 var17 = 1;
3938 } else {
3939 if(cltype18 >= var_ptypenode5->type->table_size) {
3940 var17 = 0;
3941 } else {
3942 var17 = var_ptypenode5->type->type_table[cltype18] == idtype19;
3943 }
3944 }
3945 if (!var17) {
3946 fprintf(stderr, "Runtime error: %s", "Assert failed");
3947 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23536);
3948 show_backtrace(1);
3949 }
3950 var20 = NEW_parser_nodes__ACastAsExternCall(&type_parser_nodes__ACastAsExternCall);
3951 ((void (*)(val*, val*, val*, val*, val*))(var20->class->vft[COLOR_parser_prod__ACastAsExternCall__init_acastasexterncall]))(var20, var_ptypenode2, var_tdotnode3, var_tkwasnode4, var_ptypenode5) /* init_acastasexterncall on <var20:ACastAsExternCall>*/;
3952 var_pexterncallnode1 = var20;
3953 var_node_list = var_pexterncallnode1;
3954 var21 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction572> */
3955 var22 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var21) /* go_to on <var_p:Parser>*/;
3956 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var22, var_node_list) /* push on <var_p:Parser>*/;
3957 RET_LABEL:;
3958 }
3959 /* method parser#ReduceAction572#action for (self: Object, Parser) */
3960 void VIRTUAL_parser__ReduceAction572__action(val* self, val* p0) {
3961 parser__ReduceAction572__action(self, p0);
3962 RET_LABEL:;
3963 }
3964 /* method parser#ReduceAction573#action for (self: ReduceAction573, Parser) */
3965 void parser__ReduceAction573__action(val* self, val* p0) {
3966 val* var_p /* var p: Parser */;
3967 val* var /* : null */;
3968 val* var_node_list /* var node_list: nullable Object */;
3969 val* var1 /* : nullable Object */;
3970 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3971 val* var2 /* : nullable Object */;
3972 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3973 val* var3 /* : nullable Object */;
3974 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3975 val* var4 /* : nullable Object */;
3976 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3977 val* var_ptypenode2 /* var ptypenode2: nullable Object */;
3978 short int var5 /* : Bool */;
3979 int cltype;
3980 int idtype;
3981 val* var_tkwasnode3 /* var tkwasnode3: nullable Object */;
3982 short int var6 /* : Bool */;
3983 int cltype7;
3984 int idtype8;
3985 val* var_tkwnullablenode4 /* var tkwnullablenode4: nullable Object */;
3986 short int var9 /* : Bool */;
3987 int cltype10;
3988 int idtype11;
3989 val* var12 /* : AAsNullableExternCall */;
3990 val* var_pexterncallnode1 /* var pexterncallnode1: nullable AAsNullableExternCall */;
3991 long var13 /* : Int */;
3992 long var14 /* : Int */;
3993 var_p = p0;
3994 var = NULL;
3995 var_node_list = var;
3996 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3997 var_nodearraylist4 = var1;
3998 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3999 var_nodearraylist3 = var2;
4000 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4001 var_nodearraylist2 = var3;
4002 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4003 var_nodearraylist1 = var4;
4004 var_ptypenode2 = var_nodearraylist1;
4005 /* <var_ptypenode2:nullable Object> isa nullable AType */
4006 cltype = type_nullable_parser_nodes__AType.color;
4007 idtype = type_nullable_parser_nodes__AType.id;
4008 if(var_ptypenode2 == NULL) {
4009 var5 = 1;
4010 } else {
4011 if(cltype >= var_ptypenode2->type->table_size) {
4012 var5 = 0;
4013 } else {
4014 var5 = var_ptypenode2->type->type_table[cltype] == idtype;
4015 }
4016 }
4017 if (!var5) {
4018 fprintf(stderr, "Runtime error: %s", "Assert failed");
4019 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23557);
4020 show_backtrace(1);
4021 }
4022 var_tkwasnode3 = var_nodearraylist2;
4023 /* <var_tkwasnode3:nullable Object> isa nullable TKwas */
4024 cltype7 = type_nullable_parser_nodes__TKwas.color;
4025 idtype8 = type_nullable_parser_nodes__TKwas.id;
4026 if(var_tkwasnode3 == NULL) {
4027 var6 = 1;
4028 } else {
4029 if(cltype7 >= var_tkwasnode3->type->table_size) {
4030 var6 = 0;
4031 } else {
4032 var6 = var_tkwasnode3->type->type_table[cltype7] == idtype8;
4033 }
4034 }
4035 if (!var6) {
4036 fprintf(stderr, "Runtime error: %s", "Assert failed");
4037 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23559);
4038 show_backtrace(1);
4039 }
4040 var_tkwnullablenode4 = var_nodearraylist4;
4041 /* <var_tkwnullablenode4:nullable Object> isa nullable TKwnullable */
4042 cltype10 = type_nullable_parser_nodes__TKwnullable.color;
4043 idtype11 = type_nullable_parser_nodes__TKwnullable.id;
4044 if(var_tkwnullablenode4 == NULL) {
4045 var9 = 1;
4046 } else {
4047 if(cltype10 >= var_tkwnullablenode4->type->table_size) {
4048 var9 = 0;
4049 } else {
4050 var9 = var_tkwnullablenode4->type->type_table[cltype10] == idtype11;
4051 }
4052 }
4053 if (!var9) {
4054 fprintf(stderr, "Runtime error: %s", "Assert failed");
4055 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23561);
4056 show_backtrace(1);
4057 }
4058 var12 = NEW_parser_nodes__AAsNullableExternCall(&type_parser_nodes__AAsNullableExternCall);
4059 ((void (*)(val*, val*, val*, val*))(var12->class->vft[COLOR_parser_prod__AAsNullableExternCall__init_aasnullableexterncall]))(var12, var_ptypenode2, var_tkwasnode3, var_tkwnullablenode4) /* init_aasnullableexterncall on <var12:AAsNullableExternCall>*/;
4060 var_pexterncallnode1 = var12;
4061 var_node_list = var_pexterncallnode1;
4062 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction573> */
4063 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
4064 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
4065 RET_LABEL:;
4066 }
4067 /* method parser#ReduceAction573#action for (self: Object, Parser) */
4068 void VIRTUAL_parser__ReduceAction573__action(val* self, val* p0) {
4069 parser__ReduceAction573__action(self, p0);
4070 RET_LABEL:;
4071 }
4072 /* method parser#ReduceAction574#action for (self: ReduceAction574, Parser) */
4073 void parser__ReduceAction574__action(val* self, val* p0) {
4074 val* var_p /* var p: Parser */;
4075 val* var /* : null */;
4076 val* var_node_list /* var node_list: nullable Object */;
4077 val* var1 /* : nullable Object */;
4078 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4079 val* var2 /* : nullable Object */;
4080 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4081 val* var3 /* : nullable Object */;
4082 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4083 val* var4 /* : nullable Object */;
4084 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4085 val* var5 /* : nullable Object */;
4086 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4087 val* var_ptypenode2 /* var ptypenode2: nullable Object */;
4088 short int var6 /* : Bool */;
4089 int cltype;
4090 int idtype;
4091 val* var_tkwasnode3 /* var tkwasnode3: nullable Object */;
4092 short int var7 /* : Bool */;
4093 int cltype8;
4094 int idtype9;
4095 val* var_tkwnullablenode4 /* var tkwnullablenode4: nullable Object */;
4096 short int var10 /* : Bool */;
4097 int cltype11;
4098 int idtype12;
4099 val* var13 /* : AAsNullableExternCall */;
4100 val* var_pexterncallnode1 /* var pexterncallnode1: nullable AAsNullableExternCall */;
4101 long var14 /* : Int */;
4102 long var15 /* : Int */;
4103 var_p = p0;
4104 var = NULL;
4105 var_node_list = var;
4106 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4107 var_nodearraylist5 = var1;
4108 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4109 var_nodearraylist4 = var2;
4110 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4111 var_nodearraylist3 = var3;
4112 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4113 var_nodearraylist2 = var4;
4114 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4115 var_nodearraylist1 = var5;
4116 var_ptypenode2 = var_nodearraylist1;
4117 /* <var_ptypenode2:nullable Object> isa nullable AType */
4118 cltype = type_nullable_parser_nodes__AType.color;
4119 idtype = type_nullable_parser_nodes__AType.id;
4120 if(var_ptypenode2 == NULL) {
4121 var6 = 1;
4122 } else {
4123 if(cltype >= var_ptypenode2->type->table_size) {
4124 var6 = 0;
4125 } else {
4126 var6 = var_ptypenode2->type->type_table[cltype] == idtype;
4127 }
4128 }
4129 if (!var6) {
4130 fprintf(stderr, "Runtime error: %s", "Assert failed");
4131 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23582);
4132 show_backtrace(1);
4133 }
4134 var_tkwasnode3 = var_nodearraylist3;
4135 /* <var_tkwasnode3:nullable Object> isa nullable TKwas */
4136 cltype8 = type_nullable_parser_nodes__TKwas.color;
4137 idtype9 = type_nullable_parser_nodes__TKwas.id;
4138 if(var_tkwasnode3 == NULL) {
4139 var7 = 1;
4140 } else {
4141 if(cltype8 >= var_tkwasnode3->type->table_size) {
4142 var7 = 0;
4143 } else {
4144 var7 = var_tkwasnode3->type->type_table[cltype8] == idtype9;
4145 }
4146 }
4147 if (!var7) {
4148 fprintf(stderr, "Runtime error: %s", "Assert failed");
4149 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23584);
4150 show_backtrace(1);
4151 }
4152 var_tkwnullablenode4 = var_nodearraylist5;
4153 /* <var_tkwnullablenode4:nullable Object> isa nullable TKwnullable */
4154 cltype11 = type_nullable_parser_nodes__TKwnullable.color;
4155 idtype12 = type_nullable_parser_nodes__TKwnullable.id;
4156 if(var_tkwnullablenode4 == NULL) {
4157 var10 = 1;
4158 } else {
4159 if(cltype11 >= var_tkwnullablenode4->type->table_size) {
4160 var10 = 0;
4161 } else {
4162 var10 = var_tkwnullablenode4->type->type_table[cltype11] == idtype12;
4163 }
4164 }
4165 if (!var10) {
4166 fprintf(stderr, "Runtime error: %s", "Assert failed");
4167 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23586);
4168 show_backtrace(1);
4169 }
4170 var13 = NEW_parser_nodes__AAsNullableExternCall(&type_parser_nodes__AAsNullableExternCall);
4171 ((void (*)(val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__AAsNullableExternCall__init_aasnullableexterncall]))(var13, var_ptypenode2, var_tkwasnode3, var_tkwnullablenode4) /* init_aasnullableexterncall on <var13:AAsNullableExternCall>*/;
4172 var_pexterncallnode1 = var13;
4173 var_node_list = var_pexterncallnode1;
4174 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction574> */
4175 var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
4176 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
4177 RET_LABEL:;
4178 }
4179 /* method parser#ReduceAction574#action for (self: Object, Parser) */
4180 void VIRTUAL_parser__ReduceAction574__action(val* self, val* p0) {
4181 parser__ReduceAction574__action(self, p0);
4182 RET_LABEL:;
4183 }
4184 /* method parser#ReduceAction575#action for (self: ReduceAction575, Parser) */
4185 void parser__ReduceAction575__action(val* self, val* p0) {
4186 val* var_p /* var p: Parser */;
4187 val* var /* : null */;
4188 val* var_node_list /* var node_list: nullable Object */;
4189 val* var1 /* : nullable Object */;
4190 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4191 val* var2 /* : nullable Object */;
4192 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4193 val* var3 /* : nullable Object */;
4194 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4195 val* var4 /* : nullable Object */;
4196 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4197 val* var5 /* : nullable Object */;
4198 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4199 val* var6 /* : nullable Object */;
4200 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4201 val* var_ptypenode2 /* var ptypenode2: nullable Object */;
4202 short int var7 /* : Bool */;
4203 int cltype;
4204 int idtype;
4205 val* var_tkwasnode3 /* var tkwasnode3: nullable Object */;
4206 short int var8 /* : Bool */;
4207 int cltype9;
4208 int idtype10;
4209 val* var_tkwnotnode4 /* var tkwnotnode4: nullable Object */;
4210 short int var11 /* : Bool */;
4211 int cltype12;
4212 int idtype13;
4213 val* var_tkwnullablenode5 /* var tkwnullablenode5: nullable Object */;
4214 short int var14 /* : Bool */;
4215 int cltype15;
4216 int idtype16;
4217 val* var17 /* : AAsNotNullableExternCall */;
4218 val* var_pexterncallnode1 /* var pexterncallnode1: nullable AAsNotNullableExternCall */;
4219 long var18 /* : Int */;
4220 long var19 /* : Int */;
4221 var_p = p0;
4222 var = NULL;
4223 var_node_list = var;
4224 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4225 var_nodearraylist6 = var1;
4226 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4227 var_nodearraylist5 = var2;
4228 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4229 var_nodearraylist4 = var3;
4230 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4231 var_nodearraylist3 = var4;
4232 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4233 var_nodearraylist2 = var5;
4234 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4235 var_nodearraylist1 = var6;
4236 var_ptypenode2 = var_nodearraylist1;
4237 /* <var_ptypenode2:nullable Object> isa nullable AType */
4238 cltype = type_nullable_parser_nodes__AType.color;
4239 idtype = type_nullable_parser_nodes__AType.id;
4240 if(var_ptypenode2 == NULL) {
4241 var7 = 1;
4242 } else {
4243 if(cltype >= var_ptypenode2->type->table_size) {
4244 var7 = 0;
4245 } else {
4246 var7 = var_ptypenode2->type->type_table[cltype] == idtype;
4247 }
4248 }
4249 if (!var7) {
4250 fprintf(stderr, "Runtime error: %s", "Assert failed");
4251 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23608);
4252 show_backtrace(1);
4253 }
4254 var_tkwasnode3 = var_nodearraylist2;
4255 /* <var_tkwasnode3:nullable Object> isa nullable TKwas */
4256 cltype9 = type_nullable_parser_nodes__TKwas.color;
4257 idtype10 = type_nullable_parser_nodes__TKwas.id;
4258 if(var_tkwasnode3 == NULL) {
4259 var8 = 1;
4260 } else {
4261 if(cltype9 >= var_tkwasnode3->type->table_size) {
4262 var8 = 0;
4263 } else {
4264 var8 = var_tkwasnode3->type->type_table[cltype9] == idtype10;
4265 }
4266 }
4267 if (!var8) {
4268 fprintf(stderr, "Runtime error: %s", "Assert failed");
4269 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23610);
4270 show_backtrace(1);
4271 }
4272 var_tkwnotnode4 = var_nodearraylist4;
4273 /* <var_tkwnotnode4:nullable Object> isa nullable TKwnot */
4274 cltype12 = type_nullable_parser_nodes__TKwnot.color;
4275 idtype13 = type_nullable_parser_nodes__TKwnot.id;
4276 if(var_tkwnotnode4 == NULL) {
4277 var11 = 1;
4278 } else {
4279 if(cltype12 >= var_tkwnotnode4->type->table_size) {
4280 var11 = 0;
4281 } else {
4282 var11 = var_tkwnotnode4->type->type_table[cltype12] == idtype13;
4283 }
4284 }
4285 if (!var11) {
4286 fprintf(stderr, "Runtime error: %s", "Assert failed");
4287 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23612);
4288 show_backtrace(1);
4289 }
4290 var_tkwnullablenode5 = var_nodearraylist6;
4291 /* <var_tkwnullablenode5:nullable Object> isa nullable TKwnullable */
4292 cltype15 = type_nullable_parser_nodes__TKwnullable.color;
4293 idtype16 = type_nullable_parser_nodes__TKwnullable.id;
4294 if(var_tkwnullablenode5 == NULL) {
4295 var14 = 1;
4296 } else {
4297 if(cltype15 >= var_tkwnullablenode5->type->table_size) {
4298 var14 = 0;
4299 } else {
4300 var14 = var_tkwnullablenode5->type->type_table[cltype15] == idtype16;
4301 }
4302 }
4303 if (!var14) {
4304 fprintf(stderr, "Runtime error: %s", "Assert failed");
4305 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23614);
4306 show_backtrace(1);
4307 }
4308 var17 = NEW_parser_nodes__AAsNotNullableExternCall(&type_parser_nodes__AAsNotNullableExternCall);
4309 ((void (*)(val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AAsNotNullableExternCall__init_aasnotnullableexterncall]))(var17, var_ptypenode2, var_tkwasnode3, var_tkwnotnode4, var_tkwnullablenode5) /* init_aasnotnullableexterncall on <var17:AAsNotNullableExternCall>*/;
4310 var_pexterncallnode1 = var17;
4311 var_node_list = var_pexterncallnode1;
4312 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction575> */
4313 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
4314 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
4315 RET_LABEL:;
4316 }
4317 /* method parser#ReduceAction575#action for (self: Object, Parser) */
4318 void VIRTUAL_parser__ReduceAction575__action(val* self, val* p0) {
4319 parser__ReduceAction575__action(self, p0);
4320 RET_LABEL:;
4321 }
4322 /* method parser#ReduceAction576#action for (self: ReduceAction576, Parser) */
4323 void parser__ReduceAction576__action(val* self, val* p0) {
4324 val* var_p /* var p: Parser */;
4325 val* var /* : null */;
4326 val* var_node_list /* var node_list: nullable Object */;
4327 val* var1 /* : nullable Object */;
4328 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
4329 val* var2 /* : nullable Object */;
4330 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4331 val* var3 /* : nullable Object */;
4332 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4333 val* var4 /* : nullable Object */;
4334 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4335 val* var5 /* : nullable Object */;
4336 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4337 val* var6 /* : nullable Object */;
4338 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4339 val* var7 /* : nullable Object */;
4340 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4341 val* var_ptypenode2 /* var ptypenode2: nullable Object */;
4342 short int var8 /* : Bool */;
4343 int cltype;
4344 int idtype;
4345 val* var_tkwasnode3 /* var tkwasnode3: nullable Object */;
4346 short int var9 /* : Bool */;
4347 int cltype10;
4348 int idtype11;
4349 val* var_tkwnotnode4 /* var tkwnotnode4: nullable Object */;
4350 short int var12 /* : Bool */;
4351 int cltype13;
4352 int idtype14;
4353 val* var_tkwnullablenode5 /* var tkwnullablenode5: nullable Object */;
4354 short int var15 /* : Bool */;
4355 int cltype16;
4356 int idtype17;
4357 val* var18 /* : AAsNotNullableExternCall */;
4358 val* var_pexterncallnode1 /* var pexterncallnode1: nullable AAsNotNullableExternCall */;
4359 long var19 /* : Int */;
4360 long var20 /* : Int */;
4361 var_p = p0;
4362 var = NULL;
4363 var_node_list = var;
4364 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4365 var_nodearraylist7 = var1;
4366 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4367 var_nodearraylist6 = var2;
4368 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4369 var_nodearraylist5 = var3;
4370 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4371 var_nodearraylist4 = var4;
4372 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4373 var_nodearraylist3 = var5;
4374 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4375 var_nodearraylist2 = var6;
4376 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4377 var_nodearraylist1 = var7;
4378 var_ptypenode2 = var_nodearraylist1;
4379 /* <var_ptypenode2:nullable Object> isa nullable AType */
4380 cltype = type_nullable_parser_nodes__AType.color;
4381 idtype = type_nullable_parser_nodes__AType.id;
4382 if(var_ptypenode2 == NULL) {
4383 var8 = 1;
4384 } else {
4385 if(cltype >= var_ptypenode2->type->table_size) {
4386 var8 = 0;
4387 } else {
4388 var8 = var_ptypenode2->type->type_table[cltype] == idtype;
4389 }
4390 }
4391 if (!var8) {
4392 fprintf(stderr, "Runtime error: %s", "Assert failed");
4393 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23638);
4394 show_backtrace(1);
4395 }
4396 var_tkwasnode3 = var_nodearraylist3;
4397 /* <var_tkwasnode3:nullable Object> isa nullable TKwas */
4398 cltype10 = type_nullable_parser_nodes__TKwas.color;
4399 idtype11 = type_nullable_parser_nodes__TKwas.id;
4400 if(var_tkwasnode3 == NULL) {
4401 var9 = 1;
4402 } else {
4403 if(cltype10 >= var_tkwasnode3->type->table_size) {
4404 var9 = 0;
4405 } else {
4406 var9 = var_tkwasnode3->type->type_table[cltype10] == idtype11;
4407 }
4408 }
4409 if (!var9) {
4410 fprintf(stderr, "Runtime error: %s", "Assert failed");
4411 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23640);
4412 show_backtrace(1);
4413 }
4414 var_tkwnotnode4 = var_nodearraylist5;
4415 /* <var_tkwnotnode4:nullable Object> isa nullable TKwnot */
4416 cltype13 = type_nullable_parser_nodes__TKwnot.color;
4417 idtype14 = type_nullable_parser_nodes__TKwnot.id;
4418 if(var_tkwnotnode4 == NULL) {
4419 var12 = 1;
4420 } else {
4421 if(cltype13 >= var_tkwnotnode4->type->table_size) {
4422 var12 = 0;
4423 } else {
4424 var12 = var_tkwnotnode4->type->type_table[cltype13] == idtype14;
4425 }
4426 }
4427 if (!var12) {
4428 fprintf(stderr, "Runtime error: %s", "Assert failed");
4429 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23642);
4430 show_backtrace(1);
4431 }
4432 var_tkwnullablenode5 = var_nodearraylist7;
4433 /* <var_tkwnullablenode5:nullable Object> isa nullable TKwnullable */
4434 cltype16 = type_nullable_parser_nodes__TKwnullable.color;
4435 idtype17 = type_nullable_parser_nodes__TKwnullable.id;
4436 if(var_tkwnullablenode5 == NULL) {
4437 var15 = 1;
4438 } else {
4439 if(cltype16 >= var_tkwnullablenode5->type->table_size) {
4440 var15 = 0;
4441 } else {
4442 var15 = var_tkwnullablenode5->type->type_table[cltype16] == idtype17;
4443 }
4444 }
4445 if (!var15) {
4446 fprintf(stderr, "Runtime error: %s", "Assert failed");
4447 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23644);
4448 show_backtrace(1);
4449 }
4450 var18 = NEW_parser_nodes__AAsNotNullableExternCall(&type_parser_nodes__AAsNotNullableExternCall);
4451 ((void (*)(val*, val*, val*, val*, val*))(var18->class->vft[COLOR_parser_prod__AAsNotNullableExternCall__init_aasnotnullableexterncall]))(var18, var_ptypenode2, var_tkwasnode3, var_tkwnotnode4, var_tkwnullablenode5) /* init_aasnotnullableexterncall on <var18:AAsNotNullableExternCall>*/;
4452 var_pexterncallnode1 = var18;
4453 var_node_list = var_pexterncallnode1;
4454 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction576> */
4455 var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
4456 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
4457 RET_LABEL:;
4458 }
4459 /* method parser#ReduceAction576#action for (self: Object, Parser) */
4460 void VIRTUAL_parser__ReduceAction576__action(val* self, val* p0) {
4461 parser__ReduceAction576__action(self, p0);
4462 RET_LABEL:;
4463 }
4464 /* method parser#ReduceAction577#action for (self: ReduceAction577, Parser) */
4465 void parser__ReduceAction577__action(val* self, val* p0) {
4466 val* var_p /* var p: Parser */;
4467 val* var /* : null */;
4468 val* var_node_list /* var node_list: nullable Object */;
4469 val* var1 /* : nullable Object */;
4470 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4471 val* var2 /* : nullable Object */;
4472 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4473 val* var_tkwinnode2 /* var tkwinnode2: nullable Object */;
4474 short int var3 /* : Bool */;
4475 int cltype;
4476 int idtype;
4477 val* var_tstringnode3 /* var tstringnode3: nullable Object */;
4478 short int var4 /* : Bool */;
4479 int cltype5;
4480 int idtype6;
4481 val* var7 /* : AInLanguage */;
4482 val* var_pinlanguagenode1 /* var pinlanguagenode1: nullable AInLanguage */;
4483 long var8 /* : Int */;
4484 long var9 /* : Int */;
4485 var_p = p0;
4486 var = NULL;
4487 var_node_list = var;
4488 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4489 var_nodearraylist2 = var1;
4490 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4491 var_nodearraylist1 = var2;
4492 var_tkwinnode2 = var_nodearraylist1;
4493 /* <var_tkwinnode2:nullable Object> isa nullable TKwin */
4494 cltype = type_nullable_parser_nodes__TKwin.color;
4495 idtype = type_nullable_parser_nodes__TKwin.id;
4496 if(var_tkwinnode2 == NULL) {
4497 var3 = 1;
4498 } else {
4499 if(cltype >= var_tkwinnode2->type->table_size) {
4500 var3 = 0;
4501 } else {
4502 var3 = var_tkwinnode2->type->type_table[cltype] == idtype;
4503 }
4504 }
4505 if (!var3) {
4506 fprintf(stderr, "Runtime error: %s", "Assert failed");
4507 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23663);
4508 show_backtrace(1);
4509 }
4510 var_tstringnode3 = var_nodearraylist2;
4511 /* <var_tstringnode3:nullable Object> isa nullable TString */
4512 cltype5 = type_nullable_parser_nodes__TString.color;
4513 idtype6 = type_nullable_parser_nodes__TString.id;
4514 if(var_tstringnode3 == NULL) {
4515 var4 = 1;
4516 } else {
4517 if(cltype5 >= var_tstringnode3->type->table_size) {
4518 var4 = 0;
4519 } else {
4520 var4 = var_tstringnode3->type->type_table[cltype5] == idtype6;
4521 }
4522 }
4523 if (!var4) {
4524 fprintf(stderr, "Runtime error: %s", "Assert failed");
4525 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23665);
4526 show_backtrace(1);
4527 }
4528 var7 = NEW_parser_nodes__AInLanguage(&type_parser_nodes__AInLanguage);
4529 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AInLanguage__init_ainlanguage]))(var7, var_tkwinnode2, var_tstringnode3) /* init_ainlanguage on <var7:AInLanguage>*/;
4530 var_pinlanguagenode1 = var7;
4531 var_node_list = var_pinlanguagenode1;
4532 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction577> */
4533 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
4534 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
4535 RET_LABEL:;
4536 }
4537 /* method parser#ReduceAction577#action for (self: Object, Parser) */
4538 void VIRTUAL_parser__ReduceAction577__action(val* self, val* p0) {
4539 parser__ReduceAction577__action(self, p0);
4540 RET_LABEL:;
4541 }
4542 /* method parser#ReduceAction578#action for (self: ReduceAction578, Parser) */
4543 void parser__ReduceAction578__action(val* self, val* p0) {
4544 val* var_p /* var p: Parser */;
4545 val* var /* : null */;
4546 val* var_node_list /* var node_list: nullable Object */;
4547 val* var1 /* : nullable Object */;
4548 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4549 val* var_texterncodesegmentnode3 /* var texterncodesegmentnode3: nullable Object */;
4550 short int var2 /* : Bool */;
4551 int cltype;
4552 int idtype;
4553 val* var3 /* : AExternCodeBlock */;
4554 val* var4 /* : null */;
4555 val* var_pexterncodeblocknode1 /* var pexterncodeblocknode1: nullable AExternCodeBlock */;
4556 long var5 /* : Int */;
4557 long var6 /* : Int */;
4558 var_p = p0;
4559 var = NULL;
4560 var_node_list = var;
4561 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4562 var_nodearraylist1 = var1;
4563 var_texterncodesegmentnode3 = var_nodearraylist1;
4564 /* <var_texterncodesegmentnode3:nullable Object> isa nullable TExternCodeSegment */
4565 cltype = type_nullable_parser_nodes__TExternCodeSegment.color;
4566 idtype = type_nullable_parser_nodes__TExternCodeSegment.id;
4567 if(var_texterncodesegmentnode3 == NULL) {
4568 var2 = 1;
4569 } else {
4570 if(cltype >= var_texterncodesegmentnode3->type->table_size) {
4571 var2 = 0;
4572 } else {
4573 var2 = var_texterncodesegmentnode3->type->type_table[cltype] == idtype;
4574 }
4575 }
4576 if (!var2) {
4577 fprintf(stderr, "Runtime error: %s", "Assert failed");
4578 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23681);
4579 show_backtrace(1);
4580 }
4581 var3 = NEW_parser_nodes__AExternCodeBlock(&type_parser_nodes__AExternCodeBlock);
4582 var4 = NULL;
4583 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AExternCodeBlock__init_aexterncodeblock]))(var3, var4, var_texterncodesegmentnode3) /* init_aexterncodeblock on <var3:AExternCodeBlock>*/;
4584 var_pexterncodeblocknode1 = var3;
4585 var_node_list = var_pexterncodeblocknode1;
4586 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction578> */
4587 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
4588 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
4589 RET_LABEL:;
4590 }
4591 /* method parser#ReduceAction578#action for (self: Object, Parser) */
4592 void VIRTUAL_parser__ReduceAction578__action(val* self, val* p0) {
4593 parser__ReduceAction578__action(self, p0);
4594 RET_LABEL:;
4595 }
4596 /* method parser#ReduceAction579#action for (self: ReduceAction579, Parser) */
4597 void parser__ReduceAction579__action(val* self, val* p0) {
4598 val* var_p /* var p: Parser */;
4599 val* var /* : null */;
4600 val* var_node_list /* var node_list: nullable Object */;
4601 val* var1 /* : nullable Object */;
4602 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4603 val* var2 /* : nullable Object */;
4604 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4605 val* var_pinlanguagenode2 /* var pinlanguagenode2: nullable Object */;
4606 short int var3 /* : Bool */;
4607 int cltype;
4608 int idtype;
4609 val* var_texterncodesegmentnode3 /* var texterncodesegmentnode3: nullable Object */;
4610 short int var4 /* : Bool */;
4611 int cltype5;
4612 int idtype6;
4613 val* var7 /* : AExternCodeBlock */;
4614 val* var_pexterncodeblocknode1 /* var pexterncodeblocknode1: nullable AExternCodeBlock */;
4615 long var8 /* : Int */;
4616 long var9 /* : Int */;
4617 var_p = p0;
4618 var = NULL;
4619 var_node_list = var;
4620 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4621 var_nodearraylist2 = var1;
4622 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4623 var_nodearraylist1 = var2;
4624 var_pinlanguagenode2 = var_nodearraylist1;
4625 /* <var_pinlanguagenode2:nullable Object> isa nullable AInLanguage */
4626 cltype = type_nullable_parser_nodes__AInLanguage.color;
4627 idtype = type_nullable_parser_nodes__AInLanguage.id;
4628 if(var_pinlanguagenode2 == NULL) {
4629 var3 = 1;
4630 } else {
4631 if(cltype >= var_pinlanguagenode2->type->table_size) {
4632 var3 = 0;
4633 } else {
4634 var3 = var_pinlanguagenode2->type->type_table[cltype] == idtype;
4635 }
4636 }
4637 if (!var3) {
4638 fprintf(stderr, "Runtime error: %s", "Assert failed");
4639 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23698);
4640 show_backtrace(1);
4641 }
4642 var_texterncodesegmentnode3 = var_nodearraylist2;
4643 /* <var_texterncodesegmentnode3:nullable Object> isa nullable TExternCodeSegment */
4644 cltype5 = type_nullable_parser_nodes__TExternCodeSegment.color;
4645 idtype6 = type_nullable_parser_nodes__TExternCodeSegment.id;
4646 if(var_texterncodesegmentnode3 == NULL) {
4647 var4 = 1;
4648 } else {
4649 if(cltype5 >= var_texterncodesegmentnode3->type->table_size) {
4650 var4 = 0;
4651 } else {
4652 var4 = var_texterncodesegmentnode3->type->type_table[cltype5] == idtype6;
4653 }
4654 }
4655 if (!var4) {
4656 fprintf(stderr, "Runtime error: %s", "Assert failed");
4657 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23700);
4658 show_backtrace(1);
4659 }
4660 var7 = NEW_parser_nodes__AExternCodeBlock(&type_parser_nodes__AExternCodeBlock);
4661 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AExternCodeBlock__init_aexterncodeblock]))(var7, var_pinlanguagenode2, var_texterncodesegmentnode3) /* init_aexterncodeblock on <var7:AExternCodeBlock>*/;
4662 var_pexterncodeblocknode1 = var7;
4663 var_node_list = var_pexterncodeblocknode1;
4664 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction579> */
4665 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
4666 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
4667 RET_LABEL:;
4668 }
4669 /* method parser#ReduceAction579#action for (self: Object, Parser) */
4670 void VIRTUAL_parser__ReduceAction579__action(val* self, val* p0) {
4671 parser__ReduceAction579__action(self, p0);
4672 RET_LABEL:;
4673 }
4674 /* method parser#ReduceAction580#action for (self: ReduceAction580, Parser) */
4675 void parser__ReduceAction580__action(val* self, val* p0) {
4676 val* var_p /* var p: Parser */;
4677 val* var /* : null */;
4678 val* var_node_list /* var node_list: nullable Object */;
4679 val* var1 /* : nullable Object */;
4680 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4681 val* var2 /* : nullable Object */;
4682 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4683 val* var_pexterncodeblocknode1 /* var pexterncodeblocknode1: nullable Object */;
4684 long var3 /* : Int */;
4685 long var4 /* : Int */;
4686 var_p = p0;
4687 var = NULL;
4688 var_node_list = var;
4689 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4690 var_nodearraylist2 = var1;
4691 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4692 var_nodearraylist1 = var2;
4693 var_pexterncodeblocknode1 = var_nodearraylist2;
4694 var_node_list = var_pexterncodeblocknode1;
4695 var3 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction580> */
4696 var4 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var3) /* go_to on <var_p:Parser>*/;
4697 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var4, var_node_list) /* push on <var_p:Parser>*/;
4698 RET_LABEL:;
4699 }
4700 /* method parser#ReduceAction580#action for (self: Object, Parser) */
4701 void VIRTUAL_parser__ReduceAction580__action(val* self, val* p0) {
4702 parser__ReduceAction580__action(self, p0);
4703 RET_LABEL:;
4704 }
4705 /* method parser#ReduceAction581#action for (self: ReduceAction581, Parser) */
4706 void parser__ReduceAction581__action(val* self, val* p0) {
4707 val* var_p /* var p: Parser */;
4708 val* var /* : null */;
4709 val* var_node_list /* var node_list: nullable Object */;
4710 val* var1 /* : nullable Object */;
4711 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4712 val* var2 /* : Array[Object] */;
4713 val* var_listnode4 /* var listnode4: Array[Object] */;
4714 val* var_tclassidnode3 /* var tclassidnode3: nullable Object */;
4715 short int var3 /* : Bool */;
4716 int cltype;
4717 int idtype;
4718 val* var4 /* : AType */;
4719 val* var5 /* : null */;
4720 val* var6 /* : null */;
4721 val* var_ptypenode1 /* var ptypenode1: nullable AType */;
4722 long var7 /* : Int */;
4723 long var8 /* : Int */;
4724 var_p = p0;
4725 var = NULL;
4726 var_node_list = var;
4727 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4728 var_nodearraylist1 = var1;
4729 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
4730 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
4731 var_listnode4 = var2;
4732 var_tclassidnode3 = var_nodearraylist1;
4733 /* <var_tclassidnode3:nullable Object> isa nullable TClassid */
4734 cltype = type_nullable_parser_nodes__TClassid.color;
4735 idtype = type_nullable_parser_nodes__TClassid.id;
4736 if(var_tclassidnode3 == NULL) {
4737 var3 = 1;
4738 } else {
4739 if(cltype >= var_tclassidnode3->type->table_size) {
4740 var3 = 0;
4741 } else {
4742 var3 = var_tclassidnode3->type->type_table[cltype] == idtype;
4743 }
4744 }
4745 if (!var3) {
4746 fprintf(stderr, "Runtime error: %s", "Assert failed");
4747 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23729);
4748 show_backtrace(1);
4749 }
4750 var4 = NEW_parser_nodes__AType(&type_parser_nodes__AType);
4751 var5 = NULL;
4752 var6 = NULL;
4753 ((void (*)(val*, val*, val*, val*, val*))(var4->class->vft[COLOR_parser_prod__AType__init_atype]))(var4, var5, var_tclassidnode3, var_listnode4, var6) /* init_atype on <var4:AType>*/;
4754 var_ptypenode1 = var4;
4755 var_node_list = var_ptypenode1;
4756 var7 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction581> */
4757 var8 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var7) /* go_to on <var_p:Parser>*/;
4758 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var8, var_node_list) /* push on <var_p:Parser>*/;
4759 RET_LABEL:;
4760 }
4761 /* method parser#ReduceAction581#action for (self: Object, Parser) */
4762 void VIRTUAL_parser__ReduceAction581__action(val* self, val* p0) {
4763 parser__ReduceAction581__action(self, p0);
4764 RET_LABEL:;
4765 }
4766 /* method parser#ReduceAction582#action for (self: ReduceAction582, Parser) */
4767 void parser__ReduceAction582__action(val* self, val* p0) {
4768 val* var_p /* var p: Parser */;
4769 val* var /* : null */;
4770 val* var_node_list /* var node_list: nullable Object */;
4771 val* var1 /* : nullable Object */;
4772 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4773 val* var2 /* : nullable Object */;
4774 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4775 val* var3 /* : Array[Object] */;
4776 val* var_listnode4 /* var listnode4: Array[Object] */;
4777 val* var_tkwnullablenode2 /* var tkwnullablenode2: nullable Object */;
4778 short int var4 /* : Bool */;
4779 int cltype;
4780 int idtype;
4781 val* var_tclassidnode3 /* var tclassidnode3: nullable Object */;
4782 short int var5 /* : Bool */;
4783 int cltype6;
4784 int idtype7;
4785 val* var8 /* : AType */;
4786 val* var9 /* : null */;
4787 val* var_ptypenode1 /* var ptypenode1: nullable AType */;
4788 long var10 /* : Int */;
4789 long var11 /* : Int */;
4790 var_p = p0;
4791 var = NULL;
4792 var_node_list = var;
4793 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4794 var_nodearraylist2 = var1;
4795 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4796 var_nodearraylist1 = var2;
4797 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
4798 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
4799 var_listnode4 = var3;
4800 var_tkwnullablenode2 = var_nodearraylist1;
4801 /* <var_tkwnullablenode2:nullable Object> isa nullable TKwnullable */
4802 cltype = type_nullable_parser_nodes__TKwnullable.color;
4803 idtype = type_nullable_parser_nodes__TKwnullable.id;
4804 if(var_tkwnullablenode2 == NULL) {
4805 var4 = 1;
4806 } else {
4807 if(cltype >= var_tkwnullablenode2->type->table_size) {
4808 var4 = 0;
4809 } else {
4810 var4 = var_tkwnullablenode2->type->type_table[cltype] == idtype;
4811 }
4812 }
4813 if (!var4) {
4814 fprintf(stderr, "Runtime error: %s", "Assert failed");
4815 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23749);
4816 show_backtrace(1);
4817 }
4818 var_tclassidnode3 = var_nodearraylist2;
4819 /* <var_tclassidnode3:nullable Object> isa nullable TClassid */
4820 cltype6 = type_nullable_parser_nodes__TClassid.color;
4821 idtype7 = type_nullable_parser_nodes__TClassid.id;
4822 if(var_tclassidnode3 == NULL) {
4823 var5 = 1;
4824 } else {
4825 if(cltype6 >= var_tclassidnode3->type->table_size) {
4826 var5 = 0;
4827 } else {
4828 var5 = var_tclassidnode3->type->type_table[cltype6] == idtype7;
4829 }
4830 }
4831 if (!var5) {
4832 fprintf(stderr, "Runtime error: %s", "Assert failed");
4833 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23751);
4834 show_backtrace(1);
4835 }
4836 var8 = NEW_parser_nodes__AType(&type_parser_nodes__AType);
4837 var9 = NULL;
4838 ((void (*)(val*, val*, val*, val*, val*))(var8->class->vft[COLOR_parser_prod__AType__init_atype]))(var8, var_tkwnullablenode2, var_tclassidnode3, var_listnode4, var9) /* init_atype on <var8:AType>*/;
4839 var_ptypenode1 = var8;
4840 var_node_list = var_ptypenode1;
4841 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction582> */
4842 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
4843 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
4844 RET_LABEL:;
4845 }
4846 /* method parser#ReduceAction582#action for (self: Object, Parser) */
4847 void VIRTUAL_parser__ReduceAction582__action(val* self, val* p0) {
4848 parser__ReduceAction582__action(self, p0);
4849 RET_LABEL:;
4850 }
4851 /* method parser#ReduceAction583#action for (self: ReduceAction583, Parser) */
4852 void parser__ReduceAction583__action(val* self, val* p0) {
4853 val* var_p /* var p: Parser */;
4854 val* var /* : null */;
4855 val* var_node_list /* var node_list: nullable Object */;
4856 val* var1 /* : nullable Object */;
4857 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4858 val* var2 /* : nullable Object */;
4859 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4860 val* var3 /* : Array[Object] */;
4861 val* var_listnode4 /* var listnode4: Array[Object] */;
4862 val* var_tclassidnode3 /* var tclassidnode3: nullable Object */;
4863 short int var4 /* : Bool */;
4864 int cltype;
4865 int idtype;
4866 val* var_pannotationsnode5 /* var pannotationsnode5: nullable Object */;
4867 short int var5 /* : Bool */;
4868 int cltype6;
4869 int idtype7;
4870 val* var8 /* : AType */;
4871 val* var9 /* : null */;
4872 val* var_ptypenode1 /* var ptypenode1: nullable AType */;
4873 long var10 /* : Int */;
4874 long var11 /* : Int */;
4875 var_p = p0;
4876 var = NULL;
4877 var_node_list = var;
4878 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4879 var_nodearraylist2 = var1;
4880 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4881 var_nodearraylist1 = var2;
4882 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
4883 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
4884 var_listnode4 = var3;
4885 var_tclassidnode3 = var_nodearraylist1;
4886 /* <var_tclassidnode3:nullable Object> isa nullable TClassid */
4887 cltype = type_nullable_parser_nodes__TClassid.color;
4888 idtype = type_nullable_parser_nodes__TClassid.id;
4889 if(var_tclassidnode3 == NULL) {
4890 var4 = 1;
4891 } else {
4892 if(cltype >= var_tclassidnode3->type->table_size) {
4893 var4 = 0;
4894 } else {
4895 var4 = var_tclassidnode3->type->type_table[cltype] == idtype;
4896 }
4897 }
4898 if (!var4) {
4899 fprintf(stderr, "Runtime error: %s", "Assert failed");
4900 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23771);
4901 show_backtrace(1);
4902 }
4903 var_pannotationsnode5 = var_nodearraylist2;
4904 /* <var_pannotationsnode5:nullable Object> isa nullable AAnnotations */
4905 cltype6 = type_nullable_parser_nodes__AAnnotations.color;
4906 idtype7 = type_nullable_parser_nodes__AAnnotations.id;
4907 if(var_pannotationsnode5 == NULL) {
4908 var5 = 1;
4909 } else {
4910 if(cltype6 >= var_pannotationsnode5->type->table_size) {
4911 var5 = 0;
4912 } else {
4913 var5 = var_pannotationsnode5->type->type_table[cltype6] == idtype7;
4914 }
4915 }
4916 if (!var5) {
4917 fprintf(stderr, "Runtime error: %s", "Assert failed");
4918 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23773);
4919 show_backtrace(1);
4920 }
4921 var8 = NEW_parser_nodes__AType(&type_parser_nodes__AType);
4922 var9 = NULL;
4923 ((void (*)(val*, val*, val*, val*, val*))(var8->class->vft[COLOR_parser_prod__AType__init_atype]))(var8, var9, var_tclassidnode3, var_listnode4, var_pannotationsnode5) /* init_atype on <var8:AType>*/;
4924 var_ptypenode1 = var8;
4925 var_node_list = var_ptypenode1;
4926 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction583> */
4927 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
4928 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
4929 RET_LABEL:;
4930 }
4931 /* method parser#ReduceAction583#action for (self: Object, Parser) */
4932 void VIRTUAL_parser__ReduceAction583__action(val* self, val* p0) {
4933 parser__ReduceAction583__action(self, p0);
4934 RET_LABEL:;
4935 }
4936 /* method parser#ReduceAction584#action for (self: ReduceAction584, Parser) */
4937 void parser__ReduceAction584__action(val* self, val* p0) {
4938 val* var_p /* var p: Parser */;
4939 val* var /* : null */;
4940 val* var_node_list /* var node_list: nullable Object */;
4941 val* var1 /* : nullable Object */;
4942 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4943 val* var2 /* : nullable Object */;
4944 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4945 val* var3 /* : nullable Object */;
4946 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4947 val* var4 /* : Array[Object] */;
4948 val* var_listnode4 /* var listnode4: Array[Object] */;
4949 val* var_tkwnullablenode2 /* var tkwnullablenode2: nullable Object */;
4950 short int var5 /* : Bool */;
4951 int cltype;
4952 int idtype;
4953 val* var_tclassidnode3 /* var tclassidnode3: nullable Object */;
4954 short int var6 /* : Bool */;
4955 int cltype7;
4956 int idtype8;
4957 val* var_pannotationsnode5 /* var pannotationsnode5: nullable Object */;
4958 short int var9 /* : Bool */;
4959 int cltype10;
4960 int idtype11;
4961 val* var12 /* : AType */;
4962 val* var_ptypenode1 /* var ptypenode1: nullable AType */;
4963 long var13 /* : Int */;
4964 long var14 /* : Int */;
4965 var_p = p0;
4966 var = NULL;
4967 var_node_list = var;
4968 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4969 var_nodearraylist3 = var1;
4970 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4971 var_nodearraylist2 = var2;
4972 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4973 var_nodearraylist1 = var3;
4974 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
4975 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
4976 var_listnode4 = var4;
4977 var_tkwnullablenode2 = var_nodearraylist1;
4978 /* <var_tkwnullablenode2:nullable Object> isa nullable TKwnullable */
4979 cltype = type_nullable_parser_nodes__TKwnullable.color;
4980 idtype = type_nullable_parser_nodes__TKwnullable.id;
4981 if(var_tkwnullablenode2 == NULL) {
4982 var5 = 1;
4983 } else {
4984 if(cltype >= var_tkwnullablenode2->type->table_size) {
4985 var5 = 0;
4986 } else {
4987 var5 = var_tkwnullablenode2->type->type_table[cltype] == idtype;
4988 }
4989 }
4990 if (!var5) {
4991 fprintf(stderr, "Runtime error: %s", "Assert failed");
4992 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23794);
4993 show_backtrace(1);
4994 }
4995 var_tclassidnode3 = var_nodearraylist2;
4996 /* <var_tclassidnode3:nullable Object> isa nullable TClassid */
4997 cltype7 = type_nullable_parser_nodes__TClassid.color;
4998 idtype8 = type_nullable_parser_nodes__TClassid.id;
4999 if(var_tclassidnode3 == NULL) {
5000 var6 = 1;
5001 } else {
5002 if(cltype7 >= var_tclassidnode3->type->table_size) {
5003 var6 = 0;
5004 } else {
5005 var6 = var_tclassidnode3->type->type_table[cltype7] == idtype8;
5006 }
5007 }
5008 if (!var6) {
5009 fprintf(stderr, "Runtime error: %s", "Assert failed");
5010 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23796);
5011 show_backtrace(1);
5012 }
5013 var_pannotationsnode5 = var_nodearraylist3;
5014 /* <var_pannotationsnode5:nullable Object> isa nullable AAnnotations */
5015 cltype10 = type_nullable_parser_nodes__AAnnotations.color;
5016 idtype11 = type_nullable_parser_nodes__AAnnotations.id;
5017 if(var_pannotationsnode5 == NULL) {
5018 var9 = 1;
5019 } else {
5020 if(cltype10 >= var_pannotationsnode5->type->table_size) {
5021 var9 = 0;
5022 } else {
5023 var9 = var_pannotationsnode5->type->type_table[cltype10] == idtype11;
5024 }
5025 }
5026 if (!var9) {
5027 fprintf(stderr, "Runtime error: %s", "Assert failed");
5028 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23798);
5029 show_backtrace(1);
5030 }
5031 var12 = NEW_parser_nodes__AType(&type_parser_nodes__AType);
5032 ((void (*)(val*, val*, val*, val*, val*))(var12->class->vft[COLOR_parser_prod__AType__init_atype]))(var12, var_tkwnullablenode2, var_tclassidnode3, var_listnode4, var_pannotationsnode5) /* init_atype on <var12:AType>*/;
5033 var_ptypenode1 = var12;
5034 var_node_list = var_ptypenode1;
5035 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction584> */
5036 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
5037 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
5038 RET_LABEL:;
5039 }
5040 /* method parser#ReduceAction584#action for (self: Object, Parser) */
5041 void VIRTUAL_parser__ReduceAction584__action(val* self, val* p0) {
5042 parser__ReduceAction584__action(self, p0);
5043 RET_LABEL:;
5044 }
5045 /* method parser#ReduceAction585#action for (self: ReduceAction585, Parser) */
5046 void parser__ReduceAction585__action(val* self, val* p0) {
5047 val* var_p /* var p: Parser */;
5048 val* var /* : null */;
5049 val* var_node_list /* var node_list: nullable Object */;
5050 val* var1 /* : nullable Object */;
5051 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5052 val* var2 /* : nullable Object */;
5053 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5054 val* var3 /* : nullable Object */;
5055 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5056 val* var4 /* : nullable Object */;
5057 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5058 val* var5 /* : nullable Object */;
5059 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5060 val* var6 /* : nullable Object */;
5061 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5062 val* var7 /* : Array[Object] */;
5063 val* var_listnode5 /* var listnode5: Array[Object] */;
5064 val* var_tclassidnode3 /* var tclassidnode3: nullable Object */;
5065 short int var8 /* : Bool */;
5066 int cltype;
5067 int idtype;
5068 val* var_listnode4 /* var listnode4: nullable Object */;
5069 short int var9 /* : Bool */;
5070 int cltype10;
5071 int idtype11;
5072 val* var12 /* : Array[Object] */;
5073 val* var13 /* : AType */;
5074 val* var14 /* : null */;
5075 val* var15 /* : null */;
5076 val* var_ptypenode1 /* var ptypenode1: nullable AType */;
5077 long var16 /* : Int */;
5078 long var17 /* : Int */;
5079 var_p = p0;
5080 var = NULL;
5081 var_node_list = var;
5082 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5083 var_nodearraylist6 = var1;
5084 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5085 var_nodearraylist5 = var2;
5086 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5087 var_nodearraylist4 = var3;
5088 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5089 var_nodearraylist3 = var4;
5090 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5091 var_nodearraylist2 = var5;
5092 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5093 var_nodearraylist1 = var6;
5094 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
5095 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
5096 var_listnode5 = var7;
5097 var_tclassidnode3 = var_nodearraylist1;
5098 /* <var_tclassidnode3:nullable Object> isa nullable TClassid */
5099 cltype = type_nullable_parser_nodes__TClassid.color;
5100 idtype = type_nullable_parser_nodes__TClassid.id;
5101 if(var_tclassidnode3 == NULL) {
5102 var8 = 1;
5103 } else {
5104 if(cltype >= var_tclassidnode3->type->table_size) {
5105 var8 = 0;
5106 } else {
5107 var8 = var_tclassidnode3->type->type_table[cltype] == idtype;
5108 }
5109 }
5110 if (!var8) {
5111 fprintf(stderr, "Runtime error: %s", "Assert failed");
5112 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23822);
5113 show_backtrace(1);
5114 }
5115 var_listnode4 = var_nodearraylist4;
5116 /* <var_listnode4:nullable Object> isa Array[Object] */
5117 cltype10 = type_array__Arraykernel__Object.color;
5118 idtype11 = type_array__Arraykernel__Object.id;
5119 if(var_listnode4 == NULL) {
5120 var9 = 0;
5121 } else {
5122 if(cltype10 >= var_listnode4->type->table_size) {
5123 var9 = 0;
5124 } else {
5125 var9 = var_listnode4->type->type_table[cltype10] == idtype11;
5126 }
5127 }
5128 if (!var9) {
5129 fprintf(stderr, "Runtime error: %s", "Assert failed");
5130 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23824);
5131 show_backtrace(1);
5132 }
5133 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction585>*/;
5134 var_listnode5 = var12;
5135 var13 = NEW_parser_nodes__AType(&type_parser_nodes__AType);
5136 var14 = NULL;
5137 var15 = NULL;
5138 ((void (*)(val*, val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__AType__init_atype]))(var13, var14, var_tclassidnode3, var_listnode5, var15) /* init_atype on <var13:AType>*/;
5139 var_ptypenode1 = var13;
5140 var_node_list = var_ptypenode1;
5141 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction585> */
5142 var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
5143 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
5144 RET_LABEL:;
5145 }
5146 /* method parser#ReduceAction585#action for (self: Object, Parser) */
5147 void VIRTUAL_parser__ReduceAction585__action(val* self, val* p0) {
5148 parser__ReduceAction585__action(self, p0);
5149 RET_LABEL:;
5150 }
5151 /* method parser#ReduceAction586#action for (self: ReduceAction586, Parser) */
5152 void parser__ReduceAction586__action(val* self, val* p0) {
5153 val* var_p /* var p: Parser */;
5154 val* var /* : null */;
5155 val* var_node_list /* var node_list: nullable Object */;
5156 val* var1 /* : nullable Object */;
5157 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
5158 val* var2 /* : nullable Object */;
5159 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5160 val* var3 /* : nullable Object */;
5161 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5162 val* var4 /* : nullable Object */;
5163 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5164 val* var5 /* : nullable Object */;
5165 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5166 val* var6 /* : nullable Object */;
5167 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5168 val* var7 /* : nullable Object */;
5169 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5170 val* var8 /* : Array[Object] */;
5171 val* var_listnode5 /* var listnode5: Array[Object] */;
5172 val* var_tkwnullablenode2 /* var tkwnullablenode2: nullable Object */;
5173 short int var9 /* : Bool */;
5174 int cltype;
5175 int idtype;
5176 val* var_tclassidnode3 /* var tclassidnode3: nullable Object */;
5177 short int var10 /* : Bool */;
5178 int cltype11;
5179 int idtype12;
5180 val* var_listnode4 /* var listnode4: nullable Object */;
5181 short int var13 /* : Bool */;
5182 int cltype14;
5183 int idtype15;
5184 val* var16 /* : Array[Object] */;
5185 val* var17 /* : AType */;
5186 val* var18 /* : null */;
5187 val* var_ptypenode1 /* var ptypenode1: nullable AType */;
5188 long var19 /* : Int */;
5189 long var20 /* : Int */;
5190 var_p = p0;
5191 var = NULL;
5192 var_node_list = var;
5193 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5194 var_nodearraylist7 = var1;
5195 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5196 var_nodearraylist6 = var2;
5197 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5198 var_nodearraylist5 = var3;
5199 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5200 var_nodearraylist4 = var4;
5201 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5202 var_nodearraylist3 = var5;
5203 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5204 var_nodearraylist2 = var6;
5205 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5206 var_nodearraylist1 = var7;
5207 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
5208 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
5209 var_listnode5 = var8;
5210 var_tkwnullablenode2 = var_nodearraylist1;
5211 /* <var_tkwnullablenode2:nullable Object> isa nullable TKwnullable */
5212 cltype = type_nullable_parser_nodes__TKwnullable.color;
5213 idtype = type_nullable_parser_nodes__TKwnullable.id;
5214 if(var_tkwnullablenode2 == NULL) {
5215 var9 = 1;
5216 } else {
5217 if(cltype >= var_tkwnullablenode2->type->table_size) {
5218 var9 = 0;
5219 } else {
5220 var9 = var_tkwnullablenode2->type->type_table[cltype] == idtype;
5221 }
5222 }
5223 if (!var9) {
5224 fprintf(stderr, "Runtime error: %s", "Assert failed");
5225 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23850);
5226 show_backtrace(1);
5227 }
5228 var_tclassidnode3 = var_nodearraylist2;
5229 /* <var_tclassidnode3:nullable Object> isa nullable TClassid */
5230 cltype11 = type_nullable_parser_nodes__TClassid.color;
5231 idtype12 = type_nullable_parser_nodes__TClassid.id;
5232 if(var_tclassidnode3 == NULL) {
5233 var10 = 1;
5234 } else {
5235 if(cltype11 >= var_tclassidnode3->type->table_size) {
5236 var10 = 0;
5237 } else {
5238 var10 = var_tclassidnode3->type->type_table[cltype11] == idtype12;
5239 }
5240 }
5241 if (!var10) {
5242 fprintf(stderr, "Runtime error: %s", "Assert failed");
5243 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23852);
5244 show_backtrace(1);
5245 }
5246 var_listnode4 = var_nodearraylist5;
5247 /* <var_listnode4:nullable Object> isa Array[Object] */
5248 cltype14 = type_array__Arraykernel__Object.color;
5249 idtype15 = type_array__Arraykernel__Object.id;
5250 if(var_listnode4 == NULL) {
5251 var13 = 0;
5252 } else {
5253 if(cltype14 >= var_listnode4->type->table_size) {
5254 var13 = 0;
5255 } else {
5256 var13 = var_listnode4->type->type_table[cltype14] == idtype15;
5257 }
5258 }
5259 if (!var13) {
5260 fprintf(stderr, "Runtime error: %s", "Assert failed");
5261 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23854);
5262 show_backtrace(1);
5263 }
5264 var16 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction586>*/;
5265 var_listnode5 = var16;
5266 var17 = NEW_parser_nodes__AType(&type_parser_nodes__AType);
5267 var18 = NULL;
5268 ((void (*)(val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AType__init_atype]))(var17, var_tkwnullablenode2, var_tclassidnode3, var_listnode5, var18) /* init_atype on <var17:AType>*/;
5269 var_ptypenode1 = var17;
5270 var_node_list = var_ptypenode1;
5271 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction586> */
5272 var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
5273 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
5274 RET_LABEL:;
5275 }
5276 /* method parser#ReduceAction586#action for (self: Object, Parser) */
5277 void VIRTUAL_parser__ReduceAction586__action(val* self, val* p0) {
5278 parser__ReduceAction586__action(self, p0);
5279 RET_LABEL:;
5280 }
5281 /* method parser#ReduceAction587#action for (self: ReduceAction587, Parser) */
5282 void parser__ReduceAction587__action(val* self, val* p0) {
5283 val* var_p /* var p: Parser */;
5284 val* var /* : null */;
5285 val* var_node_list /* var node_list: nullable Object */;
5286 val* var1 /* : nullable Object */;
5287 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
5288 val* var2 /* : nullable Object */;
5289 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5290 val* var3 /* : nullable Object */;
5291 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5292 val* var4 /* : nullable Object */;
5293 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5294 val* var5 /* : nullable Object */;
5295 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5296 val* var6 /* : nullable Object */;
5297 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5298 val* var7 /* : nullable Object */;
5299 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5300 val* var8 /* : Array[Object] */;
5301 val* var_listnode5 /* var listnode5: Array[Object] */;
5302 val* var_tclassidnode3 /* var tclassidnode3: nullable Object */;
5303 short int var9 /* : Bool */;
5304 int cltype;
5305 int idtype;
5306 val* var_listnode4 /* var listnode4: nullable Object */;
5307 short int var10 /* : Bool */;
5308 int cltype11;
5309 int idtype12;
5310 val* var13 /* : Array[Object] */;
5311 val* var_pannotationsnode6 /* var pannotationsnode6: nullable Object */;
5312 short int var14 /* : Bool */;
5313 int cltype15;
5314 int idtype16;
5315 val* var17 /* : AType */;
5316 val* var18 /* : null */;
5317 val* var_ptypenode1 /* var ptypenode1: nullable AType */;
5318 long var19 /* : Int */;
5319 long var20 /* : Int */;
5320 var_p = p0;
5321 var = NULL;
5322 var_node_list = var;
5323 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5324 var_nodearraylist7 = var1;
5325 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5326 var_nodearraylist6 = var2;
5327 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5328 var_nodearraylist5 = var3;
5329 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5330 var_nodearraylist4 = var4;
5331 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5332 var_nodearraylist3 = var5;
5333 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5334 var_nodearraylist2 = var6;
5335 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5336 var_nodearraylist1 = var7;
5337 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
5338 ((void (*)(val*))(var8->class->vft[COLOR_array__Array__init]))(var8) /* init on <var8:Array[Object]>*/;
5339 var_listnode5 = var8;
5340 var_tclassidnode3 = var_nodearraylist1;
5341 /* <var_tclassidnode3:nullable Object> isa nullable TClassid */
5342 cltype = type_nullable_parser_nodes__TClassid.color;
5343 idtype = type_nullable_parser_nodes__TClassid.id;
5344 if(var_tclassidnode3 == NULL) {
5345 var9 = 1;
5346 } else {
5347 if(cltype >= var_tclassidnode3->type->table_size) {
5348 var9 = 0;
5349 } else {
5350 var9 = var_tclassidnode3->type->type_table[cltype] == idtype;
5351 }
5352 }
5353 if (!var9) {
5354 fprintf(stderr, "Runtime error: %s", "Assert failed");
5355 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23880);
5356 show_backtrace(1);
5357 }
5358 var_listnode4 = var_nodearraylist4;
5359 /* <var_listnode4:nullable Object> isa Array[Object] */
5360 cltype11 = type_array__Arraykernel__Object.color;
5361 idtype12 = type_array__Arraykernel__Object.id;
5362 if(var_listnode4 == NULL) {
5363 var10 = 0;
5364 } else {
5365 if(cltype11 >= var_listnode4->type->table_size) {
5366 var10 = 0;
5367 } else {
5368 var10 = var_listnode4->type->type_table[cltype11] == idtype12;
5369 }
5370 }
5371 if (!var10) {
5372 fprintf(stderr, "Runtime error: %s", "Assert failed");
5373 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23882);
5374 show_backtrace(1);
5375 }
5376 var13 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction587>*/;
5377 var_listnode5 = var13;
5378 var_pannotationsnode6 = var_nodearraylist7;
5379 /* <var_pannotationsnode6:nullable Object> isa nullable AAnnotations */
5380 cltype15 = type_nullable_parser_nodes__AAnnotations.color;
5381 idtype16 = type_nullable_parser_nodes__AAnnotations.id;
5382 if(var_pannotationsnode6 == NULL) {
5383 var14 = 1;
5384 } else {
5385 if(cltype15 >= var_pannotationsnode6->type->table_size) {
5386 var14 = 0;
5387 } else {
5388 var14 = var_pannotationsnode6->type->type_table[cltype15] == idtype16;
5389 }
5390 }
5391 if (!var14) {
5392 fprintf(stderr, "Runtime error: %s", "Assert failed");
5393 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23885);
5394 show_backtrace(1);
5395 }
5396 var17 = NEW_parser_nodes__AType(&type_parser_nodes__AType);
5397 var18 = NULL;
5398 ((void (*)(val*, val*, val*, val*, val*))(var17->class->vft[COLOR_parser_prod__AType__init_atype]))(var17, var18, var_tclassidnode3, var_listnode5, var_pannotationsnode6) /* init_atype on <var17:AType>*/;
5399 var_ptypenode1 = var17;
5400 var_node_list = var_ptypenode1;
5401 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction587> */
5402 var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
5403 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
5404 RET_LABEL:;
5405 }
5406 /* method parser#ReduceAction587#action for (self: Object, Parser) */
5407 void VIRTUAL_parser__ReduceAction587__action(val* self, val* p0) {
5408 parser__ReduceAction587__action(self, p0);
5409 RET_LABEL:;
5410 }
5411 /* method parser#ReduceAction588#action for (self: ReduceAction588, Parser) */
5412 void parser__ReduceAction588__action(val* self, val* p0) {
5413 val* var_p /* var p: Parser */;
5414 val* var /* : null */;
5415 val* var_node_list /* var node_list: nullable Object */;
5416 val* var1 /* : nullable Object */;
5417 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
5418 val* var2 /* : nullable Object */;
5419 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
5420 val* var3 /* : nullable Object */;
5421 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5422 val* var4 /* : nullable Object */;
5423 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5424 val* var5 /* : nullable Object */;
5425 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5426 val* var6 /* : nullable Object */;
5427 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5428 val* var7 /* : nullable Object */;
5429 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5430 val* var8 /* : nullable Object */;
5431 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5432 val* var9 /* : Array[Object] */;
5433 val* var_listnode5 /* var listnode5: Array[Object] */;
5434 val* var_tkwnullablenode2 /* var tkwnullablenode2: nullable Object */;
5435 short int var10 /* : Bool */;
5436 int cltype;
5437 int idtype;
5438 val* var_tclassidnode3 /* var tclassidnode3: nullable Object */;
5439 short int var11 /* : Bool */;
5440 int cltype12;
5441 int idtype13;
5442 val* var_listnode4 /* var listnode4: nullable Object */;
5443 short int var14 /* : Bool */;
5444 int cltype15;
5445 int idtype16;
5446 val* var17 /* : Array[Object] */;
5447 val* var_pannotationsnode6 /* var pannotationsnode6: nullable Object */;
5448 short int var18 /* : Bool */;
5449 int cltype19;
5450 int idtype20;
5451 val* var21 /* : AType */;
5452 val* var_ptypenode1 /* var ptypenode1: nullable AType */;
5453 long var22 /* : Int */;
5454 long var23 /* : Int */;
5455 var_p = p0;
5456 var = NULL;
5457 var_node_list = var;
5458 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5459 var_nodearraylist8 = var1;
5460 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5461 var_nodearraylist7 = var2;
5462 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5463 var_nodearraylist6 = var3;
5464 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5465 var_nodearraylist5 = var4;
5466 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5467 var_nodearraylist4 = var5;
5468 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5469 var_nodearraylist3 = var6;
5470 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5471 var_nodearraylist2 = var7;
5472 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5473 var_nodearraylist1 = var8;
5474 var9 = NEW_array__Array(&type_array__Arraykernel__Object);
5475 ((void (*)(val*))(var9->class->vft[COLOR_array__Array__init]))(var9) /* init on <var9:Array[Object]>*/;
5476 var_listnode5 = var9;
5477 var_tkwnullablenode2 = var_nodearraylist1;
5478 /* <var_tkwnullablenode2:nullable Object> isa nullable TKwnullable */
5479 cltype = type_nullable_parser_nodes__TKwnullable.color;
5480 idtype = type_nullable_parser_nodes__TKwnullable.id;
5481 if(var_tkwnullablenode2 == NULL) {
5482 var10 = 1;
5483 } else {
5484 if(cltype >= var_tkwnullablenode2->type->table_size) {
5485 var10 = 0;
5486 } else {
5487 var10 = var_tkwnullablenode2->type->type_table[cltype] == idtype;
5488 }
5489 }
5490 if (!var10) {
5491 fprintf(stderr, "Runtime error: %s", "Assert failed");
5492 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23911);
5493 show_backtrace(1);
5494 }
5495 var_tclassidnode3 = var_nodearraylist2;
5496 /* <var_tclassidnode3:nullable Object> isa nullable TClassid */
5497 cltype12 = type_nullable_parser_nodes__TClassid.color;
5498 idtype13 = type_nullable_parser_nodes__TClassid.id;
5499 if(var_tclassidnode3 == NULL) {
5500 var11 = 1;
5501 } else {
5502 if(cltype12 >= var_tclassidnode3->type->table_size) {
5503 var11 = 0;
5504 } else {
5505 var11 = var_tclassidnode3->type->type_table[cltype12] == idtype13;
5506 }
5507 }
5508 if (!var11) {
5509 fprintf(stderr, "Runtime error: %s", "Assert failed");
5510 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23913);
5511 show_backtrace(1);
5512 }
5513 var_listnode4 = var_nodearraylist5;
5514 /* <var_listnode4:nullable Object> isa Array[Object] */
5515 cltype15 = type_array__Arraykernel__Object.color;
5516 idtype16 = type_array__Arraykernel__Object.id;
5517 if(var_listnode4 == NULL) {
5518 var14 = 0;
5519 } else {
5520 if(cltype15 >= var_listnode4->type->table_size) {
5521 var14 = 0;
5522 } else {
5523 var14 = var_listnode4->type->type_table[cltype15] == idtype16;
5524 }
5525 }
5526 if (!var14) {
5527 fprintf(stderr, "Runtime error: %s", "Assert failed");
5528 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23915);
5529 show_backtrace(1);
5530 }
5531 var17 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode5, var_listnode4) /* concat on <self:ReduceAction588>*/;
5532 var_listnode5 = var17;
5533 var_pannotationsnode6 = var_nodearraylist8;
5534 /* <var_pannotationsnode6:nullable Object> isa nullable AAnnotations */
5535 cltype19 = type_nullable_parser_nodes__AAnnotations.color;
5536 idtype20 = type_nullable_parser_nodes__AAnnotations.id;
5537 if(var_pannotationsnode6 == NULL) {
5538 var18 = 1;
5539 } else {
5540 if(cltype19 >= var_pannotationsnode6->type->table_size) {
5541 var18 = 0;
5542 } else {
5543 var18 = var_pannotationsnode6->type->type_table[cltype19] == idtype20;
5544 }
5545 }
5546 if (!var18) {
5547 fprintf(stderr, "Runtime error: %s", "Assert failed");
5548 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23918);
5549 show_backtrace(1);
5550 }
5551 var21 = NEW_parser_nodes__AType(&type_parser_nodes__AType);
5552 ((void (*)(val*, val*, val*, val*, val*))(var21->class->vft[COLOR_parser_prod__AType__init_atype]))(var21, var_tkwnullablenode2, var_tclassidnode3, var_listnode5, var_pannotationsnode6) /* init_atype on <var21:AType>*/;
5553 var_ptypenode1 = var21;
5554 var_node_list = var_ptypenode1;
5555 var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction588> */
5556 var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
5557 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
5558 RET_LABEL:;
5559 }
5560 /* method parser#ReduceAction588#action for (self: Object, Parser) */
5561 void VIRTUAL_parser__ReduceAction588__action(val* self, val* p0) {
5562 parser__ReduceAction588__action(self, p0);
5563 RET_LABEL:;
5564 }
5565 /* method parser#ReduceAction589#action for (self: ReduceAction589, Parser) */
5566 void parser__ReduceAction589__action(val* self, val* p0) {
5567 val* var_p /* var p: Parser */;
5568 val* var /* : null */;
5569 val* var_node_list /* var node_list: nullable Object */;
5570 val* var1 /* : nullable Object */;
5571 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5572 val* var2 /* : Array[Object] */;
5573 val* var_listnode2 /* var listnode2: Array[Object] */;
5574 val* var_ptypenode1 /* var ptypenode1: nullable Object */;
5575 val* var3 /* : null */;
5576 short int var4 /* : Bool */;
5577 long var5 /* : Int */;
5578 long var6 /* : Int */;
5579 var_p = p0;
5580 var = NULL;
5581 var_node_list = var;
5582 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5583 var_nodearraylist1 = var1;
5584 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
5585 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
5586 var_listnode2 = var2;
5587 var_ptypenode1 = var_nodearraylist1;
5588 var3 = NULL;
5589 if (var_ptypenode1 == NULL) {
5590 var4 = 0; /* is null */
5591 } else {
5592 var4 = 1; /* arg is null and recv is not */
5593 }
5594 if (var4){
5595 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_ptypenode1) /* add on <var_listnode2:Array[Object]>*/;
5596 } else {
5597 }
5598 var_node_list = var_listnode2;
5599 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction589> */
5600 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
5601 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
5602 RET_LABEL:;
5603 }
5604 /* method parser#ReduceAction589#action for (self: Object, Parser) */
5605 void VIRTUAL_parser__ReduceAction589__action(val* self, val* p0) {
5606 parser__ReduceAction589__action(self, p0);
5607 RET_LABEL:;
5608 }
5609 /* method parser#ReduceAction590#action for (self: ReduceAction590, Parser) */
5610 void parser__ReduceAction590__action(val* self, val* p0) {
5611 val* var_p /* var p: Parser */;
5612 val* var /* : null */;
5613 val* var_node_list /* var node_list: nullable Object */;
5614 val* var1 /* : nullable Object */;
5615 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5616 val* var2 /* : nullable Object */;
5617 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5618 val* var3 /* : Array[Object] */;
5619 val* var_listnode3 /* var listnode3: Array[Object] */;
5620 val* var_ptypenode1 /* var ptypenode1: nullable Object */;
5621 val* var_listnode2 /* var listnode2: nullable Object */;
5622 short int var4 /* : Bool */;
5623 int cltype;
5624 int idtype;
5625 val* var5 /* : null */;
5626 short int var6 /* : Bool */;
5627 val* var7 /* : Array[Object] */;
5628 long var8 /* : Int */;
5629 long var9 /* : Int */;
5630 var_p = p0;
5631 var = NULL;
5632 var_node_list = var;
5633 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5634 var_nodearraylist2 = var1;
5635 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5636 var_nodearraylist1 = var2;
5637 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
5638 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
5639 var_listnode3 = var3;
5640 var_ptypenode1 = var_nodearraylist1;
5641 var_listnode2 = var_nodearraylist2;
5642 /* <var_listnode2:nullable Object> isa Array[Object] */
5643 cltype = type_array__Arraykernel__Object.color;
5644 idtype = type_array__Arraykernel__Object.id;
5645 if(var_listnode2 == NULL) {
5646 var4 = 0;
5647 } else {
5648 if(cltype >= var_listnode2->type->table_size) {
5649 var4 = 0;
5650 } else {
5651 var4 = var_listnode2->type->type_table[cltype] == idtype;
5652 }
5653 }
5654 if (!var4) {
5655 fprintf(stderr, "Runtime error: %s", "Assert failed");
5656 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23954);
5657 show_backtrace(1);
5658 }
5659 var5 = NULL;
5660 if (var_ptypenode1 == NULL) {
5661 var6 = 0; /* is null */
5662 } else {
5663 var6 = 1; /* arg is null and recv is not */
5664 }
5665 if (var6){
5666 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_ptypenode1) /* add on <var_listnode3:Array[Object]>*/;
5667 } else {
5668 }
5669 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode2) /* concat on <self:ReduceAction590>*/;
5670 var_listnode3 = var7;
5671 var_node_list = var_listnode3;
5672 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction590> */
5673 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
5674 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
5675 RET_LABEL:;
5676 }
5677 /* method parser#ReduceAction590#action for (self: Object, Parser) */
5678 void VIRTUAL_parser__ReduceAction590__action(val* self, val* p0) {
5679 parser__ReduceAction590__action(self, p0);
5680 RET_LABEL:;
5681 }
5682 /* method parser#ReduceAction591#action for (self: ReduceAction591, Parser) */
5683 void parser__ReduceAction591__action(val* self, val* p0) {
5684 val* var_p /* var p: Parser */;
5685 val* var /* : null */;
5686 val* var_node_list /* var node_list: nullable Object */;
5687 val* var1 /* : nullable Object */;
5688 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5689 val* var2 /* : nullable Object */;
5690 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5691 val* var3 /* : nullable Object */;
5692 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5693 val* var_ptypenode1 /* var ptypenode1: nullable Object */;
5694 long var4 /* : Int */;
5695 long var5 /* : Int */;
5696 var_p = p0;
5697 var = NULL;
5698 var_node_list = var;
5699 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5700 var_nodearraylist3 = var1;
5701 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5702 var_nodearraylist2 = var2;
5703 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5704 var_nodearraylist1 = var3;
5705 var_ptypenode1 = var_nodearraylist3;
5706 var_node_list = var_ptypenode1;
5707 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction591> */
5708 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
5709 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
5710 RET_LABEL:;
5711 }
5712 /* method parser#ReduceAction591#action for (self: Object, Parser) */
5713 void VIRTUAL_parser__ReduceAction591__action(val* self, val* p0) {
5714 parser__ReduceAction591__action(self, p0);
5715 RET_LABEL:;
5716 }
5717 /* method parser#ReduceAction593#action for (self: ReduceAction593, Parser) */
5718 void parser__ReduceAction593__action(val* self, val* p0) {
5719 val* var_p /* var p: Parser */;
5720 val* var /* : null */;
5721 val* var_node_list /* var node_list: nullable Object */;
5722 val* var1 /* : nullable Object */;
5723 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5724 val* var2 /* : nullable Object */;
5725 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5726 val* var_pexprnode1 /* var pexprnode1: nullable Object */;
5727 long var3 /* : Int */;
5728 long var4 /* : Int */;
5729 var_p = p0;
5730 var = NULL;
5731 var_node_list = var;
5732 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5733 var_nodearraylist2 = var1;
5734 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5735 var_nodearraylist1 = var2;
5736 var_pexprnode1 = var_nodearraylist2;
5737 var_node_list = var_pexprnode1;
5738 var3 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction593> */
5739 var4 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var3) /* go_to on <var_p:Parser>*/;
5740 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var4, var_node_list) /* push on <var_p:Parser>*/;
5741 RET_LABEL:;
5742 }
5743 /* method parser#ReduceAction593#action for (self: Object, Parser) */
5744 void VIRTUAL_parser__ReduceAction593__action(val* self, val* p0) {
5745 parser__ReduceAction593__action(self, p0);
5746 RET_LABEL:;
5747 }
5748 /* method parser#ReduceAction594#action for (self: ReduceAction594, Parser) */
5749 void parser__ReduceAction594__action(val* self, val* p0) {
5750 val* var_p /* var p: Parser */;
5751 val* var /* : null */;
5752 val* var_node_list /* var node_list: nullable Object */;
5753 val* var1 /* : nullable Object */;
5754 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5755 val* var2 /* : nullable Object */;
5756 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5757 val* var3 /* : Array[Object] */;
5758 val* var_listnode2 /* var listnode2: Array[Object] */;
5759 val* var_tkwendnode3 /* var tkwendnode3: nullable Object */;
5760 short int var4 /* : Bool */;
5761 int cltype;
5762 int idtype;
5763 val* var5 /* : ABlockExpr */;
5764 val* var_pexprnode1 /* var pexprnode1: nullable ABlockExpr */;
5765 long var6 /* : Int */;
5766 long var7 /* : Int */;
5767 var_p = p0;
5768 var = NULL;
5769 var_node_list = var;
5770 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5771 var_nodearraylist2 = var1;
5772 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5773 var_nodearraylist1 = var2;
5774 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
5775 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
5776 var_listnode2 = var3;
5777 var_tkwendnode3 = var_nodearraylist2;
5778 /* <var_tkwendnode3:nullable Object> isa nullable TKwend */
5779 cltype = type_nullable_parser_nodes__TKwend.color;
5780 idtype = type_nullable_parser_nodes__TKwend.id;
5781 if(var_tkwendnode3 == NULL) {
5782 var4 = 1;
5783 } else {
5784 if(cltype >= var_tkwendnode3->type->table_size) {
5785 var4 = 0;
5786 } else {
5787 var4 = var_tkwendnode3->type->type_table[cltype] == idtype;
5788 }
5789 }
5790 if (!var4) {
5791 fprintf(stderr, "Runtime error: %s", "Assert failed");
5792 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 23997);
5793 show_backtrace(1);
5794 }
5795 var5 = NEW_parser_nodes__ABlockExpr(&type_parser_nodes__ABlockExpr);
5796 ((void (*)(val*, val*, val*))(var5->class->vft[COLOR_parser_prod__ABlockExpr__init_ablockexpr]))(var5, var_listnode2, var_tkwendnode3) /* init_ablockexpr on <var5:ABlockExpr>*/;
5797 var_pexprnode1 = var5;
5798 var_node_list = var_pexprnode1;
5799 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction594> */
5800 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
5801 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
5802 RET_LABEL:;
5803 }
5804 /* method parser#ReduceAction594#action for (self: Object, Parser) */
5805 void VIRTUAL_parser__ReduceAction594__action(val* self, val* p0) {
5806 parser__ReduceAction594__action(self, p0);
5807 RET_LABEL:;
5808 }
5809 /* method parser#ReduceAction595#action for (self: ReduceAction595, Parser) */
5810 void parser__ReduceAction595__action(val* self, val* p0) {
5811 val* var_p /* var p: Parser */;
5812 val* var /* : null */;
5813 val* var_node_list /* var node_list: nullable Object */;
5814 val* var1 /* : nullable Object */;
5815 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5816 val* var2 /* : Array[Object] */;
5817 val* var_listnode2 /* var listnode2: Array[Object] */;
5818 val* var_tkwendnode3 /* var tkwendnode3: nullable Object */;
5819 short int var3 /* : Bool */;
5820 int cltype;
5821 int idtype;
5822 val* var4 /* : ABlockExpr */;
5823 val* var_pexprnode1 /* var pexprnode1: nullable ABlockExpr */;
5824 long var5 /* : Int */;
5825 long var6 /* : Int */;
5826 var_p = p0;
5827 var = NULL;
5828 var_node_list = var;
5829 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5830 var_nodearraylist1 = var1;
5831 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
5832 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
5833 var_listnode2 = var2;
5834 var_tkwendnode3 = var_nodearraylist1;
5835 /* <var_tkwendnode3:nullable Object> isa nullable TKwend */
5836 cltype = type_nullable_parser_nodes__TKwend.color;
5837 idtype = type_nullable_parser_nodes__TKwend.id;
5838 if(var_tkwendnode3 == NULL) {
5839 var3 = 1;
5840 } else {
5841 if(cltype >= var_tkwendnode3->type->table_size) {
5842 var3 = 0;
5843 } else {
5844 var3 = var_tkwendnode3->type->type_table[cltype] == idtype;
5845 }
5846 }
5847 if (!var3) {
5848 fprintf(stderr, "Runtime error: %s", "Assert failed");
5849 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24014);
5850 show_backtrace(1);
5851 }
5852 var4 = NEW_parser_nodes__ABlockExpr(&type_parser_nodes__ABlockExpr);
5853 ((void (*)(val*, val*, val*))(var4->class->vft[COLOR_parser_prod__ABlockExpr__init_ablockexpr]))(var4, var_listnode2, var_tkwendnode3) /* init_ablockexpr on <var4:ABlockExpr>*/;
5854 var_pexprnode1 = var4;
5855 var_node_list = var_pexprnode1;
5856 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction595> */
5857 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
5858 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
5859 RET_LABEL:;
5860 }
5861 /* method parser#ReduceAction595#action for (self: Object, Parser) */
5862 void VIRTUAL_parser__ReduceAction595__action(val* self, val* p0) {
5863 parser__ReduceAction595__action(self, p0);
5864 RET_LABEL:;
5865 }
5866 /* method parser#ReduceAction596#action for (self: ReduceAction596, Parser) */
5867 void parser__ReduceAction596__action(val* self, val* p0) {
5868 val* var_p /* var p: Parser */;
5869 val* var /* : null */;
5870 val* var_node_list /* var node_list: nullable Object */;
5871 val* var1 /* : nullable Object */;
5872 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5873 val* var_pexprnode1 /* var pexprnode1: nullable Object */;
5874 long var2 /* : Int */;
5875 long var3 /* : Int */;
5876 var_p = p0;
5877 var = NULL;
5878 var_node_list = var;
5879 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5880 var_nodearraylist1 = var1;
5881 var_pexprnode1 = var_nodearraylist1;
5882 var_node_list = var_pexprnode1;
5883 var2 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction596> */
5884 var3 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var2) /* go_to on <var_p:Parser>*/;
5885 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var3, var_node_list) /* push on <var_p:Parser>*/;
5886 RET_LABEL:;
5887 }
5888 /* method parser#ReduceAction596#action for (self: Object, Parser) */
5889 void VIRTUAL_parser__ReduceAction596__action(val* self, val* p0) {
5890 parser__ReduceAction596__action(self, p0);
5891 RET_LABEL:;
5892 }
5893 /* method parser#ReduceAction597#action for (self: ReduceAction597, Parser) */
5894 void parser__ReduceAction597__action(val* self, val* p0) {
5895 val* var_p /* var p: Parser */;
5896 val* var /* : null */;
5897 val* var_node_list /* var node_list: nullable Object */;
5898 val* var1 /* : nullable Object */;
5899 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5900 val* var2 /* : Array[Object] */;
5901 val* var_listnode3 /* var listnode3: Array[Object] */;
5902 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
5903 short int var3 /* : Bool */;
5904 int cltype;
5905 int idtype;
5906 val* var4 /* : null */;
5907 short int var5 /* : Bool */;
5908 val* var6 /* : ABlockExpr */;
5909 val* var7 /* : null */;
5910 val* var_pexprnode1 /* var pexprnode1: nullable ABlockExpr */;
5911 long var8 /* : Int */;
5912 long var9 /* : Int */;
5913 var_p = p0;
5914 var = NULL;
5915 var_node_list = var;
5916 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5917 var_nodearraylist1 = var1;
5918 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
5919 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[Object]>*/;
5920 var_listnode3 = var2;
5921 var_pexprnode2 = var_nodearraylist1;
5922 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
5923 cltype = type_nullable_parser_nodes__AExpr.color;
5924 idtype = type_nullable_parser_nodes__AExpr.id;
5925 if(var_pexprnode2 == NULL) {
5926 var3 = 1;
5927 } else {
5928 if(cltype >= var_pexprnode2->type->table_size) {
5929 var3 = 0;
5930 } else {
5931 var3 = var_pexprnode2->type->type_table[cltype] == idtype;
5932 }
5933 }
5934 if (!var3) {
5935 fprintf(stderr, "Runtime error: %s", "Assert failed");
5936 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24042);
5937 show_backtrace(1);
5938 }
5939 var4 = NULL;
5940 if (var_pexprnode2 == NULL) {
5941 var5 = 0; /* is null */
5942 } else {
5943 var5 = 1; /* arg is null and recv is not */
5944 }
5945 if (var5){
5946 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pexprnode2) /* add on <var_listnode3:Array[Object]>*/;
5947 } else {
5948 }
5949 var6 = NEW_parser_nodes__ABlockExpr(&type_parser_nodes__ABlockExpr);
5950 var7 = NULL;
5951 ((void (*)(val*, val*, val*))(var6->class->vft[COLOR_parser_prod__ABlockExpr__init_ablockexpr]))(var6, var_listnode3, var7) /* init_ablockexpr on <var6:ABlockExpr>*/;
5952 var_pexprnode1 = var6;
5953 var_node_list = var_pexprnode1;
5954 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction597> */
5955 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
5956 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
5957 RET_LABEL:;
5958 }
5959 /* method parser#ReduceAction597#action for (self: Object, Parser) */
5960 void VIRTUAL_parser__ReduceAction597__action(val* self, val* p0) {
5961 parser__ReduceAction597__action(self, p0);
5962 RET_LABEL:;
5963 }
5964 /* method parser#ReduceAction598#action for (self: ReduceAction598, Parser) */
5965 void parser__ReduceAction598__action(val* self, val* p0) {
5966 val* var_p /* var p: Parser */;
5967 val* var /* : null */;
5968 val* var_node_list /* var node_list: nullable Object */;
5969 val* var1 /* : nullable Object */;
5970 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5971 val* var2 /* : nullable Object */;
5972 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5973 val* var3 /* : Array[Object] */;
5974 val* var_listnode4 /* var listnode4: Array[Object] */;
5975 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
5976 short int var4 /* : Bool */;
5977 int cltype;
5978 int idtype;
5979 val* var_listnode3 /* var listnode3: nullable Object */;
5980 short int var5 /* : Bool */;
5981 int cltype6;
5982 int idtype7;
5983 val* var8 /* : null */;
5984 short int var9 /* : Bool */;
5985 val* var10 /* : Array[Object] */;
5986 val* var11 /* : ABlockExpr */;
5987 val* var12 /* : null */;
5988 val* var_pexprnode1 /* var pexprnode1: nullable ABlockExpr */;
5989 long var13 /* : Int */;
5990 long var14 /* : Int */;
5991 var_p = p0;
5992 var = NULL;
5993 var_node_list = var;
5994 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5995 var_nodearraylist2 = var1;
5996 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5997 var_nodearraylist1 = var2;
5998 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
5999 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
6000 var_listnode4 = var3;
6001 var_pexprnode2 = var_nodearraylist1;
6002 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
6003 cltype = type_nullable_parser_nodes__AExpr.color;
6004 idtype = type_nullable_parser_nodes__AExpr.id;
6005 if(var_pexprnode2 == NULL) {
6006 var4 = 1;
6007 } else {
6008 if(cltype >= var_pexprnode2->type->table_size) {
6009 var4 = 0;
6010 } else {
6011 var4 = var_pexprnode2->type->type_table[cltype] == idtype;
6012 }
6013 }
6014 if (!var4) {
6015 fprintf(stderr, "Runtime error: %s", "Assert failed");
6016 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24063);
6017 show_backtrace(1);
6018 }
6019 var_listnode3 = var_nodearraylist2;
6020 /* <var_listnode3:nullable Object> isa Array[Object] */
6021 cltype6 = type_array__Arraykernel__Object.color;
6022 idtype7 = type_array__Arraykernel__Object.id;
6023 if(var_listnode3 == NULL) {
6024 var5 = 0;
6025 } else {
6026 if(cltype6 >= var_listnode3->type->table_size) {
6027 var5 = 0;
6028 } else {
6029 var5 = var_listnode3->type->type_table[cltype6] == idtype7;
6030 }
6031 }
6032 if (!var5) {
6033 fprintf(stderr, "Runtime error: %s", "Assert failed");
6034 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24065);
6035 show_backtrace(1);
6036 }
6037 var8 = NULL;
6038 if (var_pexprnode2 == NULL) {
6039 var9 = 0; /* is null */
6040 } else {
6041 var9 = 1; /* arg is null and recv is not */
6042 }
6043 if (var9){
6044 ((void (*)(val*, val*))(var_listnode4->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode4, var_pexprnode2) /* add on <var_listnode4:Array[Object]>*/;
6045 } else {
6046 }
6047 var10 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction598>*/;
6048 var_listnode4 = var10;
6049 var11 = NEW_parser_nodes__ABlockExpr(&type_parser_nodes__ABlockExpr);
6050 var12 = NULL;
6051 ((void (*)(val*, val*, val*))(var11->class->vft[COLOR_parser_prod__ABlockExpr__init_ablockexpr]))(var11, var_listnode4, var12) /* init_ablockexpr on <var11:ABlockExpr>*/;
6052 var_pexprnode1 = var11;
6053 var_node_list = var_pexprnode1;
6054 var13 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction598> */
6055 var14 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var13) /* go_to on <var_p:Parser>*/;
6056 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var14, var_node_list) /* push on <var_p:Parser>*/;
6057 RET_LABEL:;
6058 }
6059 /* method parser#ReduceAction598#action for (self: Object, Parser) */
6060 void VIRTUAL_parser__ReduceAction598__action(val* self, val* p0) {
6061 parser__ReduceAction598__action(self, p0);
6062 RET_LABEL:;
6063 }
6064 /* method parser#ReduceAction599#action for (self: ReduceAction599, Parser) */
6065 void parser__ReduceAction599__action(val* self, val* p0) {
6066 val* var_p /* var p: Parser */;
6067 val* var /* : null */;
6068 val* var_node_list /* var node_list: nullable Object */;
6069 val* var1 /* : nullable Object */;
6070 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6071 val* var2 /* : nullable Object */;
6072 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6073 val* var3 /* : Array[Object] */;
6074 val* var_listnode3 /* var listnode3: Array[Object] */;
6075 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
6076 short int var4 /* : Bool */;
6077 int cltype;
6078 int idtype;
6079 val* var5 /* : null */;
6080 short int var6 /* : Bool */;
6081 val* var7 /* : ABlockExpr */;
6082 val* var8 /* : null */;
6083 val* var_pexprnode1 /* var pexprnode1: nullable ABlockExpr */;
6084 long var9 /* : Int */;
6085 long var10 /* : Int */;
6086 var_p = p0;
6087 var = NULL;
6088 var_node_list = var;
6089 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6090 var_nodearraylist2 = var1;
6091 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6092 var_nodearraylist1 = var2;
6093 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
6094 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[Object]>*/;
6095 var_listnode3 = var3;
6096 var_pexprnode2 = var_nodearraylist1;
6097 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
6098 cltype = type_nullable_parser_nodes__AExpr.color;
6099 idtype = type_nullable_parser_nodes__AExpr.id;
6100 if(var_pexprnode2 == NULL) {
6101 var4 = 1;
6102 } else {
6103 if(cltype >= var_pexprnode2->type->table_size) {
6104 var4 = 0;
6105 } else {
6106 var4 = var_pexprnode2->type->type_table[cltype] == idtype;
6107 }
6108 }
6109 if (!var4) {
6110 fprintf(stderr, "Runtime error: %s", "Assert failed");
6111 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24087);
6112 show_backtrace(1);
6113 }
6114 var5 = NULL;
6115 if (var_pexprnode2 == NULL) {
6116 var6 = 0; /* is null */
6117 } else {
6118 var6 = 1; /* arg is null and recv is not */
6119 }
6120 if (var6){
6121 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pexprnode2) /* add on <var_listnode3:Array[Object]>*/;
6122 } else {
6123 }
6124 var7 = NEW_parser_nodes__ABlockExpr(&type_parser_nodes__ABlockExpr);
6125 var8 = NULL;
6126 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ABlockExpr__init_ablockexpr]))(var7, var_listnode3, var8) /* init_ablockexpr on <var7:ABlockExpr>*/;
6127 var_pexprnode1 = var7;
6128 var_node_list = var_pexprnode1;
6129 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction599> */
6130 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
6131 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
6132 RET_LABEL:;
6133 }
6134 /* method parser#ReduceAction599#action for (self: Object, Parser) */
6135 void VIRTUAL_parser__ReduceAction599__action(val* self, val* p0) {
6136 parser__ReduceAction599__action(self, p0);
6137 RET_LABEL:;
6138 }
6139 /* method parser#ReduceAction600#action for (self: ReduceAction600, Parser) */
6140 void parser__ReduceAction600__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_nodearraylist3 /* var nodearraylist3: nullable Object */;
6146 val* var2 /* : nullable Object */;
6147 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6148 val* var3 /* : nullable Object */;
6149 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6150 val* var4 /* : Array[Object] */;
6151 val* var_listnode4 /* var listnode4: Array[Object] */;
6152 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
6153 short int var5 /* : Bool */;
6154 int cltype;
6155 int idtype;
6156 val* var_listnode3 /* var listnode3: nullable Object */;
6157 short int var6 /* : Bool */;
6158 int cltype7;
6159 int idtype8;
6160 val* var9 /* : null */;
6161 short int var10 /* : Bool */;
6162 val* var11 /* : Array[Object] */;
6163 val* var12 /* : ABlockExpr */;
6164 val* var13 /* : null */;
6165 val* var_pexprnode1 /* var pexprnode1: nullable ABlockExpr */;
6166 long var14 /* : Int */;
6167 long var15 /* : Int */;
6168 var_p = p0;
6169 var = NULL;
6170 var_node_list = var;
6171 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6172 var_nodearraylist3 = var1;
6173 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6174 var_nodearraylist2 = var2;
6175 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6176 var_nodearraylist1 = var3;
6177 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
6178 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
6179 var_listnode4 = var4;
6180 var_pexprnode2 = var_nodearraylist1;
6181 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
6182 cltype = type_nullable_parser_nodes__AExpr.color;
6183 idtype = type_nullable_parser_nodes__AExpr.id;
6184 if(var_pexprnode2 == NULL) {
6185 var5 = 1;
6186 } else {
6187 if(cltype >= var_pexprnode2->type->table_size) {
6188 var5 = 0;
6189 } else {
6190 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
6191 }
6192 }
6193 if (!var5) {
6194 fprintf(stderr, "Runtime error: %s", "Assert failed");
6195 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24109);
6196 show_backtrace(1);
6197 }
6198 var_listnode3 = var_nodearraylist2;
6199 /* <var_listnode3:nullable Object> isa Array[Object] */
6200 cltype7 = type_array__Arraykernel__Object.color;
6201 idtype8 = type_array__Arraykernel__Object.id;
6202 if(var_listnode3 == NULL) {
6203 var6 = 0;
6204 } else {
6205 if(cltype7 >= var_listnode3->type->table_size) {
6206 var6 = 0;
6207 } else {
6208 var6 = var_listnode3->type->type_table[cltype7] == idtype8;
6209 }
6210 }
6211 if (!var6) {
6212 fprintf(stderr, "Runtime error: %s", "Assert failed");
6213 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24111);
6214 show_backtrace(1);
6215 }
6216 var9 = NULL;
6217 if (var_pexprnode2 == NULL) {
6218 var10 = 0; /* is null */
6219 } else {
6220 var10 = 1; /* arg is null and recv is not */
6221 }
6222 if (var10){
6223 ((void (*)(val*, val*))(var_listnode4->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode4, var_pexprnode2) /* add on <var_listnode4:Array[Object]>*/;
6224 } else {
6225 }
6226 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction600>*/;
6227 var_listnode4 = var11;
6228 var12 = NEW_parser_nodes__ABlockExpr(&type_parser_nodes__ABlockExpr);
6229 var13 = NULL;
6230 ((void (*)(val*, val*, val*))(var12->class->vft[COLOR_parser_prod__ABlockExpr__init_ablockexpr]))(var12, var_listnode4, var13) /* init_ablockexpr on <var12:ABlockExpr>*/;
6231 var_pexprnode1 = var12;
6232 var_node_list = var_pexprnode1;
6233 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction600> */
6234 var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
6235 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
6236 RET_LABEL:;
6237 }
6238 /* method parser#ReduceAction600#action for (self: Object, Parser) */
6239 void VIRTUAL_parser__ReduceAction600__action(val* self, val* p0) {
6240 parser__ReduceAction600__action(self, p0);
6241 RET_LABEL:;
6242 }
6243 /* method parser#ReduceAction601#action for (self: ReduceAction601, Parser) */
6244 void parser__ReduceAction601__action(val* self, val* p0) {
6245 val* var_p /* var p: Parser */;
6246 val* var /* : null */;
6247 val* var_node_list /* var node_list: nullable Object */;
6248 val* var1 /* : nullable Object */;
6249 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6250 val* var2 /* : nullable Object */;
6251 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6252 val* var3 /* : nullable Object */;
6253 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6254 val* var4 /* : Array[Object] */;
6255 val* var_listnode3 /* var listnode3: Array[Object] */;
6256 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
6257 short int var5 /* : Bool */;
6258 int cltype;
6259 int idtype;
6260 val* var6 /* : null */;
6261 short int var7 /* : Bool */;
6262 val* var_tkwendnode4 /* var tkwendnode4: nullable Object */;
6263 short int var8 /* : Bool */;
6264 int cltype9;
6265 int idtype10;
6266 val* var11 /* : ABlockExpr */;
6267 val* var_pexprnode1 /* var pexprnode1: nullable ABlockExpr */;
6268 long var12 /* : Int */;
6269 long var13 /* : Int */;
6270 var_p = p0;
6271 var = NULL;
6272 var_node_list = var;
6273 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6274 var_nodearraylist3 = var1;
6275 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6276 var_nodearraylist2 = var2;
6277 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6278 var_nodearraylist1 = var3;
6279 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
6280 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
6281 var_listnode3 = var4;
6282 var_pexprnode2 = var_nodearraylist1;
6283 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
6284 cltype = type_nullable_parser_nodes__AExpr.color;
6285 idtype = type_nullable_parser_nodes__AExpr.id;
6286 if(var_pexprnode2 == NULL) {
6287 var5 = 1;
6288 } else {
6289 if(cltype >= var_pexprnode2->type->table_size) {
6290 var5 = 0;
6291 } else {
6292 var5 = var_pexprnode2->type->type_table[cltype] == idtype;
6293 }
6294 }
6295 if (!var5) {
6296 fprintf(stderr, "Runtime error: %s", "Assert failed");
6297 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24134);
6298 show_backtrace(1);
6299 }
6300 var6 = NULL;
6301 if (var_pexprnode2 == NULL) {
6302 var7 = 0; /* is null */
6303 } else {
6304 var7 = 1; /* arg is null and recv is not */
6305 }
6306 if (var7){
6307 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pexprnode2) /* add on <var_listnode3:Array[Object]>*/;
6308 } else {
6309 }
6310 var_tkwendnode4 = var_nodearraylist3;
6311 /* <var_tkwendnode4:nullable Object> isa nullable TKwend */
6312 cltype9 = type_nullable_parser_nodes__TKwend.color;
6313 idtype10 = type_nullable_parser_nodes__TKwend.id;
6314 if(var_tkwendnode4 == NULL) {
6315 var8 = 1;
6316 } else {
6317 if(cltype9 >= var_tkwendnode4->type->table_size) {
6318 var8 = 0;
6319 } else {
6320 var8 = var_tkwendnode4->type->type_table[cltype9] == idtype10;
6321 }
6322 }
6323 if (!var8) {
6324 fprintf(stderr, "Runtime error: %s", "Assert failed");
6325 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24139);
6326 show_backtrace(1);
6327 }
6328 var11 = NEW_parser_nodes__ABlockExpr(&type_parser_nodes__ABlockExpr);
6329 ((void (*)(val*, val*, val*))(var11->class->vft[COLOR_parser_prod__ABlockExpr__init_ablockexpr]))(var11, var_listnode3, var_tkwendnode4) /* init_ablockexpr on <var11:ABlockExpr>*/;
6330 var_pexprnode1 = var11;
6331 var_node_list = var_pexprnode1;
6332 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction601> */
6333 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
6334 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
6335 RET_LABEL:;
6336 }
6337 /* method parser#ReduceAction601#action for (self: Object, Parser) */
6338 void VIRTUAL_parser__ReduceAction601__action(val* self, val* p0) {
6339 parser__ReduceAction601__action(self, p0);
6340 RET_LABEL:;
6341 }
6342 /* method parser#ReduceAction602#action for (self: ReduceAction602, Parser) */
6343 void parser__ReduceAction602__action(val* self, val* p0) {
6344 val* var_p /* var p: Parser */;
6345 val* var /* : null */;
6346 val* var_node_list /* var node_list: nullable Object */;
6347 val* var1 /* : nullable Object */;
6348 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6349 val* var2 /* : nullable Object */;
6350 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6351 val* var3 /* : nullable Object */;
6352 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6353 val* var4 /* : nullable Object */;
6354 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6355 val* var5 /* : Array[Object] */;
6356 val* var_listnode4 /* var listnode4: Array[Object] */;
6357 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
6358 short int var6 /* : Bool */;
6359 int cltype;
6360 int idtype;
6361 val* var_listnode3 /* var listnode3: nullable Object */;
6362 short int var7 /* : Bool */;
6363 int cltype8;
6364 int idtype9;
6365 val* var10 /* : null */;
6366 short int var11 /* : Bool */;
6367 val* var12 /* : Array[Object] */;
6368 val* var_tkwendnode5 /* var tkwendnode5: nullable Object */;
6369 short int var13 /* : Bool */;
6370 int cltype14;
6371 int idtype15;
6372 val* var16 /* : ABlockExpr */;
6373 val* var_pexprnode1 /* var pexprnode1: nullable ABlockExpr */;
6374 long var17 /* : Int */;
6375 long var18 /* : Int */;
6376 var_p = p0;
6377 var = NULL;
6378 var_node_list = var;
6379 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6380 var_nodearraylist4 = var1;
6381 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6382 var_nodearraylist3 = var2;
6383 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6384 var_nodearraylist2 = var3;
6385 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6386 var_nodearraylist1 = var4;
6387 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
6388 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
6389 var_listnode4 = var5;
6390 var_pexprnode2 = var_nodearraylist1;
6391 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
6392 cltype = type_nullable_parser_nodes__AExpr.color;
6393 idtype = type_nullable_parser_nodes__AExpr.id;
6394 if(var_pexprnode2 == NULL) {
6395 var6 = 1;
6396 } else {
6397 if(cltype >= var_pexprnode2->type->table_size) {
6398 var6 = 0;
6399 } else {
6400 var6 = var_pexprnode2->type->type_table[cltype] == idtype;
6401 }
6402 }
6403 if (!var6) {
6404 fprintf(stderr, "Runtime error: %s", "Assert failed");
6405 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24159);
6406 show_backtrace(1);
6407 }
6408 var_listnode3 = var_nodearraylist2;
6409 /* <var_listnode3:nullable Object> isa Array[Object] */
6410 cltype8 = type_array__Arraykernel__Object.color;
6411 idtype9 = type_array__Arraykernel__Object.id;
6412 if(var_listnode3 == NULL) {
6413 var7 = 0;
6414 } else {
6415 if(cltype8 >= var_listnode3->type->table_size) {
6416 var7 = 0;
6417 } else {
6418 var7 = var_listnode3->type->type_table[cltype8] == idtype9;
6419 }
6420 }
6421 if (!var7) {
6422 fprintf(stderr, "Runtime error: %s", "Assert failed");
6423 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24161);
6424 show_backtrace(1);
6425 }
6426 var10 = NULL;
6427 if (var_pexprnode2 == NULL) {
6428 var11 = 0; /* is null */
6429 } else {
6430 var11 = 1; /* arg is null and recv is not */
6431 }
6432 if (var11){
6433 ((void (*)(val*, val*))(var_listnode4->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode4, var_pexprnode2) /* add on <var_listnode4:Array[Object]>*/;
6434 } else {
6435 }
6436 var12 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction602>*/;
6437 var_listnode4 = var12;
6438 var_tkwendnode5 = var_nodearraylist4;
6439 /* <var_tkwendnode5:nullable Object> isa nullable TKwend */
6440 cltype14 = type_nullable_parser_nodes__TKwend.color;
6441 idtype15 = type_nullable_parser_nodes__TKwend.id;
6442 if(var_tkwendnode5 == NULL) {
6443 var13 = 1;
6444 } else {
6445 if(cltype14 >= var_tkwendnode5->type->table_size) {
6446 var13 = 0;
6447 } else {
6448 var13 = var_tkwendnode5->type->type_table[cltype14] == idtype15;
6449 }
6450 }
6451 if (!var13) {
6452 fprintf(stderr, "Runtime error: %s", "Assert failed");
6453 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24167);
6454 show_backtrace(1);
6455 }
6456 var16 = NEW_parser_nodes__ABlockExpr(&type_parser_nodes__ABlockExpr);
6457 ((void (*)(val*, val*, val*))(var16->class->vft[COLOR_parser_prod__ABlockExpr__init_ablockexpr]))(var16, var_listnode4, var_tkwendnode5) /* init_ablockexpr on <var16:ABlockExpr>*/;
6458 var_pexprnode1 = var16;
6459 var_node_list = var_pexprnode1;
6460 var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction602> */
6461 var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
6462 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
6463 RET_LABEL:;
6464 }
6465 /* method parser#ReduceAction602#action for (self: Object, Parser) */
6466 void VIRTUAL_parser__ReduceAction602__action(val* self, val* p0) {
6467 parser__ReduceAction602__action(self, p0);
6468 RET_LABEL:;
6469 }
6470 /* method parser#ReduceAction606#action for (self: ReduceAction606, Parser) */
6471 void parser__ReduceAction606__action(val* self, val* p0) {
6472 val* var_p /* var p: Parser */;
6473 val* var /* : null */;
6474 val* var_node_list /* var node_list: nullable Object */;
6475 val* var1 /* : nullable Object */;
6476 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6477 val* var_tkwreturnnode2 /* var tkwreturnnode2: nullable Object */;
6478 short int var2 /* : Bool */;
6479 int cltype;
6480 int idtype;
6481 val* var3 /* : AReturnExpr */;
6482 val* var4 /* : null */;
6483 val* var_pexprnode1 /* var pexprnode1: nullable AReturnExpr */;
6484 long var5 /* : Int */;
6485 long var6 /* : Int */;
6486 var_p = p0;
6487 var = NULL;
6488 var_node_list = var;
6489 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6490 var_nodearraylist1 = var1;
6491 var_tkwreturnnode2 = var_nodearraylist1;
6492 /* <var_tkwreturnnode2:nullable Object> isa nullable TKwreturn */
6493 cltype = type_nullable_parser_nodes__TKwreturn.color;
6494 idtype = type_nullable_parser_nodes__TKwreturn.id;
6495 if(var_tkwreturnnode2 == NULL) {
6496 var2 = 1;
6497 } else {
6498 if(cltype >= var_tkwreturnnode2->type->table_size) {
6499 var2 = 0;
6500 } else {
6501 var2 = var_tkwreturnnode2->type->type_table[cltype] == idtype;
6502 }
6503 }
6504 if (!var2) {
6505 fprintf(stderr, "Runtime error: %s", "Assert failed");
6506 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24183);
6507 show_backtrace(1);
6508 }
6509 var3 = NEW_parser_nodes__AReturnExpr(&type_parser_nodes__AReturnExpr);
6510 var4 = NULL;
6511 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AReturnExpr__init_areturnexpr]))(var3, var_tkwreturnnode2, var4) /* init_areturnexpr on <var3:AReturnExpr>*/;
6512 var_pexprnode1 = var3;
6513 var_node_list = var_pexprnode1;
6514 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction606> */
6515 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
6516 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
6517 RET_LABEL:;
6518 }
6519 /* method parser#ReduceAction606#action for (self: Object, Parser) */
6520 void VIRTUAL_parser__ReduceAction606__action(val* self, val* p0) {
6521 parser__ReduceAction606__action(self, p0);
6522 RET_LABEL:;
6523 }
6524 /* method parser#ReduceAction607#action for (self: ReduceAction607, Parser) */
6525 void parser__ReduceAction607__action(val* self, val* p0) {
6526 val* var_p /* var p: Parser */;
6527 val* var /* : null */;
6528 val* var_node_list /* var node_list: nullable Object */;
6529 val* var1 /* : nullable Object */;
6530 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6531 val* var2 /* : nullable Object */;
6532 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6533 val* var_tkwreturnnode2 /* var tkwreturnnode2: nullable Object */;
6534 short int var3 /* : Bool */;
6535 int cltype;
6536 int idtype;
6537 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
6538 short int var4 /* : Bool */;
6539 int cltype5;
6540 int idtype6;
6541 val* var7 /* : AReturnExpr */;
6542 val* var_pexprnode1 /* var pexprnode1: nullable AReturnExpr */;
6543 long var8 /* : Int */;
6544 long var9 /* : 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_nodearraylist2 = var1;
6550 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6551 var_nodearraylist1 = var2;
6552 var_tkwreturnnode2 = var_nodearraylist1;
6553 /* <var_tkwreturnnode2:nullable Object> isa nullable TKwreturn */
6554 cltype = type_nullable_parser_nodes__TKwreturn.color;
6555 idtype = type_nullable_parser_nodes__TKwreturn.id;
6556 if(var_tkwreturnnode2 == NULL) {
6557 var3 = 1;
6558 } else {
6559 if(cltype >= var_tkwreturnnode2->type->table_size) {
6560 var3 = 0;
6561 } else {
6562 var3 = var_tkwreturnnode2->type->type_table[cltype] == idtype;
6563 }
6564 }
6565 if (!var3) {
6566 fprintf(stderr, "Runtime error: %s", "Assert failed");
6567 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24200);
6568 show_backtrace(1);
6569 }
6570 var_pexprnode3 = var_nodearraylist2;
6571 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
6572 cltype5 = type_nullable_parser_nodes__AExpr.color;
6573 idtype6 = type_nullable_parser_nodes__AExpr.id;
6574 if(var_pexprnode3 == NULL) {
6575 var4 = 1;
6576 } else {
6577 if(cltype5 >= var_pexprnode3->type->table_size) {
6578 var4 = 0;
6579 } else {
6580 var4 = var_pexprnode3->type->type_table[cltype5] == idtype6;
6581 }
6582 }
6583 if (!var4) {
6584 fprintf(stderr, "Runtime error: %s", "Assert failed");
6585 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24202);
6586 show_backtrace(1);
6587 }
6588 var7 = NEW_parser_nodes__AReturnExpr(&type_parser_nodes__AReturnExpr);
6589 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AReturnExpr__init_areturnexpr]))(var7, var_tkwreturnnode2, var_pexprnode3) /* init_areturnexpr on <var7:AReturnExpr>*/;
6590 var_pexprnode1 = var7;
6591 var_node_list = var_pexprnode1;
6592 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction607> */
6593 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
6594 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
6595 RET_LABEL:;
6596 }
6597 /* method parser#ReduceAction607#action for (self: Object, Parser) */
6598 void VIRTUAL_parser__ReduceAction607__action(val* self, val* p0) {
6599 parser__ReduceAction607__action(self, p0);
6600 RET_LABEL:;
6601 }
6602 /* method parser#ReduceAction608#action for (self: ReduceAction608, Parser) */
6603 void parser__ReduceAction608__action(val* self, val* p0) {
6604 val* var_p /* var p: Parser */;
6605 val* var /* : null */;
6606 val* var_node_list /* var node_list: nullable Object */;
6607 val* var1 /* : nullable Object */;
6608 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6609 val* var_tkwbreaknode2 /* var tkwbreaknode2: nullable Object */;
6610 short int var2 /* : Bool */;
6611 int cltype;
6612 int idtype;
6613 val* var3 /* : ABreakExpr */;
6614 val* var4 /* : null */;
6615 val* var5 /* : null */;
6616 val* var_pexprnode1 /* var pexprnode1: nullable ABreakExpr */;
6617 long var6 /* : Int */;
6618 long var7 /* : Int */;
6619 var_p = p0;
6620 var = NULL;
6621 var_node_list = var;
6622 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6623 var_nodearraylist1 = var1;
6624 var_tkwbreaknode2 = var_nodearraylist1;
6625 /* <var_tkwbreaknode2:nullable Object> isa nullable TKwbreak */
6626 cltype = type_nullable_parser_nodes__TKwbreak.color;
6627 idtype = type_nullable_parser_nodes__TKwbreak.id;
6628 if(var_tkwbreaknode2 == NULL) {
6629 var2 = 1;
6630 } else {
6631 if(cltype >= var_tkwbreaknode2->type->table_size) {
6632 var2 = 0;
6633 } else {
6634 var2 = var_tkwbreaknode2->type->type_table[cltype] == idtype;
6635 }
6636 }
6637 if (!var2) {
6638 fprintf(stderr, "Runtime error: %s", "Assert failed");
6639 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24218);
6640 show_backtrace(1);
6641 }
6642 var3 = NEW_parser_nodes__ABreakExpr(&type_parser_nodes__ABreakExpr);
6643 var4 = NULL;
6644 var5 = NULL;
6645 ((void (*)(val*, val*, val*, val*))(var3->class->vft[COLOR_parser_prod__ABreakExpr__init_abreakexpr]))(var3, var_tkwbreaknode2, var4, var5) /* init_abreakexpr on <var3:ABreakExpr>*/;
6646 var_pexprnode1 = var3;
6647 var_node_list = var_pexprnode1;
6648 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction608> */
6649 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
6650 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
6651 RET_LABEL:;
6652 }
6653 /* method parser#ReduceAction608#action for (self: Object, Parser) */
6654 void VIRTUAL_parser__ReduceAction608__action(val* self, val* p0) {
6655 parser__ReduceAction608__action(self, p0);
6656 RET_LABEL:;
6657 }
6658 /* method parser#ReduceAction609#action for (self: ReduceAction609, Parser) */
6659 void parser__ReduceAction609__action(val* self, val* p0) {
6660 val* var_p /* var p: Parser */;
6661 val* var /* : null */;
6662 val* var_node_list /* var node_list: nullable Object */;
6663 val* var1 /* : nullable Object */;
6664 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6665 val* var2 /* : nullable Object */;
6666 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6667 val* var_tkwbreaknode2 /* var tkwbreaknode2: nullable Object */;
6668 short int var3 /* : Bool */;
6669 int cltype;
6670 int idtype;
6671 val* var_plabelnode3 /* var plabelnode3: nullable Object */;
6672 short int var4 /* : Bool */;
6673 int cltype5;
6674 int idtype6;
6675 val* var7 /* : ABreakExpr */;
6676 val* var8 /* : null */;
6677 val* var_pexprnode1 /* var pexprnode1: nullable ABreakExpr */;
6678 long var9 /* : Int */;
6679 long var10 /* : Int */;
6680 var_p = p0;
6681 var = NULL;
6682 var_node_list = var;
6683 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6684 var_nodearraylist2 = var1;
6685 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6686 var_nodearraylist1 = var2;
6687 var_tkwbreaknode2 = var_nodearraylist1;
6688 /* <var_tkwbreaknode2:nullable Object> isa nullable TKwbreak */
6689 cltype = type_nullable_parser_nodes__TKwbreak.color;
6690 idtype = type_nullable_parser_nodes__TKwbreak.id;
6691 if(var_tkwbreaknode2 == NULL) {
6692 var3 = 1;
6693 } else {
6694 if(cltype >= var_tkwbreaknode2->type->table_size) {
6695 var3 = 0;
6696 } else {
6697 var3 = var_tkwbreaknode2->type->type_table[cltype] == idtype;
6698 }
6699 }
6700 if (!var3) {
6701 fprintf(stderr, "Runtime error: %s", "Assert failed");
6702 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24236);
6703 show_backtrace(1);
6704 }
6705 var_plabelnode3 = var_nodearraylist2;
6706 /* <var_plabelnode3:nullable Object> isa nullable ALabel */
6707 cltype5 = type_nullable_parser_nodes__ALabel.color;
6708 idtype6 = type_nullable_parser_nodes__ALabel.id;
6709 if(var_plabelnode3 == NULL) {
6710 var4 = 1;
6711 } else {
6712 if(cltype5 >= var_plabelnode3->type->table_size) {
6713 var4 = 0;
6714 } else {
6715 var4 = var_plabelnode3->type->type_table[cltype5] == idtype6;
6716 }
6717 }
6718 if (!var4) {
6719 fprintf(stderr, "Runtime error: %s", "Assert failed");
6720 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24238);
6721 show_backtrace(1);
6722 }
6723 var7 = NEW_parser_nodes__ABreakExpr(&type_parser_nodes__ABreakExpr);
6724 var8 = NULL;
6725 ((void (*)(val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ABreakExpr__init_abreakexpr]))(var7, var_tkwbreaknode2, var_plabelnode3, var8) /* init_abreakexpr on <var7:ABreakExpr>*/;
6726 var_pexprnode1 = var7;
6727 var_node_list = var_pexprnode1;
6728 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction609> */
6729 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
6730 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
6731 RET_LABEL:;
6732 }
6733 /* method parser#ReduceAction609#action for (self: Object, Parser) */
6734 void VIRTUAL_parser__ReduceAction609__action(val* self, val* p0) {
6735 parser__ReduceAction609__action(self, p0);
6736 RET_LABEL:;
6737 }
6738 /* method parser#ReduceAction610#action for (self: ReduceAction610, Parser) */
6739 void parser__ReduceAction610__action(val* self, val* p0) {
6740 val* var_p /* var p: Parser */;
6741 val* var /* : null */;
6742 val* var_node_list /* var node_list: nullable Object */;
6743 val* var1 /* : nullable Object */;
6744 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6745 val* var2 /* : nullable Object */;
6746 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6747 val* var_tkwbreaknode2 /* var tkwbreaknode2: nullable Object */;
6748 short int var3 /* : Bool */;
6749 int cltype;
6750 int idtype;
6751 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
6752 short int var4 /* : Bool */;
6753 int cltype5;
6754 int idtype6;
6755 val* var7 /* : ABreakExpr */;
6756 val* var8 /* : null */;
6757 val* var_pexprnode1 /* var pexprnode1: nullable ABreakExpr */;
6758 long var9 /* : Int */;
6759 long var10 /* : Int */;
6760 var_p = p0;
6761 var = NULL;
6762 var_node_list = var;
6763 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6764 var_nodearraylist2 = var1;
6765 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6766 var_nodearraylist1 = var2;
6767 var_tkwbreaknode2 = var_nodearraylist1;
6768 /* <var_tkwbreaknode2:nullable Object> isa nullable TKwbreak */
6769 cltype = type_nullable_parser_nodes__TKwbreak.color;
6770 idtype = type_nullable_parser_nodes__TKwbreak.id;
6771 if(var_tkwbreaknode2 == NULL) {
6772 var3 = 1;
6773 } else {
6774 if(cltype >= var_tkwbreaknode2->type->table_size) {
6775 var3 = 0;
6776 } else {
6777 var3 = var_tkwbreaknode2->type->type_table[cltype] == idtype;
6778 }
6779 }
6780 if (!var3) {
6781 fprintf(stderr, "Runtime error: %s", "Assert failed");
6782 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24256);
6783 show_backtrace(1);
6784 }
6785 var_pexprnode4 = var_nodearraylist2;
6786 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
6787 cltype5 = type_nullable_parser_nodes__AExpr.color;
6788 idtype6 = type_nullable_parser_nodes__AExpr.id;
6789 if(var_pexprnode4 == NULL) {
6790 var4 = 1;
6791 } else {
6792 if(cltype5 >= var_pexprnode4->type->table_size) {
6793 var4 = 0;
6794 } else {
6795 var4 = var_pexprnode4->type->type_table[cltype5] == idtype6;
6796 }
6797 }
6798 if (!var4) {
6799 fprintf(stderr, "Runtime error: %s", "Assert failed");
6800 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24258);
6801 show_backtrace(1);
6802 }
6803 var7 = NEW_parser_nodes__ABreakExpr(&type_parser_nodes__ABreakExpr);
6804 var8 = NULL;
6805 ((void (*)(val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ABreakExpr__init_abreakexpr]))(var7, var_tkwbreaknode2, var8, var_pexprnode4) /* init_abreakexpr on <var7:ABreakExpr>*/;
6806 var_pexprnode1 = var7;
6807 var_node_list = var_pexprnode1;
6808 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction610> */
6809 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
6810 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
6811 RET_LABEL:;
6812 }
6813 /* method parser#ReduceAction610#action for (self: Object, Parser) */
6814 void VIRTUAL_parser__ReduceAction610__action(val* self, val* p0) {
6815 parser__ReduceAction610__action(self, p0);
6816 RET_LABEL:;
6817 }
6818 /* method parser#ReduceAction611#action for (self: ReduceAction611, Parser) */
6819 void parser__ReduceAction611__action(val* self, val* p0) {
6820 val* var_p /* var p: Parser */;
6821 val* var /* : null */;
6822 val* var_node_list /* var node_list: nullable Object */;
6823 val* var1 /* : nullable Object */;
6824 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6825 val* var2 /* : nullable Object */;
6826 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6827 val* var3 /* : nullable Object */;
6828 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6829 val* var_tkwbreaknode2 /* var tkwbreaknode2: nullable Object */;
6830 short int var4 /* : Bool */;
6831 int cltype;
6832 int idtype;
6833 val* var_plabelnode3 /* var plabelnode3: nullable Object */;
6834 short int var5 /* : Bool */;
6835 int cltype6;
6836 int idtype7;
6837 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
6838 short int var8 /* : Bool */;
6839 int cltype9;
6840 int idtype10;
6841 val* var11 /* : ABreakExpr */;
6842 val* var_pexprnode1 /* var pexprnode1: nullable ABreakExpr */;
6843 long var12 /* : Int */;
6844 long var13 /* : Int */;
6845 var_p = p0;
6846 var = NULL;
6847 var_node_list = var;
6848 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6849 var_nodearraylist3 = var1;
6850 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6851 var_nodearraylist2 = var2;
6852 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6853 var_nodearraylist1 = var3;
6854 var_tkwbreaknode2 = var_nodearraylist1;
6855 /* <var_tkwbreaknode2:nullable Object> isa nullable TKwbreak */
6856 cltype = type_nullable_parser_nodes__TKwbreak.color;
6857 idtype = type_nullable_parser_nodes__TKwbreak.id;
6858 if(var_tkwbreaknode2 == NULL) {
6859 var4 = 1;
6860 } else {
6861 if(cltype >= var_tkwbreaknode2->type->table_size) {
6862 var4 = 0;
6863 } else {
6864 var4 = var_tkwbreaknode2->type->type_table[cltype] == idtype;
6865 }
6866 }
6867 if (!var4) {
6868 fprintf(stderr, "Runtime error: %s", "Assert failed");
6869 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24277);
6870 show_backtrace(1);
6871 }
6872 var_plabelnode3 = var_nodearraylist2;
6873 /* <var_plabelnode3:nullable Object> isa nullable ALabel */
6874 cltype6 = type_nullable_parser_nodes__ALabel.color;
6875 idtype7 = type_nullable_parser_nodes__ALabel.id;
6876 if(var_plabelnode3 == NULL) {
6877 var5 = 1;
6878 } else {
6879 if(cltype6 >= var_plabelnode3->type->table_size) {
6880 var5 = 0;
6881 } else {
6882 var5 = var_plabelnode3->type->type_table[cltype6] == idtype7;
6883 }
6884 }
6885 if (!var5) {
6886 fprintf(stderr, "Runtime error: %s", "Assert failed");
6887 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24279);
6888 show_backtrace(1);
6889 }
6890 var_pexprnode4 = var_nodearraylist3;
6891 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
6892 cltype9 = type_nullable_parser_nodes__AExpr.color;
6893 idtype10 = type_nullable_parser_nodes__AExpr.id;
6894 if(var_pexprnode4 == NULL) {
6895 var8 = 1;
6896 } else {
6897 if(cltype9 >= var_pexprnode4->type->table_size) {
6898 var8 = 0;
6899 } else {
6900 var8 = var_pexprnode4->type->type_table[cltype9] == idtype10;
6901 }
6902 }
6903 if (!var8) {
6904 fprintf(stderr, "Runtime error: %s", "Assert failed");
6905 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24281);
6906 show_backtrace(1);
6907 }
6908 var11 = NEW_parser_nodes__ABreakExpr(&type_parser_nodes__ABreakExpr);
6909 ((void (*)(val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__ABreakExpr__init_abreakexpr]))(var11, var_tkwbreaknode2, var_plabelnode3, var_pexprnode4) /* init_abreakexpr on <var11:ABreakExpr>*/;
6910 var_pexprnode1 = var11;
6911 var_node_list = var_pexprnode1;
6912 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction611> */
6913 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
6914 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
6915 RET_LABEL:;
6916 }
6917 /* method parser#ReduceAction611#action for (self: Object, Parser) */
6918 void VIRTUAL_parser__ReduceAction611__action(val* self, val* p0) {
6919 parser__ReduceAction611__action(self, p0);
6920 RET_LABEL:;
6921 }
6922 /* method parser#ReduceAction612#action for (self: ReduceAction612, Parser) */
6923 void parser__ReduceAction612__action(val* self, val* p0) {
6924 val* var_p /* var p: Parser */;
6925 val* var /* : null */;
6926 val* var_node_list /* var node_list: nullable Object */;
6927 val* var1 /* : nullable Object */;
6928 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6929 val* var_tkwabortnode2 /* var tkwabortnode2: nullable Object */;
6930 short int var2 /* : Bool */;
6931 int cltype;
6932 int idtype;
6933 val* var3 /* : AAbortExpr */;
6934 val* var_pexprnode1 /* var pexprnode1: nullable AAbortExpr */;
6935 long var4 /* : Int */;
6936 long var5 /* : Int */;
6937 var_p = p0;
6938 var = NULL;
6939 var_node_list = var;
6940 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6941 var_nodearraylist1 = var1;
6942 var_tkwabortnode2 = var_nodearraylist1;
6943 /* <var_tkwabortnode2:nullable Object> isa nullable TKwabort */
6944 cltype = type_nullable_parser_nodes__TKwabort.color;
6945 idtype = type_nullable_parser_nodes__TKwabort.id;
6946 if(var_tkwabortnode2 == NULL) {
6947 var2 = 1;
6948 } else {
6949 if(cltype >= var_tkwabortnode2->type->table_size) {
6950 var2 = 0;
6951 } else {
6952 var2 = var_tkwabortnode2->type->type_table[cltype] == idtype;
6953 }
6954 }
6955 if (!var2) {
6956 fprintf(stderr, "Runtime error: %s", "Assert failed");
6957 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24298);
6958 show_backtrace(1);
6959 }
6960 var3 = NEW_parser_nodes__AAbortExpr(&type_parser_nodes__AAbortExpr);
6961 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AAbortExpr__init_aabortexpr]))(var3, var_tkwabortnode2) /* init_aabortexpr on <var3:AAbortExpr>*/;
6962 var_pexprnode1 = var3;
6963 var_node_list = var_pexprnode1;
6964 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction612> */
6965 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
6966 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
6967 RET_LABEL:;
6968 }
6969 /* method parser#ReduceAction612#action for (self: Object, Parser) */
6970 void VIRTUAL_parser__ReduceAction612__action(val* self, val* p0) {
6971 parser__ReduceAction612__action(self, p0);
6972 RET_LABEL:;
6973 }
6974 /* method parser#ReduceAction613#action for (self: ReduceAction613, Parser) */
6975 void parser__ReduceAction613__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_nodearraylist1 /* var nodearraylist1: nullable Object */;
6981 val* var_tkwcontinuenode2 /* var tkwcontinuenode2: nullable Object */;
6982 short int var2 /* : Bool */;
6983 int cltype;
6984 int idtype;
6985 val* var3 /* : AContinueExpr */;
6986 val* var4 /* : null */;
6987 val* var5 /* : null */;
6988 val* var_pexprnode1 /* var pexprnode1: nullable AContinueExpr */;
6989 long var6 /* : Int */;
6990 long var7 /* : Int */;
6991 var_p = p0;
6992 var = NULL;
6993 var_node_list = var;
6994 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6995 var_nodearraylist1 = var1;
6996 var_tkwcontinuenode2 = var_nodearraylist1;
6997 /* <var_tkwcontinuenode2:nullable Object> isa nullable TKwcontinue */
6998 cltype = type_nullable_parser_nodes__TKwcontinue.color;
6999 idtype = type_nullable_parser_nodes__TKwcontinue.id;
7000 if(var_tkwcontinuenode2 == NULL) {
7001 var2 = 1;
7002 } else {
7003 if(cltype >= var_tkwcontinuenode2->type->table_size) {
7004 var2 = 0;
7005 } else {
7006 var2 = var_tkwcontinuenode2->type->type_table[cltype] == idtype;
7007 }
7008 }
7009 if (!var2) {
7010 fprintf(stderr, "Runtime error: %s", "Assert failed");
7011 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24313);
7012 show_backtrace(1);
7013 }
7014 var3 = NEW_parser_nodes__AContinueExpr(&type_parser_nodes__AContinueExpr);
7015 var4 = NULL;
7016 var5 = NULL;
7017 ((void (*)(val*, val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AContinueExpr__init_acontinueexpr]))(var3, var_tkwcontinuenode2, var4, var5) /* init_acontinueexpr on <var3:AContinueExpr>*/;
7018 var_pexprnode1 = var3;
7019 var_node_list = var_pexprnode1;
7020 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction613> */
7021 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
7022 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
7023 RET_LABEL:;
7024 }
7025 /* method parser#ReduceAction613#action for (self: Object, Parser) */
7026 void VIRTUAL_parser__ReduceAction613__action(val* self, val* p0) {
7027 parser__ReduceAction613__action(self, p0);
7028 RET_LABEL:;
7029 }
7030 /* method parser#ReduceAction614#action for (self: ReduceAction614, Parser) */
7031 void parser__ReduceAction614__action(val* self, val* p0) {
7032 val* var_p /* var p: Parser */;
7033 val* var /* : null */;
7034 val* var_node_list /* var node_list: nullable Object */;
7035 val* var1 /* : nullable Object */;
7036 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7037 val* var2 /* : nullable Object */;
7038 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7039 val* var_tkwcontinuenode2 /* var tkwcontinuenode2: nullable Object */;
7040 short int var3 /* : Bool */;
7041 int cltype;
7042 int idtype;
7043 val* var_plabelnode3 /* var plabelnode3: nullable Object */;
7044 short int var4 /* : Bool */;
7045 int cltype5;
7046 int idtype6;
7047 val* var7 /* : AContinueExpr */;
7048 val* var8 /* : null */;
7049 val* var_pexprnode1 /* var pexprnode1: nullable AContinueExpr */;
7050 long var9 /* : Int */;
7051 long var10 /* : Int */;
7052 var_p = p0;
7053 var = NULL;
7054 var_node_list = var;
7055 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7056 var_nodearraylist2 = var1;
7057 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7058 var_nodearraylist1 = var2;
7059 var_tkwcontinuenode2 = var_nodearraylist1;
7060 /* <var_tkwcontinuenode2:nullable Object> isa nullable TKwcontinue */
7061 cltype = type_nullable_parser_nodes__TKwcontinue.color;
7062 idtype = type_nullable_parser_nodes__TKwcontinue.id;
7063 if(var_tkwcontinuenode2 == NULL) {
7064 var3 = 1;
7065 } else {
7066 if(cltype >= var_tkwcontinuenode2->type->table_size) {
7067 var3 = 0;
7068 } else {
7069 var3 = var_tkwcontinuenode2->type->type_table[cltype] == idtype;
7070 }
7071 }
7072 if (!var3) {
7073 fprintf(stderr, "Runtime error: %s", "Assert failed");
7074 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24331);
7075 show_backtrace(1);
7076 }
7077 var_plabelnode3 = var_nodearraylist2;
7078 /* <var_plabelnode3:nullable Object> isa nullable ALabel */
7079 cltype5 = type_nullable_parser_nodes__ALabel.color;
7080 idtype6 = type_nullable_parser_nodes__ALabel.id;
7081 if(var_plabelnode3 == NULL) {
7082 var4 = 1;
7083 } else {
7084 if(cltype5 >= var_plabelnode3->type->table_size) {
7085 var4 = 0;
7086 } else {
7087 var4 = var_plabelnode3->type->type_table[cltype5] == idtype6;
7088 }
7089 }
7090 if (!var4) {
7091 fprintf(stderr, "Runtime error: %s", "Assert failed");
7092 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24333);
7093 show_backtrace(1);
7094 }
7095 var7 = NEW_parser_nodes__AContinueExpr(&type_parser_nodes__AContinueExpr);
7096 var8 = NULL;
7097 ((void (*)(val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AContinueExpr__init_acontinueexpr]))(var7, var_tkwcontinuenode2, var_plabelnode3, var8) /* init_acontinueexpr on <var7:AContinueExpr>*/;
7098 var_pexprnode1 = var7;
7099 var_node_list = var_pexprnode1;
7100 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction614> */
7101 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
7102 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
7103 RET_LABEL:;
7104 }
7105 /* method parser#ReduceAction614#action for (self: Object, Parser) */
7106 void VIRTUAL_parser__ReduceAction614__action(val* self, val* p0) {
7107 parser__ReduceAction614__action(self, p0);
7108 RET_LABEL:;
7109 }
7110 /* method parser#ReduceAction615#action for (self: ReduceAction615, Parser) */
7111 void parser__ReduceAction615__action(val* self, val* p0) {
7112 val* var_p /* var p: Parser */;
7113 val* var /* : null */;
7114 val* var_node_list /* var node_list: nullable Object */;
7115 val* var1 /* : nullable Object */;
7116 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7117 val* var2 /* : nullable Object */;
7118 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7119 val* var_tkwcontinuenode2 /* var tkwcontinuenode2: nullable Object */;
7120 short int var3 /* : Bool */;
7121 int cltype;
7122 int idtype;
7123 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
7124 short int var4 /* : Bool */;
7125 int cltype5;
7126 int idtype6;
7127 val* var7 /* : AContinueExpr */;
7128 val* var8 /* : null */;
7129 val* var_pexprnode1 /* var pexprnode1: nullable AContinueExpr */;
7130 long var9 /* : Int */;
7131 long var10 /* : Int */;
7132 var_p = p0;
7133 var = NULL;
7134 var_node_list = var;
7135 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7136 var_nodearraylist2 = var1;
7137 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7138 var_nodearraylist1 = var2;
7139 var_tkwcontinuenode2 = var_nodearraylist1;
7140 /* <var_tkwcontinuenode2:nullable Object> isa nullable TKwcontinue */
7141 cltype = type_nullable_parser_nodes__TKwcontinue.color;
7142 idtype = type_nullable_parser_nodes__TKwcontinue.id;
7143 if(var_tkwcontinuenode2 == NULL) {
7144 var3 = 1;
7145 } else {
7146 if(cltype >= var_tkwcontinuenode2->type->table_size) {
7147 var3 = 0;
7148 } else {
7149 var3 = var_tkwcontinuenode2->type->type_table[cltype] == idtype;
7150 }
7151 }
7152 if (!var3) {
7153 fprintf(stderr, "Runtime error: %s", "Assert failed");
7154 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24351);
7155 show_backtrace(1);
7156 }
7157 var_pexprnode4 = var_nodearraylist2;
7158 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
7159 cltype5 = type_nullable_parser_nodes__AExpr.color;
7160 idtype6 = type_nullable_parser_nodes__AExpr.id;
7161 if(var_pexprnode4 == NULL) {
7162 var4 = 1;
7163 } else {
7164 if(cltype5 >= var_pexprnode4->type->table_size) {
7165 var4 = 0;
7166 } else {
7167 var4 = var_pexprnode4->type->type_table[cltype5] == idtype6;
7168 }
7169 }
7170 if (!var4) {
7171 fprintf(stderr, "Runtime error: %s", "Assert failed");
7172 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24353);
7173 show_backtrace(1);
7174 }
7175 var7 = NEW_parser_nodes__AContinueExpr(&type_parser_nodes__AContinueExpr);
7176 var8 = NULL;
7177 ((void (*)(val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AContinueExpr__init_acontinueexpr]))(var7, var_tkwcontinuenode2, var8, var_pexprnode4) /* init_acontinueexpr on <var7:AContinueExpr>*/;
7178 var_pexprnode1 = var7;
7179 var_node_list = var_pexprnode1;
7180 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction615> */
7181 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
7182 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
7183 RET_LABEL:;
7184 }
7185 /* method parser#ReduceAction615#action for (self: Object, Parser) */
7186 void VIRTUAL_parser__ReduceAction615__action(val* self, val* p0) {
7187 parser__ReduceAction615__action(self, p0);
7188 RET_LABEL:;
7189 }
7190 /* method parser#ReduceAction616#action for (self: ReduceAction616, Parser) */
7191 void parser__ReduceAction616__action(val* self, val* p0) {
7192 val* var_p /* var p: Parser */;
7193 val* var /* : null */;
7194 val* var_node_list /* var node_list: nullable Object */;
7195 val* var1 /* : nullable Object */;
7196 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7197 val* var2 /* : nullable Object */;
7198 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7199 val* var3 /* : nullable Object */;
7200 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7201 val* var_tkwcontinuenode2 /* var tkwcontinuenode2: nullable Object */;
7202 short int var4 /* : Bool */;
7203 int cltype;
7204 int idtype;
7205 val* var_plabelnode3 /* var plabelnode3: nullable Object */;
7206 short int var5 /* : Bool */;
7207 int cltype6;
7208 int idtype7;
7209 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
7210 short int var8 /* : Bool */;
7211 int cltype9;
7212 int idtype10;
7213 val* var11 /* : AContinueExpr */;
7214 val* var_pexprnode1 /* var pexprnode1: nullable AContinueExpr */;
7215 long var12 /* : Int */;
7216 long var13 /* : Int */;
7217 var_p = p0;
7218 var = NULL;
7219 var_node_list = var;
7220 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7221 var_nodearraylist3 = var1;
7222 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7223 var_nodearraylist2 = var2;
7224 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7225 var_nodearraylist1 = var3;
7226 var_tkwcontinuenode2 = var_nodearraylist1;
7227 /* <var_tkwcontinuenode2:nullable Object> isa nullable TKwcontinue */
7228 cltype = type_nullable_parser_nodes__TKwcontinue.color;
7229 idtype = type_nullable_parser_nodes__TKwcontinue.id;
7230 if(var_tkwcontinuenode2 == NULL) {
7231 var4 = 1;
7232 } else {
7233 if(cltype >= var_tkwcontinuenode2->type->table_size) {
7234 var4 = 0;
7235 } else {
7236 var4 = var_tkwcontinuenode2->type->type_table[cltype] == idtype;
7237 }
7238 }
7239 if (!var4) {
7240 fprintf(stderr, "Runtime error: %s", "Assert failed");
7241 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24372);
7242 show_backtrace(1);
7243 }
7244 var_plabelnode3 = var_nodearraylist2;
7245 /* <var_plabelnode3:nullable Object> isa nullable ALabel */
7246 cltype6 = type_nullable_parser_nodes__ALabel.color;
7247 idtype7 = type_nullable_parser_nodes__ALabel.id;
7248 if(var_plabelnode3 == NULL) {
7249 var5 = 1;
7250 } else {
7251 if(cltype6 >= var_plabelnode3->type->table_size) {
7252 var5 = 0;
7253 } else {
7254 var5 = var_plabelnode3->type->type_table[cltype6] == idtype7;
7255 }
7256 }
7257 if (!var5) {
7258 fprintf(stderr, "Runtime error: %s", "Assert failed");
7259 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24374);
7260 show_backtrace(1);
7261 }
7262 var_pexprnode4 = var_nodearraylist3;
7263 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
7264 cltype9 = type_nullable_parser_nodes__AExpr.color;
7265 idtype10 = type_nullable_parser_nodes__AExpr.id;
7266 if(var_pexprnode4 == NULL) {
7267 var8 = 1;
7268 } else {
7269 if(cltype9 >= var_pexprnode4->type->table_size) {
7270 var8 = 0;
7271 } else {
7272 var8 = var_pexprnode4->type->type_table[cltype9] == idtype10;
7273 }
7274 }
7275 if (!var8) {
7276 fprintf(stderr, "Runtime error: %s", "Assert failed");
7277 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24376);
7278 show_backtrace(1);
7279 }
7280 var11 = NEW_parser_nodes__AContinueExpr(&type_parser_nodes__AContinueExpr);
7281 ((void (*)(val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AContinueExpr__init_acontinueexpr]))(var11, var_tkwcontinuenode2, var_plabelnode3, var_pexprnode4) /* init_acontinueexpr on <var11:AContinueExpr>*/;
7282 var_pexprnode1 = var11;
7283 var_node_list = var_pexprnode1;
7284 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction616> */
7285 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
7286 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
7287 RET_LABEL:;
7288 }
7289 /* method parser#ReduceAction616#action for (self: Object, Parser) */
7290 void VIRTUAL_parser__ReduceAction616__action(val* self, val* p0) {
7291 parser__ReduceAction616__action(self, p0);
7292 RET_LABEL:;
7293 }
7294 /* method parser#ReduceAction623#action for (self: ReduceAction623, Parser) */
7295 void parser__ReduceAction623__action(val* self, val* p0) {
7296 val* var_p /* var p: Parser */;
7297 val* var /* : null */;
7298 val* var_node_list /* var node_list: nullable Object */;
7299 val* var1 /* : nullable Object */;
7300 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7301 val* var2 /* : nullable Object */;
7302 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7303 val* var3 /* : nullable Object */;
7304 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7305 val* var4 /* : nullable Object */;
7306 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7307 val* var5 /* : nullable Object */;
7308 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7309 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7310 short int var6 /* : Bool */;
7311 int cltype;
7312 int idtype;
7313 val* var_tidnode3 /* var tidnode3: nullable Object */;
7314 short int var7 /* : Bool */;
7315 int cltype8;
7316 int idtype9;
7317 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
7318 short int var10 /* : Bool */;
7319 int cltype11;
7320 int idtype12;
7321 val* var13 /* : ACallExpr */;
7322 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
7323 long var14 /* : Int */;
7324 long var15 /* : Int */;
7325 var_p = p0;
7326 var = NULL;
7327 var_node_list = var;
7328 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7329 var_nodearraylist5 = var1;
7330 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7331 var_nodearraylist4 = var2;
7332 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7333 var_nodearraylist3 = var3;
7334 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7335 var_nodearraylist2 = var4;
7336 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7337 var_nodearraylist1 = var5;
7338 var_pexprnode2 = var_nodearraylist1;
7339 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7340 cltype = type_nullable_parser_nodes__AExpr.color;
7341 idtype = type_nullable_parser_nodes__AExpr.id;
7342 if(var_pexprnode2 == NULL) {
7343 var6 = 1;
7344 } else {
7345 if(cltype >= var_pexprnode2->type->table_size) {
7346 var6 = 0;
7347 } else {
7348 var6 = var_pexprnode2->type->type_table[cltype] == idtype;
7349 }
7350 }
7351 if (!var6) {
7352 fprintf(stderr, "Runtime error: %s", "Assert failed");
7353 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24397);
7354 show_backtrace(1);
7355 }
7356 var_tidnode3 = var_nodearraylist4;
7357 /* <var_tidnode3:nullable Object> isa nullable TId */
7358 cltype8 = type_nullable_parser_nodes__TId.color;
7359 idtype9 = type_nullable_parser_nodes__TId.id;
7360 if(var_tidnode3 == NULL) {
7361 var7 = 1;
7362 } else {
7363 if(cltype8 >= var_tidnode3->type->table_size) {
7364 var7 = 0;
7365 } else {
7366 var7 = var_tidnode3->type->type_table[cltype8] == idtype9;
7367 }
7368 }
7369 if (!var7) {
7370 fprintf(stderr, "Runtime error: %s", "Assert failed");
7371 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24399);
7372 show_backtrace(1);
7373 }
7374 var_pexprsnode4 = var_nodearraylist5;
7375 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
7376 cltype11 = type_nullable_parser_nodes__AExprs.color;
7377 idtype12 = type_nullable_parser_nodes__AExprs.id;
7378 if(var_pexprsnode4 == NULL) {
7379 var10 = 1;
7380 } else {
7381 if(cltype11 >= var_pexprsnode4->type->table_size) {
7382 var10 = 0;
7383 } else {
7384 var10 = var_pexprsnode4->type->type_table[cltype11] == idtype12;
7385 }
7386 }
7387 if (!var10) {
7388 fprintf(stderr, "Runtime error: %s", "Assert failed");
7389 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24401);
7390 show_backtrace(1);
7391 }
7392 var13 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
7393 ((void (*)(val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__ACallExpr__init_acallexpr]))(var13, var_pexprnode2, var_tidnode3, var_pexprsnode4) /* init_acallexpr on <var13:ACallExpr>*/;
7394 var_pexprnode1 = var13;
7395 var_node_list = var_pexprnode1;
7396 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction623> */
7397 var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
7398 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
7399 RET_LABEL:;
7400 }
7401 /* method parser#ReduceAction623#action for (self: Object, Parser) */
7402 void VIRTUAL_parser__ReduceAction623__action(val* self, val* p0) {
7403 parser__ReduceAction623__action(self, p0);
7404 RET_LABEL:;
7405 }
7406 /* method parser#ReduceAction624#action for (self: ReduceAction624, Parser) */
7407 void parser__ReduceAction624__action(val* self, val* p0) {
7408 val* var_p /* var p: Parser */;
7409 val* var /* : null */;
7410 val* var_node_list /* var node_list: nullable Object */;
7411 val* var1 /* : nullable Object */;
7412 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7413 val* var2 /* : nullable Object */;
7414 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7415 val* var3 /* : AImplicitSelfExpr */;
7416 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
7417 val* var_tidnode3 /* var tidnode3: nullable Object */;
7418 short int var4 /* : Bool */;
7419 int cltype;
7420 int idtype;
7421 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
7422 short int var5 /* : Bool */;
7423 int cltype6;
7424 int idtype7;
7425 val* var8 /* : ACallExpr */;
7426 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
7427 long var9 /* : Int */;
7428 long var10 /* : Int */;
7429 var_p = p0;
7430 var = NULL;
7431 var_node_list = var;
7432 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7433 var_nodearraylist2 = var1;
7434 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7435 var_nodearraylist1 = var2;
7436 var3 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
7437 ((void (*)(val*))(var3->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var3) /* init_aimplicitselfexpr on <var3:AImplicitSelfExpr>*/;
7438 var_pexprnode2 = var3;
7439 var_tidnode3 = var_nodearraylist1;
7440 /* <var_tidnode3:nullable Object> isa nullable TId */
7441 cltype = type_nullable_parser_nodes__TId.color;
7442 idtype = type_nullable_parser_nodes__TId.id;
7443 if(var_tidnode3 == NULL) {
7444 var4 = 1;
7445 } else {
7446 if(cltype >= var_tidnode3->type->table_size) {
7447 var4 = 0;
7448 } else {
7449 var4 = var_tidnode3->type->type_table[cltype] == idtype;
7450 }
7451 }
7452 if (!var4) {
7453 fprintf(stderr, "Runtime error: %s", "Assert failed");
7454 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24420);
7455 show_backtrace(1);
7456 }
7457 var_pexprsnode4 = var_nodearraylist2;
7458 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
7459 cltype6 = type_nullable_parser_nodes__AExprs.color;
7460 idtype7 = type_nullable_parser_nodes__AExprs.id;
7461 if(var_pexprsnode4 == NULL) {
7462 var5 = 1;
7463 } else {
7464 if(cltype6 >= var_pexprsnode4->type->table_size) {
7465 var5 = 0;
7466 } else {
7467 var5 = var_pexprsnode4->type->type_table[cltype6] == idtype7;
7468 }
7469 }
7470 if (!var5) {
7471 fprintf(stderr, "Runtime error: %s", "Assert failed");
7472 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24422);
7473 show_backtrace(1);
7474 }
7475 var8 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
7476 ((void (*)(val*, val*, val*, val*))(var8->class->vft[COLOR_parser_prod__ACallExpr__init_acallexpr]))(var8, var_pexprnode2, var_tidnode3, var_pexprsnode4) /* init_acallexpr on <var8:ACallExpr>*/;
7477 var_pexprnode1 = var8;
7478 var_node_list = var_pexprnode1;
7479 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction624> */
7480 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
7481 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
7482 RET_LABEL:;
7483 }
7484 /* method parser#ReduceAction624#action for (self: Object, Parser) */
7485 void VIRTUAL_parser__ReduceAction624__action(val* self, val* p0) {
7486 parser__ReduceAction624__action(self, p0);
7487 RET_LABEL:;
7488 }
7489 /* method parser#ReduceAction625#action for (self: ReduceAction625, Parser) */
7490 void parser__ReduceAction625__action(val* self, val* p0) {
7491 val* var_p /* var p: Parser */;
7492 val* var /* : null */;
7493 val* var_node_list /* var node_list: nullable Object */;
7494 val* var1 /* : nullable Object */;
7495 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7496 val* var2 /* : nullable Object */;
7497 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7498 val* var3 /* : nullable Object */;
7499 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7500 val* var4 /* : nullable Object */;
7501 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7502 val* var5 /* : nullable Object */;
7503 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7504 val* var6 /* : nullable Object */;
7505 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7506 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7507 short int var7 /* : Bool */;
7508 int cltype;
7509 int idtype;
7510 val* var_tidnode3 /* var tidnode3: nullable Object */;
7511 short int var8 /* : Bool */;
7512 int cltype9;
7513 int idtype10;
7514 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
7515 short int var11 /* : Bool */;
7516 int cltype12;
7517 int idtype13;
7518 val* var14 /* : ACallExpr */;
7519 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
7520 long var15 /* : Int */;
7521 long var16 /* : Int */;
7522 var_p = p0;
7523 var = NULL;
7524 var_node_list = var;
7525 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7526 var_nodearraylist6 = var1;
7527 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7528 var_nodearraylist5 = var2;
7529 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7530 var_nodearraylist4 = var3;
7531 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7532 var_nodearraylist3 = var4;
7533 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7534 var_nodearraylist2 = var5;
7535 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7536 var_nodearraylist1 = var6;
7537 var_pexprnode2 = var_nodearraylist1;
7538 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7539 cltype = type_nullable_parser_nodes__AExpr.color;
7540 idtype = type_nullable_parser_nodes__AExpr.id;
7541 if(var_pexprnode2 == NULL) {
7542 var7 = 1;
7543 } else {
7544 if(cltype >= var_pexprnode2->type->table_size) {
7545 var7 = 0;
7546 } else {
7547 var7 = var_pexprnode2->type->type_table[cltype] == idtype;
7548 }
7549 }
7550 if (!var7) {
7551 fprintf(stderr, "Runtime error: %s", "Assert failed");
7552 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24444);
7553 show_backtrace(1);
7554 }
7555 var_tidnode3 = var_nodearraylist5;
7556 /* <var_tidnode3:nullable Object> isa nullable TId */
7557 cltype9 = type_nullable_parser_nodes__TId.color;
7558 idtype10 = type_nullable_parser_nodes__TId.id;
7559 if(var_tidnode3 == NULL) {
7560 var8 = 1;
7561 } else {
7562 if(cltype9 >= var_tidnode3->type->table_size) {
7563 var8 = 0;
7564 } else {
7565 var8 = var_tidnode3->type->type_table[cltype9] == idtype10;
7566 }
7567 }
7568 if (!var8) {
7569 fprintf(stderr, "Runtime error: %s", "Assert failed");
7570 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24446);
7571 show_backtrace(1);
7572 }
7573 var_pexprsnode4 = var_nodearraylist6;
7574 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
7575 cltype12 = type_nullable_parser_nodes__AExprs.color;
7576 idtype13 = type_nullable_parser_nodes__AExprs.id;
7577 if(var_pexprsnode4 == NULL) {
7578 var11 = 1;
7579 } else {
7580 if(cltype12 >= var_pexprsnode4->type->table_size) {
7581 var11 = 0;
7582 } else {
7583 var11 = var_pexprsnode4->type->type_table[cltype12] == idtype13;
7584 }
7585 }
7586 if (!var11) {
7587 fprintf(stderr, "Runtime error: %s", "Assert failed");
7588 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24448);
7589 show_backtrace(1);
7590 }
7591 var14 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
7592 ((void (*)(val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__ACallExpr__init_acallexpr]))(var14, var_pexprnode2, var_tidnode3, var_pexprsnode4) /* init_acallexpr on <var14:ACallExpr>*/;
7593 var_pexprnode1 = var14;
7594 var_node_list = var_pexprnode1;
7595 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction625> */
7596 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
7597 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
7598 RET_LABEL:;
7599 }
7600 /* method parser#ReduceAction625#action for (self: Object, Parser) */
7601 void VIRTUAL_parser__ReduceAction625__action(val* self, val* p0) {
7602 parser__ReduceAction625__action(self, p0);
7603 RET_LABEL:;
7604 }
7605 /* method parser#ReduceAction626#action for (self: ReduceAction626, Parser) */
7606 void parser__ReduceAction626__action(val* self, val* p0) {
7607 val* var_p /* var p: Parser */;
7608 val* var /* : null */;
7609 val* var_node_list /* var node_list: nullable Object */;
7610 val* var1 /* : nullable Object */;
7611 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
7612 val* var2 /* : nullable Object */;
7613 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7614 val* var3 /* : nullable Object */;
7615 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7616 val* var4 /* : nullable Object */;
7617 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7618 val* var5 /* : nullable Object */;
7619 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7620 val* var6 /* : nullable Object */;
7621 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7622 val* var7 /* : nullable Object */;
7623 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7624 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7625 short int var8 /* : Bool */;
7626 int cltype;
7627 int idtype;
7628 val* var_tidnode3 /* var tidnode3: nullable Object */;
7629 short int var9 /* : Bool */;
7630 int cltype10;
7631 int idtype11;
7632 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
7633 short int var12 /* : Bool */;
7634 int cltype13;
7635 int idtype14;
7636 val* var15 /* : ACallExpr */;
7637 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
7638 long var16 /* : Int */;
7639 long var17 /* : Int */;
7640 var_p = p0;
7641 var = NULL;
7642 var_node_list = var;
7643 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7644 var_nodearraylist7 = var1;
7645 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7646 var_nodearraylist6 = var2;
7647 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7648 var_nodearraylist5 = var3;
7649 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7650 var_nodearraylist4 = var4;
7651 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7652 var_nodearraylist3 = var5;
7653 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7654 var_nodearraylist2 = var6;
7655 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7656 var_nodearraylist1 = var7;
7657 var_pexprnode2 = var_nodearraylist1;
7658 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7659 cltype = type_nullable_parser_nodes__AExpr.color;
7660 idtype = type_nullable_parser_nodes__AExpr.id;
7661 if(var_pexprnode2 == NULL) {
7662 var8 = 1;
7663 } else {
7664 if(cltype >= var_pexprnode2->type->table_size) {
7665 var8 = 0;
7666 } else {
7667 var8 = var_pexprnode2->type->type_table[cltype] == idtype;
7668 }
7669 }
7670 if (!var8) {
7671 fprintf(stderr, "Runtime error: %s", "Assert failed");
7672 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24471);
7673 show_backtrace(1);
7674 }
7675 var_tidnode3 = var_nodearraylist6;
7676 /* <var_tidnode3:nullable Object> isa nullable TId */
7677 cltype10 = type_nullable_parser_nodes__TId.color;
7678 idtype11 = type_nullable_parser_nodes__TId.id;
7679 if(var_tidnode3 == NULL) {
7680 var9 = 1;
7681 } else {
7682 if(cltype10 >= var_tidnode3->type->table_size) {
7683 var9 = 0;
7684 } else {
7685 var9 = var_tidnode3->type->type_table[cltype10] == idtype11;
7686 }
7687 }
7688 if (!var9) {
7689 fprintf(stderr, "Runtime error: %s", "Assert failed");
7690 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24473);
7691 show_backtrace(1);
7692 }
7693 var_pexprsnode4 = var_nodearraylist7;
7694 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
7695 cltype13 = type_nullable_parser_nodes__AExprs.color;
7696 idtype14 = type_nullable_parser_nodes__AExprs.id;
7697 if(var_pexprsnode4 == NULL) {
7698 var12 = 1;
7699 } else {
7700 if(cltype13 >= var_pexprsnode4->type->table_size) {
7701 var12 = 0;
7702 } else {
7703 var12 = var_pexprsnode4->type->type_table[cltype13] == idtype14;
7704 }
7705 }
7706 if (!var12) {
7707 fprintf(stderr, "Runtime error: %s", "Assert failed");
7708 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24475);
7709 show_backtrace(1);
7710 }
7711 var15 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
7712 ((void (*)(val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__ACallExpr__init_acallexpr]))(var15, var_pexprnode2, var_tidnode3, var_pexprsnode4) /* init_acallexpr on <var15:ACallExpr>*/;
7713 var_pexprnode1 = var15;
7714 var_node_list = var_pexprnode1;
7715 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction626> */
7716 var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
7717 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
7718 RET_LABEL:;
7719 }
7720 /* method parser#ReduceAction626#action for (self: Object, Parser) */
7721 void VIRTUAL_parser__ReduceAction626__action(val* self, val* p0) {
7722 parser__ReduceAction626__action(self, p0);
7723 RET_LABEL:;
7724 }
7725 /* method parser#ReduceAction628#action for (self: ReduceAction628, Parser) */
7726 void parser__ReduceAction628__action(val* self, val* p0) {
7727 val* var_p /* var p: Parser */;
7728 val* var /* : null */;
7729 val* var_node_list /* var node_list: nullable Object */;
7730 val* var1 /* : nullable Object */;
7731 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7732 val* var2 /* : nullable Object */;
7733 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7734 val* var3 /* : nullable Object */;
7735 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7736 val* var4 /* : AImplicitSelfExpr */;
7737 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
7738 val* var_tidnode3 /* var tidnode3: nullable Object */;
7739 short int var5 /* : Bool */;
7740 int cltype;
7741 int idtype;
7742 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
7743 short int var6 /* : Bool */;
7744 int cltype7;
7745 int idtype8;
7746 val* var9 /* : ACallExpr */;
7747 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
7748 long var10 /* : Int */;
7749 long var11 /* : Int */;
7750 var_p = p0;
7751 var = NULL;
7752 var_node_list = var;
7753 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7754 var_nodearraylist3 = var1;
7755 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7756 var_nodearraylist2 = var2;
7757 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7758 var_nodearraylist1 = var3;
7759 var4 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
7760 ((void (*)(val*))(var4->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var4) /* init_aimplicitselfexpr on <var4:AImplicitSelfExpr>*/;
7761 var_pexprnode2 = var4;
7762 var_tidnode3 = var_nodearraylist2;
7763 /* <var_tidnode3:nullable Object> isa nullable TId */
7764 cltype = type_nullable_parser_nodes__TId.color;
7765 idtype = type_nullable_parser_nodes__TId.id;
7766 if(var_tidnode3 == NULL) {
7767 var5 = 1;
7768 } else {
7769 if(cltype >= var_tidnode3->type->table_size) {
7770 var5 = 0;
7771 } else {
7772 var5 = var_tidnode3->type->type_table[cltype] == idtype;
7773 }
7774 }
7775 if (!var5) {
7776 fprintf(stderr, "Runtime error: %s", "Assert failed");
7777 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24495);
7778 show_backtrace(1);
7779 }
7780 var_pexprsnode4 = var_nodearraylist3;
7781 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
7782 cltype7 = type_nullable_parser_nodes__AExprs.color;
7783 idtype8 = type_nullable_parser_nodes__AExprs.id;
7784 if(var_pexprsnode4 == NULL) {
7785 var6 = 1;
7786 } else {
7787 if(cltype7 >= var_pexprsnode4->type->table_size) {
7788 var6 = 0;
7789 } else {
7790 var6 = var_pexprsnode4->type->type_table[cltype7] == idtype8;
7791 }
7792 }
7793 if (!var6) {
7794 fprintf(stderr, "Runtime error: %s", "Assert failed");
7795 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24497);
7796 show_backtrace(1);
7797 }
7798 var9 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
7799 ((void (*)(val*, val*, val*, val*))(var9->class->vft[COLOR_parser_prod__ACallExpr__init_acallexpr]))(var9, var_pexprnode2, var_tidnode3, var_pexprsnode4) /* init_acallexpr on <var9:ACallExpr>*/;
7800 var_pexprnode1 = var9;
7801 var_node_list = var_pexprnode1;
7802 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction628> */
7803 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
7804 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
7805 RET_LABEL:;
7806 }
7807 /* method parser#ReduceAction628#action for (self: Object, Parser) */
7808 void VIRTUAL_parser__ReduceAction628__action(val* self, val* p0) {
7809 parser__ReduceAction628__action(self, p0);
7810 RET_LABEL:;
7811 }
7812 /* method parser#ReduceAction629#action for (self: ReduceAction629, Parser) */
7813 void parser__ReduceAction629__action(val* self, val* p0) {
7814 val* var_p /* var p: Parser */;
7815 val* var /* : null */;
7816 val* var_node_list /* var node_list: nullable Object */;
7817 val* var1 /* : nullable Object */;
7818 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7819 val* var2 /* : nullable Object */;
7820 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7821 val* var3 /* : nullable Object */;
7822 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7823 val* var4 /* : nullable Object */;
7824 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7825 val* var5 /* : AImplicitSelfExpr */;
7826 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
7827 val* var_tidnode3 /* var tidnode3: nullable Object */;
7828 short int var6 /* : Bool */;
7829 int cltype;
7830 int idtype;
7831 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
7832 short int var7 /* : Bool */;
7833 int cltype8;
7834 int idtype9;
7835 val* var10 /* : ACallExpr */;
7836 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
7837 long var11 /* : Int */;
7838 long var12 /* : Int */;
7839 var_p = p0;
7840 var = NULL;
7841 var_node_list = var;
7842 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7843 var_nodearraylist4 = var1;
7844 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7845 var_nodearraylist3 = var2;
7846 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7847 var_nodearraylist2 = var3;
7848 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7849 var_nodearraylist1 = var4;
7850 var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
7851 ((void (*)(val*))(var5->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var5) /* init_aimplicitselfexpr on <var5:AImplicitSelfExpr>*/;
7852 var_pexprnode2 = var5;
7853 var_tidnode3 = var_nodearraylist3;
7854 /* <var_tidnode3:nullable Object> isa nullable TId */
7855 cltype = type_nullable_parser_nodes__TId.color;
7856 idtype = type_nullable_parser_nodes__TId.id;
7857 if(var_tidnode3 == NULL) {
7858 var6 = 1;
7859 } else {
7860 if(cltype >= var_tidnode3->type->table_size) {
7861 var6 = 0;
7862 } else {
7863 var6 = var_tidnode3->type->type_table[cltype] == idtype;
7864 }
7865 }
7866 if (!var6) {
7867 fprintf(stderr, "Runtime error: %s", "Assert failed");
7868 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24518);
7869 show_backtrace(1);
7870 }
7871 var_pexprsnode4 = var_nodearraylist4;
7872 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
7873 cltype8 = type_nullable_parser_nodes__AExprs.color;
7874 idtype9 = type_nullable_parser_nodes__AExprs.id;
7875 if(var_pexprsnode4 == NULL) {
7876 var7 = 1;
7877 } else {
7878 if(cltype8 >= var_pexprsnode4->type->table_size) {
7879 var7 = 0;
7880 } else {
7881 var7 = var_pexprsnode4->type->type_table[cltype8] == idtype9;
7882 }
7883 }
7884 if (!var7) {
7885 fprintf(stderr, "Runtime error: %s", "Assert failed");
7886 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24520);
7887 show_backtrace(1);
7888 }
7889 var10 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
7890 ((void (*)(val*, val*, val*, val*))(var10->class->vft[COLOR_parser_prod__ACallExpr__init_acallexpr]))(var10, var_pexprnode2, var_tidnode3, var_pexprsnode4) /* init_acallexpr on <var10:ACallExpr>*/;
7891 var_pexprnode1 = var10;
7892 var_node_list = var_pexprnode1;
7893 var11 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction629> */
7894 var12 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var11) /* go_to on <var_p:Parser>*/;
7895 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var12, var_node_list) /* push on <var_p:Parser>*/;
7896 RET_LABEL:;
7897 }
7898 /* method parser#ReduceAction629#action for (self: Object, Parser) */
7899 void VIRTUAL_parser__ReduceAction629__action(val* self, val* p0) {
7900 parser__ReduceAction629__action(self, p0);
7901 RET_LABEL:;
7902 }
7903 /* method parser#ReduceAction631#action for (self: ReduceAction631, Parser) */
7904 void parser__ReduceAction631__action(val* self, val* p0) {
7905 val* var_p /* var p: Parser */;
7906 val* var /* : null */;
7907 val* var_node_list /* var node_list: nullable Object */;
7908 val* var1 /* : nullable Object */;
7909 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7910 val* var2 /* : nullable Object */;
7911 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7912 val* var_tkwsupernode3 /* var tkwsupernode3: nullable Object */;
7913 short int var3 /* : Bool */;
7914 int cltype;
7915 int idtype;
7916 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
7917 short int var4 /* : Bool */;
7918 int cltype5;
7919 int idtype6;
7920 val* var7 /* : ASuperExpr */;
7921 val* var8 /* : null */;
7922 val* var_pexprnode1 /* var pexprnode1: nullable ASuperExpr */;
7923 long var9 /* : Int */;
7924 long var10 /* : Int */;
7925 var_p = p0;
7926 var = NULL;
7927 var_node_list = var;
7928 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7929 var_nodearraylist2 = var1;
7930 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7931 var_nodearraylist1 = var2;
7932 var_tkwsupernode3 = var_nodearraylist1;
7933 /* <var_tkwsupernode3:nullable Object> isa nullable TKwsuper */
7934 cltype = type_nullable_parser_nodes__TKwsuper.color;
7935 idtype = type_nullable_parser_nodes__TKwsuper.id;
7936 if(var_tkwsupernode3 == NULL) {
7937 var3 = 1;
7938 } else {
7939 if(cltype >= var_tkwsupernode3->type->table_size) {
7940 var3 = 0;
7941 } else {
7942 var3 = var_tkwsupernode3->type->type_table[cltype] == idtype;
7943 }
7944 }
7945 if (!var3) {
7946 fprintf(stderr, "Runtime error: %s", "Assert failed");
7947 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24538);
7948 show_backtrace(1);
7949 }
7950 var_pexprsnode4 = var_nodearraylist2;
7951 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
7952 cltype5 = type_nullable_parser_nodes__AExprs.color;
7953 idtype6 = type_nullable_parser_nodes__AExprs.id;
7954 if(var_pexprsnode4 == NULL) {
7955 var4 = 1;
7956 } else {
7957 if(cltype5 >= var_pexprsnode4->type->table_size) {
7958 var4 = 0;
7959 } else {
7960 var4 = var_pexprsnode4->type->type_table[cltype5] == idtype6;
7961 }
7962 }
7963 if (!var4) {
7964 fprintf(stderr, "Runtime error: %s", "Assert failed");
7965 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24540);
7966 show_backtrace(1);
7967 }
7968 var7 = NEW_parser_nodes__ASuperExpr(&type_parser_nodes__ASuperExpr);
7969 var8 = NULL;
7970 ((void (*)(val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ASuperExpr__init_asuperexpr]))(var7, var8, var_tkwsupernode3, var_pexprsnode4) /* init_asuperexpr on <var7:ASuperExpr>*/;
7971 var_pexprnode1 = var7;
7972 var_node_list = var_pexprnode1;
7973 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction631> */
7974 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
7975 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
7976 RET_LABEL:;
7977 }
7978 /* method parser#ReduceAction631#action for (self: Object, Parser) */
7979 void VIRTUAL_parser__ReduceAction631__action(val* self, val* p0) {
7980 parser__ReduceAction631__action(self, p0);
7981 RET_LABEL:;
7982 }
7983 /* method parser#ReduceAction632#action for (self: ReduceAction632, Parser) */
7984 void parser__ReduceAction632__action(val* self, val* p0) {
7985 val* var_p /* var p: Parser */;
7986 val* var /* : null */;
7987 val* var_node_list /* var node_list: nullable Object */;
7988 val* var1 /* : nullable Object */;
7989 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7990 val* var2 /* : nullable Object */;
7991 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7992 val* var3 /* : nullable Object */;
7993 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7994 val* var4 /* : Array[Object] */;
7995 val* var_listnode3 /* var listnode3: Array[Object] */;
7996 val* var_tclassidnode4 /* var tclassidnode4: nullable Object */;
7997 short int var5 /* : Bool */;
7998 int cltype;
7999 int idtype;
8000 val* var6 /* : AQualified */;
8001 val* var_pqualifiednode2 /* var pqualifiednode2: nullable AQualified */;
8002 val* var_tkwsupernode5 /* var tkwsupernode5: nullable Object */;
8003 short int var7 /* : Bool */;
8004 int cltype8;
8005 int idtype9;
8006 val* var_pexprsnode6 /* var pexprsnode6: nullable Object */;
8007 short int var10 /* : Bool */;
8008 int cltype11;
8009 int idtype12;
8010 val* var13 /* : ASuperExpr */;
8011 val* var_pexprnode1 /* var pexprnode1: nullable ASuperExpr */;
8012 long var14 /* : Int */;
8013 long var15 /* : 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_nodearraylist3 = var1;
8019 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8020 var_nodearraylist2 = var2;
8021 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8022 var_nodearraylist1 = var3;
8023 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
8024 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
8025 var_listnode3 = var4;
8026 var_tclassidnode4 = var_nodearraylist1;
8027 /* <var_tclassidnode4:nullable Object> isa nullable TClassid */
8028 cltype = type_nullable_parser_nodes__TClassid.color;
8029 idtype = type_nullable_parser_nodes__TClassid.id;
8030 if(var_tclassidnode4 == NULL) {
8031 var5 = 1;
8032 } else {
8033 if(cltype >= var_tclassidnode4->type->table_size) {
8034 var5 = 0;
8035 } else {
8036 var5 = var_tclassidnode4->type->type_table[cltype] == idtype;
8037 }
8038 }
8039 if (!var5) {
8040 fprintf(stderr, "Runtime error: %s", "Assert failed");
8041 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24560);
8042 show_backtrace(1);
8043 }
8044 var6 = NEW_parser_nodes__AQualified(&type_parser_nodes__AQualified);
8045 ((void (*)(val*, val*, val*))(var6->class->vft[COLOR_parser_prod__AQualified__init_aqualified]))(var6, var_listnode3, var_tclassidnode4) /* init_aqualified on <var6:AQualified>*/;
8046 var_pqualifiednode2 = var6;
8047 var_tkwsupernode5 = var_nodearraylist2;
8048 /* <var_tkwsupernode5:nullable Object> isa nullable TKwsuper */
8049 cltype8 = type_nullable_parser_nodes__TKwsuper.color;
8050 idtype9 = type_nullable_parser_nodes__TKwsuper.id;
8051 if(var_tkwsupernode5 == NULL) {
8052 var7 = 1;
8053 } else {
8054 if(cltype8 >= var_tkwsupernode5->type->table_size) {
8055 var7 = 0;
8056 } else {
8057 var7 = var_tkwsupernode5->type->type_table[cltype8] == idtype9;
8058 }
8059 }
8060 if (!var7) {
8061 fprintf(stderr, "Runtime error: %s", "Assert failed");
8062 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24566);
8063 show_backtrace(1);
8064 }
8065 var_pexprsnode6 = var_nodearraylist3;
8066 /* <var_pexprsnode6:nullable Object> isa nullable AExprs */
8067 cltype11 = type_nullable_parser_nodes__AExprs.color;
8068 idtype12 = type_nullable_parser_nodes__AExprs.id;
8069 if(var_pexprsnode6 == NULL) {
8070 var10 = 1;
8071 } else {
8072 if(cltype11 >= var_pexprsnode6->type->table_size) {
8073 var10 = 0;
8074 } else {
8075 var10 = var_pexprsnode6->type->type_table[cltype11] == idtype12;
8076 }
8077 }
8078 if (!var10) {
8079 fprintf(stderr, "Runtime error: %s", "Assert failed");
8080 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24568);
8081 show_backtrace(1);
8082 }
8083 var13 = NEW_parser_nodes__ASuperExpr(&type_parser_nodes__ASuperExpr);
8084 ((void (*)(val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__ASuperExpr__init_asuperexpr]))(var13, var_pqualifiednode2, var_tkwsupernode5, var_pexprsnode6) /* init_asuperexpr on <var13:ASuperExpr>*/;
8085 var_pexprnode1 = var13;
8086 var_node_list = var_pexprnode1;
8087 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction632> */
8088 var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
8089 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
8090 RET_LABEL:;
8091 }
8092 /* method parser#ReduceAction632#action for (self: Object, Parser) */
8093 void VIRTUAL_parser__ReduceAction632__action(val* self, val* p0) {
8094 parser__ReduceAction632__action(self, p0);
8095 RET_LABEL:;
8096 }
8097 /* method parser#ReduceAction633#action for (self: ReduceAction633, Parser) */
8098 void parser__ReduceAction633__action(val* self, val* p0) {
8099 val* var_p /* var p: Parser */;
8100 val* var /* : null */;
8101 val* var_node_list /* var node_list: nullable Object */;
8102 val* var1 /* : nullable Object */;
8103 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8104 val* var2 /* : nullable Object */;
8105 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8106 val* var3 /* : nullable Object */;
8107 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8108 val* var4 /* : nullable Object */;
8109 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8110 val* var5 /* : Array[Object] */;
8111 val* var_listnode4 /* var listnode4: Array[Object] */;
8112 val* var_listnode3 /* var listnode3: nullable Object */;
8113 short int var6 /* : Bool */;
8114 int cltype;
8115 int idtype;
8116 val* var7 /* : Array[Object] */;
8117 val* var_tclassidnode5 /* var tclassidnode5: nullable Object */;
8118 short int var8 /* : Bool */;
8119 int cltype9;
8120 int idtype10;
8121 val* var11 /* : AQualified */;
8122 val* var_pqualifiednode2 /* var pqualifiednode2: nullable AQualified */;
8123 val* var_tkwsupernode6 /* var tkwsupernode6: nullable Object */;
8124 short int var12 /* : Bool */;
8125 int cltype13;
8126 int idtype14;
8127 val* var_pexprsnode7 /* var pexprsnode7: nullable Object */;
8128 short int var15 /* : Bool */;
8129 int cltype16;
8130 int idtype17;
8131 val* var18 /* : ASuperExpr */;
8132 val* var_pexprnode1 /* var pexprnode1: nullable ASuperExpr */;
8133 long var19 /* : Int */;
8134 long var20 /* : Int */;
8135 var_p = p0;
8136 var = NULL;
8137 var_node_list = var;
8138 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8139 var_nodearraylist4 = var1;
8140 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8141 var_nodearraylist3 = var2;
8142 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8143 var_nodearraylist2 = var3;
8144 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8145 var_nodearraylist1 = var4;
8146 var5 = NEW_array__Array(&type_array__Arraykernel__Object);
8147 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[Object]>*/;
8148 var_listnode4 = var5;
8149 var_listnode3 = var_nodearraylist1;
8150 /* <var_listnode3:nullable Object> isa Array[Object] */
8151 cltype = type_array__Arraykernel__Object.color;
8152 idtype = type_array__Arraykernel__Object.id;
8153 if(var_listnode3 == NULL) {
8154 var6 = 0;
8155 } else {
8156 if(cltype >= var_listnode3->type->table_size) {
8157 var6 = 0;
8158 } else {
8159 var6 = var_listnode3->type->type_table[cltype] == idtype;
8160 }
8161 }
8162 if (!var6) {
8163 fprintf(stderr, "Runtime error: %s", "Assert failed");
8164 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24589);
8165 show_backtrace(1);
8166 }
8167 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction633>*/;
8168 var_listnode4 = var7;
8169 var_tclassidnode5 = var_nodearraylist2;
8170 /* <var_tclassidnode5:nullable Object> isa nullable TClassid */
8171 cltype9 = type_nullable_parser_nodes__TClassid.color;
8172 idtype10 = type_nullable_parser_nodes__TClassid.id;
8173 if(var_tclassidnode5 == NULL) {
8174 var8 = 1;
8175 } else {
8176 if(cltype9 >= var_tclassidnode5->type->table_size) {
8177 var8 = 0;
8178 } else {
8179 var8 = var_tclassidnode5->type->type_table[cltype9] == idtype10;
8180 }
8181 }
8182 if (!var8) {
8183 fprintf(stderr, "Runtime error: %s", "Assert failed");
8184 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24592);
8185 show_backtrace(1);
8186 }
8187 var11 = NEW_parser_nodes__AQualified(&type_parser_nodes__AQualified);
8188 ((void (*)(val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AQualified__init_aqualified]))(var11, var_listnode4, var_tclassidnode5) /* init_aqualified on <var11:AQualified>*/;
8189 var_pqualifiednode2 = var11;
8190 var_tkwsupernode6 = var_nodearraylist3;
8191 /* <var_tkwsupernode6:nullable Object> isa nullable TKwsuper */
8192 cltype13 = type_nullable_parser_nodes__TKwsuper.color;
8193 idtype14 = type_nullable_parser_nodes__TKwsuper.id;
8194 if(var_tkwsupernode6 == NULL) {
8195 var12 = 1;
8196 } else {
8197 if(cltype13 >= var_tkwsupernode6->type->table_size) {
8198 var12 = 0;
8199 } else {
8200 var12 = var_tkwsupernode6->type->type_table[cltype13] == idtype14;
8201 }
8202 }
8203 if (!var12) {
8204 fprintf(stderr, "Runtime error: %s", "Assert failed");
8205 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24598);
8206 show_backtrace(1);
8207 }
8208 var_pexprsnode7 = var_nodearraylist4;
8209 /* <var_pexprsnode7:nullable Object> isa nullable AExprs */
8210 cltype16 = type_nullable_parser_nodes__AExprs.color;
8211 idtype17 = type_nullable_parser_nodes__AExprs.id;
8212 if(var_pexprsnode7 == NULL) {
8213 var15 = 1;
8214 } else {
8215 if(cltype16 >= var_pexprsnode7->type->table_size) {
8216 var15 = 0;
8217 } else {
8218 var15 = var_pexprsnode7->type->type_table[cltype16] == idtype17;
8219 }
8220 }
8221 if (!var15) {
8222 fprintf(stderr, "Runtime error: %s", "Assert failed");
8223 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24600);
8224 show_backtrace(1);
8225 }
8226 var18 = NEW_parser_nodes__ASuperExpr(&type_parser_nodes__ASuperExpr);
8227 ((void (*)(val*, val*, val*, val*))(var18->class->vft[COLOR_parser_prod__ASuperExpr__init_asuperexpr]))(var18, var_pqualifiednode2, var_tkwsupernode6, var_pexprsnode7) /* init_asuperexpr on <var18:ASuperExpr>*/;
8228 var_pexprnode1 = var18;
8229 var_node_list = var_pexprnode1;
8230 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction633> */
8231 var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
8232 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
8233 RET_LABEL:;
8234 }
8235 /* method parser#ReduceAction633#action for (self: Object, Parser) */
8236 void VIRTUAL_parser__ReduceAction633__action(val* self, val* p0) {
8237 parser__ReduceAction633__action(self, p0);
8238 RET_LABEL:;
8239 }
8240 /* method parser#ReduceAction634#action for (self: ReduceAction634, Parser) */
8241 void parser__ReduceAction634__action(val* self, val* p0) {
8242 val* var_p /* var p: Parser */;
8243 val* var /* : null */;
8244 val* var_node_list /* var node_list: nullable Object */;
8245 val* var1 /* : nullable Object */;
8246 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8247 val* var2 /* : nullable Object */;
8248 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8249 val* var3 /* : nullable Object */;
8250 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8251 val* var4 /* : Array[Object] */;
8252 val* var_listnode4 /* var listnode4: Array[Object] */;
8253 val* var_listnode3 /* var listnode3: nullable Object */;
8254 short int var5 /* : Bool */;
8255 int cltype;
8256 int idtype;
8257 val* var6 /* : Array[Object] */;
8258 val* var7 /* : AQualified */;
8259 val* var8 /* : null */;
8260 val* var_pqualifiednode2 /* var pqualifiednode2: nullable AQualified */;
8261 val* var_tkwsupernode6 /* var tkwsupernode6: nullable Object */;
8262 short int var9 /* : Bool */;
8263 int cltype10;
8264 int idtype11;
8265 val* var_pexprsnode7 /* var pexprsnode7: nullable Object */;
8266 short int var12 /* : Bool */;
8267 int cltype13;
8268 int idtype14;
8269 val* var15 /* : ASuperExpr */;
8270 val* var_pexprnode1 /* var pexprnode1: nullable ASuperExpr */;
8271 long var16 /* : Int */;
8272 long var17 /* : Int */;
8273 var_p = p0;
8274 var = NULL;
8275 var_node_list = var;
8276 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8277 var_nodearraylist3 = var1;
8278 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8279 var_nodearraylist2 = var2;
8280 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8281 var_nodearraylist1 = var3;
8282 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
8283 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[Object]>*/;
8284 var_listnode4 = var4;
8285 var_listnode3 = var_nodearraylist1;
8286 /* <var_listnode3:nullable Object> isa Array[Object] */
8287 cltype = type_array__Arraykernel__Object.color;
8288 idtype = type_array__Arraykernel__Object.id;
8289 if(var_listnode3 == NULL) {
8290 var5 = 0;
8291 } else {
8292 if(cltype >= var_listnode3->type->table_size) {
8293 var5 = 0;
8294 } else {
8295 var5 = var_listnode3->type->type_table[cltype] == idtype;
8296 }
8297 }
8298 if (!var5) {
8299 fprintf(stderr, "Runtime error: %s", "Assert failed");
8300 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24620);
8301 show_backtrace(1);
8302 }
8303 var6 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode4, var_listnode3) /* concat on <self:ReduceAction634>*/;
8304 var_listnode4 = var6;
8305 var7 = NEW_parser_nodes__AQualified(&type_parser_nodes__AQualified);
8306 var8 = NULL;
8307 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AQualified__init_aqualified]))(var7, var_listnode4, var8) /* init_aqualified on <var7:AQualified>*/;
8308 var_pqualifiednode2 = var7;
8309 var_tkwsupernode6 = var_nodearraylist2;
8310 /* <var_tkwsupernode6:nullable Object> isa nullable TKwsuper */
8311 cltype10 = type_nullable_parser_nodes__TKwsuper.color;
8312 idtype11 = type_nullable_parser_nodes__TKwsuper.id;
8313 if(var_tkwsupernode6 == NULL) {
8314 var9 = 1;
8315 } else {
8316 if(cltype10 >= var_tkwsupernode6->type->table_size) {
8317 var9 = 0;
8318 } else {
8319 var9 = var_tkwsupernode6->type->type_table[cltype10] == idtype11;
8320 }
8321 }
8322 if (!var9) {
8323 fprintf(stderr, "Runtime error: %s", "Assert failed");
8324 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24627);
8325 show_backtrace(1);
8326 }
8327 var_pexprsnode7 = var_nodearraylist3;
8328 /* <var_pexprsnode7:nullable Object> isa nullable AExprs */
8329 cltype13 = type_nullable_parser_nodes__AExprs.color;
8330 idtype14 = type_nullable_parser_nodes__AExprs.id;
8331 if(var_pexprsnode7 == NULL) {
8332 var12 = 1;
8333 } else {
8334 if(cltype13 >= var_pexprsnode7->type->table_size) {
8335 var12 = 0;
8336 } else {
8337 var12 = var_pexprsnode7->type->type_table[cltype13] == idtype14;
8338 }
8339 }
8340 if (!var12) {
8341 fprintf(stderr, "Runtime error: %s", "Assert failed");
8342 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24629);
8343 show_backtrace(1);
8344 }
8345 var15 = NEW_parser_nodes__ASuperExpr(&type_parser_nodes__ASuperExpr);
8346 ((void (*)(val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__ASuperExpr__init_asuperexpr]))(var15, var_pqualifiednode2, var_tkwsupernode6, var_pexprsnode7) /* init_asuperexpr on <var15:ASuperExpr>*/;
8347 var_pexprnode1 = var15;
8348 var_node_list = var_pexprnode1;
8349 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction634> */
8350 var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
8351 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
8352 RET_LABEL:;
8353 }
8354 /* method parser#ReduceAction634#action for (self: Object, Parser) */
8355 void VIRTUAL_parser__ReduceAction634__action(val* self, val* p0) {
8356 parser__ReduceAction634__action(self, p0);
8357 RET_LABEL:;
8358 }
8359 /* method parser#ReduceAction635#action for (self: ReduceAction635, Parser) */
8360 void parser__ReduceAction635__action(val* self, val* p0) {
8361 val* var_p /* var p: Parser */;
8362 val* var /* : null */;
8363 val* var_node_list /* var node_list: nullable Object */;
8364 val* var1 /* : nullable Object */;
8365 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
8366 val* var2 /* : nullable Object */;
8367 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8368 val* var3 /* : nullable Object */;
8369 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8370 val* var4 /* : nullable Object */;
8371 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8372 val* var5 /* : nullable Object */;
8373 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8374 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
8375 short int var6 /* : Bool */;
8376 int cltype;
8377 int idtype;
8378 val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */;
8379 short int var7 /* : Bool */;
8380 int cltype8;
8381 int idtype9;
8382 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
8383 short int var10 /* : Bool */;
8384 int cltype11;
8385 int idtype12;
8386 val* var13 /* : AInitExpr */;
8387 val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */;
8388 long var14 /* : Int */;
8389 long var15 /* : Int */;
8390 var_p = p0;
8391 var = NULL;
8392 var_node_list = var;
8393 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8394 var_nodearraylist5 = var1;
8395 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8396 var_nodearraylist4 = var2;
8397 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8398 var_nodearraylist3 = var3;
8399 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8400 var_nodearraylist2 = var4;
8401 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8402 var_nodearraylist1 = var5;
8403 var_pexprnode2 = var_nodearraylist1;
8404 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
8405 cltype = type_nullable_parser_nodes__AExpr.color;
8406 idtype = type_nullable_parser_nodes__AExpr.id;
8407 if(var_pexprnode2 == NULL) {
8408 var6 = 1;
8409 } else {
8410 if(cltype >= var_pexprnode2->type->table_size) {
8411 var6 = 0;
8412 } else {
8413 var6 = var_pexprnode2->type->type_table[cltype] == idtype;
8414 }
8415 }
8416 if (!var6) {
8417 fprintf(stderr, "Runtime error: %s", "Assert failed");
8418 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24650);
8419 show_backtrace(1);
8420 }
8421 var_tkwinitnode3 = var_nodearraylist4;
8422 /* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
8423 cltype8 = type_nullable_parser_nodes__TKwinit.color;
8424 idtype9 = type_nullable_parser_nodes__TKwinit.id;
8425 if(var_tkwinitnode3 == NULL) {
8426 var7 = 1;
8427 } else {
8428 if(cltype8 >= var_tkwinitnode3->type->table_size) {
8429 var7 = 0;
8430 } else {
8431 var7 = var_tkwinitnode3->type->type_table[cltype8] == idtype9;
8432 }
8433 }
8434 if (!var7) {
8435 fprintf(stderr, "Runtime error: %s", "Assert failed");
8436 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24652);
8437 show_backtrace(1);
8438 }
8439 var_pexprsnode4 = var_nodearraylist5;
8440 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
8441 cltype11 = type_nullable_parser_nodes__AExprs.color;
8442 idtype12 = type_nullable_parser_nodes__AExprs.id;
8443 if(var_pexprsnode4 == NULL) {
8444 var10 = 1;
8445 } else {
8446 if(cltype11 >= var_pexprsnode4->type->table_size) {
8447 var10 = 0;
8448 } else {
8449 var10 = var_pexprsnode4->type->type_table[cltype11] == idtype12;
8450 }
8451 }
8452 if (!var10) {
8453 fprintf(stderr, "Runtime error: %s", "Assert failed");
8454 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24654);
8455 show_backtrace(1);
8456 }
8457 var13 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr);
8458 ((void (*)(val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__AInitExpr__init_ainitexpr]))(var13, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4) /* init_ainitexpr on <var13:AInitExpr>*/;
8459 var_pexprnode1 = var13;
8460 var_node_list = var_pexprnode1;
8461 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction635> */
8462 var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
8463 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
8464 RET_LABEL:;
8465 }
8466 /* method parser#ReduceAction635#action for (self: Object, Parser) */
8467 void VIRTUAL_parser__ReduceAction635__action(val* self, val* p0) {
8468 parser__ReduceAction635__action(self, p0);
8469 RET_LABEL:;
8470 }
8471 /* method parser#ReduceAction636#action for (self: ReduceAction636, Parser) */
8472 void parser__ReduceAction636__action(val* self, val* p0) {
8473 val* var_p /* var p: Parser */;
8474 val* var /* : null */;
8475 val* var_node_list /* var node_list: nullable Object */;
8476 val* var1 /* : nullable Object */;
8477 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8478 val* var2 /* : nullable Object */;
8479 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8480 val* var3 /* : AImplicitSelfExpr */;
8481 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
8482 val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */;
8483 short int var4 /* : Bool */;
8484 int cltype;
8485 int idtype;
8486 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
8487 short int var5 /* : Bool */;
8488 int cltype6;
8489 int idtype7;
8490 val* var8 /* : AInitExpr */;
8491 val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */;
8492 long var9 /* : Int */;
8493 long var10 /* : Int */;
8494 var_p = p0;
8495 var = NULL;
8496 var_node_list = var;
8497 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8498 var_nodearraylist2 = var1;
8499 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8500 var_nodearraylist1 = var2;
8501 var3 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
8502 ((void (*)(val*))(var3->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var3) /* init_aimplicitselfexpr on <var3:AImplicitSelfExpr>*/;
8503 var_pexprnode2 = var3;
8504 var_tkwinitnode3 = var_nodearraylist1;
8505 /* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
8506 cltype = type_nullable_parser_nodes__TKwinit.color;
8507 idtype = type_nullable_parser_nodes__TKwinit.id;
8508 if(var_tkwinitnode3 == NULL) {
8509 var4 = 1;
8510 } else {
8511 if(cltype >= var_tkwinitnode3->type->table_size) {
8512 var4 = 0;
8513 } else {
8514 var4 = var_tkwinitnode3->type->type_table[cltype] == idtype;
8515 }
8516 }
8517 if (!var4) {
8518 fprintf(stderr, "Runtime error: %s", "Assert failed");
8519 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24673);
8520 show_backtrace(1);
8521 }
8522 var_pexprsnode4 = var_nodearraylist2;
8523 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
8524 cltype6 = type_nullable_parser_nodes__AExprs.color;
8525 idtype7 = type_nullable_parser_nodes__AExprs.id;
8526 if(var_pexprsnode4 == NULL) {
8527 var5 = 1;
8528 } else {
8529 if(cltype6 >= var_pexprsnode4->type->table_size) {
8530 var5 = 0;
8531 } else {
8532 var5 = var_pexprsnode4->type->type_table[cltype6] == idtype7;
8533 }
8534 }
8535 if (!var5) {
8536 fprintf(stderr, "Runtime error: %s", "Assert failed");
8537 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24675);
8538 show_backtrace(1);
8539 }
8540 var8 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr);
8541 ((void (*)(val*, val*, val*, val*))(var8->class->vft[COLOR_parser_prod__AInitExpr__init_ainitexpr]))(var8, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4) /* init_ainitexpr on <var8:AInitExpr>*/;
8542 var_pexprnode1 = var8;
8543 var_node_list = var_pexprnode1;
8544 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction636> */
8545 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
8546 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
8547 RET_LABEL:;
8548 }
8549 /* method parser#ReduceAction636#action for (self: Object, Parser) */
8550 void VIRTUAL_parser__ReduceAction636__action(val* self, val* p0) {
8551 parser__ReduceAction636__action(self, p0);
8552 RET_LABEL:;
8553 }
8554 /* method parser#ReduceAction637#action for (self: ReduceAction637, Parser) */
8555 void parser__ReduceAction637__action(val* self, val* p0) {
8556 val* var_p /* var p: Parser */;
8557 val* var /* : null */;
8558 val* var_node_list /* var node_list: nullable Object */;
8559 val* var1 /* : nullable Object */;
8560 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
8561 val* var2 /* : nullable Object */;
8562 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
8563 val* var3 /* : nullable Object */;
8564 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8565 val* var4 /* : nullable Object */;
8566 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8567 val* var5 /* : nullable Object */;
8568 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8569 val* var6 /* : nullable Object */;
8570 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8571 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
8572 short int var7 /* : Bool */;
8573 int cltype;
8574 int idtype;
8575 val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */;
8576 short int var8 /* : Bool */;
8577 int cltype9;
8578 int idtype10;
8579 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
8580 short int var11 /* : Bool */;
8581 int cltype12;
8582 int idtype13;
8583 val* var14 /* : AInitExpr */;
8584 val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */;
8585 long var15 /* : Int */;
8586 long var16 /* : Int */;
8587 var_p = p0;
8588 var = NULL;
8589 var_node_list = var;
8590 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8591 var_nodearraylist6 = var1;
8592 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8593 var_nodearraylist5 = var2;
8594 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8595 var_nodearraylist4 = var3;
8596 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8597 var_nodearraylist3 = var4;
8598 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8599 var_nodearraylist2 = var5;
8600 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8601 var_nodearraylist1 = var6;
8602 var_pexprnode2 = var_nodearraylist1;
8603 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
8604 cltype = type_nullable_parser_nodes__AExpr.color;
8605 idtype = type_nullable_parser_nodes__AExpr.id;
8606 if(var_pexprnode2 == NULL) {
8607 var7 = 1;
8608 } else {
8609 if(cltype >= var_pexprnode2->type->table_size) {
8610 var7 = 0;
8611 } else {
8612 var7 = var_pexprnode2->type->type_table[cltype] == idtype;
8613 }
8614 }
8615 if (!var7) {
8616 fprintf(stderr, "Runtime error: %s", "Assert failed");
8617 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24697);
8618 show_backtrace(1);
8619 }
8620 var_tkwinitnode3 = var_nodearraylist5;
8621 /* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
8622 cltype9 = type_nullable_parser_nodes__TKwinit.color;
8623 idtype10 = type_nullable_parser_nodes__TKwinit.id;
8624 if(var_tkwinitnode3 == NULL) {
8625 var8 = 1;
8626 } else {
8627 if(cltype9 >= var_tkwinitnode3->type->table_size) {
8628 var8 = 0;
8629 } else {
8630 var8 = var_tkwinitnode3->type->type_table[cltype9] == idtype10;
8631 }
8632 }
8633 if (!var8) {
8634 fprintf(stderr, "Runtime error: %s", "Assert failed");
8635 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24699);
8636 show_backtrace(1);
8637 }
8638 var_pexprsnode4 = var_nodearraylist6;
8639 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
8640 cltype12 = type_nullable_parser_nodes__AExprs.color;
8641 idtype13 = type_nullable_parser_nodes__AExprs.id;
8642 if(var_pexprsnode4 == NULL) {
8643 var11 = 1;
8644 } else {
8645 if(cltype12 >= var_pexprsnode4->type->table_size) {
8646 var11 = 0;
8647 } else {
8648 var11 = var_pexprsnode4->type->type_table[cltype12] == idtype13;
8649 }
8650 }
8651 if (!var11) {
8652 fprintf(stderr, "Runtime error: %s", "Assert failed");
8653 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24701);
8654 show_backtrace(1);
8655 }
8656 var14 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr);
8657 ((void (*)(val*, val*, val*, val*))(var14->class->vft[COLOR_parser_prod__AInitExpr__init_ainitexpr]))(var14, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4) /* init_ainitexpr on <var14:AInitExpr>*/;
8658 var_pexprnode1 = var14;
8659 var_node_list = var_pexprnode1;
8660 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction637> */
8661 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
8662 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
8663 RET_LABEL:;
8664 }
8665 /* method parser#ReduceAction637#action for (self: Object, Parser) */
8666 void VIRTUAL_parser__ReduceAction637__action(val* self, val* p0) {
8667 parser__ReduceAction637__action(self, p0);
8668 RET_LABEL:;
8669 }
8670 /* method parser#ReduceAction638#action for (self: ReduceAction638, Parser) */
8671 void parser__ReduceAction638__action(val* self, val* p0) {
8672 val* var_p /* var p: Parser */;
8673 val* var /* : null */;
8674 val* var_node_list /* var node_list: nullable Object */;
8675 val* var1 /* : nullable Object */;
8676 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
8677 val* var2 /* : nullable Object */;
8678 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
8679 val* var3 /* : nullable Object */;
8680 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
8681 val* var4 /* : nullable Object */;
8682 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8683 val* var5 /* : nullable Object */;
8684 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8685 val* var6 /* : nullable Object */;
8686 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8687 val* var7 /* : nullable Object */;
8688 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8689 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
8690 short int var8 /* : Bool */;
8691 int cltype;
8692 int idtype;
8693 val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */;
8694 short int var9 /* : Bool */;
8695 int cltype10;
8696 int idtype11;
8697 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
8698 short int var12 /* : Bool */;
8699 int cltype13;
8700 int idtype14;
8701 val* var15 /* : AInitExpr */;
8702 val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */;
8703 long var16 /* : Int */;
8704 long var17 /* : Int */;
8705 var_p = p0;
8706 var = NULL;
8707 var_node_list = var;
8708 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8709 var_nodearraylist7 = var1;
8710 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8711 var_nodearraylist6 = var2;
8712 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8713 var_nodearraylist5 = var3;
8714 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8715 var_nodearraylist4 = var4;
8716 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8717 var_nodearraylist3 = var5;
8718 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8719 var_nodearraylist2 = var6;
8720 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8721 var_nodearraylist1 = var7;
8722 var_pexprnode2 = var_nodearraylist1;
8723 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
8724 cltype = type_nullable_parser_nodes__AExpr.color;
8725 idtype = type_nullable_parser_nodes__AExpr.id;
8726 if(var_pexprnode2 == NULL) {
8727 var8 = 1;
8728 } else {
8729 if(cltype >= var_pexprnode2->type->table_size) {
8730 var8 = 0;
8731 } else {
8732 var8 = var_pexprnode2->type->type_table[cltype] == idtype;
8733 }
8734 }
8735 if (!var8) {
8736 fprintf(stderr, "Runtime error: %s", "Assert failed");
8737 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24724);
8738 show_backtrace(1);
8739 }
8740 var_tkwinitnode3 = var_nodearraylist6;
8741 /* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
8742 cltype10 = type_nullable_parser_nodes__TKwinit.color;
8743 idtype11 = type_nullable_parser_nodes__TKwinit.id;
8744 if(var_tkwinitnode3 == NULL) {
8745 var9 = 1;
8746 } else {
8747 if(cltype10 >= var_tkwinitnode3->type->table_size) {
8748 var9 = 0;
8749 } else {
8750 var9 = var_tkwinitnode3->type->type_table[cltype10] == idtype11;
8751 }
8752 }
8753 if (!var9) {
8754 fprintf(stderr, "Runtime error: %s", "Assert failed");
8755 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24726);
8756 show_backtrace(1);
8757 }
8758 var_pexprsnode4 = var_nodearraylist7;
8759 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
8760 cltype13 = type_nullable_parser_nodes__AExprs.color;
8761 idtype14 = type_nullable_parser_nodes__AExprs.id;
8762 if(var_pexprsnode4 == NULL) {
8763 var12 = 1;
8764 } else {
8765 if(cltype13 >= var_pexprsnode4->type->table_size) {
8766 var12 = 0;
8767 } else {
8768 var12 = var_pexprsnode4->type->type_table[cltype13] == idtype14;
8769 }
8770 }
8771 if (!var12) {
8772 fprintf(stderr, "Runtime error: %s", "Assert failed");
8773 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24728);
8774 show_backtrace(1);
8775 }
8776 var15 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr);
8777 ((void (*)(val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__AInitExpr__init_ainitexpr]))(var15, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4) /* init_ainitexpr on <var15:AInitExpr>*/;
8778 var_pexprnode1 = var15;
8779 var_node_list = var_pexprnode1;
8780 var16 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction638> */
8781 var17 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var16) /* go_to on <var_p:Parser>*/;
8782 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var17, var_node_list) /* push on <var_p:Parser>*/;
8783 RET_LABEL:;
8784 }
8785 /* method parser#ReduceAction638#action for (self: Object, Parser) */
8786 void VIRTUAL_parser__ReduceAction638__action(val* self, val* p0) {
8787 parser__ReduceAction638__action(self, p0);
8788 RET_LABEL:;
8789 }
8790 /* method parser#ReduceAction640#action for (self: ReduceAction640, Parser) */
8791 void parser__ReduceAction640__action(val* self, val* p0) {
8792 val* var_p /* var p: Parser */;
8793 val* var /* : null */;
8794 val* var_node_list /* var node_list: nullable Object */;
8795 val* var1 /* : nullable Object */;
8796 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8797 val* var2 /* : nullable Object */;
8798 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8799 val* var3 /* : nullable Object */;
8800 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8801 val* var4 /* : AImplicitSelfExpr */;
8802 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
8803 val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */;
8804 short int var5 /* : Bool */;
8805 int cltype;
8806 int idtype;
8807 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
8808 short int var6 /* : Bool */;
8809 int cltype7;
8810 int idtype8;
8811 val* var9 /* : AInitExpr */;
8812 val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */;
8813 long var10 /* : Int */;
8814 long var11 /* : Int */;
8815 var_p = p0;
8816 var = NULL;
8817 var_node_list = var;
8818 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8819 var_nodearraylist3 = var1;
8820 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8821 var_nodearraylist2 = var2;
8822 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8823 var_nodearraylist1 = var3;
8824 var4 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
8825 ((void (*)(val*))(var4->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var4) /* init_aimplicitselfexpr on <var4:AImplicitSelfExpr>*/;
8826 var_pexprnode2 = var4;
8827 var_tkwinitnode3 = var_nodearraylist2;
8828 /* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
8829 cltype = type_nullable_parser_nodes__TKwinit.color;
8830 idtype = type_nullable_parser_nodes__TKwinit.id;
8831 if(var_tkwinitnode3 == NULL) {
8832 var5 = 1;
8833 } else {
8834 if(cltype >= var_tkwinitnode3->type->table_size) {
8835 var5 = 0;
8836 } else {
8837 var5 = var_tkwinitnode3->type->type_table[cltype] == idtype;
8838 }
8839 }
8840 if (!var5) {
8841 fprintf(stderr, "Runtime error: %s", "Assert failed");
8842 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24748);
8843 show_backtrace(1);
8844 }
8845 var_pexprsnode4 = var_nodearraylist3;
8846 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
8847 cltype7 = type_nullable_parser_nodes__AExprs.color;
8848 idtype8 = type_nullable_parser_nodes__AExprs.id;
8849 if(var_pexprsnode4 == NULL) {
8850 var6 = 1;
8851 } else {
8852 if(cltype7 >= var_pexprsnode4->type->table_size) {
8853 var6 = 0;
8854 } else {
8855 var6 = var_pexprsnode4->type->type_table[cltype7] == idtype8;
8856 }
8857 }
8858 if (!var6) {
8859 fprintf(stderr, "Runtime error: %s", "Assert failed");
8860 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24750);
8861 show_backtrace(1);
8862 }
8863 var9 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr);
8864 ((void (*)(val*, val*, val*, val*))(var9->class->vft[COLOR_parser_prod__AInitExpr__init_ainitexpr]))(var9, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4) /* init_ainitexpr on <var9:AInitExpr>*/;
8865 var_pexprnode1 = var9;
8866 var_node_list = var_pexprnode1;
8867 var10 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction640> */
8868 var11 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var10) /* go_to on <var_p:Parser>*/;
8869 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var11, var_node_list) /* push on <var_p:Parser>*/;
8870 RET_LABEL:;
8871 }
8872 /* method parser#ReduceAction640#action for (self: Object, Parser) */
8873 void VIRTUAL_parser__ReduceAction640__action(val* self, val* p0) {
8874 parser__ReduceAction640__action(self, p0);
8875 RET_LABEL:;
8876 }
8877 /* method parser#ReduceAction641#action for (self: ReduceAction641, Parser) */
8878 void parser__ReduceAction641__action(val* self, val* p0) {
8879 val* var_p /* var p: Parser */;
8880 val* var /* : null */;
8881 val* var_node_list /* var node_list: nullable Object */;
8882 val* var1 /* : nullable Object */;
8883 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8884 val* var2 /* : nullable Object */;
8885 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8886 val* var3 /* : nullable Object */;
8887 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8888 val* var4 /* : nullable Object */;
8889 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8890 val* var5 /* : AImplicitSelfExpr */;
8891 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
8892 val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */;
8893 short int var6 /* : Bool */;
8894 int cltype;
8895 int idtype;
8896 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
8897 short int var7 /* : Bool */;
8898 int cltype8;
8899 int idtype9;
8900 val* var10 /* : AInitExpr */;
8901 val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */;
8902 long var11 /* : Int */;
8903 long var12 /* : Int */;
8904 var_p = p0;
8905 var = NULL;
8906 var_node_list = var;
8907 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8908 var_nodearraylist4 = var1;
8909 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8910 var_nodearraylist3 = var2;
8911 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8912 var_nodearraylist2 = var3;
8913 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8914 var_nodearraylist1 = var4;
8915 var5 = NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr);
8916 ((void (*)(val*))(var5->class->vft[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr]))(var5) /* init_aimplicitselfexpr on <var5:AImplicitSelfExpr>*/;
8917 var_pexprnode2 = var5;
8918 var_tkwinitnode3 = var_nodearraylist3;
8919 /* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
8920 cltype = type_nullable_parser_nodes__TKwinit.color;
8921 idtype = type_nullable_parser_nodes__TKwinit.id;
8922 if(var_tkwinitnode3 == NULL) {
8923 var6 = 1;
8924 } else {
8925 if(cltype >= var_tkwinitnode3->type->table_size) {
8926 var6 = 0;
8927 } else {
8928 var6 = var_tkwinitnode3->type->type_table[cltype] == idtype;
8929 }
8930 }
8931 if (!var6) {
8932 fprintf(stderr, "Runtime error: %s", "Assert failed");
8933 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24771);
8934 show_backtrace(1);
8935 }
8936 var_pexprsnode4 = var_nodearraylist4;
8937 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
8938 cltype8 = type_nullable_parser_nodes__AExprs.color;
8939 idtype9 = type_nullable_parser_nodes__AExprs.id;
8940 if(var_pexprsnode4 == NULL) {
8941 var7 = 1;
8942 } else {
8943 if(cltype8 >= var_pexprsnode4->type->table_size) {
8944 var7 = 0;
8945 } else {
8946 var7 = var_pexprsnode4->type->type_table[cltype8] == idtype9;
8947 }
8948 }
8949 if (!var7) {
8950 fprintf(stderr, "Runtime error: %s", "Assert failed");
8951 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24773);
8952 show_backtrace(1);
8953 }
8954 var10 = NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr);
8955 ((void (*)(val*, val*, val*, val*))(var10->class->vft[COLOR_parser_prod__AInitExpr__init_ainitexpr]))(var10, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4) /* init_ainitexpr on <var10:AInitExpr>*/;
8956 var_pexprnode1 = var10;
8957 var_node_list = var_pexprnode1;
8958 var11 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction641> */
8959 var12 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var11) /* go_to on <var_p:Parser>*/;
8960 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var12, var_node_list) /* push on <var_p:Parser>*/;
8961 RET_LABEL:;
8962 }
8963 /* method parser#ReduceAction641#action for (self: Object, Parser) */
8964 void VIRTUAL_parser__ReduceAction641__action(val* self, val* p0) {
8965 parser__ReduceAction641__action(self, p0);
8966 RET_LABEL:;
8967 }
8968 /* method parser#ReduceAction643#action for (self: ReduceAction643, Parser) */
8969 void parser__ReduceAction643__action(val* self, val* p0) {
8970 val* var_p /* var p: Parser */;
8971 val* var /* : null */;
8972 val* var_node_list /* var node_list: nullable Object */;
8973 val* var1 /* : nullable Object */;
8974 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
8975 val* var2 /* : nullable Object */;
8976 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8977 val* var3 /* : nullable Object */;
8978 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8979 val* var4 /* : nullable Object */;
8980 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8981 val* var5 /* : nullable Object */;
8982 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8983 val* var_tkwdebugnode2 /* var tkwdebugnode2: nullable Object */;
8984 short int var6 /* : Bool */;
8985 int cltype;
8986 int idtype;
8987 val* var_tkwtypenode3 /* var tkwtypenode3: nullable Object */;
8988 short int var7 /* : Bool */;
8989 int cltype8;
8990 int idtype9;
8991 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
8992 short int var10 /* : Bool */;
8993 int cltype11;
8994 int idtype12;
8995 val* var_ptypenode5 /* var ptypenode5: nullable Object */;
8996 short int var13 /* : Bool */;
8997 int cltype14;
8998 int idtype15;
8999 val* var16 /* : ADebugTypeExpr */;
9000 val* var_pexprnode1 /* var pexprnode1: nullable ADebugTypeExpr */;
9001 long var17 /* : Int */;
9002 long var18 /* : Int */;
9003 var_p = p0;
9004 var = NULL;
9005 var_node_list = var;
9006 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9007 var_nodearraylist5 = var1;
9008 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9009 var_nodearraylist4 = var2;
9010 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9011 var_nodearraylist3 = var3;
9012 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9013 var_nodearraylist2 = var4;
9014 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9015 var_nodearraylist1 = var5;
9016 var_tkwdebugnode2 = var_nodearraylist1;
9017 /* <var_tkwdebugnode2:nullable Object> isa nullable TKwdebug */
9018 cltype = type_nullable_parser_nodes__TKwdebug.color;
9019 idtype = type_nullable_parser_nodes__TKwdebug.id;
9020 if(var_tkwdebugnode2 == NULL) {
9021 var6 = 1;
9022 } else {
9023 if(cltype >= var_tkwdebugnode2->type->table_size) {
9024 var6 = 0;
9025 } else {
9026 var6 = var_tkwdebugnode2->type->type_table[cltype] == idtype;
9027 }
9028 }
9029 if (!var6) {
9030 fprintf(stderr, "Runtime error: %s", "Assert failed");
9031 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24794);
9032 show_backtrace(1);
9033 }
9034 var_tkwtypenode3 = var_nodearraylist2;
9035 /* <var_tkwtypenode3:nullable Object> isa nullable TKwtype */
9036 cltype8 = type_nullable_parser_nodes__TKwtype.color;
9037 idtype9 = type_nullable_parser_nodes__TKwtype.id;
9038 if(var_tkwtypenode3 == NULL) {
9039 var7 = 1;
9040 } else {
9041 if(cltype8 >= var_tkwtypenode3->type->table_size) {
9042 var7 = 0;
9043 } else {
9044 var7 = var_tkwtypenode3->type->type_table[cltype8] == idtype9;
9045 }
9046 }
9047 if (!var7) {
9048 fprintf(stderr, "Runtime error: %s", "Assert failed");
9049 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24796);
9050 show_backtrace(1);
9051 }
9052 var_pexprnode4 = var_nodearraylist5;
9053 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
9054 cltype11 = type_nullable_parser_nodes__AExpr.color;
9055 idtype12 = type_nullable_parser_nodes__AExpr.id;
9056 if(var_pexprnode4 == NULL) {
9057 var10 = 1;
9058 } else {
9059 if(cltype11 >= var_pexprnode4->type->table_size) {
9060 var10 = 0;
9061 } else {
9062 var10 = var_pexprnode4->type->type_table[cltype11] == idtype12;
9063 }
9064 }
9065 if (!var10) {
9066 fprintf(stderr, "Runtime error: %s", "Assert failed");
9067 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24798);
9068 show_backtrace(1);
9069 }
9070 var_ptypenode5 = var_nodearraylist3;
9071 /* <var_ptypenode5:nullable Object> isa nullable AType */
9072 cltype14 = type_nullable_parser_nodes__AType.color;
9073 idtype15 = type_nullable_parser_nodes__AType.id;
9074 if(var_ptypenode5 == NULL) {
9075 var13 = 1;
9076 } else {
9077 if(cltype14 >= var_ptypenode5->type->table_size) {
9078 var13 = 0;
9079 } else {
9080 var13 = var_ptypenode5->type->type_table[cltype14] == idtype15;
9081 }
9082 }
9083 if (!var13) {
9084 fprintf(stderr, "Runtime error: %s", "Assert failed");
9085 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24800);
9086 show_backtrace(1);
9087 }
9088 var16 = NEW_parser_nodes__ADebugTypeExpr(&type_parser_nodes__ADebugTypeExpr);
9089 ((void (*)(val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__ADebugTypeExpr__init_adebugtypeexpr]))(var16, var_tkwdebugnode2, var_tkwtypenode3, var_pexprnode4, var_ptypenode5) /* init_adebugtypeexpr on <var16:ADebugTypeExpr>*/;
9090 var_pexprnode1 = var16;
9091 var_node_list = var_pexprnode1;
9092 var17 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction643> */
9093 var18 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var17) /* go_to on <var_p:Parser>*/;
9094 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var18, var_node_list) /* push on <var_p:Parser>*/;
9095 RET_LABEL:;
9096 }
9097 /* method parser#ReduceAction643#action for (self: Object, Parser) */
9098 void VIRTUAL_parser__ReduceAction643__action(val* self, val* p0) {
9099 parser__ReduceAction643__action(self, p0);
9100 RET_LABEL:;
9101 }
9102 /* method parser#ReduceAction644#action for (self: ReduceAction644, Parser) */
9103 void parser__ReduceAction644__action(val* self, val* p0) {
9104 val* var_p /* var p: Parser */;
9105 val* var /* : null */;
9106 val* var_node_list /* var node_list: nullable Object */;
9107 val* var1 /* : nullable Object */;
9108 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9109 val* var2 /* : nullable Object */;
9110 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9111 val* var_tkwlabelnode2 /* var tkwlabelnode2: nullable Object */;
9112 short int var3 /* : Bool */;
9113 int cltype;
9114 int idtype;
9115 val* var_tidnode3 /* var tidnode3: nullable Object */;
9116 short int var4 /* : Bool */;
9117 int cltype5;
9118 int idtype6;
9119 val* var7 /* : ALabel */;
9120 val* var_plabelnode1 /* var plabelnode1: nullable ALabel */;
9121 long var8 /* : Int */;
9122 long var9 /* : Int */;
9123 var_p = p0;
9124 var = NULL;
9125 var_node_list = var;
9126 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9127 var_nodearraylist2 = var1;
9128 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9129 var_nodearraylist1 = var2;
9130 var_tkwlabelnode2 = var_nodearraylist1;
9131 /* <var_tkwlabelnode2:nullable Object> isa nullable TKwlabel */
9132 cltype = type_nullable_parser_nodes__TKwlabel.color;
9133 idtype = type_nullable_parser_nodes__TKwlabel.id;
9134 if(var_tkwlabelnode2 == NULL) {
9135 var3 = 1;
9136 } else {
9137 if(cltype >= var_tkwlabelnode2->type->table_size) {
9138 var3 = 0;
9139 } else {
9140 var3 = var_tkwlabelnode2->type->type_table[cltype] == idtype;
9141 }
9142 }
9143 if (!var3) {
9144 fprintf(stderr, "Runtime error: %s", "Assert failed");
9145 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24819);
9146 show_backtrace(1);
9147 }
9148 var_tidnode3 = var_nodearraylist2;
9149 /* <var_tidnode3:nullable Object> isa nullable TId */
9150 cltype5 = type_nullable_parser_nodes__TId.color;
9151 idtype6 = type_nullable_parser_nodes__TId.id;
9152 if(var_tidnode3 == NULL) {
9153 var4 = 1;
9154 } else {
9155 if(cltype5 >= var_tidnode3->type->table_size) {
9156 var4 = 0;
9157 } else {
9158 var4 = var_tidnode3->type->type_table[cltype5] == idtype6;
9159 }
9160 }
9161 if (!var4) {
9162 fprintf(stderr, "Runtime error: %s", "Assert failed");
9163 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24821);
9164 show_backtrace(1);
9165 }
9166 var7 = NEW_parser_nodes__ALabel(&type_parser_nodes__ALabel);
9167 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__ALabel__init_alabel]))(var7, var_tkwlabelnode2, var_tidnode3) /* init_alabel on <var7:ALabel>*/;
9168 var_plabelnode1 = var7;
9169 var_node_list = var_plabelnode1;
9170 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction644> */
9171 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
9172 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
9173 RET_LABEL:;
9174 }
9175 /* method parser#ReduceAction644#action for (self: Object, Parser) */
9176 void VIRTUAL_parser__ReduceAction644__action(val* self, val* p0) {
9177 parser__ReduceAction644__action(self, p0);
9178 RET_LABEL:;
9179 }
9180 /* method parser#ReduceAction645#action for (self: ReduceAction645, Parser) */
9181 void parser__ReduceAction645__action(val* self, val* p0) {
9182 val* var_p /* var p: Parser */;
9183 val* var /* : null */;
9184 val* var_node_list /* var node_list: nullable Object */;
9185 val* var1 /* : nullable Object */;
9186 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9187 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
9188 short int var2 /* : Bool */;
9189 int cltype;
9190 int idtype;
9191 val* var3 /* : AContinueExpr */;
9192 val* var4 /* : null */;
9193 val* var5 /* : null */;
9194 val* var_pexprnode1 /* var pexprnode1: nullable AContinueExpr */;
9195 long var6 /* : Int */;
9196 long var7 /* : Int */;
9197 var_p = p0;
9198 var = NULL;
9199 var_node_list = var;
9200 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9201 var_nodearraylist1 = var1;
9202 var_pexprnode4 = var_nodearraylist1;
9203 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
9204 cltype = type_nullable_parser_nodes__AExpr.color;
9205 idtype = type_nullable_parser_nodes__AExpr.id;
9206 if(var_pexprnode4 == NULL) {
9207 var2 = 1;
9208 } else {
9209 if(cltype >= var_pexprnode4->type->table_size) {
9210 var2 = 0;
9211 } else {
9212 var2 = var_pexprnode4->type->type_table[cltype] == idtype;
9213 }
9214 }
9215 if (!var2) {
9216 fprintf(stderr, "Runtime error: %s", "Assert failed");
9217 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24837);
9218 show_backtrace(1);
9219 }
9220 var3 = NEW_parser_nodes__AContinueExpr(&type_parser_nodes__AContinueExpr);
9221 var4 = NULL;
9222 var5 = NULL;
9223 ((void (*)(val*, val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AContinueExpr__init_acontinueexpr]))(var3, var4, var5, var_pexprnode4) /* init_acontinueexpr on <var3:AContinueExpr>*/;
9224 var_pexprnode1 = var3;
9225 var_node_list = var_pexprnode1;
9226 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction645> */
9227 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
9228 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
9229 RET_LABEL:;
9230 }
9231 /* method parser#ReduceAction645#action for (self: Object, Parser) */
9232 void VIRTUAL_parser__ReduceAction645__action(val* self, val* p0) {
9233 parser__ReduceAction645__action(self, p0);
9234 RET_LABEL:;
9235 }
9236 /* method parser#ReduceAction646#action for (self: ReduceAction646, Parser) */
9237 void parser__ReduceAction646__action(val* self, val* p0) {
9238 val* var_p /* var p: Parser */;
9239 val* var /* : null */;
9240 val* var_node_list /* var node_list: nullable Object */;
9241 val* var1 /* : nullable Object */;
9242 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9243 val* var2 /* : nullable Object */;
9244 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9245 val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */;
9246 short int var3 /* : Bool */;
9247 int cltype;
9248 int idtype;
9249 val* var_tidnode3 /* var tidnode3: nullable Object */;
9250 short int var4 /* : Bool */;
9251 int cltype5;
9252 int idtype6;
9253 val* var7 /* : AVardeclExpr */;
9254 val* var8 /* : null */;
9255 val* var9 /* : null */;
9256 val* var10 /* : null */;
9257 val* var11 /* : null */;
9258 val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */;
9259 long var12 /* : Int */;
9260 long var13 /* : Int */;
9261 var_p = p0;
9262 var = NULL;
9263 var_node_list = var;
9264 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9265 var_nodearraylist2 = var1;
9266 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9267 var_nodearraylist1 = var2;
9268 var_tkwvarnode2 = var_nodearraylist1;
9269 /* <var_tkwvarnode2:nullable Object> isa nullable TKwvar */
9270 cltype = type_nullable_parser_nodes__TKwvar.color;
9271 idtype = type_nullable_parser_nodes__TKwvar.id;
9272 if(var_tkwvarnode2 == NULL) {
9273 var3 = 1;
9274 } else {
9275 if(cltype >= var_tkwvarnode2->type->table_size) {
9276 var3 = 0;
9277 } else {
9278 var3 = var_tkwvarnode2->type->type_table[cltype] == idtype;
9279 }
9280 }
9281 if (!var3) {
9282 fprintf(stderr, "Runtime error: %s", "Assert failed");
9283 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24855);
9284 show_backtrace(1);
9285 }
9286 var_tidnode3 = var_nodearraylist2;
9287 /* <var_tidnode3:nullable Object> isa nullable TId */
9288 cltype5 = type_nullable_parser_nodes__TId.color;
9289 idtype6 = type_nullable_parser_nodes__TId.id;
9290 if(var_tidnode3 == NULL) {
9291 var4 = 1;
9292 } else {
9293 if(cltype5 >= var_tidnode3->type->table_size) {
9294 var4 = 0;
9295 } else {
9296 var4 = var_tidnode3->type->type_table[cltype5] == idtype6;
9297 }
9298 }
9299 if (!var4) {
9300 fprintf(stderr, "Runtime error: %s", "Assert failed");
9301 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24857);
9302 show_backtrace(1);
9303 }
9304 var7 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr);
9305 var8 = NULL;
9306 var9 = NULL;
9307 var10 = NULL;
9308 var11 = NULL;
9309 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AVardeclExpr__init_avardeclexpr]))(var7, var_tkwvarnode2, var_tidnode3, var8, var9, var10, var11) /* init_avardeclexpr on <var7:AVardeclExpr>*/;
9310 var_pexprnode1 = var7;
9311 var_node_list = var_pexprnode1;
9312 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction646> */
9313 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
9314 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
9315 RET_LABEL:;
9316 }
9317 /* method parser#ReduceAction646#action for (self: Object, Parser) */
9318 void VIRTUAL_parser__ReduceAction646__action(val* self, val* p0) {
9319 parser__ReduceAction646__action(self, p0);
9320 RET_LABEL:;
9321 }
9322 /* method parser#ReduceAction647#action for (self: ReduceAction647, Parser) */
9323 void parser__ReduceAction647__action(val* self, val* p0) {
9324 val* var_p /* var p: Parser */;
9325 val* var /* : null */;
9326 val* var_node_list /* var node_list: nullable Object */;
9327 val* var1 /* : nullable Object */;
9328 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9329 val* var2 /* : nullable Object */;
9330 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9331 val* var3 /* : nullable Object */;
9332 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9333 val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */;
9334 short int var4 /* : Bool */;
9335 int cltype;
9336 int idtype;
9337 val* var_tidnode3 /* var tidnode3: nullable Object */;
9338 short int var5 /* : Bool */;
9339 int cltype6;
9340 int idtype7;
9341 val* var_pannotationsnode7 /* var pannotationsnode7: nullable Object */;
9342 short int var8 /* : Bool */;
9343 int cltype9;
9344 int idtype10;
9345 val* var11 /* : AVardeclExpr */;
9346 val* var12 /* : null */;
9347 val* var13 /* : null */;
9348 val* var14 /* : null */;
9349 val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */;
9350 long var15 /* : Int */;
9351 long var16 /* : Int */;
9352 var_p = p0;
9353 var = NULL;
9354 var_node_list = var;
9355 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9356 var_nodearraylist3 = var1;
9357 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9358 var_nodearraylist2 = var2;
9359 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9360 var_nodearraylist1 = var3;
9361 var_tkwvarnode2 = var_nodearraylist1;
9362 /* <var_tkwvarnode2:nullable Object> isa nullable TKwvar */
9363 cltype = type_nullable_parser_nodes__TKwvar.color;
9364 idtype = type_nullable_parser_nodes__TKwvar.id;
9365 if(var_tkwvarnode2 == NULL) {
9366 var4 = 1;
9367 } else {
9368 if(cltype >= var_tkwvarnode2->type->table_size) {
9369 var4 = 0;
9370 } else {
9371 var4 = var_tkwvarnode2->type->type_table[cltype] == idtype;
9372 }
9373 }
9374 if (!var4) {
9375 fprintf(stderr, "Runtime error: %s", "Assert failed");
9376 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24879);
9377 show_backtrace(1);
9378 }
9379 var_tidnode3 = var_nodearraylist2;
9380 /* <var_tidnode3:nullable Object> isa nullable TId */
9381 cltype6 = type_nullable_parser_nodes__TId.color;
9382 idtype7 = type_nullable_parser_nodes__TId.id;
9383 if(var_tidnode3 == NULL) {
9384 var5 = 1;
9385 } else {
9386 if(cltype6 >= var_tidnode3->type->table_size) {
9387 var5 = 0;
9388 } else {
9389 var5 = var_tidnode3->type->type_table[cltype6] == idtype7;
9390 }
9391 }
9392 if (!var5) {
9393 fprintf(stderr, "Runtime error: %s", "Assert failed");
9394 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24881);
9395 show_backtrace(1);
9396 }
9397 var_pannotationsnode7 = var_nodearraylist3;
9398 /* <var_pannotationsnode7:nullable Object> isa nullable AAnnotations */
9399 cltype9 = type_nullable_parser_nodes__AAnnotations.color;
9400 idtype10 = type_nullable_parser_nodes__AAnnotations.id;
9401 if(var_pannotationsnode7 == NULL) {
9402 var8 = 1;
9403 } else {
9404 if(cltype9 >= var_pannotationsnode7->type->table_size) {
9405 var8 = 0;
9406 } else {
9407 var8 = var_pannotationsnode7->type->type_table[cltype9] == idtype10;
9408 }
9409 }
9410 if (!var8) {
9411 fprintf(stderr, "Runtime error: %s", "Assert failed");
9412 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24883);
9413 show_backtrace(1);
9414 }
9415 var11 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr);
9416 var12 = NULL;
9417 var13 = NULL;
9418 var14 = NULL;
9419 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AVardeclExpr__init_avardeclexpr]))(var11, var_tkwvarnode2, var_tidnode3, var12, var13, var14, var_pannotationsnode7) /* init_avardeclexpr on <var11:AVardeclExpr>*/;
9420 var_pexprnode1 = var11;
9421 var_node_list = var_pexprnode1;
9422 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction647> */
9423 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
9424 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
9425 RET_LABEL:;
9426 }
9427 /* method parser#ReduceAction647#action for (self: Object, Parser) */
9428 void VIRTUAL_parser__ReduceAction647__action(val* self, val* p0) {
9429 parser__ReduceAction647__action(self, p0);
9430 RET_LABEL:;
9431 }
9432 /* method parser#ReduceAction648#action for (self: ReduceAction648, Parser) */
9433 void parser__ReduceAction648__action(val* self, val* p0) {
9434 val* var_p /* var p: Parser */;
9435 val* var /* : null */;
9436 val* var_node_list /* var node_list: nullable Object */;
9437 val* var1 /* : nullable Object */;
9438 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9439 val* var2 /* : nullable Object */;
9440 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9441 val* var3 /* : nullable Object */;
9442 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9443 val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */;
9444 short int var4 /* : Bool */;
9445 int cltype;
9446 int idtype;
9447 val* var_tidnode3 /* var tidnode3: nullable Object */;
9448 short int var5 /* : Bool */;
9449 int cltype6;
9450 int idtype7;
9451 val* var_ptypenode4 /* var ptypenode4: nullable Object */;
9452 short int var8 /* : Bool */;
9453 int cltype9;
9454 int idtype10;
9455 val* var11 /* : AVardeclExpr */;
9456 val* var12 /* : null */;
9457 val* var13 /* : null */;
9458 val* var14 /* : null */;
9459 val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */;
9460 long var15 /* : Int */;
9461 long var16 /* : Int */;
9462 var_p = p0;
9463 var = NULL;
9464 var_node_list = var;
9465 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9466 var_nodearraylist3 = var1;
9467 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9468 var_nodearraylist2 = var2;
9469 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9470 var_nodearraylist1 = var3;
9471 var_tkwvarnode2 = var_nodearraylist1;
9472 /* <var_tkwvarnode2:nullable Object> isa nullable TKwvar */
9473 cltype = type_nullable_parser_nodes__TKwvar.color;
9474 idtype = type_nullable_parser_nodes__TKwvar.id;
9475 if(var_tkwvarnode2 == NULL) {
9476 var4 = 1;
9477 } else {
9478 if(cltype >= var_tkwvarnode2->type->table_size) {
9479 var4 = 0;
9480 } else {
9481 var4 = var_tkwvarnode2->type->type_table[cltype] == idtype;
9482 }
9483 }
9484 if (!var4) {
9485 fprintf(stderr, "Runtime error: %s", "Assert failed");
9486 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24905);
9487 show_backtrace(1);
9488 }
9489 var_tidnode3 = var_nodearraylist2;
9490 /* <var_tidnode3:nullable Object> isa nullable TId */
9491 cltype6 = type_nullable_parser_nodes__TId.color;
9492 idtype7 = type_nullable_parser_nodes__TId.id;
9493 if(var_tidnode3 == NULL) {
9494 var5 = 1;
9495 } else {
9496 if(cltype6 >= var_tidnode3->type->table_size) {
9497 var5 = 0;
9498 } else {
9499 var5 = var_tidnode3->type->type_table[cltype6] == idtype7;
9500 }
9501 }
9502 if (!var5) {
9503 fprintf(stderr, "Runtime error: %s", "Assert failed");
9504 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24907);
9505 show_backtrace(1);
9506 }
9507 var_ptypenode4 = var_nodearraylist3;
9508 /* <var_ptypenode4:nullable Object> isa nullable AType */
9509 cltype9 = type_nullable_parser_nodes__AType.color;
9510 idtype10 = type_nullable_parser_nodes__AType.id;
9511 if(var_ptypenode4 == NULL) {
9512 var8 = 1;
9513 } else {
9514 if(cltype9 >= var_ptypenode4->type->table_size) {
9515 var8 = 0;
9516 } else {
9517 var8 = var_ptypenode4->type->type_table[cltype9] == idtype10;
9518 }
9519 }
9520 if (!var8) {
9521 fprintf(stderr, "Runtime error: %s", "Assert failed");
9522 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24909);
9523 show_backtrace(1);
9524 }
9525 var11 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr);
9526 var12 = NULL;
9527 var13 = NULL;
9528 var14 = NULL;
9529 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AVardeclExpr__init_avardeclexpr]))(var11, var_tkwvarnode2, var_tidnode3, var_ptypenode4, var12, var13, var14) /* init_avardeclexpr on <var11:AVardeclExpr>*/;
9530 var_pexprnode1 = var11;
9531 var_node_list = var_pexprnode1;
9532 var15 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction648> */
9533 var16 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var15) /* go_to on <var_p:Parser>*/;
9534 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var16, var_node_list) /* push on <var_p:Parser>*/;
9535 RET_LABEL:;
9536 }
9537 /* method parser#ReduceAction648#action for (self: Object, Parser) */
9538 void VIRTUAL_parser__ReduceAction648__action(val* self, val* p0) {
9539 parser__ReduceAction648__action(self, p0);
9540 RET_LABEL:;
9541 }
9542 /* method parser#ReduceAction649#action for (self: ReduceAction649, Parser) */
9543 void parser__ReduceAction649__action(val* self, val* p0) {
9544 val* var_p /* var p: Parser */;
9545 val* var /* : null */;
9546 val* var_node_list /* var node_list: nullable Object */;
9547 val* var1 /* : nullable Object */;
9548 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9549 val* var2 /* : nullable Object */;
9550 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9551 val* var3 /* : nullable Object */;
9552 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9553 val* var4 /* : nullable Object */;
9554 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9555 val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */;
9556 short int var5 /* : Bool */;
9557 int cltype;
9558 int idtype;
9559 val* var_tidnode3 /* var tidnode3: nullable Object */;
9560 short int var6 /* : Bool */;
9561 int cltype7;
9562 int idtype8;
9563 val* var_ptypenode4 /* var ptypenode4: nullable Object */;
9564 short int var9 /* : Bool */;
9565 int cltype10;
9566 int idtype11;
9567 val* var_pannotationsnode7 /* var pannotationsnode7: nullable Object */;
9568 short int var12 /* : Bool */;
9569 int cltype13;
9570 int idtype14;
9571 val* var15 /* : AVardeclExpr */;
9572 val* var16 /* : null */;
9573 val* var17 /* : null */;
9574 val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */;
9575 long var18 /* : Int */;
9576 long var19 /* : Int */;
9577 var_p = p0;
9578 var = NULL;
9579 var_node_list = var;
9580 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9581 var_nodearraylist4 = var1;
9582 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9583 var_nodearraylist3 = var2;
9584 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9585 var_nodearraylist2 = var3;
9586 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9587 var_nodearraylist1 = var4;
9588 var_tkwvarnode2 = var_nodearraylist1;
9589 /* <var_tkwvarnode2:nullable Object> isa nullable TKwvar */
9590 cltype = type_nullable_parser_nodes__TKwvar.color;
9591 idtype = type_nullable_parser_nodes__TKwvar.id;
9592 if(var_tkwvarnode2 == NULL) {
9593 var5 = 1;
9594 } else {
9595 if(cltype >= var_tkwvarnode2->type->table_size) {
9596 var5 = 0;
9597 } else {
9598 var5 = var_tkwvarnode2->type->type_table[cltype] == idtype;
9599 }
9600 }
9601 if (!var5) {
9602 fprintf(stderr, "Runtime error: %s", "Assert failed");
9603 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24932);
9604 show_backtrace(1);
9605 }
9606 var_tidnode3 = var_nodearraylist2;
9607 /* <var_tidnode3:nullable Object> isa nullable TId */
9608 cltype7 = type_nullable_parser_nodes__TId.color;
9609 idtype8 = type_nullable_parser_nodes__TId.id;
9610 if(var_tidnode3 == NULL) {
9611 var6 = 1;
9612 } else {
9613 if(cltype7 >= var_tidnode3->type->table_size) {
9614 var6 = 0;
9615 } else {
9616 var6 = var_tidnode3->type->type_table[cltype7] == idtype8;
9617 }
9618 }
9619 if (!var6) {
9620 fprintf(stderr, "Runtime error: %s", "Assert failed");
9621 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24934);
9622 show_backtrace(1);
9623 }
9624 var_ptypenode4 = var_nodearraylist4;
9625 /* <var_ptypenode4:nullable Object> isa nullable AType */
9626 cltype10 = type_nullable_parser_nodes__AType.color;
9627 idtype11 = type_nullable_parser_nodes__AType.id;
9628 if(var_ptypenode4 == NULL) {
9629 var9 = 1;
9630 } else {
9631 if(cltype10 >= var_ptypenode4->type->table_size) {
9632 var9 = 0;
9633 } else {
9634 var9 = var_ptypenode4->type->type_table[cltype10] == idtype11;
9635 }
9636 }
9637 if (!var9) {
9638 fprintf(stderr, "Runtime error: %s", "Assert failed");
9639 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24936);
9640 show_backtrace(1);
9641 }
9642 var_pannotationsnode7 = var_nodearraylist3;
9643 /* <var_pannotationsnode7:nullable Object> isa nullable AAnnotations */
9644 cltype13 = type_nullable_parser_nodes__AAnnotations.color;
9645 idtype14 = type_nullable_parser_nodes__AAnnotations.id;
9646 if(var_pannotationsnode7 == NULL) {
9647 var12 = 1;
9648 } else {
9649 if(cltype13 >= var_pannotationsnode7->type->table_size) {
9650 var12 = 0;
9651 } else {
9652 var12 = var_pannotationsnode7->type->type_table[cltype13] == idtype14;
9653 }
9654 }
9655 if (!var12) {
9656 fprintf(stderr, "Runtime error: %s", "Assert failed");
9657 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24938);
9658 show_backtrace(1);
9659 }
9660 var15 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr);
9661 var16 = NULL;
9662 var17 = NULL;
9663 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var15->class->vft[COLOR_parser_prod__AVardeclExpr__init_avardeclexpr]))(var15, var_tkwvarnode2, var_tidnode3, var_ptypenode4, var16, var17, var_pannotationsnode7) /* init_avardeclexpr on <var15:AVardeclExpr>*/;
9664 var_pexprnode1 = var15;
9665 var_node_list = var_pexprnode1;
9666 var18 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction649> */
9667 var19 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var18) /* go_to on <var_p:Parser>*/;
9668 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var19, var_node_list) /* push on <var_p:Parser>*/;
9669 RET_LABEL:;
9670 }
9671 /* method parser#ReduceAction649#action for (self: Object, Parser) */
9672 void VIRTUAL_parser__ReduceAction649__action(val* self, val* p0) {
9673 parser__ReduceAction649__action(self, p0);
9674 RET_LABEL:;
9675 }
9676 /* method parser#ReduceAction650#action for (self: ReduceAction650, Parser) */
9677 void parser__ReduceAction650__action(val* self, val* p0) {
9678 val* var_p /* var p: Parser */;
9679 val* var /* : null */;
9680 val* var_node_list /* var node_list: nullable Object */;
9681 val* var1 /* : nullable Object */;
9682 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9683 val* var2 /* : nullable Object */;
9684 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9685 val* var3 /* : nullable Object */;
9686 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9687 val* var4 /* : nullable Object */;
9688 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9689 val* var5 /* : nullable Object */;
9690 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9691 val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */;
9692 short int var6 /* : Bool */;
9693 int cltype;
9694 int idtype;
9695 val* var_tidnode3 /* var tidnode3: nullable Object */;
9696 short int var7 /* : Bool */;
9697 int cltype8;
9698 int idtype9;
9699 val* var_tassignnode5 /* var tassignnode5: nullable Object */;
9700 short int var10 /* : Bool */;
9701 int cltype11;
9702 int idtype12;
9703 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
9704 short int var13 /* : Bool */;
9705 int cltype14;
9706 int idtype15;
9707 val* var16 /* : AVardeclExpr */;
9708 val* var17 /* : null */;
9709 val* var18 /* : null */;
9710 val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */;
9711 long var19 /* : Int */;
9712 long var20 /* : Int */;
9713 var_p = p0;
9714 var = NULL;
9715 var_node_list = var;
9716 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9717 var_nodearraylist5 = var1;
9718 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9719 var_nodearraylist4 = var2;
9720 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9721 var_nodearraylist3 = var3;
9722 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9723 var_nodearraylist2 = var4;
9724 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9725 var_nodearraylist1 = var5;
9726 var_tkwvarnode2 = var_nodearraylist1;
9727 /* <var_tkwvarnode2:nullable Object> isa nullable TKwvar */
9728 cltype = type_nullable_parser_nodes__TKwvar.color;
9729 idtype = type_nullable_parser_nodes__TKwvar.id;
9730 if(var_tkwvarnode2 == NULL) {
9731 var6 = 1;
9732 } else {
9733 if(cltype >= var_tkwvarnode2->type->table_size) {
9734 var6 = 0;
9735 } else {
9736 var6 = var_tkwvarnode2->type->type_table[cltype] == idtype;
9737 }
9738 }
9739 if (!var6) {
9740 fprintf(stderr, "Runtime error: %s", "Assert failed");
9741 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24962);
9742 show_backtrace(1);
9743 }
9744 var_tidnode3 = var_nodearraylist2;
9745 /* <var_tidnode3:nullable Object> isa nullable TId */
9746 cltype8 = type_nullable_parser_nodes__TId.color;
9747 idtype9 = type_nullable_parser_nodes__TId.id;
9748 if(var_tidnode3 == NULL) {
9749 var7 = 1;
9750 } else {
9751 if(cltype8 >= var_tidnode3->type->table_size) {
9752 var7 = 0;
9753 } else {
9754 var7 = var_tidnode3->type->type_table[cltype8] == idtype9;
9755 }
9756 }
9757 if (!var7) {
9758 fprintf(stderr, "Runtime error: %s", "Assert failed");
9759 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24964);
9760 show_backtrace(1);
9761 }
9762 var_tassignnode5 = var_nodearraylist3;
9763 /* <var_tassignnode5:nullable Object> isa nullable TAssign */
9764 cltype11 = type_nullable_parser_nodes__TAssign.color;
9765 idtype12 = type_nullable_parser_nodes__TAssign.id;
9766 if(var_tassignnode5 == NULL) {
9767 var10 = 1;
9768 } else {
9769 if(cltype11 >= var_tassignnode5->type->table_size) {
9770 var10 = 0;
9771 } else {
9772 var10 = var_tassignnode5->type->type_table[cltype11] == idtype12;
9773 }
9774 }
9775 if (!var10) {
9776 fprintf(stderr, "Runtime error: %s", "Assert failed");
9777 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24966);
9778 show_backtrace(1);
9779 }
9780 var_pexprnode6 = var_nodearraylist5;
9781 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
9782 cltype14 = type_nullable_parser_nodes__AExpr.color;
9783 idtype15 = type_nullable_parser_nodes__AExpr.id;
9784 if(var_pexprnode6 == NULL) {
9785 var13 = 1;
9786 } else {
9787 if(cltype14 >= var_pexprnode6->type->table_size) {
9788 var13 = 0;
9789 } else {
9790 var13 = var_pexprnode6->type->type_table[cltype14] == idtype15;
9791 }
9792 }
9793 if (!var13) {
9794 fprintf(stderr, "Runtime error: %s", "Assert failed");
9795 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24968);
9796 show_backtrace(1);
9797 }
9798 var16 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr);
9799 var17 = NULL;
9800 var18 = NULL;
9801 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var16->class->vft[COLOR_parser_prod__AVardeclExpr__init_avardeclexpr]))(var16, var_tkwvarnode2, var_tidnode3, var17, var_tassignnode5, var_pexprnode6, var18) /* init_avardeclexpr on <var16:AVardeclExpr>*/;
9802 var_pexprnode1 = var16;
9803 var_node_list = var_pexprnode1;
9804 var19 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction650> */
9805 var20 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var19) /* go_to on <var_p:Parser>*/;
9806 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var20, var_node_list) /* push on <var_p:Parser>*/;
9807 RET_LABEL:;
9808 }
9809 /* method parser#ReduceAction650#action for (self: Object, Parser) */
9810 void VIRTUAL_parser__ReduceAction650__action(val* self, val* p0) {
9811 parser__ReduceAction650__action(self, p0);
9812 RET_LABEL:;
9813 }
9814 /* method parser#ReduceAction651#action for (self: ReduceAction651, Parser) */
9815 void parser__ReduceAction651__action(val* self, val* p0) {
9816 val* var_p /* var p: Parser */;
9817 val* var /* : null */;
9818 val* var_node_list /* var node_list: nullable Object */;
9819 val* var1 /* : nullable Object */;
9820 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
9821 val* var2 /* : nullable Object */;
9822 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9823 val* var3 /* : nullable Object */;
9824 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9825 val* var4 /* : nullable Object */;
9826 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9827 val* var5 /* : nullable Object */;
9828 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9829 val* var6 /* : nullable Object */;
9830 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9831 val* var_tkwvarnode2 /* var tkwvarnode2: nullable Object */;
9832 short int var7 /* : Bool */;
9833 int cltype;
9834 int idtype;
9835 val* var_tidnode3 /* var tidnode3: nullable Object */;
9836 short int var8 /* : Bool */;
9837 int cltype9;
9838 int idtype10;
9839 val* var_tassignnode5 /* var tassignnode5: nullable Object */;
9840 short int var11 /* : Bool */;
9841 int cltype12;
9842 int idtype13;
9843 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
9844 short int var14 /* : Bool */;
9845 int cltype15;
9846 int idtype16;
9847 val* var_pannotationsnode7 /* var pannotationsnode7: nullable Object */;
9848 short int var17 /* : Bool */;
9849 int cltype18;
9850 int idtype19;
9851 val* var20 /* : AVardeclExpr */;
9852 val* var21 /* : null */;
9853 val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */;
9854 long var22 /* : Int */;
9855 long var23 /* : Int */;
9856 var_p = p0;
9857 var = NULL;
9858 var_node_list = var;
9859 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9860 var_nodearraylist6 = var1;
9861 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9862 var_nodearraylist5 = var2;
9863 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9864 var_nodearraylist4 = var3;
9865 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9866 var_nodearraylist3 = var4;
9867 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9868 var_nodearraylist2 = var5;
9869 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9870 var_nodearraylist1 = var6;
9871 var_tkwvarnode2 = var_nodearraylist1;
9872 /* <var_tkwvarnode2:nullable Object> isa nullable TKwvar */
9873 cltype = type_nullable_parser_nodes__TKwvar.color;
9874 idtype = type_nullable_parser_nodes__TKwvar.id;
9875 if(var_tkwvarnode2 == NULL) {
9876 var7 = 1;
9877 } else {
9878 if(cltype >= var_tkwvarnode2->type->table_size) {
9879 var7 = 0;
9880 } else {
9881 var7 = var_tkwvarnode2->type->type_table[cltype] == idtype;
9882 }
9883 }
9884 if (!var7) {
9885 fprintf(stderr, "Runtime error: %s", "Assert failed");
9886 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24993);
9887 show_backtrace(1);
9888 }
9889 var_tidnode3 = var_nodearraylist2;
9890 /* <var_tidnode3:nullable Object> isa nullable TId */
9891 cltype9 = type_nullable_parser_nodes__TId.color;
9892 idtype10 = type_nullable_parser_nodes__TId.id;
9893 if(var_tidnode3 == NULL) {
9894 var8 = 1;
9895 } else {
9896 if(cltype9 >= var_tidnode3->type->table_size) {
9897 var8 = 0;
9898 } else {
9899 var8 = var_tidnode3->type->type_table[cltype9] == idtype10;
9900 }
9901 }
9902 if (!var8) {
9903 fprintf(stderr, "Runtime error: %s", "Assert failed");
9904 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24995);
9905 show_backtrace(1);
9906 }
9907 var_tassignnode5 = var_nodearraylist4;
9908 /* <var_tassignnode5:nullable Object> isa nullable TAssign */
9909 cltype12 = type_nullable_parser_nodes__TAssign.color;
9910 idtype13 = type_nullable_parser_nodes__TAssign.id;
9911 if(var_tassignnode5 == NULL) {
9912 var11 = 1;
9913 } else {
9914 if(cltype12 >= var_tassignnode5->type->table_size) {
9915 var11 = 0;
9916 } else {
9917 var11 = var_tassignnode5->type->type_table[cltype12] == idtype13;
9918 }
9919 }
9920 if (!var11) {
9921 fprintf(stderr, "Runtime error: %s", "Assert failed");
9922 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24997);
9923 show_backtrace(1);
9924 }
9925 var_pexprnode6 = var_nodearraylist6;
9926 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
9927 cltype15 = type_nullable_parser_nodes__AExpr.color;
9928 idtype16 = type_nullable_parser_nodes__AExpr.id;
9929 if(var_pexprnode6 == NULL) {
9930 var14 = 1;
9931 } else {
9932 if(cltype15 >= var_pexprnode6->type->table_size) {
9933 var14 = 0;
9934 } else {
9935 var14 = var_pexprnode6->type->type_table[cltype15] == idtype16;
9936 }
9937 }
9938 if (!var14) {
9939 fprintf(stderr, "Runtime error: %s", "Assert failed");
9940 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 24999);
9941 show_backtrace(1);
9942 }
9943 var_pannotationsnode7 = var_nodearraylist3;
9944 /* <var_pannotationsnode7:nullable Object> isa nullable AAnnotations */
9945 cltype18 = type_nullable_parser_nodes__AAnnotations.color;
9946 idtype19 = type_nullable_parser_nodes__AAnnotations.id;
9947 if(var_pannotationsnode7 == NULL) {
9948 var17 = 1;
9949 } else {
9950 if(cltype18 >= var_pannotationsnode7->type->table_size) {
9951 var17 = 0;
9952 } else {
9953 var17 = var_pannotationsnode7->type->type_table[cltype18] == idtype19;
9954 }
9955 }
9956 if (!var17) {
9957 fprintf(stderr, "Runtime error: %s", "Assert failed");
9958 fprintf(stderr, " (%s:%d)\n", "src/parser/parser.nit", 25001);
9959 show_backtrace(1);
9960 }
9961 var20 = NEW_parser_nodes__AVardeclExpr(&type_parser_nodes__AVardeclExpr);
9962 var21 = NULL;
9963 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var20->class->vft[COLOR_parser_prod__AVardeclExpr__init_avardeclexpr]))(var20, var_tkwvarnode2, var_tidnode3, var21, var_tassignnode5, var_pexprnode6, var_pannotationsnode7) /* init_avardeclexpr on <var20:AVardeclExpr>*/;
9964 var_pexprnode1 = var20;
9965 var_node_list = var_pexprnode1;
9966 var22 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction651> */
9967 var23 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var22) /* go_to on <var_p:Parser>*/;
9968 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var23, var_node_list) /* push on <var_p:Parser>*/;
9969 RET_LABEL:;
9970 }
9971 /* method parser#ReduceAction651#action for (self: Object, Parser) */
9972 void VIRTUAL_parser__ReduceAction651__action(val* self, val* p0) {
9973 parser__ReduceAction651__action(self, p0);
9974 RET_LABEL:;
9975 }