tests: remove base_virtual_int that is redundant with base_covar_int
[nit.git] / c_src / parser.sep.9.c
1 #include "parser.sep.0.h"
2 /* method parser#ReduceAction314#action for (self: ReduceAction314, Parser) */
3 void parser__ReduceAction314__action(val* self, val* p0) {
4 val* var_p /* var p: Parser */;
5 val* var /* : null */;
6 val* var_node_list /* var node_list: nullable Object */;
7 val* var1 /* : nullable Object */;
8 val* var_nodearraylist12 /* var nodearraylist12: nullable Object */;
9 val* var2 /* : nullable Object */;
10 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
11 val* var3 /* : nullable Object */;
12 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
13 val* var4 /* : nullable Object */;
14 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
15 val* var5 /* : nullable Object */;
16 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
17 val* var6 /* : nullable Object */;
18 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
19 val* var7 /* : nullable Object */;
20 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
21 val* var8 /* : nullable Object */;
22 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
23 val* var9 /* : nullable Object */;
24 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
25 val* var10 /* : nullable Object */;
26 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
27 val* var11 /* : nullable Object */;
28 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
29 val* var12 /* : nullable Object */;
30 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
31 val* var13 /* : Array[Object] */;
32 val* var_listnode7 /* var listnode7: Array[Object] */;
33 val* var14 /* : Array[Object] */;
34 val* var_listnode16 /* var listnode16: Array[Object] */;
35 val* var15 /* : Array[Object] */;
36 val* var_listnode18 /* var listnode18: Array[Object] */;
37 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
38 short int var16 /* : Bool */;
39 int cltype;
40 int idtype;
41 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
42 short int var17 /* : Bool */;
43 int cltype18;
44 int idtype19;
45 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
46 short int var20 /* : Bool */;
47 int cltype21;
48 int idtype22;
49 val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */;
50 short int var23 /* : Bool */;
51 int cltype24;
52 int idtype25;
53 val* var_tclassidnode6 /* var tclassidnode6: nullable Object */;
54 short int var26 /* : Bool */;
55 int cltype27;
56 int idtype28;
57 val* var29 /* : Array[Object] */;
58 val* var_listnode12 /* var listnode12: Array[Object] */;
59 val* var_listnode11 /* var listnode11: nullable Object */;
60 short int var30 /* : Bool */;
61 int cltype31;
62 int idtype32;
63 val* var33 /* : Array[Object] */;
64 val* var34 /* : AAnnotations */;
65 val* var35 /* : null */;
66 val* var36 /* : null */;
67 val* var37 /* : null */;
68 val* var_pannotationsnode8 /* var pannotationsnode8: nullable AAnnotations */;
69 val* var_pexterncodeblocknode14 /* var pexterncodeblocknode14: nullable Object */;
70 short int var38 /* : Bool */;
71 int cltype39;
72 int idtype40;
73 val* var_listnode15 /* var listnode15: nullable Object */;
74 short int var41 /* : Bool */;
75 int cltype42;
76 int idtype43;
77 val* var44 /* : Array[Object] */;
78 val* var_listnode17 /* var listnode17: nullable Object */;
79 short int var45 /* : Bool */;
80 int cltype46;
81 int idtype47;
82 val* var48 /* : Array[Object] */;
83 val* var_tkwendnode19 /* var tkwendnode19: nullable Object */;
84 short int var49 /* : Bool */;
85 int cltype50;
86 int idtype51;
87 val* var52 /* : AStdClassdef */;
88 val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */;
89 long var53 /* : Int */;
90 long var54 /* : Int */;
91 var_p = p0;
92 var = NULL;
93 var_node_list = var;
94 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
95 var_nodearraylist12 = var1;
96 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
97 var_nodearraylist11 = var2;
98 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
99 var_nodearraylist10 = var3;
100 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
101 var_nodearraylist9 = var4;
102 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
103 var_nodearraylist8 = var5;
104 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
105 var_nodearraylist7 = var6;
106 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
107 var_nodearraylist6 = var7;
108 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
109 var_nodearraylist5 = var8;
110 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
111 var_nodearraylist4 = var9;
112 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
113 var_nodearraylist3 = var10;
114 var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
115 var_nodearraylist2 = var11;
116 var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
117 var_nodearraylist1 = var12;
118 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
119 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
120 CHECK_NEW_array__Array(var13);
121 var_listnode7 = var13;
122 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
123 ((void (*)(val*))(var14->class->vft[COLOR_array__Array__init]))(var14) /* init on <var14:Array[Object]>*/;
124 CHECK_NEW_array__Array(var14);
125 var_listnode16 = var14;
126 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
127 ((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
128 CHECK_NEW_array__Array(var15);
129 var_listnode18 = var15;
130 var_pdocnode2 = var_nodearraylist1;
131 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
132 cltype = type_nullable_parser_nodes__ADoc.color;
133 idtype = type_nullable_parser_nodes__ADoc.id;
134 if(var_pdocnode2 == NULL) {
135 var16 = 1;
136 } else {
137 if(cltype >= var_pdocnode2->type->table_size) {
138 var16 = 0;
139 } else {
140 var16 = var_pdocnode2->type->type_table[cltype] == idtype;
141 }
142 }
143 if (!var16) {
144 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14722);
145 exit(1);
146 }
147 var_tkwredefnode3 = var_nodearraylist2;
148 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
149 cltype18 = type_nullable_parser_nodes__TKwredef.color;
150 idtype19 = type_nullable_parser_nodes__TKwredef.id;
151 if(var_tkwredefnode3 == NULL) {
152 var17 = 1;
153 } else {
154 if(cltype18 >= var_tkwredefnode3->type->table_size) {
155 var17 = 0;
156 } else {
157 var17 = var_tkwredefnode3->type->type_table[cltype18] == idtype19;
158 }
159 }
160 if (!var17) {
161 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14724);
162 exit(1);
163 }
164 var_pvisibilitynode4 = var_nodearraylist3;
165 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
166 cltype21 = type_nullable_parser_nodes__AVisibility.color;
167 idtype22 = type_nullable_parser_nodes__AVisibility.id;
168 if(var_pvisibilitynode4 == NULL) {
169 var20 = 1;
170 } else {
171 if(cltype21 >= var_pvisibilitynode4->type->table_size) {
172 var20 = 0;
173 } else {
174 var20 = var_pvisibilitynode4->type->type_table[cltype21] == idtype22;
175 }
176 }
177 if (!var20) {
178 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14726);
179 exit(1);
180 }
181 var_pclasskindnode5 = var_nodearraylist4;
182 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
183 cltype24 = type_nullable_parser_nodes__AClasskind.color;
184 idtype25 = type_nullable_parser_nodes__AClasskind.id;
185 if(var_pclasskindnode5 == NULL) {
186 var23 = 1;
187 } else {
188 if(cltype24 >= var_pclasskindnode5->type->table_size) {
189 var23 = 0;
190 } else {
191 var23 = var_pclasskindnode5->type->type_table[cltype24] == idtype25;
192 }
193 }
194 if (!var23) {
195 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14728);
196 exit(1);
197 }
198 var_tclassidnode6 = var_nodearraylist6;
199 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
200 cltype27 = type_nullable_parser_nodes__TClassid.color;
201 idtype28 = type_nullable_parser_nodes__TClassid.id;
202 if(var_tclassidnode6 == NULL) {
203 var26 = 1;
204 } else {
205 if(cltype27 >= var_tclassidnode6->type->table_size) {
206 var26 = 0;
207 } else {
208 var26 = var_tclassidnode6->type->type_table[cltype27] == idtype28;
209 }
210 }
211 if (!var26) {
212 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14730);
213 exit(1);
214 }
215 var29 = NEW_array__Array(&type_array__Arraykernel__Object);
216 ((void (*)(val*))(var29->class->vft[COLOR_array__Array__init]))(var29) /* init on <var29:Array[Object]>*/;
217 CHECK_NEW_array__Array(var29);
218 var_listnode12 = var29;
219 var_listnode11 = var_nodearraylist7;
220 /* <var_listnode11:nullable Object> isa Array[Object] */
221 cltype31 = type_array__Arraykernel__Object.color;
222 idtype32 = type_array__Arraykernel__Object.id;
223 if(var_listnode11 == NULL) {
224 var30 = 0;
225 } else {
226 if(cltype31 >= var_listnode11->type->table_size) {
227 var30 = 0;
228 } else {
229 var30 = var_listnode11->type->type_table[cltype31] == idtype32;
230 }
231 }
232 if (!var30) {
233 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14733);
234 exit(1);
235 }
236 var33 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction314>*/;
237 var_listnode12 = var33;
238 var34 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations);
239 var35 = NULL;
240 var36 = NULL;
241 var37 = NULL;
242 ((void (*)(val*, val*, val*, val*, val*))(var34->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var34, var35, var36, var_listnode12, var37) /* init_aannotations on <var34:AAnnotations>*/;
243 CHECK_NEW_parser_nodes__AAnnotations(var34);
244 var_pannotationsnode8 = var34;
245 var_pexterncodeblocknode14 = var_nodearraylist8;
246 /* <var_pexterncodeblocknode14:nullable Object> isa nullable AExternCodeBlock */
247 cltype39 = type_nullable_parser_nodes__AExternCodeBlock.color;
248 idtype40 = type_nullable_parser_nodes__AExternCodeBlock.id;
249 if(var_pexterncodeblocknode14 == NULL) {
250 var38 = 1;
251 } else {
252 if(cltype39 >= var_pexterncodeblocknode14->type->table_size) {
253 var38 = 0;
254 } else {
255 var38 = var_pexterncodeblocknode14->type->type_table[cltype39] == idtype40;
256 }
257 }
258 if (!var38) {
259 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14742);
260 exit(1);
261 }
262 var_listnode15 = var_nodearraylist9;
263 /* <var_listnode15:nullable Object> isa Array[Object] */
264 cltype42 = type_array__Arraykernel__Object.color;
265 idtype43 = type_array__Arraykernel__Object.id;
266 if(var_listnode15 == NULL) {
267 var41 = 0;
268 } else {
269 if(cltype42 >= var_listnode15->type->table_size) {
270 var41 = 0;
271 } else {
272 var41 = var_listnode15->type->type_table[cltype42] == idtype43;
273 }
274 }
275 if (!var41) {
276 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14744);
277 exit(1);
278 }
279 var44 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode16, var_listnode15) /* concat on <self:ReduceAction314>*/;
280 var_listnode16 = var44;
281 var_listnode17 = var_nodearraylist10;
282 /* <var_listnode17:nullable Object> isa Array[Object] */
283 cltype46 = type_array__Arraykernel__Object.color;
284 idtype47 = type_array__Arraykernel__Object.id;
285 if(var_listnode17 == NULL) {
286 var45 = 0;
287 } else {
288 if(cltype46 >= var_listnode17->type->table_size) {
289 var45 = 0;
290 } else {
291 var45 = var_listnode17->type->type_table[cltype46] == idtype47;
292 }
293 }
294 if (!var45) {
295 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14747);
296 exit(1);
297 }
298 var48 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode18, var_listnode17) /* concat on <self:ReduceAction314>*/;
299 var_listnode18 = var48;
300 var_tkwendnode19 = var_nodearraylist12;
301 /* <var_tkwendnode19:nullable Object> isa nullable TKwend */
302 cltype50 = type_nullable_parser_nodes__TKwend.color;
303 idtype51 = type_nullable_parser_nodes__TKwend.id;
304 if(var_tkwendnode19 == NULL) {
305 var49 = 1;
306 } else {
307 if(cltype50 >= var_tkwendnode19->type->table_size) {
308 var49 = 0;
309 } else {
310 var49 = var_tkwendnode19->type->type_table[cltype50] == idtype51;
311 }
312 }
313 if (!var49) {
314 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14750);
315 exit(1);
316 }
317 var52 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
318 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var52->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var52, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var_pannotationsnode8, var_pexterncodeblocknode14, var_listnode16, var_listnode18, var_tkwendnode19) /* init_astdclassdef on <var52:AStdClassdef>*/;
319 CHECK_NEW_parser_nodes__AStdClassdef(var52);
320 var_pclassdefnode1 = var52;
321 var_node_list = var_pclassdefnode1;
322 var53 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction314> */
323 var54 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var53) /* go_to on <var_p:Parser>*/;
324 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var54, var_node_list) /* push on <var_p:Parser>*/;
325 RET_LABEL:;
326 }
327 /* method parser#ReduceAction314#action for (self: Object, Parser) */
328 void VIRTUAL_parser__ReduceAction314__action(val* self, val* p0) {
329 parser__ReduceAction314__action(self, p0);
330 RET_LABEL:;
331 }
332 /* method parser#ReduceAction315#action for (self: ReduceAction315, Parser) */
333 void parser__ReduceAction315__action(val* self, val* p0) {
334 val* var_p /* var p: Parser */;
335 val* var /* : null */;
336 val* var_node_list /* var node_list: nullable Object */;
337 val* var1 /* : nullable Object */;
338 val* var_nodearraylist12 /* var nodearraylist12: nullable Object */;
339 val* var2 /* : nullable Object */;
340 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
341 val* var3 /* : nullable Object */;
342 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
343 val* var4 /* : nullable Object */;
344 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
345 val* var5 /* : nullable Object */;
346 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
347 val* var6 /* : nullable Object */;
348 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
349 val* var7 /* : nullable Object */;
350 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
351 val* var8 /* : nullable Object */;
352 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
353 val* var9 /* : nullable Object */;
354 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
355 val* var10 /* : nullable Object */;
356 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
357 val* var11 /* : nullable Object */;
358 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
359 val* var12 /* : nullable Object */;
360 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
361 val* var13 /* : Array[Object] */;
362 val* var_listnode7 /* var listnode7: Array[Object] */;
363 val* var14 /* : Array[Object] */;
364 val* var_listnode16 /* var listnode16: Array[Object] */;
365 val* var15 /* : Array[Object] */;
366 val* var_listnode18 /* var listnode18: Array[Object] */;
367 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
368 short int var16 /* : Bool */;
369 int cltype;
370 int idtype;
371 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
372 short int var17 /* : Bool */;
373 int cltype18;
374 int idtype19;
375 val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */;
376 short int var20 /* : Bool */;
377 int cltype21;
378 int idtype22;
379 val* var_tclassidnode6 /* var tclassidnode6: nullable Object */;
380 short int var23 /* : Bool */;
381 int cltype24;
382 int idtype25;
383 val* var26 /* : Array[Object] */;
384 val* var_listnode12 /* var listnode12: Array[Object] */;
385 val* var_listnode11 /* var listnode11: nullable Object */;
386 short int var27 /* : Bool */;
387 int cltype28;
388 int idtype29;
389 val* var30 /* : Array[Object] */;
390 val* var31 /* : AAnnotations */;
391 val* var32 /* : null */;
392 val* var33 /* : null */;
393 val* var34 /* : null */;
394 val* var_pannotationsnode8 /* var pannotationsnode8: nullable AAnnotations */;
395 val* var_pexterncodeblocknode14 /* var pexterncodeblocknode14: nullable Object */;
396 short int var35 /* : Bool */;
397 int cltype36;
398 int idtype37;
399 val* var_listnode15 /* var listnode15: nullable Object */;
400 short int var38 /* : Bool */;
401 int cltype39;
402 int idtype40;
403 val* var41 /* : Array[Object] */;
404 val* var_listnode17 /* var listnode17: nullable Object */;
405 short int var42 /* : Bool */;
406 int cltype43;
407 int idtype44;
408 val* var45 /* : Array[Object] */;
409 val* var_tkwendnode19 /* var tkwendnode19: nullable Object */;
410 short int var46 /* : Bool */;
411 int cltype47;
412 int idtype48;
413 val* var49 /* : AStdClassdef */;
414 val* var50 /* : null */;
415 val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */;
416 long var51 /* : Int */;
417 long var52 /* : Int */;
418 var_p = p0;
419 var = NULL;
420 var_node_list = var;
421 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
422 var_nodearraylist12 = var1;
423 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
424 var_nodearraylist11 = var2;
425 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
426 var_nodearraylist10 = var3;
427 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
428 var_nodearraylist9 = var4;
429 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
430 var_nodearraylist8 = var5;
431 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
432 var_nodearraylist7 = var6;
433 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
434 var_nodearraylist6 = var7;
435 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
436 var_nodearraylist5 = var8;
437 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
438 var_nodearraylist4 = var9;
439 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
440 var_nodearraylist3 = var10;
441 var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
442 var_nodearraylist2 = var11;
443 var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
444 var_nodearraylist1 = var12;
445 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
446 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
447 CHECK_NEW_array__Array(var13);
448 var_listnode7 = var13;
449 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
450 ((void (*)(val*))(var14->class->vft[COLOR_array__Array__init]))(var14) /* init on <var14:Array[Object]>*/;
451 CHECK_NEW_array__Array(var14);
452 var_listnode16 = var14;
453 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
454 ((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
455 CHECK_NEW_array__Array(var15);
456 var_listnode18 = var15;
457 var_pdocnode2 = var_nodearraylist1;
458 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
459 cltype = type_nullable_parser_nodes__ADoc.color;
460 idtype = type_nullable_parser_nodes__ADoc.id;
461 if(var_pdocnode2 == NULL) {
462 var16 = 1;
463 } else {
464 if(cltype >= var_pdocnode2->type->table_size) {
465 var16 = 0;
466 } else {
467 var16 = var_pdocnode2->type->type_table[cltype] == idtype;
468 }
469 }
470 if (!var16) {
471 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14789);
472 exit(1);
473 }
474 var_pvisibilitynode4 = var_nodearraylist2;
475 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
476 cltype18 = type_nullable_parser_nodes__AVisibility.color;
477 idtype19 = type_nullable_parser_nodes__AVisibility.id;
478 if(var_pvisibilitynode4 == NULL) {
479 var17 = 1;
480 } else {
481 if(cltype18 >= var_pvisibilitynode4->type->table_size) {
482 var17 = 0;
483 } else {
484 var17 = var_pvisibilitynode4->type->type_table[cltype18] == idtype19;
485 }
486 }
487 if (!var17) {
488 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14791);
489 exit(1);
490 }
491 var_pclasskindnode5 = var_nodearraylist3;
492 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
493 cltype21 = type_nullable_parser_nodes__AClasskind.color;
494 idtype22 = type_nullable_parser_nodes__AClasskind.id;
495 if(var_pclasskindnode5 == NULL) {
496 var20 = 1;
497 } else {
498 if(cltype21 >= var_pclasskindnode5->type->table_size) {
499 var20 = 0;
500 } else {
501 var20 = var_pclasskindnode5->type->type_table[cltype21] == idtype22;
502 }
503 }
504 if (!var20) {
505 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14793);
506 exit(1);
507 }
508 var_tclassidnode6 = var_nodearraylist6;
509 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
510 cltype24 = type_nullable_parser_nodes__TClassid.color;
511 idtype25 = type_nullable_parser_nodes__TClassid.id;
512 if(var_tclassidnode6 == NULL) {
513 var23 = 1;
514 } else {
515 if(cltype24 >= var_tclassidnode6->type->table_size) {
516 var23 = 0;
517 } else {
518 var23 = var_tclassidnode6->type->type_table[cltype24] == idtype25;
519 }
520 }
521 if (!var23) {
522 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14795);
523 exit(1);
524 }
525 var26 = NEW_array__Array(&type_array__Arraykernel__Object);
526 ((void (*)(val*))(var26->class->vft[COLOR_array__Array__init]))(var26) /* init on <var26:Array[Object]>*/;
527 CHECK_NEW_array__Array(var26);
528 var_listnode12 = var26;
529 var_listnode11 = var_nodearraylist7;
530 /* <var_listnode11:nullable Object> isa Array[Object] */
531 cltype28 = type_array__Arraykernel__Object.color;
532 idtype29 = type_array__Arraykernel__Object.id;
533 if(var_listnode11 == NULL) {
534 var27 = 0;
535 } else {
536 if(cltype28 >= var_listnode11->type->table_size) {
537 var27 = 0;
538 } else {
539 var27 = var_listnode11->type->type_table[cltype28] == idtype29;
540 }
541 }
542 if (!var27) {
543 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14798);
544 exit(1);
545 }
546 var30 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction315>*/;
547 var_listnode12 = var30;
548 var31 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations);
549 var32 = NULL;
550 var33 = NULL;
551 var34 = NULL;
552 ((void (*)(val*, val*, val*, val*, val*))(var31->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var31, var32, var33, var_listnode12, var34) /* init_aannotations on <var31:AAnnotations>*/;
553 CHECK_NEW_parser_nodes__AAnnotations(var31);
554 var_pannotationsnode8 = var31;
555 var_pexterncodeblocknode14 = var_nodearraylist8;
556 /* <var_pexterncodeblocknode14:nullable Object> isa nullable AExternCodeBlock */
557 cltype36 = type_nullable_parser_nodes__AExternCodeBlock.color;
558 idtype37 = type_nullable_parser_nodes__AExternCodeBlock.id;
559 if(var_pexterncodeblocknode14 == NULL) {
560 var35 = 1;
561 } else {
562 if(cltype36 >= var_pexterncodeblocknode14->type->table_size) {
563 var35 = 0;
564 } else {
565 var35 = var_pexterncodeblocknode14->type->type_table[cltype36] == idtype37;
566 }
567 }
568 if (!var35) {
569 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14807);
570 exit(1);
571 }
572 var_listnode15 = var_nodearraylist9;
573 /* <var_listnode15:nullable Object> isa Array[Object] */
574 cltype39 = type_array__Arraykernel__Object.color;
575 idtype40 = type_array__Arraykernel__Object.id;
576 if(var_listnode15 == NULL) {
577 var38 = 0;
578 } else {
579 if(cltype39 >= var_listnode15->type->table_size) {
580 var38 = 0;
581 } else {
582 var38 = var_listnode15->type->type_table[cltype39] == idtype40;
583 }
584 }
585 if (!var38) {
586 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14809);
587 exit(1);
588 }
589 var41 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode16, var_listnode15) /* concat on <self:ReduceAction315>*/;
590 var_listnode16 = var41;
591 var_listnode17 = var_nodearraylist10;
592 /* <var_listnode17:nullable Object> isa Array[Object] */
593 cltype43 = type_array__Arraykernel__Object.color;
594 idtype44 = type_array__Arraykernel__Object.id;
595 if(var_listnode17 == NULL) {
596 var42 = 0;
597 } else {
598 if(cltype43 >= var_listnode17->type->table_size) {
599 var42 = 0;
600 } else {
601 var42 = var_listnode17->type->type_table[cltype43] == idtype44;
602 }
603 }
604 if (!var42) {
605 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14812);
606 exit(1);
607 }
608 var45 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode18, var_listnode17) /* concat on <self:ReduceAction315>*/;
609 var_listnode18 = var45;
610 var_tkwendnode19 = var_nodearraylist12;
611 /* <var_tkwendnode19:nullable Object> isa nullable TKwend */
612 cltype47 = type_nullable_parser_nodes__TKwend.color;
613 idtype48 = type_nullable_parser_nodes__TKwend.id;
614 if(var_tkwendnode19 == NULL) {
615 var46 = 1;
616 } else {
617 if(cltype47 >= var_tkwendnode19->type->table_size) {
618 var46 = 0;
619 } else {
620 var46 = var_tkwendnode19->type->type_table[cltype47] == idtype48;
621 }
622 }
623 if (!var46) {
624 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14815);
625 exit(1);
626 }
627 var49 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
628 var50 = NULL;
629 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var49->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var49, var_pdocnode2, var50, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var_pannotationsnode8, var_pexterncodeblocknode14, var_listnode16, var_listnode18, var_tkwendnode19) /* init_astdclassdef on <var49:AStdClassdef>*/;
630 CHECK_NEW_parser_nodes__AStdClassdef(var49);
631 var_pclassdefnode1 = var49;
632 var_node_list = var_pclassdefnode1;
633 var51 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction315> */
634 var52 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var51) /* go_to on <var_p:Parser>*/;
635 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var52, var_node_list) /* push on <var_p:Parser>*/;
636 RET_LABEL:;
637 }
638 /* method parser#ReduceAction315#action for (self: Object, Parser) */
639 void VIRTUAL_parser__ReduceAction315__action(val* self, val* p0) {
640 parser__ReduceAction315__action(self, p0);
641 RET_LABEL:;
642 }
643 /* method parser#ReduceAction316#action for (self: ReduceAction316, Parser) */
644 void parser__ReduceAction316__action(val* self, val* p0) {
645 val* var_p /* var p: Parser */;
646 val* var /* : null */;
647 val* var_node_list /* var node_list: nullable Object */;
648 val* var1 /* : nullable Object */;
649 val* var_nodearraylist13 /* var nodearraylist13: nullable Object */;
650 val* var2 /* : nullable Object */;
651 val* var_nodearraylist12 /* var nodearraylist12: nullable Object */;
652 val* var3 /* : nullable Object */;
653 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
654 val* var4 /* : nullable Object */;
655 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
656 val* var5 /* : nullable Object */;
657 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
658 val* var6 /* : nullable Object */;
659 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
660 val* var7 /* : nullable Object */;
661 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
662 val* var8 /* : nullable Object */;
663 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
664 val* var9 /* : nullable Object */;
665 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
666 val* var10 /* : nullable Object */;
667 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
668 val* var11 /* : nullable Object */;
669 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
670 val* var12 /* : nullable Object */;
671 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
672 val* var13 /* : nullable Object */;
673 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
674 val* var14 /* : Array[Object] */;
675 val* var_listnode7 /* var listnode7: Array[Object] */;
676 val* var15 /* : Array[Object] */;
677 val* var_listnode16 /* var listnode16: Array[Object] */;
678 val* var16 /* : Array[Object] */;
679 val* var_listnode18 /* var listnode18: Array[Object] */;
680 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
681 short int var17 /* : Bool */;
682 int cltype;
683 int idtype;
684 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
685 short int var18 /* : Bool */;
686 int cltype19;
687 int idtype20;
688 val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */;
689 short int var21 /* : Bool */;
690 int cltype22;
691 int idtype23;
692 val* var_tclassidnode6 /* var tclassidnode6: nullable Object */;
693 short int var24 /* : Bool */;
694 int cltype25;
695 int idtype26;
696 val* var27 /* : Array[Object] */;
697 val* var_listnode12 /* var listnode12: Array[Object] */;
698 val* var_listnode11 /* var listnode11: nullable Object */;
699 short int var28 /* : Bool */;
700 int cltype29;
701 int idtype30;
702 val* var31 /* : Array[Object] */;
703 val* var32 /* : AAnnotations */;
704 val* var33 /* : null */;
705 val* var34 /* : null */;
706 val* var35 /* : null */;
707 val* var_pannotationsnode8 /* var pannotationsnode8: nullable AAnnotations */;
708 val* var_pexterncodeblocknode14 /* var pexterncodeblocknode14: nullable Object */;
709 short int var36 /* : Bool */;
710 int cltype37;
711 int idtype38;
712 val* var_listnode15 /* var listnode15: nullable Object */;
713 short int var39 /* : Bool */;
714 int cltype40;
715 int idtype41;
716 val* var42 /* : Array[Object] */;
717 val* var_listnode17 /* var listnode17: nullable Object */;
718 short int var43 /* : Bool */;
719 int cltype44;
720 int idtype45;
721 val* var46 /* : Array[Object] */;
722 val* var_tkwendnode19 /* var tkwendnode19: nullable Object */;
723 short int var47 /* : Bool */;
724 int cltype48;
725 int idtype49;
726 val* var50 /* : AStdClassdef */;
727 val* var51 /* : null */;
728 val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */;
729 long var52 /* : Int */;
730 long var53 /* : Int */;
731 var_p = p0;
732 var = NULL;
733 var_node_list = var;
734 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
735 var_nodearraylist13 = var1;
736 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
737 var_nodearraylist12 = var2;
738 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
739 var_nodearraylist11 = var3;
740 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
741 var_nodearraylist10 = var4;
742 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
743 var_nodearraylist9 = var5;
744 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
745 var_nodearraylist8 = var6;
746 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
747 var_nodearraylist7 = var7;
748 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
749 var_nodearraylist6 = var8;
750 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
751 var_nodearraylist5 = var9;
752 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
753 var_nodearraylist4 = var10;
754 var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
755 var_nodearraylist3 = var11;
756 var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
757 var_nodearraylist2 = var12;
758 var13 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
759 var_nodearraylist1 = var13;
760 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
761 ((void (*)(val*))(var14->class->vft[COLOR_array__Array__init]))(var14) /* init on <var14:Array[Object]>*/;
762 CHECK_NEW_array__Array(var14);
763 var_listnode7 = var14;
764 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
765 ((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
766 CHECK_NEW_array__Array(var15);
767 var_listnode16 = var15;
768 var16 = NEW_array__Array(&type_array__Arraykernel__Object);
769 ((void (*)(val*))(var16->class->vft[COLOR_array__Array__init]))(var16) /* init on <var16:Array[Object]>*/;
770 CHECK_NEW_array__Array(var16);
771 var_listnode18 = var16;
772 var_pdocnode2 = var_nodearraylist1;
773 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
774 cltype = type_nullable_parser_nodes__ADoc.color;
775 idtype = type_nullable_parser_nodes__ADoc.id;
776 if(var_pdocnode2 == NULL) {
777 var17 = 1;
778 } else {
779 if(cltype >= var_pdocnode2->type->table_size) {
780 var17 = 0;
781 } else {
782 var17 = var_pdocnode2->type->type_table[cltype] == idtype;
783 }
784 }
785 if (!var17) {
786 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14855);
787 exit(1);
788 }
789 var_pvisibilitynode4 = var_nodearraylist2;
790 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
791 cltype19 = type_nullable_parser_nodes__AVisibility.color;
792 idtype20 = type_nullable_parser_nodes__AVisibility.id;
793 if(var_pvisibilitynode4 == NULL) {
794 var18 = 1;
795 } else {
796 if(cltype19 >= var_pvisibilitynode4->type->table_size) {
797 var18 = 0;
798 } else {
799 var18 = var_pvisibilitynode4->type->type_table[cltype19] == idtype20;
800 }
801 }
802 if (!var18) {
803 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14857);
804 exit(1);
805 }
806 var_pclasskindnode5 = var_nodearraylist3;
807 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
808 cltype22 = type_nullable_parser_nodes__AClasskind.color;
809 idtype23 = type_nullable_parser_nodes__AClasskind.id;
810 if(var_pclasskindnode5 == NULL) {
811 var21 = 1;
812 } else {
813 if(cltype22 >= var_pclasskindnode5->type->table_size) {
814 var21 = 0;
815 } else {
816 var21 = var_pclasskindnode5->type->type_table[cltype22] == idtype23;
817 }
818 }
819 if (!var21) {
820 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14859);
821 exit(1);
822 }
823 var_tclassidnode6 = var_nodearraylist7;
824 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
825 cltype25 = type_nullable_parser_nodes__TClassid.color;
826 idtype26 = type_nullable_parser_nodes__TClassid.id;
827 if(var_tclassidnode6 == NULL) {
828 var24 = 1;
829 } else {
830 if(cltype25 >= var_tclassidnode6->type->table_size) {
831 var24 = 0;
832 } else {
833 var24 = var_tclassidnode6->type->type_table[cltype25] == idtype26;
834 }
835 }
836 if (!var24) {
837 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14861);
838 exit(1);
839 }
840 var27 = NEW_array__Array(&type_array__Arraykernel__Object);
841 ((void (*)(val*))(var27->class->vft[COLOR_array__Array__init]))(var27) /* init on <var27:Array[Object]>*/;
842 CHECK_NEW_array__Array(var27);
843 var_listnode12 = var27;
844 var_listnode11 = var_nodearraylist8;
845 /* <var_listnode11:nullable Object> isa Array[Object] */
846 cltype29 = type_array__Arraykernel__Object.color;
847 idtype30 = type_array__Arraykernel__Object.id;
848 if(var_listnode11 == NULL) {
849 var28 = 0;
850 } else {
851 if(cltype29 >= var_listnode11->type->table_size) {
852 var28 = 0;
853 } else {
854 var28 = var_listnode11->type->type_table[cltype29] == idtype30;
855 }
856 }
857 if (!var28) {
858 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14864);
859 exit(1);
860 }
861 var31 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction316>*/;
862 var_listnode12 = var31;
863 var32 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations);
864 var33 = NULL;
865 var34 = NULL;
866 var35 = NULL;
867 ((void (*)(val*, val*, val*, val*, val*))(var32->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var32, var33, var34, var_listnode12, var35) /* init_aannotations on <var32:AAnnotations>*/;
868 CHECK_NEW_parser_nodes__AAnnotations(var32);
869 var_pannotationsnode8 = var32;
870 var_pexterncodeblocknode14 = var_nodearraylist9;
871 /* <var_pexterncodeblocknode14:nullable Object> isa nullable AExternCodeBlock */
872 cltype37 = type_nullable_parser_nodes__AExternCodeBlock.color;
873 idtype38 = type_nullable_parser_nodes__AExternCodeBlock.id;
874 if(var_pexterncodeblocknode14 == NULL) {
875 var36 = 1;
876 } else {
877 if(cltype37 >= var_pexterncodeblocknode14->type->table_size) {
878 var36 = 0;
879 } else {
880 var36 = var_pexterncodeblocknode14->type->type_table[cltype37] == idtype38;
881 }
882 }
883 if (!var36) {
884 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14873);
885 exit(1);
886 }
887 var_listnode15 = var_nodearraylist10;
888 /* <var_listnode15:nullable Object> isa Array[Object] */
889 cltype40 = type_array__Arraykernel__Object.color;
890 idtype41 = type_array__Arraykernel__Object.id;
891 if(var_listnode15 == NULL) {
892 var39 = 0;
893 } else {
894 if(cltype40 >= var_listnode15->type->table_size) {
895 var39 = 0;
896 } else {
897 var39 = var_listnode15->type->type_table[cltype40] == idtype41;
898 }
899 }
900 if (!var39) {
901 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14875);
902 exit(1);
903 }
904 var42 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode16, var_listnode15) /* concat on <self:ReduceAction316>*/;
905 var_listnode16 = var42;
906 var_listnode17 = var_nodearraylist11;
907 /* <var_listnode17:nullable Object> isa Array[Object] */
908 cltype44 = type_array__Arraykernel__Object.color;
909 idtype45 = type_array__Arraykernel__Object.id;
910 if(var_listnode17 == NULL) {
911 var43 = 0;
912 } else {
913 if(cltype44 >= var_listnode17->type->table_size) {
914 var43 = 0;
915 } else {
916 var43 = var_listnode17->type->type_table[cltype44] == idtype45;
917 }
918 }
919 if (!var43) {
920 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14878);
921 exit(1);
922 }
923 var46 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode18, var_listnode17) /* concat on <self:ReduceAction316>*/;
924 var_listnode18 = var46;
925 var_tkwendnode19 = var_nodearraylist13;
926 /* <var_tkwendnode19:nullable Object> isa nullable TKwend */
927 cltype48 = type_nullable_parser_nodes__TKwend.color;
928 idtype49 = type_nullable_parser_nodes__TKwend.id;
929 if(var_tkwendnode19 == NULL) {
930 var47 = 1;
931 } else {
932 if(cltype48 >= var_tkwendnode19->type->table_size) {
933 var47 = 0;
934 } else {
935 var47 = var_tkwendnode19->type->type_table[cltype48] == idtype49;
936 }
937 }
938 if (!var47) {
939 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14881);
940 exit(1);
941 }
942 var50 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
943 var51 = NULL;
944 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var50->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var50, var_pdocnode2, var51, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var_pannotationsnode8, var_pexterncodeblocknode14, var_listnode16, var_listnode18, var_tkwendnode19) /* init_astdclassdef on <var50:AStdClassdef>*/;
945 CHECK_NEW_parser_nodes__AStdClassdef(var50);
946 var_pclassdefnode1 = var50;
947 var_node_list = var_pclassdefnode1;
948 var52 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction316> */
949 var53 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var52) /* go_to on <var_p:Parser>*/;
950 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var53, var_node_list) /* push on <var_p:Parser>*/;
951 RET_LABEL:;
952 }
953 /* method parser#ReduceAction316#action for (self: Object, Parser) */
954 void VIRTUAL_parser__ReduceAction316__action(val* self, val* p0) {
955 parser__ReduceAction316__action(self, p0);
956 RET_LABEL:;
957 }
958 /* method parser#ReduceAction318#action for (self: ReduceAction318, Parser) */
959 void parser__ReduceAction318__action(val* self, val* p0) {
960 val* var_p /* var p: Parser */;
961 val* var /* : null */;
962 val* var_node_list /* var node_list: nullable Object */;
963 val* var1 /* : nullable Object */;
964 val* var_nodearraylist13 /* var nodearraylist13: nullable Object */;
965 val* var2 /* : nullable Object */;
966 val* var_nodearraylist12 /* var nodearraylist12: nullable Object */;
967 val* var3 /* : nullable Object */;
968 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
969 val* var4 /* : nullable Object */;
970 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
971 val* var5 /* : nullable Object */;
972 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
973 val* var6 /* : nullable Object */;
974 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
975 val* var7 /* : nullable Object */;
976 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
977 val* var8 /* : nullable Object */;
978 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
979 val* var9 /* : nullable Object */;
980 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
981 val* var10 /* : nullable Object */;
982 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
983 val* var11 /* : nullable Object */;
984 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
985 val* var12 /* : nullable Object */;
986 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
987 val* var13 /* : nullable Object */;
988 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
989 val* var14 /* : Array[Object] */;
990 val* var_listnode7 /* var listnode7: Array[Object] */;
991 val* var15 /* : Array[Object] */;
992 val* var_listnode16 /* var listnode16: Array[Object] */;
993 val* var16 /* : Array[Object] */;
994 val* var_listnode18 /* var listnode18: Array[Object] */;
995 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
996 short int var17 /* : Bool */;
997 int cltype;
998 int idtype;
999 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
1000 short int var18 /* : Bool */;
1001 int cltype19;
1002 int idtype20;
1003 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
1004 short int var21 /* : Bool */;
1005 int cltype22;
1006 int idtype23;
1007 val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */;
1008 short int var24 /* : Bool */;
1009 int cltype25;
1010 int idtype26;
1011 val* var_tclassidnode6 /* var tclassidnode6: nullable Object */;
1012 short int var27 /* : Bool */;
1013 int cltype28;
1014 int idtype29;
1015 val* var30 /* : Array[Object] */;
1016 val* var_listnode12 /* var listnode12: Array[Object] */;
1017 val* var_listnode11 /* var listnode11: nullable Object */;
1018 short int var31 /* : Bool */;
1019 int cltype32;
1020 int idtype33;
1021 val* var34 /* : Array[Object] */;
1022 val* var35 /* : AAnnotations */;
1023 val* var36 /* : null */;
1024 val* var37 /* : null */;
1025 val* var38 /* : null */;
1026 val* var_pannotationsnode8 /* var pannotationsnode8: nullable AAnnotations */;
1027 val* var_pexterncodeblocknode14 /* var pexterncodeblocknode14: nullable Object */;
1028 short int var39 /* : Bool */;
1029 int cltype40;
1030 int idtype41;
1031 val* var_listnode15 /* var listnode15: nullable Object */;
1032 short int var42 /* : Bool */;
1033 int cltype43;
1034 int idtype44;
1035 val* var45 /* : Array[Object] */;
1036 val* var_listnode17 /* var listnode17: nullable Object */;
1037 short int var46 /* : Bool */;
1038 int cltype47;
1039 int idtype48;
1040 val* var49 /* : Array[Object] */;
1041 val* var_tkwendnode19 /* var tkwendnode19: nullable Object */;
1042 short int var50 /* : Bool */;
1043 int cltype51;
1044 int idtype52;
1045 val* var53 /* : AStdClassdef */;
1046 val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */;
1047 long var54 /* : Int */;
1048 long var55 /* : Int */;
1049 var_p = p0;
1050 var = NULL;
1051 var_node_list = var;
1052 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1053 var_nodearraylist13 = var1;
1054 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1055 var_nodearraylist12 = var2;
1056 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1057 var_nodearraylist11 = var3;
1058 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1059 var_nodearraylist10 = var4;
1060 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1061 var_nodearraylist9 = var5;
1062 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1063 var_nodearraylist8 = var6;
1064 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1065 var_nodearraylist7 = var7;
1066 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1067 var_nodearraylist6 = var8;
1068 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1069 var_nodearraylist5 = var9;
1070 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1071 var_nodearraylist4 = var10;
1072 var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1073 var_nodearraylist3 = var11;
1074 var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1075 var_nodearraylist2 = var12;
1076 var13 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1077 var_nodearraylist1 = var13;
1078 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
1079 ((void (*)(val*))(var14->class->vft[COLOR_array__Array__init]))(var14) /* init on <var14:Array[Object]>*/;
1080 CHECK_NEW_array__Array(var14);
1081 var_listnode7 = var14;
1082 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
1083 ((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
1084 CHECK_NEW_array__Array(var15);
1085 var_listnode16 = var15;
1086 var16 = NEW_array__Array(&type_array__Arraykernel__Object);
1087 ((void (*)(val*))(var16->class->vft[COLOR_array__Array__init]))(var16) /* init on <var16:Array[Object]>*/;
1088 CHECK_NEW_array__Array(var16);
1089 var_listnode18 = var16;
1090 var_pdocnode2 = var_nodearraylist1;
1091 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
1092 cltype = type_nullable_parser_nodes__ADoc.color;
1093 idtype = type_nullable_parser_nodes__ADoc.id;
1094 if(var_pdocnode2 == NULL) {
1095 var17 = 1;
1096 } else {
1097 if(cltype >= var_pdocnode2->type->table_size) {
1098 var17 = 0;
1099 } else {
1100 var17 = var_pdocnode2->type->type_table[cltype] == idtype;
1101 }
1102 }
1103 if (!var17) {
1104 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14921);
1105 exit(1);
1106 }
1107 var_tkwredefnode3 = var_nodearraylist2;
1108 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
1109 cltype19 = type_nullable_parser_nodes__TKwredef.color;
1110 idtype20 = type_nullable_parser_nodes__TKwredef.id;
1111 if(var_tkwredefnode3 == NULL) {
1112 var18 = 1;
1113 } else {
1114 if(cltype19 >= var_tkwredefnode3->type->table_size) {
1115 var18 = 0;
1116 } else {
1117 var18 = var_tkwredefnode3->type->type_table[cltype19] == idtype20;
1118 }
1119 }
1120 if (!var18) {
1121 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14923);
1122 exit(1);
1123 }
1124 var_pvisibilitynode4 = var_nodearraylist3;
1125 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
1126 cltype22 = type_nullable_parser_nodes__AVisibility.color;
1127 idtype23 = type_nullable_parser_nodes__AVisibility.id;
1128 if(var_pvisibilitynode4 == NULL) {
1129 var21 = 1;
1130 } else {
1131 if(cltype22 >= var_pvisibilitynode4->type->table_size) {
1132 var21 = 0;
1133 } else {
1134 var21 = var_pvisibilitynode4->type->type_table[cltype22] == idtype23;
1135 }
1136 }
1137 if (!var21) {
1138 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14925);
1139 exit(1);
1140 }
1141 var_pclasskindnode5 = var_nodearraylist4;
1142 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
1143 cltype25 = type_nullable_parser_nodes__AClasskind.color;
1144 idtype26 = type_nullable_parser_nodes__AClasskind.id;
1145 if(var_pclasskindnode5 == NULL) {
1146 var24 = 1;
1147 } else {
1148 if(cltype25 >= var_pclasskindnode5->type->table_size) {
1149 var24 = 0;
1150 } else {
1151 var24 = var_pclasskindnode5->type->type_table[cltype25] == idtype26;
1152 }
1153 }
1154 if (!var24) {
1155 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14927);
1156 exit(1);
1157 }
1158 var_tclassidnode6 = var_nodearraylist7;
1159 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
1160 cltype28 = type_nullable_parser_nodes__TClassid.color;
1161 idtype29 = type_nullable_parser_nodes__TClassid.id;
1162 if(var_tclassidnode6 == NULL) {
1163 var27 = 1;
1164 } else {
1165 if(cltype28 >= var_tclassidnode6->type->table_size) {
1166 var27 = 0;
1167 } else {
1168 var27 = var_tclassidnode6->type->type_table[cltype28] == idtype29;
1169 }
1170 }
1171 if (!var27) {
1172 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14929);
1173 exit(1);
1174 }
1175 var30 = NEW_array__Array(&type_array__Arraykernel__Object);
1176 ((void (*)(val*))(var30->class->vft[COLOR_array__Array__init]))(var30) /* init on <var30:Array[Object]>*/;
1177 CHECK_NEW_array__Array(var30);
1178 var_listnode12 = var30;
1179 var_listnode11 = var_nodearraylist8;
1180 /* <var_listnode11:nullable Object> isa Array[Object] */
1181 cltype32 = type_array__Arraykernel__Object.color;
1182 idtype33 = type_array__Arraykernel__Object.id;
1183 if(var_listnode11 == NULL) {
1184 var31 = 0;
1185 } else {
1186 if(cltype32 >= var_listnode11->type->table_size) {
1187 var31 = 0;
1188 } else {
1189 var31 = var_listnode11->type->type_table[cltype32] == idtype33;
1190 }
1191 }
1192 if (!var31) {
1193 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14932);
1194 exit(1);
1195 }
1196 var34 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction318>*/;
1197 var_listnode12 = var34;
1198 var35 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations);
1199 var36 = NULL;
1200 var37 = NULL;
1201 var38 = NULL;
1202 ((void (*)(val*, val*, val*, val*, val*))(var35->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var35, var36, var37, var_listnode12, var38) /* init_aannotations on <var35:AAnnotations>*/;
1203 CHECK_NEW_parser_nodes__AAnnotations(var35);
1204 var_pannotationsnode8 = var35;
1205 var_pexterncodeblocknode14 = var_nodearraylist9;
1206 /* <var_pexterncodeblocknode14:nullable Object> isa nullable AExternCodeBlock */
1207 cltype40 = type_nullable_parser_nodes__AExternCodeBlock.color;
1208 idtype41 = type_nullable_parser_nodes__AExternCodeBlock.id;
1209 if(var_pexterncodeblocknode14 == NULL) {
1210 var39 = 1;
1211 } else {
1212 if(cltype40 >= var_pexterncodeblocknode14->type->table_size) {
1213 var39 = 0;
1214 } else {
1215 var39 = var_pexterncodeblocknode14->type->type_table[cltype40] == idtype41;
1216 }
1217 }
1218 if (!var39) {
1219 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14941);
1220 exit(1);
1221 }
1222 var_listnode15 = var_nodearraylist10;
1223 /* <var_listnode15:nullable Object> isa Array[Object] */
1224 cltype43 = type_array__Arraykernel__Object.color;
1225 idtype44 = type_array__Arraykernel__Object.id;
1226 if(var_listnode15 == NULL) {
1227 var42 = 0;
1228 } else {
1229 if(cltype43 >= var_listnode15->type->table_size) {
1230 var42 = 0;
1231 } else {
1232 var42 = var_listnode15->type->type_table[cltype43] == idtype44;
1233 }
1234 }
1235 if (!var42) {
1236 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14943);
1237 exit(1);
1238 }
1239 var45 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode16, var_listnode15) /* concat on <self:ReduceAction318>*/;
1240 var_listnode16 = var45;
1241 var_listnode17 = var_nodearraylist11;
1242 /* <var_listnode17:nullable Object> isa Array[Object] */
1243 cltype47 = type_array__Arraykernel__Object.color;
1244 idtype48 = type_array__Arraykernel__Object.id;
1245 if(var_listnode17 == NULL) {
1246 var46 = 0;
1247 } else {
1248 if(cltype47 >= var_listnode17->type->table_size) {
1249 var46 = 0;
1250 } else {
1251 var46 = var_listnode17->type->type_table[cltype47] == idtype48;
1252 }
1253 }
1254 if (!var46) {
1255 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14946);
1256 exit(1);
1257 }
1258 var49 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode18, var_listnode17) /* concat on <self:ReduceAction318>*/;
1259 var_listnode18 = var49;
1260 var_tkwendnode19 = var_nodearraylist13;
1261 /* <var_tkwendnode19:nullable Object> isa nullable TKwend */
1262 cltype51 = type_nullable_parser_nodes__TKwend.color;
1263 idtype52 = type_nullable_parser_nodes__TKwend.id;
1264 if(var_tkwendnode19 == NULL) {
1265 var50 = 1;
1266 } else {
1267 if(cltype51 >= var_tkwendnode19->type->table_size) {
1268 var50 = 0;
1269 } else {
1270 var50 = var_tkwendnode19->type->type_table[cltype51] == idtype52;
1271 }
1272 }
1273 if (!var50) {
1274 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14949);
1275 exit(1);
1276 }
1277 var53 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
1278 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var53->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var53, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var_pannotationsnode8, var_pexterncodeblocknode14, var_listnode16, var_listnode18, var_tkwendnode19) /* init_astdclassdef on <var53:AStdClassdef>*/;
1279 CHECK_NEW_parser_nodes__AStdClassdef(var53);
1280 var_pclassdefnode1 = var53;
1281 var_node_list = var_pclassdefnode1;
1282 var54 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction318> */
1283 var55 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var54) /* go_to on <var_p:Parser>*/;
1284 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var55, var_node_list) /* push on <var_p:Parser>*/;
1285 RET_LABEL:;
1286 }
1287 /* method parser#ReduceAction318#action for (self: Object, Parser) */
1288 void VIRTUAL_parser__ReduceAction318__action(val* self, val* p0) {
1289 parser__ReduceAction318__action(self, p0);
1290 RET_LABEL:;
1291 }
1292 /* method parser#ReduceAction319#action for (self: ReduceAction319, Parser) */
1293 void parser__ReduceAction319__action(val* self, val* p0) {
1294 val* var_p /* var p: Parser */;
1295 val* var /* : null */;
1296 val* var_node_list /* var node_list: nullable Object */;
1297 val* var1 /* : nullable Object */;
1298 val* var_nodearraylist14 /* var nodearraylist14: nullable Object */;
1299 val* var2 /* : nullable Object */;
1300 val* var_nodearraylist13 /* var nodearraylist13: nullable Object */;
1301 val* var3 /* : nullable Object */;
1302 val* var_nodearraylist12 /* var nodearraylist12: nullable Object */;
1303 val* var4 /* : nullable Object */;
1304 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
1305 val* var5 /* : nullable Object */;
1306 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
1307 val* var6 /* : nullable Object */;
1308 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
1309 val* var7 /* : nullable Object */;
1310 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
1311 val* var8 /* : nullable Object */;
1312 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
1313 val* var9 /* : nullable Object */;
1314 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
1315 val* var10 /* : nullable Object */;
1316 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1317 val* var11 /* : nullable Object */;
1318 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1319 val* var12 /* : nullable Object */;
1320 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1321 val* var13 /* : nullable Object */;
1322 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1323 val* var14 /* : nullable Object */;
1324 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1325 val* var15 /* : Array[Object] */;
1326 val* var_listnode7 /* var listnode7: Array[Object] */;
1327 val* var16 /* : Array[Object] */;
1328 val* var_listnode16 /* var listnode16: Array[Object] */;
1329 val* var17 /* : Array[Object] */;
1330 val* var_listnode18 /* var listnode18: Array[Object] */;
1331 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
1332 short int var18 /* : Bool */;
1333 int cltype;
1334 int idtype;
1335 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
1336 short int var19 /* : Bool */;
1337 int cltype20;
1338 int idtype21;
1339 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
1340 short int var22 /* : Bool */;
1341 int cltype23;
1342 int idtype24;
1343 val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */;
1344 short int var25 /* : Bool */;
1345 int cltype26;
1346 int idtype27;
1347 val* var_tclassidnode6 /* var tclassidnode6: nullable Object */;
1348 short int var28 /* : Bool */;
1349 int cltype29;
1350 int idtype30;
1351 val* var31 /* : Array[Object] */;
1352 val* var_listnode12 /* var listnode12: Array[Object] */;
1353 val* var_listnode11 /* var listnode11: nullable Object */;
1354 short int var32 /* : Bool */;
1355 int cltype33;
1356 int idtype34;
1357 val* var35 /* : Array[Object] */;
1358 val* var36 /* : AAnnotations */;
1359 val* var37 /* : null */;
1360 val* var38 /* : null */;
1361 val* var39 /* : null */;
1362 val* var_pannotationsnode8 /* var pannotationsnode8: nullable AAnnotations */;
1363 val* var_pexterncodeblocknode14 /* var pexterncodeblocknode14: nullable Object */;
1364 short int var40 /* : Bool */;
1365 int cltype41;
1366 int idtype42;
1367 val* var_listnode15 /* var listnode15: nullable Object */;
1368 short int var43 /* : Bool */;
1369 int cltype44;
1370 int idtype45;
1371 val* var46 /* : Array[Object] */;
1372 val* var_listnode17 /* var listnode17: nullable Object */;
1373 short int var47 /* : Bool */;
1374 int cltype48;
1375 int idtype49;
1376 val* var50 /* : Array[Object] */;
1377 val* var_tkwendnode19 /* var tkwendnode19: nullable Object */;
1378 short int var51 /* : Bool */;
1379 int cltype52;
1380 int idtype53;
1381 val* var54 /* : AStdClassdef */;
1382 val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */;
1383 long var55 /* : Int */;
1384 long var56 /* : Int */;
1385 var_p = p0;
1386 var = NULL;
1387 var_node_list = var;
1388 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1389 var_nodearraylist14 = var1;
1390 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1391 var_nodearraylist13 = var2;
1392 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1393 var_nodearraylist12 = var3;
1394 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1395 var_nodearraylist11 = var4;
1396 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1397 var_nodearraylist10 = var5;
1398 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1399 var_nodearraylist9 = var6;
1400 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1401 var_nodearraylist8 = var7;
1402 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1403 var_nodearraylist7 = var8;
1404 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1405 var_nodearraylist6 = var9;
1406 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1407 var_nodearraylist5 = var10;
1408 var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1409 var_nodearraylist4 = var11;
1410 var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1411 var_nodearraylist3 = var12;
1412 var13 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1413 var_nodearraylist2 = var13;
1414 var14 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1415 var_nodearraylist1 = var14;
1416 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
1417 ((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
1418 CHECK_NEW_array__Array(var15);
1419 var_listnode7 = var15;
1420 var16 = NEW_array__Array(&type_array__Arraykernel__Object);
1421 ((void (*)(val*))(var16->class->vft[COLOR_array__Array__init]))(var16) /* init on <var16:Array[Object]>*/;
1422 CHECK_NEW_array__Array(var16);
1423 var_listnode16 = var16;
1424 var17 = NEW_array__Array(&type_array__Arraykernel__Object);
1425 ((void (*)(val*))(var17->class->vft[COLOR_array__Array__init]))(var17) /* init on <var17:Array[Object]>*/;
1426 CHECK_NEW_array__Array(var17);
1427 var_listnode18 = var17;
1428 var_pdocnode2 = var_nodearraylist1;
1429 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
1430 cltype = type_nullable_parser_nodes__ADoc.color;
1431 idtype = type_nullable_parser_nodes__ADoc.id;
1432 if(var_pdocnode2 == NULL) {
1433 var18 = 1;
1434 } else {
1435 if(cltype >= var_pdocnode2->type->table_size) {
1436 var18 = 0;
1437 } else {
1438 var18 = var_pdocnode2->type->type_table[cltype] == idtype;
1439 }
1440 }
1441 if (!var18) {
1442 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14990);
1443 exit(1);
1444 }
1445 var_tkwredefnode3 = var_nodearraylist2;
1446 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
1447 cltype20 = type_nullable_parser_nodes__TKwredef.color;
1448 idtype21 = type_nullable_parser_nodes__TKwredef.id;
1449 if(var_tkwredefnode3 == NULL) {
1450 var19 = 1;
1451 } else {
1452 if(cltype20 >= var_tkwredefnode3->type->table_size) {
1453 var19 = 0;
1454 } else {
1455 var19 = var_tkwredefnode3->type->type_table[cltype20] == idtype21;
1456 }
1457 }
1458 if (!var19) {
1459 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14992);
1460 exit(1);
1461 }
1462 var_pvisibilitynode4 = var_nodearraylist3;
1463 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
1464 cltype23 = type_nullable_parser_nodes__AVisibility.color;
1465 idtype24 = type_nullable_parser_nodes__AVisibility.id;
1466 if(var_pvisibilitynode4 == NULL) {
1467 var22 = 1;
1468 } else {
1469 if(cltype23 >= var_pvisibilitynode4->type->table_size) {
1470 var22 = 0;
1471 } else {
1472 var22 = var_pvisibilitynode4->type->type_table[cltype23] == idtype24;
1473 }
1474 }
1475 if (!var22) {
1476 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14994);
1477 exit(1);
1478 }
1479 var_pclasskindnode5 = var_nodearraylist4;
1480 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
1481 cltype26 = type_nullable_parser_nodes__AClasskind.color;
1482 idtype27 = type_nullable_parser_nodes__AClasskind.id;
1483 if(var_pclasskindnode5 == NULL) {
1484 var25 = 1;
1485 } else {
1486 if(cltype26 >= var_pclasskindnode5->type->table_size) {
1487 var25 = 0;
1488 } else {
1489 var25 = var_pclasskindnode5->type->type_table[cltype26] == idtype27;
1490 }
1491 }
1492 if (!var25) {
1493 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14996);
1494 exit(1);
1495 }
1496 var_tclassidnode6 = var_nodearraylist8;
1497 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
1498 cltype29 = type_nullable_parser_nodes__TClassid.color;
1499 idtype30 = type_nullable_parser_nodes__TClassid.id;
1500 if(var_tclassidnode6 == NULL) {
1501 var28 = 1;
1502 } else {
1503 if(cltype29 >= var_tclassidnode6->type->table_size) {
1504 var28 = 0;
1505 } else {
1506 var28 = var_tclassidnode6->type->type_table[cltype29] == idtype30;
1507 }
1508 }
1509 if (!var28) {
1510 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 14998);
1511 exit(1);
1512 }
1513 var31 = NEW_array__Array(&type_array__Arraykernel__Object);
1514 ((void (*)(val*))(var31->class->vft[COLOR_array__Array__init]))(var31) /* init on <var31:Array[Object]>*/;
1515 CHECK_NEW_array__Array(var31);
1516 var_listnode12 = var31;
1517 var_listnode11 = var_nodearraylist9;
1518 /* <var_listnode11:nullable Object> isa Array[Object] */
1519 cltype33 = type_array__Arraykernel__Object.color;
1520 idtype34 = type_array__Arraykernel__Object.id;
1521 if(var_listnode11 == NULL) {
1522 var32 = 0;
1523 } else {
1524 if(cltype33 >= var_listnode11->type->table_size) {
1525 var32 = 0;
1526 } else {
1527 var32 = var_listnode11->type->type_table[cltype33] == idtype34;
1528 }
1529 }
1530 if (!var32) {
1531 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15001);
1532 exit(1);
1533 }
1534 var35 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode12, var_listnode11) /* concat on <self:ReduceAction319>*/;
1535 var_listnode12 = var35;
1536 var36 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations);
1537 var37 = NULL;
1538 var38 = NULL;
1539 var39 = NULL;
1540 ((void (*)(val*, val*, val*, val*, val*))(var36->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var36, var37, var38, var_listnode12, var39) /* init_aannotations on <var36:AAnnotations>*/;
1541 CHECK_NEW_parser_nodes__AAnnotations(var36);
1542 var_pannotationsnode8 = var36;
1543 var_pexterncodeblocknode14 = var_nodearraylist10;
1544 /* <var_pexterncodeblocknode14:nullable Object> isa nullable AExternCodeBlock */
1545 cltype41 = type_nullable_parser_nodes__AExternCodeBlock.color;
1546 idtype42 = type_nullable_parser_nodes__AExternCodeBlock.id;
1547 if(var_pexterncodeblocknode14 == NULL) {
1548 var40 = 1;
1549 } else {
1550 if(cltype41 >= var_pexterncodeblocknode14->type->table_size) {
1551 var40 = 0;
1552 } else {
1553 var40 = var_pexterncodeblocknode14->type->type_table[cltype41] == idtype42;
1554 }
1555 }
1556 if (!var40) {
1557 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15010);
1558 exit(1);
1559 }
1560 var_listnode15 = var_nodearraylist11;
1561 /* <var_listnode15:nullable Object> isa Array[Object] */
1562 cltype44 = type_array__Arraykernel__Object.color;
1563 idtype45 = type_array__Arraykernel__Object.id;
1564 if(var_listnode15 == NULL) {
1565 var43 = 0;
1566 } else {
1567 if(cltype44 >= var_listnode15->type->table_size) {
1568 var43 = 0;
1569 } else {
1570 var43 = var_listnode15->type->type_table[cltype44] == idtype45;
1571 }
1572 }
1573 if (!var43) {
1574 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15012);
1575 exit(1);
1576 }
1577 var46 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode16, var_listnode15) /* concat on <self:ReduceAction319>*/;
1578 var_listnode16 = var46;
1579 var_listnode17 = var_nodearraylist12;
1580 /* <var_listnode17:nullable Object> isa Array[Object] */
1581 cltype48 = type_array__Arraykernel__Object.color;
1582 idtype49 = type_array__Arraykernel__Object.id;
1583 if(var_listnode17 == NULL) {
1584 var47 = 0;
1585 } else {
1586 if(cltype48 >= var_listnode17->type->table_size) {
1587 var47 = 0;
1588 } else {
1589 var47 = var_listnode17->type->type_table[cltype48] == idtype49;
1590 }
1591 }
1592 if (!var47) {
1593 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15015);
1594 exit(1);
1595 }
1596 var50 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode18, var_listnode17) /* concat on <self:ReduceAction319>*/;
1597 var_listnode18 = var50;
1598 var_tkwendnode19 = var_nodearraylist14;
1599 /* <var_tkwendnode19:nullable Object> isa nullable TKwend */
1600 cltype52 = type_nullable_parser_nodes__TKwend.color;
1601 idtype53 = type_nullable_parser_nodes__TKwend.id;
1602 if(var_tkwendnode19 == NULL) {
1603 var51 = 1;
1604 } else {
1605 if(cltype52 >= var_tkwendnode19->type->table_size) {
1606 var51 = 0;
1607 } else {
1608 var51 = var_tkwendnode19->type->type_table[cltype52] == idtype53;
1609 }
1610 }
1611 if (!var51) {
1612 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15018);
1613 exit(1);
1614 }
1615 var54 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
1616 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var54->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var54, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode7, var_pannotationsnode8, var_pexterncodeblocknode14, var_listnode16, var_listnode18, var_tkwendnode19) /* init_astdclassdef on <var54:AStdClassdef>*/;
1617 CHECK_NEW_parser_nodes__AStdClassdef(var54);
1618 var_pclassdefnode1 = var54;
1619 var_node_list = var_pclassdefnode1;
1620 var55 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction319> */
1621 var56 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var55) /* go_to on <var_p:Parser>*/;
1622 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var56, var_node_list) /* push on <var_p:Parser>*/;
1623 RET_LABEL:;
1624 }
1625 /* method parser#ReduceAction319#action for (self: Object, Parser) */
1626 void VIRTUAL_parser__ReduceAction319__action(val* self, val* p0) {
1627 parser__ReduceAction319__action(self, p0);
1628 RET_LABEL:;
1629 }
1630 /* method parser#ReduceAction321#action for (self: ReduceAction321, Parser) */
1631 void parser__ReduceAction321__action(val* self, val* p0) {
1632 val* var_p /* var p: Parser */;
1633 val* var /* : null */;
1634 val* var_node_list /* var node_list: nullable Object */;
1635 val* var1 /* : nullable Object */;
1636 val* var_nodearraylist12 /* var nodearraylist12: nullable Object */;
1637 val* var2 /* : nullable Object */;
1638 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
1639 val* var3 /* : nullable Object */;
1640 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
1641 val* var4 /* : nullable Object */;
1642 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
1643 val* var5 /* : nullable Object */;
1644 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
1645 val* var6 /* : nullable Object */;
1646 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
1647 val* var7 /* : nullable Object */;
1648 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
1649 val* var8 /* : nullable Object */;
1650 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1651 val* var9 /* : nullable Object */;
1652 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1653 val* var10 /* : nullable Object */;
1654 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1655 val* var11 /* : nullable Object */;
1656 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1657 val* var12 /* : nullable Object */;
1658 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1659 val* var13 /* : Array[Object] */;
1660 val* var_listnode8 /* var listnode8: Array[Object] */;
1661 val* var14 /* : Array[Object] */;
1662 val* var_listnode17 /* var listnode17: Array[Object] */;
1663 val* var15 /* : Array[Object] */;
1664 val* var_listnode19 /* var listnode19: Array[Object] */;
1665 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
1666 short int var16 /* : Bool */;
1667 int cltype;
1668 int idtype;
1669 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
1670 short int var17 /* : Bool */;
1671 int cltype18;
1672 int idtype19;
1673 val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */;
1674 short int var20 /* : Bool */;
1675 int cltype21;
1676 int idtype22;
1677 val* var_tclassidnode6 /* var tclassidnode6: nullable Object */;
1678 short int var23 /* : Bool */;
1679 int cltype24;
1680 int idtype25;
1681 val* var_listnode7 /* var listnode7: nullable Object */;
1682 short int var26 /* : Bool */;
1683 int cltype27;
1684 int idtype28;
1685 val* var29 /* : Array[Object] */;
1686 val* var30 /* : Array[Object] */;
1687 val* var_listnode13 /* var listnode13: Array[Object] */;
1688 val* var_listnode12 /* var listnode12: nullable Object */;
1689 short int var31 /* : Bool */;
1690 int cltype32;
1691 int idtype33;
1692 val* var34 /* : Array[Object] */;
1693 val* var35 /* : AAnnotations */;
1694 val* var36 /* : null */;
1695 val* var37 /* : null */;
1696 val* var38 /* : null */;
1697 val* var_pannotationsnode9 /* var pannotationsnode9: nullable AAnnotations */;
1698 val* var_pexterncodeblocknode15 /* var pexterncodeblocknode15: nullable Object */;
1699 short int var39 /* : Bool */;
1700 int cltype40;
1701 int idtype41;
1702 val* var_listnode16 /* var listnode16: nullable Object */;
1703 short int var42 /* : Bool */;
1704 int cltype43;
1705 int idtype44;
1706 val* var45 /* : Array[Object] */;
1707 val* var_listnode18 /* var listnode18: nullable Object */;
1708 short int var46 /* : Bool */;
1709 int cltype47;
1710 int idtype48;
1711 val* var49 /* : Array[Object] */;
1712 val* var_tkwendnode20 /* var tkwendnode20: nullable Object */;
1713 short int var50 /* : Bool */;
1714 int cltype51;
1715 int idtype52;
1716 val* var53 /* : AStdClassdef */;
1717 val* var54 /* : null */;
1718 val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */;
1719 long var55 /* : Int */;
1720 long var56 /* : Int */;
1721 var_p = p0;
1722 var = NULL;
1723 var_node_list = var;
1724 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1725 var_nodearraylist12 = var1;
1726 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1727 var_nodearraylist11 = var2;
1728 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1729 var_nodearraylist10 = var3;
1730 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1731 var_nodearraylist9 = var4;
1732 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1733 var_nodearraylist8 = var5;
1734 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1735 var_nodearraylist7 = var6;
1736 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1737 var_nodearraylist6 = var7;
1738 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1739 var_nodearraylist5 = var8;
1740 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1741 var_nodearraylist4 = var9;
1742 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1743 var_nodearraylist3 = var10;
1744 var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1745 var_nodearraylist2 = var11;
1746 var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1747 var_nodearraylist1 = var12;
1748 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
1749 ((void (*)(val*))(var13->class->vft[COLOR_array__Array__init]))(var13) /* init on <var13:Array[Object]>*/;
1750 CHECK_NEW_array__Array(var13);
1751 var_listnode8 = var13;
1752 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
1753 ((void (*)(val*))(var14->class->vft[COLOR_array__Array__init]))(var14) /* init on <var14:Array[Object]>*/;
1754 CHECK_NEW_array__Array(var14);
1755 var_listnode17 = var14;
1756 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
1757 ((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
1758 CHECK_NEW_array__Array(var15);
1759 var_listnode19 = var15;
1760 var_pdocnode2 = var_nodearraylist1;
1761 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
1762 cltype = type_nullable_parser_nodes__ADoc.color;
1763 idtype = type_nullable_parser_nodes__ADoc.id;
1764 if(var_pdocnode2 == NULL) {
1765 var16 = 1;
1766 } else {
1767 if(cltype >= var_pdocnode2->type->table_size) {
1768 var16 = 0;
1769 } else {
1770 var16 = var_pdocnode2->type->type_table[cltype] == idtype;
1771 }
1772 }
1773 if (!var16) {
1774 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15057);
1775 exit(1);
1776 }
1777 var_pvisibilitynode4 = var_nodearraylist2;
1778 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
1779 cltype18 = type_nullable_parser_nodes__AVisibility.color;
1780 idtype19 = type_nullable_parser_nodes__AVisibility.id;
1781 if(var_pvisibilitynode4 == NULL) {
1782 var17 = 1;
1783 } else {
1784 if(cltype18 >= var_pvisibilitynode4->type->table_size) {
1785 var17 = 0;
1786 } else {
1787 var17 = var_pvisibilitynode4->type->type_table[cltype18] == idtype19;
1788 }
1789 }
1790 if (!var17) {
1791 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15059);
1792 exit(1);
1793 }
1794 var_pclasskindnode5 = var_nodearraylist3;
1795 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
1796 cltype21 = type_nullable_parser_nodes__AClasskind.color;
1797 idtype22 = type_nullable_parser_nodes__AClasskind.id;
1798 if(var_pclasskindnode5 == NULL) {
1799 var20 = 1;
1800 } else {
1801 if(cltype21 >= var_pclasskindnode5->type->table_size) {
1802 var20 = 0;
1803 } else {
1804 var20 = var_pclasskindnode5->type->type_table[cltype21] == idtype22;
1805 }
1806 }
1807 if (!var20) {
1808 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15061);
1809 exit(1);
1810 }
1811 var_tclassidnode6 = var_nodearraylist5;
1812 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
1813 cltype24 = type_nullable_parser_nodes__TClassid.color;
1814 idtype25 = type_nullable_parser_nodes__TClassid.id;
1815 if(var_tclassidnode6 == NULL) {
1816 var23 = 1;
1817 } else {
1818 if(cltype24 >= var_tclassidnode6->type->table_size) {
1819 var23 = 0;
1820 } else {
1821 var23 = var_tclassidnode6->type->type_table[cltype24] == idtype25;
1822 }
1823 }
1824 if (!var23) {
1825 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15063);
1826 exit(1);
1827 }
1828 var_listnode7 = var_nodearraylist6;
1829 /* <var_listnode7:nullable Object> isa Array[Object] */
1830 cltype27 = type_array__Arraykernel__Object.color;
1831 idtype28 = type_array__Arraykernel__Object.id;
1832 if(var_listnode7 == NULL) {
1833 var26 = 0;
1834 } else {
1835 if(cltype27 >= var_listnode7->type->table_size) {
1836 var26 = 0;
1837 } else {
1838 var26 = var_listnode7->type->type_table[cltype27] == idtype28;
1839 }
1840 }
1841 if (!var26) {
1842 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15065);
1843 exit(1);
1844 }
1845 var29 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction321>*/;
1846 var_listnode8 = var29;
1847 var30 = NEW_array__Array(&type_array__Arraykernel__Object);
1848 ((void (*)(val*))(var30->class->vft[COLOR_array__Array__init]))(var30) /* init on <var30:Array[Object]>*/;
1849 CHECK_NEW_array__Array(var30);
1850 var_listnode13 = var30;
1851 var_listnode12 = var_nodearraylist7;
1852 /* <var_listnode12:nullable Object> isa Array[Object] */
1853 cltype32 = type_array__Arraykernel__Object.color;
1854 idtype33 = type_array__Arraykernel__Object.id;
1855 if(var_listnode12 == NULL) {
1856 var31 = 0;
1857 } else {
1858 if(cltype32 >= var_listnode12->type->table_size) {
1859 var31 = 0;
1860 } else {
1861 var31 = var_listnode12->type->type_table[cltype32] == idtype33;
1862 }
1863 }
1864 if (!var31) {
1865 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15069);
1866 exit(1);
1867 }
1868 var34 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on <self:ReduceAction321>*/;
1869 var_listnode13 = var34;
1870 var35 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations);
1871 var36 = NULL;
1872 var37 = NULL;
1873 var38 = NULL;
1874 ((void (*)(val*, val*, val*, val*, val*))(var35->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var35, var36, var37, var_listnode13, var38) /* init_aannotations on <var35:AAnnotations>*/;
1875 CHECK_NEW_parser_nodes__AAnnotations(var35);
1876 var_pannotationsnode9 = var35;
1877 var_pexterncodeblocknode15 = var_nodearraylist8;
1878 /* <var_pexterncodeblocknode15:nullable Object> isa nullable AExternCodeBlock */
1879 cltype40 = type_nullable_parser_nodes__AExternCodeBlock.color;
1880 idtype41 = type_nullable_parser_nodes__AExternCodeBlock.id;
1881 if(var_pexterncodeblocknode15 == NULL) {
1882 var39 = 1;
1883 } else {
1884 if(cltype40 >= var_pexterncodeblocknode15->type->table_size) {
1885 var39 = 0;
1886 } else {
1887 var39 = var_pexterncodeblocknode15->type->type_table[cltype40] == idtype41;
1888 }
1889 }
1890 if (!var39) {
1891 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15078);
1892 exit(1);
1893 }
1894 var_listnode16 = var_nodearraylist9;
1895 /* <var_listnode16:nullable Object> isa Array[Object] */
1896 cltype43 = type_array__Arraykernel__Object.color;
1897 idtype44 = type_array__Arraykernel__Object.id;
1898 if(var_listnode16 == NULL) {
1899 var42 = 0;
1900 } else {
1901 if(cltype43 >= var_listnode16->type->table_size) {
1902 var42 = 0;
1903 } else {
1904 var42 = var_listnode16->type->type_table[cltype43] == idtype44;
1905 }
1906 }
1907 if (!var42) {
1908 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15080);
1909 exit(1);
1910 }
1911 var45 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode17, var_listnode16) /* concat on <self:ReduceAction321>*/;
1912 var_listnode17 = var45;
1913 var_listnode18 = var_nodearraylist10;
1914 /* <var_listnode18:nullable Object> isa Array[Object] */
1915 cltype47 = type_array__Arraykernel__Object.color;
1916 idtype48 = type_array__Arraykernel__Object.id;
1917 if(var_listnode18 == NULL) {
1918 var46 = 0;
1919 } else {
1920 if(cltype47 >= var_listnode18->type->table_size) {
1921 var46 = 0;
1922 } else {
1923 var46 = var_listnode18->type->type_table[cltype47] == idtype48;
1924 }
1925 }
1926 if (!var46) {
1927 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15083);
1928 exit(1);
1929 }
1930 var49 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode19, var_listnode18) /* concat on <self:ReduceAction321>*/;
1931 var_listnode19 = var49;
1932 var_tkwendnode20 = var_nodearraylist12;
1933 /* <var_tkwendnode20:nullable Object> isa nullable TKwend */
1934 cltype51 = type_nullable_parser_nodes__TKwend.color;
1935 idtype52 = type_nullable_parser_nodes__TKwend.id;
1936 if(var_tkwendnode20 == NULL) {
1937 var50 = 1;
1938 } else {
1939 if(cltype51 >= var_tkwendnode20->type->table_size) {
1940 var50 = 0;
1941 } else {
1942 var50 = var_tkwendnode20->type->type_table[cltype51] == idtype52;
1943 }
1944 }
1945 if (!var50) {
1946 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15086);
1947 exit(1);
1948 }
1949 var53 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
1950 var54 = NULL;
1951 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var53->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var53, var_pdocnode2, var54, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var_pannotationsnode9, var_pexterncodeblocknode15, var_listnode17, var_listnode19, var_tkwendnode20) /* init_astdclassdef on <var53:AStdClassdef>*/;
1952 CHECK_NEW_parser_nodes__AStdClassdef(var53);
1953 var_pclassdefnode1 = var53;
1954 var_node_list = var_pclassdefnode1;
1955 var55 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction321> */
1956 var56 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var55) /* go_to on <var_p:Parser>*/;
1957 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var56, var_node_list) /* push on <var_p:Parser>*/;
1958 RET_LABEL:;
1959 }
1960 /* method parser#ReduceAction321#action for (self: Object, Parser) */
1961 void VIRTUAL_parser__ReduceAction321__action(val* self, val* p0) {
1962 parser__ReduceAction321__action(self, p0);
1963 RET_LABEL:;
1964 }
1965 /* method parser#ReduceAction322#action for (self: ReduceAction322, Parser) */
1966 void parser__ReduceAction322__action(val* self, val* p0) {
1967 val* var_p /* var p: Parser */;
1968 val* var /* : null */;
1969 val* var_node_list /* var node_list: nullable Object */;
1970 val* var1 /* : nullable Object */;
1971 val* var_nodearraylist13 /* var nodearraylist13: nullable Object */;
1972 val* var2 /* : nullable Object */;
1973 val* var_nodearraylist12 /* var nodearraylist12: nullable Object */;
1974 val* var3 /* : nullable Object */;
1975 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
1976 val* var4 /* : nullable Object */;
1977 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
1978 val* var5 /* : nullable Object */;
1979 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
1980 val* var6 /* : nullable Object */;
1981 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
1982 val* var7 /* : nullable Object */;
1983 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
1984 val* var8 /* : nullable Object */;
1985 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
1986 val* var9 /* : nullable Object */;
1987 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1988 val* var10 /* : nullable Object */;
1989 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1990 val* var11 /* : nullable Object */;
1991 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1992 val* var12 /* : nullable Object */;
1993 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1994 val* var13 /* : nullable Object */;
1995 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1996 val* var14 /* : Array[Object] */;
1997 val* var_listnode8 /* var listnode8: Array[Object] */;
1998 val* var15 /* : Array[Object] */;
1999 val* var_listnode17 /* var listnode17: Array[Object] */;
2000 val* var16 /* : Array[Object] */;
2001 val* var_listnode19 /* var listnode19: Array[Object] */;
2002 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
2003 short int var17 /* : Bool */;
2004 int cltype;
2005 int idtype;
2006 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
2007 short int var18 /* : Bool */;
2008 int cltype19;
2009 int idtype20;
2010 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
2011 short int var21 /* : Bool */;
2012 int cltype22;
2013 int idtype23;
2014 val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */;
2015 short int var24 /* : Bool */;
2016 int cltype25;
2017 int idtype26;
2018 val* var_tclassidnode6 /* var tclassidnode6: nullable Object */;
2019 short int var27 /* : Bool */;
2020 int cltype28;
2021 int idtype29;
2022 val* var_listnode7 /* var listnode7: nullable Object */;
2023 short int var30 /* : Bool */;
2024 int cltype31;
2025 int idtype32;
2026 val* var33 /* : Array[Object] */;
2027 val* var34 /* : Array[Object] */;
2028 val* var_listnode13 /* var listnode13: Array[Object] */;
2029 val* var_listnode12 /* var listnode12: nullable Object */;
2030 short int var35 /* : Bool */;
2031 int cltype36;
2032 int idtype37;
2033 val* var38 /* : Array[Object] */;
2034 val* var39 /* : AAnnotations */;
2035 val* var40 /* : null */;
2036 val* var41 /* : null */;
2037 val* var42 /* : null */;
2038 val* var_pannotationsnode9 /* var pannotationsnode9: nullable AAnnotations */;
2039 val* var_pexterncodeblocknode15 /* var pexterncodeblocknode15: nullable Object */;
2040 short int var43 /* : Bool */;
2041 int cltype44;
2042 int idtype45;
2043 val* var_listnode16 /* var listnode16: nullable Object */;
2044 short int var46 /* : Bool */;
2045 int cltype47;
2046 int idtype48;
2047 val* var49 /* : Array[Object] */;
2048 val* var_listnode18 /* var listnode18: nullable Object */;
2049 short int var50 /* : Bool */;
2050 int cltype51;
2051 int idtype52;
2052 val* var53 /* : Array[Object] */;
2053 val* var_tkwendnode20 /* var tkwendnode20: nullable Object */;
2054 short int var54 /* : Bool */;
2055 int cltype55;
2056 int idtype56;
2057 val* var57 /* : AStdClassdef */;
2058 val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */;
2059 long var58 /* : Int */;
2060 long var59 /* : Int */;
2061 var_p = p0;
2062 var = NULL;
2063 var_node_list = var;
2064 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2065 var_nodearraylist13 = var1;
2066 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2067 var_nodearraylist12 = var2;
2068 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2069 var_nodearraylist11 = var3;
2070 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2071 var_nodearraylist10 = var4;
2072 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2073 var_nodearraylist9 = var5;
2074 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2075 var_nodearraylist8 = var6;
2076 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2077 var_nodearraylist7 = var7;
2078 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2079 var_nodearraylist6 = var8;
2080 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2081 var_nodearraylist5 = var9;
2082 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2083 var_nodearraylist4 = var10;
2084 var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2085 var_nodearraylist3 = var11;
2086 var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2087 var_nodearraylist2 = var12;
2088 var13 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2089 var_nodearraylist1 = var13;
2090 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
2091 ((void (*)(val*))(var14->class->vft[COLOR_array__Array__init]))(var14) /* init on <var14:Array[Object]>*/;
2092 CHECK_NEW_array__Array(var14);
2093 var_listnode8 = var14;
2094 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
2095 ((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
2096 CHECK_NEW_array__Array(var15);
2097 var_listnode17 = var15;
2098 var16 = NEW_array__Array(&type_array__Arraykernel__Object);
2099 ((void (*)(val*))(var16->class->vft[COLOR_array__Array__init]))(var16) /* init on <var16:Array[Object]>*/;
2100 CHECK_NEW_array__Array(var16);
2101 var_listnode19 = var16;
2102 var_pdocnode2 = var_nodearraylist1;
2103 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
2104 cltype = type_nullable_parser_nodes__ADoc.color;
2105 idtype = type_nullable_parser_nodes__ADoc.id;
2106 if(var_pdocnode2 == NULL) {
2107 var17 = 1;
2108 } else {
2109 if(cltype >= var_pdocnode2->type->table_size) {
2110 var17 = 0;
2111 } else {
2112 var17 = var_pdocnode2->type->type_table[cltype] == idtype;
2113 }
2114 }
2115 if (!var17) {
2116 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15126);
2117 exit(1);
2118 }
2119 var_tkwredefnode3 = var_nodearraylist2;
2120 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
2121 cltype19 = type_nullable_parser_nodes__TKwredef.color;
2122 idtype20 = type_nullable_parser_nodes__TKwredef.id;
2123 if(var_tkwredefnode3 == NULL) {
2124 var18 = 1;
2125 } else {
2126 if(cltype19 >= var_tkwredefnode3->type->table_size) {
2127 var18 = 0;
2128 } else {
2129 var18 = var_tkwredefnode3->type->type_table[cltype19] == idtype20;
2130 }
2131 }
2132 if (!var18) {
2133 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15128);
2134 exit(1);
2135 }
2136 var_pvisibilitynode4 = var_nodearraylist3;
2137 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
2138 cltype22 = type_nullable_parser_nodes__AVisibility.color;
2139 idtype23 = type_nullable_parser_nodes__AVisibility.id;
2140 if(var_pvisibilitynode4 == NULL) {
2141 var21 = 1;
2142 } else {
2143 if(cltype22 >= var_pvisibilitynode4->type->table_size) {
2144 var21 = 0;
2145 } else {
2146 var21 = var_pvisibilitynode4->type->type_table[cltype22] == idtype23;
2147 }
2148 }
2149 if (!var21) {
2150 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15130);
2151 exit(1);
2152 }
2153 var_pclasskindnode5 = var_nodearraylist4;
2154 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
2155 cltype25 = type_nullable_parser_nodes__AClasskind.color;
2156 idtype26 = type_nullable_parser_nodes__AClasskind.id;
2157 if(var_pclasskindnode5 == NULL) {
2158 var24 = 1;
2159 } else {
2160 if(cltype25 >= var_pclasskindnode5->type->table_size) {
2161 var24 = 0;
2162 } else {
2163 var24 = var_pclasskindnode5->type->type_table[cltype25] == idtype26;
2164 }
2165 }
2166 if (!var24) {
2167 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15132);
2168 exit(1);
2169 }
2170 var_tclassidnode6 = var_nodearraylist6;
2171 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
2172 cltype28 = type_nullable_parser_nodes__TClassid.color;
2173 idtype29 = type_nullable_parser_nodes__TClassid.id;
2174 if(var_tclassidnode6 == NULL) {
2175 var27 = 1;
2176 } else {
2177 if(cltype28 >= var_tclassidnode6->type->table_size) {
2178 var27 = 0;
2179 } else {
2180 var27 = var_tclassidnode6->type->type_table[cltype28] == idtype29;
2181 }
2182 }
2183 if (!var27) {
2184 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15134);
2185 exit(1);
2186 }
2187 var_listnode7 = var_nodearraylist7;
2188 /* <var_listnode7:nullable Object> isa Array[Object] */
2189 cltype31 = type_array__Arraykernel__Object.color;
2190 idtype32 = type_array__Arraykernel__Object.id;
2191 if(var_listnode7 == NULL) {
2192 var30 = 0;
2193 } else {
2194 if(cltype31 >= var_listnode7->type->table_size) {
2195 var30 = 0;
2196 } else {
2197 var30 = var_listnode7->type->type_table[cltype31] == idtype32;
2198 }
2199 }
2200 if (!var30) {
2201 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15136);
2202 exit(1);
2203 }
2204 var33 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction322>*/;
2205 var_listnode8 = var33;
2206 var34 = NEW_array__Array(&type_array__Arraykernel__Object);
2207 ((void (*)(val*))(var34->class->vft[COLOR_array__Array__init]))(var34) /* init on <var34:Array[Object]>*/;
2208 CHECK_NEW_array__Array(var34);
2209 var_listnode13 = var34;
2210 var_listnode12 = var_nodearraylist8;
2211 /* <var_listnode12:nullable Object> isa Array[Object] */
2212 cltype36 = type_array__Arraykernel__Object.color;
2213 idtype37 = type_array__Arraykernel__Object.id;
2214 if(var_listnode12 == NULL) {
2215 var35 = 0;
2216 } else {
2217 if(cltype36 >= var_listnode12->type->table_size) {
2218 var35 = 0;
2219 } else {
2220 var35 = var_listnode12->type->type_table[cltype36] == idtype37;
2221 }
2222 }
2223 if (!var35) {
2224 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15140);
2225 exit(1);
2226 }
2227 var38 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on <self:ReduceAction322>*/;
2228 var_listnode13 = var38;
2229 var39 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations);
2230 var40 = NULL;
2231 var41 = NULL;
2232 var42 = NULL;
2233 ((void (*)(val*, val*, val*, val*, val*))(var39->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var39, var40, var41, var_listnode13, var42) /* init_aannotations on <var39:AAnnotations>*/;
2234 CHECK_NEW_parser_nodes__AAnnotations(var39);
2235 var_pannotationsnode9 = var39;
2236 var_pexterncodeblocknode15 = var_nodearraylist9;
2237 /* <var_pexterncodeblocknode15:nullable Object> isa nullable AExternCodeBlock */
2238 cltype44 = type_nullable_parser_nodes__AExternCodeBlock.color;
2239 idtype45 = type_nullable_parser_nodes__AExternCodeBlock.id;
2240 if(var_pexterncodeblocknode15 == NULL) {
2241 var43 = 1;
2242 } else {
2243 if(cltype44 >= var_pexterncodeblocknode15->type->table_size) {
2244 var43 = 0;
2245 } else {
2246 var43 = var_pexterncodeblocknode15->type->type_table[cltype44] == idtype45;
2247 }
2248 }
2249 if (!var43) {
2250 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15149);
2251 exit(1);
2252 }
2253 var_listnode16 = var_nodearraylist10;
2254 /* <var_listnode16:nullable Object> isa Array[Object] */
2255 cltype47 = type_array__Arraykernel__Object.color;
2256 idtype48 = type_array__Arraykernel__Object.id;
2257 if(var_listnode16 == NULL) {
2258 var46 = 0;
2259 } else {
2260 if(cltype47 >= var_listnode16->type->table_size) {
2261 var46 = 0;
2262 } else {
2263 var46 = var_listnode16->type->type_table[cltype47] == idtype48;
2264 }
2265 }
2266 if (!var46) {
2267 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15151);
2268 exit(1);
2269 }
2270 var49 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode17, var_listnode16) /* concat on <self:ReduceAction322>*/;
2271 var_listnode17 = var49;
2272 var_listnode18 = var_nodearraylist11;
2273 /* <var_listnode18:nullable Object> isa Array[Object] */
2274 cltype51 = type_array__Arraykernel__Object.color;
2275 idtype52 = type_array__Arraykernel__Object.id;
2276 if(var_listnode18 == NULL) {
2277 var50 = 0;
2278 } else {
2279 if(cltype51 >= var_listnode18->type->table_size) {
2280 var50 = 0;
2281 } else {
2282 var50 = var_listnode18->type->type_table[cltype51] == idtype52;
2283 }
2284 }
2285 if (!var50) {
2286 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15154);
2287 exit(1);
2288 }
2289 var53 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode19, var_listnode18) /* concat on <self:ReduceAction322>*/;
2290 var_listnode19 = var53;
2291 var_tkwendnode20 = var_nodearraylist13;
2292 /* <var_tkwendnode20:nullable Object> isa nullable TKwend */
2293 cltype55 = type_nullable_parser_nodes__TKwend.color;
2294 idtype56 = type_nullable_parser_nodes__TKwend.id;
2295 if(var_tkwendnode20 == NULL) {
2296 var54 = 1;
2297 } else {
2298 if(cltype55 >= var_tkwendnode20->type->table_size) {
2299 var54 = 0;
2300 } else {
2301 var54 = var_tkwendnode20->type->type_table[cltype55] == idtype56;
2302 }
2303 }
2304 if (!var54) {
2305 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15157);
2306 exit(1);
2307 }
2308 var57 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
2309 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var57->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var57, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var_pannotationsnode9, var_pexterncodeblocknode15, var_listnode17, var_listnode19, var_tkwendnode20) /* init_astdclassdef on <var57:AStdClassdef>*/;
2310 CHECK_NEW_parser_nodes__AStdClassdef(var57);
2311 var_pclassdefnode1 = var57;
2312 var_node_list = var_pclassdefnode1;
2313 var58 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction322> */
2314 var59 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var58) /* go_to on <var_p:Parser>*/;
2315 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var59, var_node_list) /* push on <var_p:Parser>*/;
2316 RET_LABEL:;
2317 }
2318 /* method parser#ReduceAction322#action for (self: Object, Parser) */
2319 void VIRTUAL_parser__ReduceAction322__action(val* self, val* p0) {
2320 parser__ReduceAction322__action(self, p0);
2321 RET_LABEL:;
2322 }
2323 /* method parser#ReduceAction323#action for (self: ReduceAction323, Parser) */
2324 void parser__ReduceAction323__action(val* self, val* p0) {
2325 val* var_p /* var p: Parser */;
2326 val* var /* : null */;
2327 val* var_node_list /* var node_list: nullable Object */;
2328 val* var1 /* : nullable Object */;
2329 val* var_nodearraylist13 /* var nodearraylist13: nullable Object */;
2330 val* var2 /* : nullable Object */;
2331 val* var_nodearraylist12 /* var nodearraylist12: nullable Object */;
2332 val* var3 /* : nullable Object */;
2333 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
2334 val* var4 /* : nullable Object */;
2335 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
2336 val* var5 /* : nullable Object */;
2337 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
2338 val* var6 /* : nullable Object */;
2339 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
2340 val* var7 /* : nullable Object */;
2341 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
2342 val* var8 /* : nullable Object */;
2343 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
2344 val* var9 /* : nullable Object */;
2345 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2346 val* var10 /* : nullable Object */;
2347 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2348 val* var11 /* : nullable Object */;
2349 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2350 val* var12 /* : nullable Object */;
2351 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2352 val* var13 /* : nullable Object */;
2353 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2354 val* var14 /* : Array[Object] */;
2355 val* var_listnode8 /* var listnode8: Array[Object] */;
2356 val* var15 /* : Array[Object] */;
2357 val* var_listnode17 /* var listnode17: Array[Object] */;
2358 val* var16 /* : Array[Object] */;
2359 val* var_listnode19 /* var listnode19: Array[Object] */;
2360 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
2361 short int var17 /* : Bool */;
2362 int cltype;
2363 int idtype;
2364 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
2365 short int var18 /* : Bool */;
2366 int cltype19;
2367 int idtype20;
2368 val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */;
2369 short int var21 /* : Bool */;
2370 int cltype22;
2371 int idtype23;
2372 val* var_tclassidnode6 /* var tclassidnode6: nullable Object */;
2373 short int var24 /* : Bool */;
2374 int cltype25;
2375 int idtype26;
2376 val* var_listnode7 /* var listnode7: nullable Object */;
2377 short int var27 /* : Bool */;
2378 int cltype28;
2379 int idtype29;
2380 val* var30 /* : Array[Object] */;
2381 val* var31 /* : Array[Object] */;
2382 val* var_listnode13 /* var listnode13: Array[Object] */;
2383 val* var_listnode12 /* var listnode12: nullable Object */;
2384 short int var32 /* : Bool */;
2385 int cltype33;
2386 int idtype34;
2387 val* var35 /* : Array[Object] */;
2388 val* var36 /* : AAnnotations */;
2389 val* var37 /* : null */;
2390 val* var38 /* : null */;
2391 val* var39 /* : null */;
2392 val* var_pannotationsnode9 /* var pannotationsnode9: nullable AAnnotations */;
2393 val* var_pexterncodeblocknode15 /* var pexterncodeblocknode15: nullable Object */;
2394 short int var40 /* : Bool */;
2395 int cltype41;
2396 int idtype42;
2397 val* var_listnode16 /* var listnode16: nullable Object */;
2398 short int var43 /* : Bool */;
2399 int cltype44;
2400 int idtype45;
2401 val* var46 /* : Array[Object] */;
2402 val* var_listnode18 /* var listnode18: nullable Object */;
2403 short int var47 /* : Bool */;
2404 int cltype48;
2405 int idtype49;
2406 val* var50 /* : Array[Object] */;
2407 val* var_tkwendnode20 /* var tkwendnode20: nullable Object */;
2408 short int var51 /* : Bool */;
2409 int cltype52;
2410 int idtype53;
2411 val* var54 /* : AStdClassdef */;
2412 val* var55 /* : null */;
2413 val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */;
2414 long var56 /* : Int */;
2415 long var57 /* : 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_nodearraylist13 = var1;
2421 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2422 var_nodearraylist12 = var2;
2423 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2424 var_nodearraylist11 = var3;
2425 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2426 var_nodearraylist10 = var4;
2427 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2428 var_nodearraylist9 = var5;
2429 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2430 var_nodearraylist8 = var6;
2431 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2432 var_nodearraylist7 = var7;
2433 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2434 var_nodearraylist6 = var8;
2435 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2436 var_nodearraylist5 = var9;
2437 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2438 var_nodearraylist4 = var10;
2439 var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2440 var_nodearraylist3 = var11;
2441 var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2442 var_nodearraylist2 = var12;
2443 var13 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2444 var_nodearraylist1 = var13;
2445 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
2446 ((void (*)(val*))(var14->class->vft[COLOR_array__Array__init]))(var14) /* init on <var14:Array[Object]>*/;
2447 CHECK_NEW_array__Array(var14);
2448 var_listnode8 = var14;
2449 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
2450 ((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
2451 CHECK_NEW_array__Array(var15);
2452 var_listnode17 = var15;
2453 var16 = NEW_array__Array(&type_array__Arraykernel__Object);
2454 ((void (*)(val*))(var16->class->vft[COLOR_array__Array__init]))(var16) /* init on <var16:Array[Object]>*/;
2455 CHECK_NEW_array__Array(var16);
2456 var_listnode19 = var16;
2457 var_pdocnode2 = var_nodearraylist1;
2458 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
2459 cltype = type_nullable_parser_nodes__ADoc.color;
2460 idtype = type_nullable_parser_nodes__ADoc.id;
2461 if(var_pdocnode2 == NULL) {
2462 var17 = 1;
2463 } else {
2464 if(cltype >= var_pdocnode2->type->table_size) {
2465 var17 = 0;
2466 } else {
2467 var17 = var_pdocnode2->type->type_table[cltype] == idtype;
2468 }
2469 }
2470 if (!var17) {
2471 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15197);
2472 exit(1);
2473 }
2474 var_pvisibilitynode4 = var_nodearraylist2;
2475 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
2476 cltype19 = type_nullable_parser_nodes__AVisibility.color;
2477 idtype20 = type_nullable_parser_nodes__AVisibility.id;
2478 if(var_pvisibilitynode4 == NULL) {
2479 var18 = 1;
2480 } else {
2481 if(cltype19 >= var_pvisibilitynode4->type->table_size) {
2482 var18 = 0;
2483 } else {
2484 var18 = var_pvisibilitynode4->type->type_table[cltype19] == idtype20;
2485 }
2486 }
2487 if (!var18) {
2488 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15199);
2489 exit(1);
2490 }
2491 var_pclasskindnode5 = var_nodearraylist3;
2492 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
2493 cltype22 = type_nullable_parser_nodes__AClasskind.color;
2494 idtype23 = type_nullable_parser_nodes__AClasskind.id;
2495 if(var_pclasskindnode5 == NULL) {
2496 var21 = 1;
2497 } else {
2498 if(cltype22 >= var_pclasskindnode5->type->table_size) {
2499 var21 = 0;
2500 } else {
2501 var21 = var_pclasskindnode5->type->type_table[cltype22] == idtype23;
2502 }
2503 }
2504 if (!var21) {
2505 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15201);
2506 exit(1);
2507 }
2508 var_tclassidnode6 = var_nodearraylist6;
2509 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
2510 cltype25 = type_nullable_parser_nodes__TClassid.color;
2511 idtype26 = type_nullable_parser_nodes__TClassid.id;
2512 if(var_tclassidnode6 == NULL) {
2513 var24 = 1;
2514 } else {
2515 if(cltype25 >= var_tclassidnode6->type->table_size) {
2516 var24 = 0;
2517 } else {
2518 var24 = var_tclassidnode6->type->type_table[cltype25] == idtype26;
2519 }
2520 }
2521 if (!var24) {
2522 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15203);
2523 exit(1);
2524 }
2525 var_listnode7 = var_nodearraylist7;
2526 /* <var_listnode7:nullable Object> isa Array[Object] */
2527 cltype28 = type_array__Arraykernel__Object.color;
2528 idtype29 = type_array__Arraykernel__Object.id;
2529 if(var_listnode7 == NULL) {
2530 var27 = 0;
2531 } else {
2532 if(cltype28 >= var_listnode7->type->table_size) {
2533 var27 = 0;
2534 } else {
2535 var27 = var_listnode7->type->type_table[cltype28] == idtype29;
2536 }
2537 }
2538 if (!var27) {
2539 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15205);
2540 exit(1);
2541 }
2542 var30 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction323>*/;
2543 var_listnode8 = var30;
2544 var31 = NEW_array__Array(&type_array__Arraykernel__Object);
2545 ((void (*)(val*))(var31->class->vft[COLOR_array__Array__init]))(var31) /* init on <var31:Array[Object]>*/;
2546 CHECK_NEW_array__Array(var31);
2547 var_listnode13 = var31;
2548 var_listnode12 = var_nodearraylist8;
2549 /* <var_listnode12:nullable Object> isa Array[Object] */
2550 cltype33 = type_array__Arraykernel__Object.color;
2551 idtype34 = type_array__Arraykernel__Object.id;
2552 if(var_listnode12 == NULL) {
2553 var32 = 0;
2554 } else {
2555 if(cltype33 >= var_listnode12->type->table_size) {
2556 var32 = 0;
2557 } else {
2558 var32 = var_listnode12->type->type_table[cltype33] == idtype34;
2559 }
2560 }
2561 if (!var32) {
2562 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15209);
2563 exit(1);
2564 }
2565 var35 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on <self:ReduceAction323>*/;
2566 var_listnode13 = var35;
2567 var36 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations);
2568 var37 = NULL;
2569 var38 = NULL;
2570 var39 = NULL;
2571 ((void (*)(val*, val*, val*, val*, val*))(var36->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var36, var37, var38, var_listnode13, var39) /* init_aannotations on <var36:AAnnotations>*/;
2572 CHECK_NEW_parser_nodes__AAnnotations(var36);
2573 var_pannotationsnode9 = var36;
2574 var_pexterncodeblocknode15 = var_nodearraylist9;
2575 /* <var_pexterncodeblocknode15:nullable Object> isa nullable AExternCodeBlock */
2576 cltype41 = type_nullable_parser_nodes__AExternCodeBlock.color;
2577 idtype42 = type_nullable_parser_nodes__AExternCodeBlock.id;
2578 if(var_pexterncodeblocknode15 == NULL) {
2579 var40 = 1;
2580 } else {
2581 if(cltype41 >= var_pexterncodeblocknode15->type->table_size) {
2582 var40 = 0;
2583 } else {
2584 var40 = var_pexterncodeblocknode15->type->type_table[cltype41] == idtype42;
2585 }
2586 }
2587 if (!var40) {
2588 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15218);
2589 exit(1);
2590 }
2591 var_listnode16 = var_nodearraylist10;
2592 /* <var_listnode16:nullable Object> isa Array[Object] */
2593 cltype44 = type_array__Arraykernel__Object.color;
2594 idtype45 = type_array__Arraykernel__Object.id;
2595 if(var_listnode16 == NULL) {
2596 var43 = 0;
2597 } else {
2598 if(cltype44 >= var_listnode16->type->table_size) {
2599 var43 = 0;
2600 } else {
2601 var43 = var_listnode16->type->type_table[cltype44] == idtype45;
2602 }
2603 }
2604 if (!var43) {
2605 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15220);
2606 exit(1);
2607 }
2608 var46 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode17, var_listnode16) /* concat on <self:ReduceAction323>*/;
2609 var_listnode17 = var46;
2610 var_listnode18 = var_nodearraylist11;
2611 /* <var_listnode18:nullable Object> isa Array[Object] */
2612 cltype48 = type_array__Arraykernel__Object.color;
2613 idtype49 = type_array__Arraykernel__Object.id;
2614 if(var_listnode18 == NULL) {
2615 var47 = 0;
2616 } else {
2617 if(cltype48 >= var_listnode18->type->table_size) {
2618 var47 = 0;
2619 } else {
2620 var47 = var_listnode18->type->type_table[cltype48] == idtype49;
2621 }
2622 }
2623 if (!var47) {
2624 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15223);
2625 exit(1);
2626 }
2627 var50 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode19, var_listnode18) /* concat on <self:ReduceAction323>*/;
2628 var_listnode19 = var50;
2629 var_tkwendnode20 = var_nodearraylist13;
2630 /* <var_tkwendnode20:nullable Object> isa nullable TKwend */
2631 cltype52 = type_nullable_parser_nodes__TKwend.color;
2632 idtype53 = type_nullable_parser_nodes__TKwend.id;
2633 if(var_tkwendnode20 == NULL) {
2634 var51 = 1;
2635 } else {
2636 if(cltype52 >= var_tkwendnode20->type->table_size) {
2637 var51 = 0;
2638 } else {
2639 var51 = var_tkwendnode20->type->type_table[cltype52] == idtype53;
2640 }
2641 }
2642 if (!var51) {
2643 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15226);
2644 exit(1);
2645 }
2646 var54 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
2647 var55 = NULL;
2648 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var54->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var54, var_pdocnode2, var55, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var_pannotationsnode9, var_pexterncodeblocknode15, var_listnode17, var_listnode19, var_tkwendnode20) /* init_astdclassdef on <var54:AStdClassdef>*/;
2649 CHECK_NEW_parser_nodes__AStdClassdef(var54);
2650 var_pclassdefnode1 = var54;
2651 var_node_list = var_pclassdefnode1;
2652 var56 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction323> */
2653 var57 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var56) /* go_to on <var_p:Parser>*/;
2654 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var57, var_node_list) /* push on <var_p:Parser>*/;
2655 RET_LABEL:;
2656 }
2657 /* method parser#ReduceAction323#action for (self: Object, Parser) */
2658 void VIRTUAL_parser__ReduceAction323__action(val* self, val* p0) {
2659 parser__ReduceAction323__action(self, p0);
2660 RET_LABEL:;
2661 }
2662 /* method parser#ReduceAction324#action for (self: ReduceAction324, Parser) */
2663 void parser__ReduceAction324__action(val* self, val* p0) {
2664 val* var_p /* var p: Parser */;
2665 val* var /* : null */;
2666 val* var_node_list /* var node_list: nullable Object */;
2667 val* var1 /* : nullable Object */;
2668 val* var_nodearraylist14 /* var nodearraylist14: nullable Object */;
2669 val* var2 /* : nullable Object */;
2670 val* var_nodearraylist13 /* var nodearraylist13: nullable Object */;
2671 val* var3 /* : nullable Object */;
2672 val* var_nodearraylist12 /* var nodearraylist12: nullable Object */;
2673 val* var4 /* : nullable Object */;
2674 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
2675 val* var5 /* : nullable Object */;
2676 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
2677 val* var6 /* : nullable Object */;
2678 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
2679 val* var7 /* : nullable Object */;
2680 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
2681 val* var8 /* : nullable Object */;
2682 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
2683 val* var9 /* : nullable Object */;
2684 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
2685 val* var10 /* : nullable Object */;
2686 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2687 val* var11 /* : nullable Object */;
2688 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2689 val* var12 /* : nullable Object */;
2690 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2691 val* var13 /* : nullable Object */;
2692 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2693 val* var14 /* : nullable Object */;
2694 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2695 val* var15 /* : Array[Object] */;
2696 val* var_listnode8 /* var listnode8: Array[Object] */;
2697 val* var16 /* : Array[Object] */;
2698 val* var_listnode17 /* var listnode17: Array[Object] */;
2699 val* var17 /* : Array[Object] */;
2700 val* var_listnode19 /* var listnode19: Array[Object] */;
2701 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
2702 short int var18 /* : Bool */;
2703 int cltype;
2704 int idtype;
2705 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
2706 short int var19 /* : Bool */;
2707 int cltype20;
2708 int idtype21;
2709 val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */;
2710 short int var22 /* : Bool */;
2711 int cltype23;
2712 int idtype24;
2713 val* var_tclassidnode6 /* var tclassidnode6: nullable Object */;
2714 short int var25 /* : Bool */;
2715 int cltype26;
2716 int idtype27;
2717 val* var_listnode7 /* var listnode7: nullable Object */;
2718 short int var28 /* : Bool */;
2719 int cltype29;
2720 int idtype30;
2721 val* var31 /* : Array[Object] */;
2722 val* var32 /* : Array[Object] */;
2723 val* var_listnode13 /* var listnode13: Array[Object] */;
2724 val* var_listnode12 /* var listnode12: nullable Object */;
2725 short int var33 /* : Bool */;
2726 int cltype34;
2727 int idtype35;
2728 val* var36 /* : Array[Object] */;
2729 val* var37 /* : AAnnotations */;
2730 val* var38 /* : null */;
2731 val* var39 /* : null */;
2732 val* var40 /* : null */;
2733 val* var_pannotationsnode9 /* var pannotationsnode9: nullable AAnnotations */;
2734 val* var_pexterncodeblocknode15 /* var pexterncodeblocknode15: nullable Object */;
2735 short int var41 /* : Bool */;
2736 int cltype42;
2737 int idtype43;
2738 val* var_listnode16 /* var listnode16: nullable Object */;
2739 short int var44 /* : Bool */;
2740 int cltype45;
2741 int idtype46;
2742 val* var47 /* : Array[Object] */;
2743 val* var_listnode18 /* var listnode18: nullable Object */;
2744 short int var48 /* : Bool */;
2745 int cltype49;
2746 int idtype50;
2747 val* var51 /* : Array[Object] */;
2748 val* var_tkwendnode20 /* var tkwendnode20: nullable Object */;
2749 short int var52 /* : Bool */;
2750 int cltype53;
2751 int idtype54;
2752 val* var55 /* : AStdClassdef */;
2753 val* var56 /* : null */;
2754 val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */;
2755 long var57 /* : Int */;
2756 long var58 /* : Int */;
2757 var_p = p0;
2758 var = NULL;
2759 var_node_list = var;
2760 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2761 var_nodearraylist14 = var1;
2762 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2763 var_nodearraylist13 = var2;
2764 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2765 var_nodearraylist12 = var3;
2766 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2767 var_nodearraylist11 = var4;
2768 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2769 var_nodearraylist10 = var5;
2770 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2771 var_nodearraylist9 = var6;
2772 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2773 var_nodearraylist8 = var7;
2774 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2775 var_nodearraylist7 = var8;
2776 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2777 var_nodearraylist6 = var9;
2778 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2779 var_nodearraylist5 = var10;
2780 var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2781 var_nodearraylist4 = var11;
2782 var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2783 var_nodearraylist3 = var12;
2784 var13 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2785 var_nodearraylist2 = var13;
2786 var14 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2787 var_nodearraylist1 = var14;
2788 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
2789 ((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
2790 CHECK_NEW_array__Array(var15);
2791 var_listnode8 = var15;
2792 var16 = NEW_array__Array(&type_array__Arraykernel__Object);
2793 ((void (*)(val*))(var16->class->vft[COLOR_array__Array__init]))(var16) /* init on <var16:Array[Object]>*/;
2794 CHECK_NEW_array__Array(var16);
2795 var_listnode17 = var16;
2796 var17 = NEW_array__Array(&type_array__Arraykernel__Object);
2797 ((void (*)(val*))(var17->class->vft[COLOR_array__Array__init]))(var17) /* init on <var17:Array[Object]>*/;
2798 CHECK_NEW_array__Array(var17);
2799 var_listnode19 = var17;
2800 var_pdocnode2 = var_nodearraylist1;
2801 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
2802 cltype = type_nullable_parser_nodes__ADoc.color;
2803 idtype = type_nullable_parser_nodes__ADoc.id;
2804 if(var_pdocnode2 == NULL) {
2805 var18 = 1;
2806 } else {
2807 if(cltype >= var_pdocnode2->type->table_size) {
2808 var18 = 0;
2809 } else {
2810 var18 = var_pdocnode2->type->type_table[cltype] == idtype;
2811 }
2812 }
2813 if (!var18) {
2814 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15267);
2815 exit(1);
2816 }
2817 var_pvisibilitynode4 = var_nodearraylist2;
2818 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
2819 cltype20 = type_nullable_parser_nodes__AVisibility.color;
2820 idtype21 = type_nullable_parser_nodes__AVisibility.id;
2821 if(var_pvisibilitynode4 == NULL) {
2822 var19 = 1;
2823 } else {
2824 if(cltype20 >= var_pvisibilitynode4->type->table_size) {
2825 var19 = 0;
2826 } else {
2827 var19 = var_pvisibilitynode4->type->type_table[cltype20] == idtype21;
2828 }
2829 }
2830 if (!var19) {
2831 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15269);
2832 exit(1);
2833 }
2834 var_pclasskindnode5 = var_nodearraylist3;
2835 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
2836 cltype23 = type_nullable_parser_nodes__AClasskind.color;
2837 idtype24 = type_nullable_parser_nodes__AClasskind.id;
2838 if(var_pclasskindnode5 == NULL) {
2839 var22 = 1;
2840 } else {
2841 if(cltype23 >= var_pclasskindnode5->type->table_size) {
2842 var22 = 0;
2843 } else {
2844 var22 = var_pclasskindnode5->type->type_table[cltype23] == idtype24;
2845 }
2846 }
2847 if (!var22) {
2848 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15271);
2849 exit(1);
2850 }
2851 var_tclassidnode6 = var_nodearraylist7;
2852 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
2853 cltype26 = type_nullable_parser_nodes__TClassid.color;
2854 idtype27 = type_nullable_parser_nodes__TClassid.id;
2855 if(var_tclassidnode6 == NULL) {
2856 var25 = 1;
2857 } else {
2858 if(cltype26 >= var_tclassidnode6->type->table_size) {
2859 var25 = 0;
2860 } else {
2861 var25 = var_tclassidnode6->type->type_table[cltype26] == idtype27;
2862 }
2863 }
2864 if (!var25) {
2865 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15273);
2866 exit(1);
2867 }
2868 var_listnode7 = var_nodearraylist8;
2869 /* <var_listnode7:nullable Object> isa Array[Object] */
2870 cltype29 = type_array__Arraykernel__Object.color;
2871 idtype30 = type_array__Arraykernel__Object.id;
2872 if(var_listnode7 == NULL) {
2873 var28 = 0;
2874 } else {
2875 if(cltype29 >= var_listnode7->type->table_size) {
2876 var28 = 0;
2877 } else {
2878 var28 = var_listnode7->type->type_table[cltype29] == idtype30;
2879 }
2880 }
2881 if (!var28) {
2882 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15275);
2883 exit(1);
2884 }
2885 var31 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction324>*/;
2886 var_listnode8 = var31;
2887 var32 = NEW_array__Array(&type_array__Arraykernel__Object);
2888 ((void (*)(val*))(var32->class->vft[COLOR_array__Array__init]))(var32) /* init on <var32:Array[Object]>*/;
2889 CHECK_NEW_array__Array(var32);
2890 var_listnode13 = var32;
2891 var_listnode12 = var_nodearraylist9;
2892 /* <var_listnode12:nullable Object> isa Array[Object] */
2893 cltype34 = type_array__Arraykernel__Object.color;
2894 idtype35 = type_array__Arraykernel__Object.id;
2895 if(var_listnode12 == NULL) {
2896 var33 = 0;
2897 } else {
2898 if(cltype34 >= var_listnode12->type->table_size) {
2899 var33 = 0;
2900 } else {
2901 var33 = var_listnode12->type->type_table[cltype34] == idtype35;
2902 }
2903 }
2904 if (!var33) {
2905 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15279);
2906 exit(1);
2907 }
2908 var36 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on <self:ReduceAction324>*/;
2909 var_listnode13 = var36;
2910 var37 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations);
2911 var38 = NULL;
2912 var39 = NULL;
2913 var40 = NULL;
2914 ((void (*)(val*, val*, val*, val*, val*))(var37->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var37, var38, var39, var_listnode13, var40) /* init_aannotations on <var37:AAnnotations>*/;
2915 CHECK_NEW_parser_nodes__AAnnotations(var37);
2916 var_pannotationsnode9 = var37;
2917 var_pexterncodeblocknode15 = var_nodearraylist10;
2918 /* <var_pexterncodeblocknode15:nullable Object> isa nullable AExternCodeBlock */
2919 cltype42 = type_nullable_parser_nodes__AExternCodeBlock.color;
2920 idtype43 = type_nullable_parser_nodes__AExternCodeBlock.id;
2921 if(var_pexterncodeblocknode15 == NULL) {
2922 var41 = 1;
2923 } else {
2924 if(cltype42 >= var_pexterncodeblocknode15->type->table_size) {
2925 var41 = 0;
2926 } else {
2927 var41 = var_pexterncodeblocknode15->type->type_table[cltype42] == idtype43;
2928 }
2929 }
2930 if (!var41) {
2931 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15288);
2932 exit(1);
2933 }
2934 var_listnode16 = var_nodearraylist11;
2935 /* <var_listnode16:nullable Object> isa Array[Object] */
2936 cltype45 = type_array__Arraykernel__Object.color;
2937 idtype46 = type_array__Arraykernel__Object.id;
2938 if(var_listnode16 == NULL) {
2939 var44 = 0;
2940 } else {
2941 if(cltype45 >= var_listnode16->type->table_size) {
2942 var44 = 0;
2943 } else {
2944 var44 = var_listnode16->type->type_table[cltype45] == idtype46;
2945 }
2946 }
2947 if (!var44) {
2948 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15290);
2949 exit(1);
2950 }
2951 var47 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode17, var_listnode16) /* concat on <self:ReduceAction324>*/;
2952 var_listnode17 = var47;
2953 var_listnode18 = var_nodearraylist12;
2954 /* <var_listnode18:nullable Object> isa Array[Object] */
2955 cltype49 = type_array__Arraykernel__Object.color;
2956 idtype50 = type_array__Arraykernel__Object.id;
2957 if(var_listnode18 == NULL) {
2958 var48 = 0;
2959 } else {
2960 if(cltype49 >= var_listnode18->type->table_size) {
2961 var48 = 0;
2962 } else {
2963 var48 = var_listnode18->type->type_table[cltype49] == idtype50;
2964 }
2965 }
2966 if (!var48) {
2967 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15293);
2968 exit(1);
2969 }
2970 var51 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode19, var_listnode18) /* concat on <self:ReduceAction324>*/;
2971 var_listnode19 = var51;
2972 var_tkwendnode20 = var_nodearraylist14;
2973 /* <var_tkwendnode20:nullable Object> isa nullable TKwend */
2974 cltype53 = type_nullable_parser_nodes__TKwend.color;
2975 idtype54 = type_nullable_parser_nodes__TKwend.id;
2976 if(var_tkwendnode20 == NULL) {
2977 var52 = 1;
2978 } else {
2979 if(cltype53 >= var_tkwendnode20->type->table_size) {
2980 var52 = 0;
2981 } else {
2982 var52 = var_tkwendnode20->type->type_table[cltype53] == idtype54;
2983 }
2984 }
2985 if (!var52) {
2986 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15296);
2987 exit(1);
2988 }
2989 var55 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
2990 var56 = NULL;
2991 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var55->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var55, var_pdocnode2, var56, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var_pannotationsnode9, var_pexterncodeblocknode15, var_listnode17, var_listnode19, var_tkwendnode20) /* init_astdclassdef on <var55:AStdClassdef>*/;
2992 CHECK_NEW_parser_nodes__AStdClassdef(var55);
2993 var_pclassdefnode1 = var55;
2994 var_node_list = var_pclassdefnode1;
2995 var57 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction324> */
2996 var58 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var57) /* go_to on <var_p:Parser>*/;
2997 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var58, var_node_list) /* push on <var_p:Parser>*/;
2998 RET_LABEL:;
2999 }
3000 /* method parser#ReduceAction324#action for (self: Object, Parser) */
3001 void VIRTUAL_parser__ReduceAction324__action(val* self, val* p0) {
3002 parser__ReduceAction324__action(self, p0);
3003 RET_LABEL:;
3004 }
3005 /* method parser#ReduceAction326#action for (self: ReduceAction326, Parser) */
3006 void parser__ReduceAction326__action(val* self, val* p0) {
3007 val* var_p /* var p: Parser */;
3008 val* var /* : null */;
3009 val* var_node_list /* var node_list: nullable Object */;
3010 val* var1 /* : nullable Object */;
3011 val* var_nodearraylist14 /* var nodearraylist14: nullable Object */;
3012 val* var2 /* : nullable Object */;
3013 val* var_nodearraylist13 /* var nodearraylist13: nullable Object */;
3014 val* var3 /* : nullable Object */;
3015 val* var_nodearraylist12 /* var nodearraylist12: nullable Object */;
3016 val* var4 /* : nullable Object */;
3017 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
3018 val* var5 /* : nullable Object */;
3019 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
3020 val* var6 /* : nullable Object */;
3021 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
3022 val* var7 /* : nullable Object */;
3023 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
3024 val* var8 /* : nullable Object */;
3025 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
3026 val* var9 /* : nullable Object */;
3027 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
3028 val* var10 /* : nullable Object */;
3029 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
3030 val* var11 /* : nullable Object */;
3031 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3032 val* var12 /* : nullable Object */;
3033 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3034 val* var13 /* : nullable Object */;
3035 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3036 val* var14 /* : nullable Object */;
3037 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3038 val* var15 /* : Array[Object] */;
3039 val* var_listnode8 /* var listnode8: Array[Object] */;
3040 val* var16 /* : Array[Object] */;
3041 val* var_listnode17 /* var listnode17: Array[Object] */;
3042 val* var17 /* : Array[Object] */;
3043 val* var_listnode19 /* var listnode19: Array[Object] */;
3044 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
3045 short int var18 /* : Bool */;
3046 int cltype;
3047 int idtype;
3048 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
3049 short int var19 /* : Bool */;
3050 int cltype20;
3051 int idtype21;
3052 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
3053 short int var22 /* : Bool */;
3054 int cltype23;
3055 int idtype24;
3056 val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */;
3057 short int var25 /* : Bool */;
3058 int cltype26;
3059 int idtype27;
3060 val* var_tclassidnode6 /* var tclassidnode6: nullable Object */;
3061 short int var28 /* : Bool */;
3062 int cltype29;
3063 int idtype30;
3064 val* var_listnode7 /* var listnode7: nullable Object */;
3065 short int var31 /* : Bool */;
3066 int cltype32;
3067 int idtype33;
3068 val* var34 /* : Array[Object] */;
3069 val* var35 /* : Array[Object] */;
3070 val* var_listnode13 /* var listnode13: Array[Object] */;
3071 val* var_listnode12 /* var listnode12: nullable Object */;
3072 short int var36 /* : Bool */;
3073 int cltype37;
3074 int idtype38;
3075 val* var39 /* : Array[Object] */;
3076 val* var40 /* : AAnnotations */;
3077 val* var41 /* : null */;
3078 val* var42 /* : null */;
3079 val* var43 /* : null */;
3080 val* var_pannotationsnode9 /* var pannotationsnode9: nullable AAnnotations */;
3081 val* var_pexterncodeblocknode15 /* var pexterncodeblocknode15: nullable Object */;
3082 short int var44 /* : Bool */;
3083 int cltype45;
3084 int idtype46;
3085 val* var_listnode16 /* var listnode16: nullable Object */;
3086 short int var47 /* : Bool */;
3087 int cltype48;
3088 int idtype49;
3089 val* var50 /* : Array[Object] */;
3090 val* var_listnode18 /* var listnode18: nullable Object */;
3091 short int var51 /* : Bool */;
3092 int cltype52;
3093 int idtype53;
3094 val* var54 /* : Array[Object] */;
3095 val* var_tkwendnode20 /* var tkwendnode20: nullable Object */;
3096 short int var55 /* : Bool */;
3097 int cltype56;
3098 int idtype57;
3099 val* var58 /* : AStdClassdef */;
3100 val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */;
3101 long var59 /* : Int */;
3102 long var60 /* : Int */;
3103 var_p = p0;
3104 var = NULL;
3105 var_node_list = var;
3106 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3107 var_nodearraylist14 = var1;
3108 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3109 var_nodearraylist13 = var2;
3110 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3111 var_nodearraylist12 = var3;
3112 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3113 var_nodearraylist11 = var4;
3114 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3115 var_nodearraylist10 = var5;
3116 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3117 var_nodearraylist9 = var6;
3118 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3119 var_nodearraylist8 = var7;
3120 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3121 var_nodearraylist7 = var8;
3122 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3123 var_nodearraylist6 = var9;
3124 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3125 var_nodearraylist5 = var10;
3126 var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3127 var_nodearraylist4 = var11;
3128 var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3129 var_nodearraylist3 = var12;
3130 var13 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3131 var_nodearraylist2 = var13;
3132 var14 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3133 var_nodearraylist1 = var14;
3134 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
3135 ((void (*)(val*))(var15->class->vft[COLOR_array__Array__init]))(var15) /* init on <var15:Array[Object]>*/;
3136 CHECK_NEW_array__Array(var15);
3137 var_listnode8 = var15;
3138 var16 = NEW_array__Array(&type_array__Arraykernel__Object);
3139 ((void (*)(val*))(var16->class->vft[COLOR_array__Array__init]))(var16) /* init on <var16:Array[Object]>*/;
3140 CHECK_NEW_array__Array(var16);
3141 var_listnode17 = var16;
3142 var17 = NEW_array__Array(&type_array__Arraykernel__Object);
3143 ((void (*)(val*))(var17->class->vft[COLOR_array__Array__init]))(var17) /* init on <var17:Array[Object]>*/;
3144 CHECK_NEW_array__Array(var17);
3145 var_listnode19 = var17;
3146 var_pdocnode2 = var_nodearraylist1;
3147 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
3148 cltype = type_nullable_parser_nodes__ADoc.color;
3149 idtype = type_nullable_parser_nodes__ADoc.id;
3150 if(var_pdocnode2 == NULL) {
3151 var18 = 1;
3152 } else {
3153 if(cltype >= var_pdocnode2->type->table_size) {
3154 var18 = 0;
3155 } else {
3156 var18 = var_pdocnode2->type->type_table[cltype] == idtype;
3157 }
3158 }
3159 if (!var18) {
3160 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15337);
3161 exit(1);
3162 }
3163 var_tkwredefnode3 = var_nodearraylist2;
3164 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
3165 cltype20 = type_nullable_parser_nodes__TKwredef.color;
3166 idtype21 = type_nullable_parser_nodes__TKwredef.id;
3167 if(var_tkwredefnode3 == NULL) {
3168 var19 = 1;
3169 } else {
3170 if(cltype20 >= var_tkwredefnode3->type->table_size) {
3171 var19 = 0;
3172 } else {
3173 var19 = var_tkwredefnode3->type->type_table[cltype20] == idtype21;
3174 }
3175 }
3176 if (!var19) {
3177 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15339);
3178 exit(1);
3179 }
3180 var_pvisibilitynode4 = var_nodearraylist3;
3181 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
3182 cltype23 = type_nullable_parser_nodes__AVisibility.color;
3183 idtype24 = type_nullable_parser_nodes__AVisibility.id;
3184 if(var_pvisibilitynode4 == NULL) {
3185 var22 = 1;
3186 } else {
3187 if(cltype23 >= var_pvisibilitynode4->type->table_size) {
3188 var22 = 0;
3189 } else {
3190 var22 = var_pvisibilitynode4->type->type_table[cltype23] == idtype24;
3191 }
3192 }
3193 if (!var22) {
3194 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15341);
3195 exit(1);
3196 }
3197 var_pclasskindnode5 = var_nodearraylist4;
3198 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
3199 cltype26 = type_nullable_parser_nodes__AClasskind.color;
3200 idtype27 = type_nullable_parser_nodes__AClasskind.id;
3201 if(var_pclasskindnode5 == NULL) {
3202 var25 = 1;
3203 } else {
3204 if(cltype26 >= var_pclasskindnode5->type->table_size) {
3205 var25 = 0;
3206 } else {
3207 var25 = var_pclasskindnode5->type->type_table[cltype26] == idtype27;
3208 }
3209 }
3210 if (!var25) {
3211 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15343);
3212 exit(1);
3213 }
3214 var_tclassidnode6 = var_nodearraylist7;
3215 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
3216 cltype29 = type_nullable_parser_nodes__TClassid.color;
3217 idtype30 = type_nullable_parser_nodes__TClassid.id;
3218 if(var_tclassidnode6 == NULL) {
3219 var28 = 1;
3220 } else {
3221 if(cltype29 >= var_tclassidnode6->type->table_size) {
3222 var28 = 0;
3223 } else {
3224 var28 = var_tclassidnode6->type->type_table[cltype29] == idtype30;
3225 }
3226 }
3227 if (!var28) {
3228 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15345);
3229 exit(1);
3230 }
3231 var_listnode7 = var_nodearraylist8;
3232 /* <var_listnode7:nullable Object> isa Array[Object] */
3233 cltype32 = type_array__Arraykernel__Object.color;
3234 idtype33 = type_array__Arraykernel__Object.id;
3235 if(var_listnode7 == NULL) {
3236 var31 = 0;
3237 } else {
3238 if(cltype32 >= var_listnode7->type->table_size) {
3239 var31 = 0;
3240 } else {
3241 var31 = var_listnode7->type->type_table[cltype32] == idtype33;
3242 }
3243 }
3244 if (!var31) {
3245 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15347);
3246 exit(1);
3247 }
3248 var34 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction326>*/;
3249 var_listnode8 = var34;
3250 var35 = NEW_array__Array(&type_array__Arraykernel__Object);
3251 ((void (*)(val*))(var35->class->vft[COLOR_array__Array__init]))(var35) /* init on <var35:Array[Object]>*/;
3252 CHECK_NEW_array__Array(var35);
3253 var_listnode13 = var35;
3254 var_listnode12 = var_nodearraylist9;
3255 /* <var_listnode12:nullable Object> isa Array[Object] */
3256 cltype37 = type_array__Arraykernel__Object.color;
3257 idtype38 = type_array__Arraykernel__Object.id;
3258 if(var_listnode12 == NULL) {
3259 var36 = 0;
3260 } else {
3261 if(cltype37 >= var_listnode12->type->table_size) {
3262 var36 = 0;
3263 } else {
3264 var36 = var_listnode12->type->type_table[cltype37] == idtype38;
3265 }
3266 }
3267 if (!var36) {
3268 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15351);
3269 exit(1);
3270 }
3271 var39 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on <self:ReduceAction326>*/;
3272 var_listnode13 = var39;
3273 var40 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations);
3274 var41 = NULL;
3275 var42 = NULL;
3276 var43 = NULL;
3277 ((void (*)(val*, val*, val*, val*, val*))(var40->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var40, var41, var42, var_listnode13, var43) /* init_aannotations on <var40:AAnnotations>*/;
3278 CHECK_NEW_parser_nodes__AAnnotations(var40);
3279 var_pannotationsnode9 = var40;
3280 var_pexterncodeblocknode15 = var_nodearraylist10;
3281 /* <var_pexterncodeblocknode15:nullable Object> isa nullable AExternCodeBlock */
3282 cltype45 = type_nullable_parser_nodes__AExternCodeBlock.color;
3283 idtype46 = type_nullable_parser_nodes__AExternCodeBlock.id;
3284 if(var_pexterncodeblocknode15 == NULL) {
3285 var44 = 1;
3286 } else {
3287 if(cltype45 >= var_pexterncodeblocknode15->type->table_size) {
3288 var44 = 0;
3289 } else {
3290 var44 = var_pexterncodeblocknode15->type->type_table[cltype45] == idtype46;
3291 }
3292 }
3293 if (!var44) {
3294 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15360);
3295 exit(1);
3296 }
3297 var_listnode16 = var_nodearraylist11;
3298 /* <var_listnode16:nullable Object> isa Array[Object] */
3299 cltype48 = type_array__Arraykernel__Object.color;
3300 idtype49 = type_array__Arraykernel__Object.id;
3301 if(var_listnode16 == NULL) {
3302 var47 = 0;
3303 } else {
3304 if(cltype48 >= var_listnode16->type->table_size) {
3305 var47 = 0;
3306 } else {
3307 var47 = var_listnode16->type->type_table[cltype48] == idtype49;
3308 }
3309 }
3310 if (!var47) {
3311 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15362);
3312 exit(1);
3313 }
3314 var50 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode17, var_listnode16) /* concat on <self:ReduceAction326>*/;
3315 var_listnode17 = var50;
3316 var_listnode18 = var_nodearraylist12;
3317 /* <var_listnode18:nullable Object> isa Array[Object] */
3318 cltype52 = type_array__Arraykernel__Object.color;
3319 idtype53 = type_array__Arraykernel__Object.id;
3320 if(var_listnode18 == NULL) {
3321 var51 = 0;
3322 } else {
3323 if(cltype52 >= var_listnode18->type->table_size) {
3324 var51 = 0;
3325 } else {
3326 var51 = var_listnode18->type->type_table[cltype52] == idtype53;
3327 }
3328 }
3329 if (!var51) {
3330 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15365);
3331 exit(1);
3332 }
3333 var54 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode19, var_listnode18) /* concat on <self:ReduceAction326>*/;
3334 var_listnode19 = var54;
3335 var_tkwendnode20 = var_nodearraylist14;
3336 /* <var_tkwendnode20:nullable Object> isa nullable TKwend */
3337 cltype56 = type_nullable_parser_nodes__TKwend.color;
3338 idtype57 = type_nullable_parser_nodes__TKwend.id;
3339 if(var_tkwendnode20 == NULL) {
3340 var55 = 1;
3341 } else {
3342 if(cltype56 >= var_tkwendnode20->type->table_size) {
3343 var55 = 0;
3344 } else {
3345 var55 = var_tkwendnode20->type->type_table[cltype56] == idtype57;
3346 }
3347 }
3348 if (!var55) {
3349 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15368);
3350 exit(1);
3351 }
3352 var58 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
3353 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var58->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var58, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var_pannotationsnode9, var_pexterncodeblocknode15, var_listnode17, var_listnode19, var_tkwendnode20) /* init_astdclassdef on <var58:AStdClassdef>*/;
3354 CHECK_NEW_parser_nodes__AStdClassdef(var58);
3355 var_pclassdefnode1 = var58;
3356 var_node_list = var_pclassdefnode1;
3357 var59 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction326> */
3358 var60 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var59) /* go_to on <var_p:Parser>*/;
3359 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var60, var_node_list) /* push on <var_p:Parser>*/;
3360 RET_LABEL:;
3361 }
3362 /* method parser#ReduceAction326#action for (self: Object, Parser) */
3363 void VIRTUAL_parser__ReduceAction326__action(val* self, val* p0) {
3364 parser__ReduceAction326__action(self, p0);
3365 RET_LABEL:;
3366 }
3367 /* method parser#ReduceAction327#action for (self: ReduceAction327, Parser) */
3368 void parser__ReduceAction327__action(val* self, val* p0) {
3369 val* var_p /* var p: Parser */;
3370 val* var /* : null */;
3371 val* var_node_list /* var node_list: nullable Object */;
3372 val* var1 /* : nullable Object */;
3373 val* var_nodearraylist15 /* var nodearraylist15: nullable Object */;
3374 val* var2 /* : nullable Object */;
3375 val* var_nodearraylist14 /* var nodearraylist14: nullable Object */;
3376 val* var3 /* : nullable Object */;
3377 val* var_nodearraylist13 /* var nodearraylist13: nullable Object */;
3378 val* var4 /* : nullable Object */;
3379 val* var_nodearraylist12 /* var nodearraylist12: nullable Object */;
3380 val* var5 /* : nullable Object */;
3381 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
3382 val* var6 /* : nullable Object */;
3383 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
3384 val* var7 /* : nullable Object */;
3385 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
3386 val* var8 /* : nullable Object */;
3387 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
3388 val* var9 /* : nullable Object */;
3389 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
3390 val* var10 /* : nullable Object */;
3391 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
3392 val* var11 /* : nullable Object */;
3393 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
3394 val* var12 /* : nullable Object */;
3395 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3396 val* var13 /* : nullable Object */;
3397 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3398 val* var14 /* : nullable Object */;
3399 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3400 val* var15 /* : nullable Object */;
3401 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3402 val* var16 /* : Array[Object] */;
3403 val* var_listnode8 /* var listnode8: Array[Object] */;
3404 val* var17 /* : Array[Object] */;
3405 val* var_listnode17 /* var listnode17: Array[Object] */;
3406 val* var18 /* : Array[Object] */;
3407 val* var_listnode19 /* var listnode19: Array[Object] */;
3408 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
3409 short int var19 /* : Bool */;
3410 int cltype;
3411 int idtype;
3412 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
3413 short int var20 /* : Bool */;
3414 int cltype21;
3415 int idtype22;
3416 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
3417 short int var23 /* : Bool */;
3418 int cltype24;
3419 int idtype25;
3420 val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */;
3421 short int var26 /* : Bool */;
3422 int cltype27;
3423 int idtype28;
3424 val* var_tclassidnode6 /* var tclassidnode6: nullable Object */;
3425 short int var29 /* : Bool */;
3426 int cltype30;
3427 int idtype31;
3428 val* var_listnode7 /* var listnode7: nullable Object */;
3429 short int var32 /* : Bool */;
3430 int cltype33;
3431 int idtype34;
3432 val* var35 /* : Array[Object] */;
3433 val* var36 /* : Array[Object] */;
3434 val* var_listnode13 /* var listnode13: Array[Object] */;
3435 val* var_listnode12 /* var listnode12: nullable Object */;
3436 short int var37 /* : Bool */;
3437 int cltype38;
3438 int idtype39;
3439 val* var40 /* : Array[Object] */;
3440 val* var41 /* : AAnnotations */;
3441 val* var42 /* : null */;
3442 val* var43 /* : null */;
3443 val* var44 /* : null */;
3444 val* var_pannotationsnode9 /* var pannotationsnode9: nullable AAnnotations */;
3445 val* var_pexterncodeblocknode15 /* var pexterncodeblocknode15: nullable Object */;
3446 short int var45 /* : Bool */;
3447 int cltype46;
3448 int idtype47;
3449 val* var_listnode16 /* var listnode16: nullable Object */;
3450 short int var48 /* : Bool */;
3451 int cltype49;
3452 int idtype50;
3453 val* var51 /* : Array[Object] */;
3454 val* var_listnode18 /* var listnode18: nullable Object */;
3455 short int var52 /* : Bool */;
3456 int cltype53;
3457 int idtype54;
3458 val* var55 /* : Array[Object] */;
3459 val* var_tkwendnode20 /* var tkwendnode20: nullable Object */;
3460 short int var56 /* : Bool */;
3461 int cltype57;
3462 int idtype58;
3463 val* var59 /* : AStdClassdef */;
3464 val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */;
3465 long var60 /* : Int */;
3466 long var61 /* : Int */;
3467 var_p = p0;
3468 var = NULL;
3469 var_node_list = var;
3470 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3471 var_nodearraylist15 = var1;
3472 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3473 var_nodearraylist14 = var2;
3474 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3475 var_nodearraylist13 = var3;
3476 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3477 var_nodearraylist12 = var4;
3478 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3479 var_nodearraylist11 = var5;
3480 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3481 var_nodearraylist10 = var6;
3482 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3483 var_nodearraylist9 = var7;
3484 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3485 var_nodearraylist8 = var8;
3486 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3487 var_nodearraylist7 = var9;
3488 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3489 var_nodearraylist6 = var10;
3490 var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3491 var_nodearraylist5 = var11;
3492 var12 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3493 var_nodearraylist4 = var12;
3494 var13 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3495 var_nodearraylist3 = var13;
3496 var14 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3497 var_nodearraylist2 = var14;
3498 var15 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3499 var_nodearraylist1 = var15;
3500 var16 = NEW_array__Array(&type_array__Arraykernel__Object);
3501 ((void (*)(val*))(var16->class->vft[COLOR_array__Array__init]))(var16) /* init on <var16:Array[Object]>*/;
3502 CHECK_NEW_array__Array(var16);
3503 var_listnode8 = var16;
3504 var17 = NEW_array__Array(&type_array__Arraykernel__Object);
3505 ((void (*)(val*))(var17->class->vft[COLOR_array__Array__init]))(var17) /* init on <var17:Array[Object]>*/;
3506 CHECK_NEW_array__Array(var17);
3507 var_listnode17 = var17;
3508 var18 = NEW_array__Array(&type_array__Arraykernel__Object);
3509 ((void (*)(val*))(var18->class->vft[COLOR_array__Array__init]))(var18) /* init on <var18:Array[Object]>*/;
3510 CHECK_NEW_array__Array(var18);
3511 var_listnode19 = var18;
3512 var_pdocnode2 = var_nodearraylist1;
3513 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
3514 cltype = type_nullable_parser_nodes__ADoc.color;
3515 idtype = type_nullable_parser_nodes__ADoc.id;
3516 if(var_pdocnode2 == NULL) {
3517 var19 = 1;
3518 } else {
3519 if(cltype >= var_pdocnode2->type->table_size) {
3520 var19 = 0;
3521 } else {
3522 var19 = var_pdocnode2->type->type_table[cltype] == idtype;
3523 }
3524 }
3525 if (!var19) {
3526 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15410);
3527 exit(1);
3528 }
3529 var_tkwredefnode3 = var_nodearraylist2;
3530 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
3531 cltype21 = type_nullable_parser_nodes__TKwredef.color;
3532 idtype22 = type_nullable_parser_nodes__TKwredef.id;
3533 if(var_tkwredefnode3 == NULL) {
3534 var20 = 1;
3535 } else {
3536 if(cltype21 >= var_tkwredefnode3->type->table_size) {
3537 var20 = 0;
3538 } else {
3539 var20 = var_tkwredefnode3->type->type_table[cltype21] == idtype22;
3540 }
3541 }
3542 if (!var20) {
3543 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15412);
3544 exit(1);
3545 }
3546 var_pvisibilitynode4 = var_nodearraylist3;
3547 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
3548 cltype24 = type_nullable_parser_nodes__AVisibility.color;
3549 idtype25 = type_nullable_parser_nodes__AVisibility.id;
3550 if(var_pvisibilitynode4 == NULL) {
3551 var23 = 1;
3552 } else {
3553 if(cltype24 >= var_pvisibilitynode4->type->table_size) {
3554 var23 = 0;
3555 } else {
3556 var23 = var_pvisibilitynode4->type->type_table[cltype24] == idtype25;
3557 }
3558 }
3559 if (!var23) {
3560 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15414);
3561 exit(1);
3562 }
3563 var_pclasskindnode5 = var_nodearraylist4;
3564 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
3565 cltype27 = type_nullable_parser_nodes__AClasskind.color;
3566 idtype28 = type_nullable_parser_nodes__AClasskind.id;
3567 if(var_pclasskindnode5 == NULL) {
3568 var26 = 1;
3569 } else {
3570 if(cltype27 >= var_pclasskindnode5->type->table_size) {
3571 var26 = 0;
3572 } else {
3573 var26 = var_pclasskindnode5->type->type_table[cltype27] == idtype28;
3574 }
3575 }
3576 if (!var26) {
3577 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15416);
3578 exit(1);
3579 }
3580 var_tclassidnode6 = var_nodearraylist8;
3581 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
3582 cltype30 = type_nullable_parser_nodes__TClassid.color;
3583 idtype31 = type_nullable_parser_nodes__TClassid.id;
3584 if(var_tclassidnode6 == NULL) {
3585 var29 = 1;
3586 } else {
3587 if(cltype30 >= var_tclassidnode6->type->table_size) {
3588 var29 = 0;
3589 } else {
3590 var29 = var_tclassidnode6->type->type_table[cltype30] == idtype31;
3591 }
3592 }
3593 if (!var29) {
3594 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15418);
3595 exit(1);
3596 }
3597 var_listnode7 = var_nodearraylist9;
3598 /* <var_listnode7:nullable Object> isa Array[Object] */
3599 cltype33 = type_array__Arraykernel__Object.color;
3600 idtype34 = type_array__Arraykernel__Object.id;
3601 if(var_listnode7 == NULL) {
3602 var32 = 0;
3603 } else {
3604 if(cltype33 >= var_listnode7->type->table_size) {
3605 var32 = 0;
3606 } else {
3607 var32 = var_listnode7->type->type_table[cltype33] == idtype34;
3608 }
3609 }
3610 if (!var32) {
3611 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15420);
3612 exit(1);
3613 }
3614 var35 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode8, var_listnode7) /* concat on <self:ReduceAction327>*/;
3615 var_listnode8 = var35;
3616 var36 = NEW_array__Array(&type_array__Arraykernel__Object);
3617 ((void (*)(val*))(var36->class->vft[COLOR_array__Array__init]))(var36) /* init on <var36:Array[Object]>*/;
3618 CHECK_NEW_array__Array(var36);
3619 var_listnode13 = var36;
3620 var_listnode12 = var_nodearraylist10;
3621 /* <var_listnode12:nullable Object> isa Array[Object] */
3622 cltype38 = type_array__Arraykernel__Object.color;
3623 idtype39 = type_array__Arraykernel__Object.id;
3624 if(var_listnode12 == NULL) {
3625 var37 = 0;
3626 } else {
3627 if(cltype38 >= var_listnode12->type->table_size) {
3628 var37 = 0;
3629 } else {
3630 var37 = var_listnode12->type->type_table[cltype38] == idtype39;
3631 }
3632 }
3633 if (!var37) {
3634 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15424);
3635 exit(1);
3636 }
3637 var40 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode13, var_listnode12) /* concat on <self:ReduceAction327>*/;
3638 var_listnode13 = var40;
3639 var41 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations);
3640 var42 = NULL;
3641 var43 = NULL;
3642 var44 = NULL;
3643 ((void (*)(val*, val*, val*, val*, val*))(var41->class->vft[COLOR_parser_prod__AAnnotations__init_aannotations]))(var41, var42, var43, var_listnode13, var44) /* init_aannotations on <var41:AAnnotations>*/;
3644 CHECK_NEW_parser_nodes__AAnnotations(var41);
3645 var_pannotationsnode9 = var41;
3646 var_pexterncodeblocknode15 = var_nodearraylist11;
3647 /* <var_pexterncodeblocknode15:nullable Object> isa nullable AExternCodeBlock */
3648 cltype46 = type_nullable_parser_nodes__AExternCodeBlock.color;
3649 idtype47 = type_nullable_parser_nodes__AExternCodeBlock.id;
3650 if(var_pexterncodeblocknode15 == NULL) {
3651 var45 = 1;
3652 } else {
3653 if(cltype46 >= var_pexterncodeblocknode15->type->table_size) {
3654 var45 = 0;
3655 } else {
3656 var45 = var_pexterncodeblocknode15->type->type_table[cltype46] == idtype47;
3657 }
3658 }
3659 if (!var45) {
3660 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15433);
3661 exit(1);
3662 }
3663 var_listnode16 = var_nodearraylist12;
3664 /* <var_listnode16:nullable Object> isa Array[Object] */
3665 cltype49 = type_array__Arraykernel__Object.color;
3666 idtype50 = type_array__Arraykernel__Object.id;
3667 if(var_listnode16 == NULL) {
3668 var48 = 0;
3669 } else {
3670 if(cltype49 >= var_listnode16->type->table_size) {
3671 var48 = 0;
3672 } else {
3673 var48 = var_listnode16->type->type_table[cltype49] == idtype50;
3674 }
3675 }
3676 if (!var48) {
3677 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15435);
3678 exit(1);
3679 }
3680 var51 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode17, var_listnode16) /* concat on <self:ReduceAction327>*/;
3681 var_listnode17 = var51;
3682 var_listnode18 = var_nodearraylist13;
3683 /* <var_listnode18:nullable Object> isa Array[Object] */
3684 cltype53 = type_array__Arraykernel__Object.color;
3685 idtype54 = type_array__Arraykernel__Object.id;
3686 if(var_listnode18 == NULL) {
3687 var52 = 0;
3688 } else {
3689 if(cltype53 >= var_listnode18->type->table_size) {
3690 var52 = 0;
3691 } else {
3692 var52 = var_listnode18->type->type_table[cltype53] == idtype54;
3693 }
3694 }
3695 if (!var52) {
3696 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15438);
3697 exit(1);
3698 }
3699 var55 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode19, var_listnode18) /* concat on <self:ReduceAction327>*/;
3700 var_listnode19 = var55;
3701 var_tkwendnode20 = var_nodearraylist15;
3702 /* <var_tkwendnode20:nullable Object> isa nullable TKwend */
3703 cltype57 = type_nullable_parser_nodes__TKwend.color;
3704 idtype58 = type_nullable_parser_nodes__TKwend.id;
3705 if(var_tkwendnode20 == NULL) {
3706 var56 = 1;
3707 } else {
3708 if(cltype57 >= var_tkwendnode20->type->table_size) {
3709 var56 = 0;
3710 } else {
3711 var56 = var_tkwendnode20->type->type_table[cltype57] == idtype58;
3712 }
3713 }
3714 if (!var56) {
3715 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15441);
3716 exit(1);
3717 }
3718 var59 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
3719 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var59->class->vft[COLOR_parser_prod__AStdClassdef__init_astdclassdef]))(var59, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var_pannotationsnode9, var_pexterncodeblocknode15, var_listnode17, var_listnode19, var_tkwendnode20) /* init_astdclassdef on <var59:AStdClassdef>*/;
3720 CHECK_NEW_parser_nodes__AStdClassdef(var59);
3721 var_pclassdefnode1 = var59;
3722 var_node_list = var_pclassdefnode1;
3723 var60 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction327> */
3724 var61 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var60) /* go_to on <var_p:Parser>*/;
3725 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var61, var_node_list) /* push on <var_p:Parser>*/;
3726 RET_LABEL:;
3727 }
3728 /* method parser#ReduceAction327#action for (self: Object, Parser) */
3729 void VIRTUAL_parser__ReduceAction327__action(val* self, val* p0) {
3730 parser__ReduceAction327__action(self, p0);
3731 RET_LABEL:;
3732 }
3733 /* method parser#ReduceAction329#action for (self: ReduceAction329, Parser) */
3734 void parser__ReduceAction329__action(val* self, val* p0) {
3735 val* var_p /* var p: Parser */;
3736 val* var /* : null */;
3737 val* var_node_list /* var node_list: nullable Object */;
3738 val* var1 /* : nullable Object */;
3739 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3740 val* var_tkwclassnode2 /* var tkwclassnode2: nullable Object */;
3741 short int var2 /* : Bool */;
3742 int cltype;
3743 int idtype;
3744 val* var3 /* : AConcreteClasskind */;
3745 val* var_pclasskindnode1 /* var pclasskindnode1: nullable AConcreteClasskind */;
3746 long var4 /* : Int */;
3747 long var5 /* : Int */;
3748 var_p = p0;
3749 var = NULL;
3750 var_node_list = var;
3751 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3752 var_nodearraylist1 = var1;
3753 var_tkwclassnode2 = var_nodearraylist1;
3754 /* <var_tkwclassnode2:nullable Object> isa nullable TKwclass */
3755 cltype = type_nullable_parser_nodes__TKwclass.color;
3756 idtype = type_nullable_parser_nodes__TKwclass.id;
3757 if(var_tkwclassnode2 == NULL) {
3758 var2 = 1;
3759 } else {
3760 if(cltype >= var_tkwclassnode2->type->table_size) {
3761 var2 = 0;
3762 } else {
3763 var2 = var_tkwclassnode2->type->type_table[cltype] == idtype;
3764 }
3765 }
3766 if (!var2) {
3767 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15466);
3768 exit(1);
3769 }
3770 var3 = NEW_parser_nodes__AConcreteClasskind(&type_parser_nodes__AConcreteClasskind);
3771 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AConcreteClasskind__init_aconcreteclasskind]))(var3, var_tkwclassnode2) /* init_aconcreteclasskind on <var3:AConcreteClasskind>*/;
3772 CHECK_NEW_parser_nodes__AConcreteClasskind(var3);
3773 var_pclasskindnode1 = var3;
3774 var_node_list = var_pclasskindnode1;
3775 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction329> */
3776 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
3777 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
3778 RET_LABEL:;
3779 }
3780 /* method parser#ReduceAction329#action for (self: Object, Parser) */
3781 void VIRTUAL_parser__ReduceAction329__action(val* self, val* p0) {
3782 parser__ReduceAction329__action(self, p0);
3783 RET_LABEL:;
3784 }
3785 /* method parser#ReduceAction330#action for (self: ReduceAction330, Parser) */
3786 void parser__ReduceAction330__action(val* self, val* p0) {
3787 val* var_p /* var p: Parser */;
3788 val* var /* : null */;
3789 val* var_node_list /* var node_list: nullable Object */;
3790 val* var1 /* : nullable Object */;
3791 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3792 val* var2 /* : nullable Object */;
3793 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3794 val* var_tkwabstractnode2 /* var tkwabstractnode2: nullable Object */;
3795 short int var3 /* : Bool */;
3796 int cltype;
3797 int idtype;
3798 val* var_tkwclassnode3 /* var tkwclassnode3: nullable Object */;
3799 short int var4 /* : Bool */;
3800 int cltype5;
3801 int idtype6;
3802 val* var7 /* : AAbstractClasskind */;
3803 val* var_pclasskindnode1 /* var pclasskindnode1: nullable AAbstractClasskind */;
3804 long var8 /* : Int */;
3805 long var9 /* : Int */;
3806 var_p = p0;
3807 var = NULL;
3808 var_node_list = var;
3809 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3810 var_nodearraylist2 = var1;
3811 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3812 var_nodearraylist1 = var2;
3813 var_tkwabstractnode2 = var_nodearraylist1;
3814 /* <var_tkwabstractnode2:nullable Object> isa nullable TKwabstract */
3815 cltype = type_nullable_parser_nodes__TKwabstract.color;
3816 idtype = type_nullable_parser_nodes__TKwabstract.id;
3817 if(var_tkwabstractnode2 == NULL) {
3818 var3 = 1;
3819 } else {
3820 if(cltype >= var_tkwabstractnode2->type->table_size) {
3821 var3 = 0;
3822 } else {
3823 var3 = var_tkwabstractnode2->type->type_table[cltype] == idtype;
3824 }
3825 }
3826 if (!var3) {
3827 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15482);
3828 exit(1);
3829 }
3830 var_tkwclassnode3 = var_nodearraylist2;
3831 /* <var_tkwclassnode3:nullable Object> isa nullable TKwclass */
3832 cltype5 = type_nullable_parser_nodes__TKwclass.color;
3833 idtype6 = type_nullable_parser_nodes__TKwclass.id;
3834 if(var_tkwclassnode3 == NULL) {
3835 var4 = 1;
3836 } else {
3837 if(cltype5 >= var_tkwclassnode3->type->table_size) {
3838 var4 = 0;
3839 } else {
3840 var4 = var_tkwclassnode3->type->type_table[cltype5] == idtype6;
3841 }
3842 }
3843 if (!var4) {
3844 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15484);
3845 exit(1);
3846 }
3847 var7 = NEW_parser_nodes__AAbstractClasskind(&type_parser_nodes__AAbstractClasskind);
3848 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AAbstractClasskind__init_aabstractclasskind]))(var7, var_tkwabstractnode2, var_tkwclassnode3) /* init_aabstractclasskind on <var7:AAbstractClasskind>*/;
3849 CHECK_NEW_parser_nodes__AAbstractClasskind(var7);
3850 var_pclasskindnode1 = var7;
3851 var_node_list = var_pclasskindnode1;
3852 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction330> */
3853 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
3854 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
3855 RET_LABEL:;
3856 }
3857 /* method parser#ReduceAction330#action for (self: Object, Parser) */
3858 void VIRTUAL_parser__ReduceAction330__action(val* self, val* p0) {
3859 parser__ReduceAction330__action(self, p0);
3860 RET_LABEL:;
3861 }
3862 /* method parser#ReduceAction331#action for (self: ReduceAction331, Parser) */
3863 void parser__ReduceAction331__action(val* self, val* p0) {
3864 val* var_p /* var p: Parser */;
3865 val* var /* : null */;
3866 val* var_node_list /* var node_list: nullable Object */;
3867 val* var1 /* : nullable Object */;
3868 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3869 val* var_tkwinterfacenode2 /* var tkwinterfacenode2: nullable Object */;
3870 short int var2 /* : Bool */;
3871 int cltype;
3872 int idtype;
3873 val* var3 /* : AInterfaceClasskind */;
3874 val* var_pclasskindnode1 /* var pclasskindnode1: nullable AInterfaceClasskind */;
3875 long var4 /* : Int */;
3876 long var5 /* : Int */;
3877 var_p = p0;
3878 var = NULL;
3879 var_node_list = var;
3880 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3881 var_nodearraylist1 = var1;
3882 var_tkwinterfacenode2 = var_nodearraylist1;
3883 /* <var_tkwinterfacenode2:nullable Object> isa nullable TKwinterface */
3884 cltype = type_nullable_parser_nodes__TKwinterface.color;
3885 idtype = type_nullable_parser_nodes__TKwinterface.id;
3886 if(var_tkwinterfacenode2 == NULL) {
3887 var2 = 1;
3888 } else {
3889 if(cltype >= var_tkwinterfacenode2->type->table_size) {
3890 var2 = 0;
3891 } else {
3892 var2 = var_tkwinterfacenode2->type->type_table[cltype] == idtype;
3893 }
3894 }
3895 if (!var2) {
3896 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15500);
3897 exit(1);
3898 }
3899 var3 = NEW_parser_nodes__AInterfaceClasskind(&type_parser_nodes__AInterfaceClasskind);
3900 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AInterfaceClasskind__init_ainterfaceclasskind]))(var3, var_tkwinterfacenode2) /* init_ainterfaceclasskind on <var3:AInterfaceClasskind>*/;
3901 CHECK_NEW_parser_nodes__AInterfaceClasskind(var3);
3902 var_pclasskindnode1 = var3;
3903 var_node_list = var_pclasskindnode1;
3904 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction331> */
3905 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
3906 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
3907 RET_LABEL:;
3908 }
3909 /* method parser#ReduceAction331#action for (self: Object, Parser) */
3910 void VIRTUAL_parser__ReduceAction331__action(val* self, val* p0) {
3911 parser__ReduceAction331__action(self, p0);
3912 RET_LABEL:;
3913 }
3914 /* method parser#ReduceAction332#action for (self: ReduceAction332, Parser) */
3915 void parser__ReduceAction332__action(val* self, val* p0) {
3916 val* var_p /* var p: Parser */;
3917 val* var /* : null */;
3918 val* var_node_list /* var node_list: nullable Object */;
3919 val* var1 /* : nullable Object */;
3920 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3921 val* var_tkwenumnode2 /* var tkwenumnode2: nullable Object */;
3922 short int var2 /* : Bool */;
3923 int cltype;
3924 int idtype;
3925 val* var3 /* : AEnumClasskind */;
3926 val* var_pclasskindnode1 /* var pclasskindnode1: nullable AEnumClasskind */;
3927 long var4 /* : Int */;
3928 long var5 /* : Int */;
3929 var_p = p0;
3930 var = NULL;
3931 var_node_list = var;
3932 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3933 var_nodearraylist1 = var1;
3934 var_tkwenumnode2 = var_nodearraylist1;
3935 /* <var_tkwenumnode2:nullable Object> isa nullable TKwenum */
3936 cltype = type_nullable_parser_nodes__TKwenum.color;
3937 idtype = type_nullable_parser_nodes__TKwenum.id;
3938 if(var_tkwenumnode2 == NULL) {
3939 var2 = 1;
3940 } else {
3941 if(cltype >= var_tkwenumnode2->type->table_size) {
3942 var2 = 0;
3943 } else {
3944 var2 = var_tkwenumnode2->type->type_table[cltype] == idtype;
3945 }
3946 }
3947 if (!var2) {
3948 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15515);
3949 exit(1);
3950 }
3951 var3 = NEW_parser_nodes__AEnumClasskind(&type_parser_nodes__AEnumClasskind);
3952 ((void (*)(val*, val*))(var3->class->vft[COLOR_parser_prod__AEnumClasskind__init_aenumclasskind]))(var3, var_tkwenumnode2) /* init_aenumclasskind on <var3:AEnumClasskind>*/;
3953 CHECK_NEW_parser_nodes__AEnumClasskind(var3);
3954 var_pclasskindnode1 = var3;
3955 var_node_list = var_pclasskindnode1;
3956 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction332> */
3957 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
3958 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
3959 RET_LABEL:;
3960 }
3961 /* method parser#ReduceAction332#action for (self: Object, Parser) */
3962 void VIRTUAL_parser__ReduceAction332__action(val* self, val* p0) {
3963 parser__ReduceAction332__action(self, p0);
3964 RET_LABEL:;
3965 }
3966 /* method parser#ReduceAction333#action for (self: ReduceAction333, Parser) */
3967 void parser__ReduceAction333__action(val* self, val* p0) {
3968 val* var_p /* var p: Parser */;
3969 val* var /* : null */;
3970 val* var_node_list /* var node_list: nullable Object */;
3971 val* var1 /* : nullable Object */;
3972 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3973 val* var_tkwexternnode2 /* var tkwexternnode2: nullable Object */;
3974 short int var2 /* : Bool */;
3975 int cltype;
3976 int idtype;
3977 val* var3 /* : AExternClasskind */;
3978 val* var4 /* : null */;
3979 val* var_pclasskindnode1 /* var pclasskindnode1: nullable AExternClasskind */;
3980 long var5 /* : Int */;
3981 long var6 /* : Int */;
3982 var_p = p0;
3983 var = NULL;
3984 var_node_list = var;
3985 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3986 var_nodearraylist1 = var1;
3987 var_tkwexternnode2 = var_nodearraylist1;
3988 /* <var_tkwexternnode2:nullable Object> isa nullable TKwextern */
3989 cltype = type_nullable_parser_nodes__TKwextern.color;
3990 idtype = type_nullable_parser_nodes__TKwextern.id;
3991 if(var_tkwexternnode2 == NULL) {
3992 var2 = 1;
3993 } else {
3994 if(cltype >= var_tkwexternnode2->type->table_size) {
3995 var2 = 0;
3996 } else {
3997 var2 = var_tkwexternnode2->type->type_table[cltype] == idtype;
3998 }
3999 }
4000 if (!var2) {
4001 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15530);
4002 exit(1);
4003 }
4004 var3 = NEW_parser_nodes__AExternClasskind(&type_parser_nodes__AExternClasskind);
4005 var4 = NULL;
4006 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AExternClasskind__init_aexternclasskind]))(var3, var_tkwexternnode2, var4) /* init_aexternclasskind on <var3:AExternClasskind>*/;
4007 CHECK_NEW_parser_nodes__AExternClasskind(var3);
4008 var_pclasskindnode1 = var3;
4009 var_node_list = var_pclasskindnode1;
4010 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction333> */
4011 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
4012 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
4013 RET_LABEL:;
4014 }
4015 /* method parser#ReduceAction333#action for (self: Object, Parser) */
4016 void VIRTUAL_parser__ReduceAction333__action(val* self, val* p0) {
4017 parser__ReduceAction333__action(self, p0);
4018 RET_LABEL:;
4019 }
4020 /* method parser#ReduceAction334#action for (self: ReduceAction334, Parser) */
4021 void parser__ReduceAction334__action(val* self, val* p0) {
4022 val* var_p /* var p: Parser */;
4023 val* var /* : null */;
4024 val* var_node_list /* var node_list: nullable Object */;
4025 val* var1 /* : nullable Object */;
4026 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4027 val* var2 /* : nullable Object */;
4028 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4029 val* var_tkwexternnode2 /* var tkwexternnode2: nullable Object */;
4030 short int var3 /* : Bool */;
4031 int cltype;
4032 int idtype;
4033 val* var_tkwclassnode3 /* var tkwclassnode3: nullable Object */;
4034 short int var4 /* : Bool */;
4035 int cltype5;
4036 int idtype6;
4037 val* var7 /* : AExternClasskind */;
4038 val* var_pclasskindnode1 /* var pclasskindnode1: nullable AExternClasskind */;
4039 long var8 /* : Int */;
4040 long var9 /* : Int */;
4041 var_p = p0;
4042 var = NULL;
4043 var_node_list = var;
4044 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4045 var_nodearraylist2 = var1;
4046 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4047 var_nodearraylist1 = var2;
4048 var_tkwexternnode2 = var_nodearraylist1;
4049 /* <var_tkwexternnode2:nullable Object> isa nullable TKwextern */
4050 cltype = type_nullable_parser_nodes__TKwextern.color;
4051 idtype = type_nullable_parser_nodes__TKwextern.id;
4052 if(var_tkwexternnode2 == NULL) {
4053 var3 = 1;
4054 } else {
4055 if(cltype >= var_tkwexternnode2->type->table_size) {
4056 var3 = 0;
4057 } else {
4058 var3 = var_tkwexternnode2->type->type_table[cltype] == idtype;
4059 }
4060 }
4061 if (!var3) {
4062 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15547);
4063 exit(1);
4064 }
4065 var_tkwclassnode3 = var_nodearraylist2;
4066 /* <var_tkwclassnode3:nullable Object> isa nullable TKwclass */
4067 cltype5 = type_nullable_parser_nodes__TKwclass.color;
4068 idtype6 = type_nullable_parser_nodes__TKwclass.id;
4069 if(var_tkwclassnode3 == NULL) {
4070 var4 = 1;
4071 } else {
4072 if(cltype5 >= var_tkwclassnode3->type->table_size) {
4073 var4 = 0;
4074 } else {
4075 var4 = var_tkwclassnode3->type->type_table[cltype5] == idtype6;
4076 }
4077 }
4078 if (!var4) {
4079 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15549);
4080 exit(1);
4081 }
4082 var7 = NEW_parser_nodes__AExternClasskind(&type_parser_nodes__AExternClasskind);
4083 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AExternClasskind__init_aexternclasskind]))(var7, var_tkwexternnode2, var_tkwclassnode3) /* init_aexternclasskind on <var7:AExternClasskind>*/;
4084 CHECK_NEW_parser_nodes__AExternClasskind(var7);
4085 var_pclasskindnode1 = var7;
4086 var_node_list = var_pclasskindnode1;
4087 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction334> */
4088 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
4089 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
4090 RET_LABEL:;
4091 }
4092 /* method parser#ReduceAction334#action for (self: Object, Parser) */
4093 void VIRTUAL_parser__ReduceAction334__action(val* self, val* p0) {
4094 parser__ReduceAction334__action(self, p0);
4095 RET_LABEL:;
4096 }
4097 /* method parser#ReduceAction335#action for (self: ReduceAction335, Parser) */
4098 void parser__ReduceAction335__action(val* self, val* p0) {
4099 val* var_p /* var p: Parser */;
4100 val* var /* : null */;
4101 val* var_node_list /* var node_list: nullable Object */;
4102 val* var1 /* : nullable Object */;
4103 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4104 val* var2 /* : nullable Object */;
4105 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4106 val* var3 /* : nullable Object */;
4107 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4108 val* var4 /* : nullable Object */;
4109 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4110 val* var5 /* : nullable Object */;
4111 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4112 val* var6 /* : Array[Object] */;
4113 val* var_listnode2 /* var listnode2: Array[Object] */;
4114 val* var_pformaldefnode1 /* var pformaldefnode1: nullable Object */;
4115 val* var7 /* : null */;
4116 short int var8 /* : Bool */;
4117 long var9 /* : Int */;
4118 long var10 /* : Int */;
4119 var_p = p0;
4120 var = NULL;
4121 var_node_list = var;
4122 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4123 var_nodearraylist5 = var1;
4124 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4125 var_nodearraylist4 = var2;
4126 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4127 var_nodearraylist3 = var3;
4128 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4129 var_nodearraylist2 = var4;
4130 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4131 var_nodearraylist1 = var5;
4132 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
4133 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Object]>*/;
4134 CHECK_NEW_array__Array(var6);
4135 var_listnode2 = var6;
4136 var_pformaldefnode1 = var_nodearraylist3;
4137 var7 = NULL;
4138 if (var_pformaldefnode1 == NULL) {
4139 var8 = 0; /* is null */
4140 } else {
4141 var8 = 1; /* arg is null and recv is not */
4142 }
4143 if (var8){
4144 ((void (*)(val*, val*))(var_listnode2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode2, var_pformaldefnode1) /* add on <var_listnode2:Array[Object]>*/;
4145 } else {
4146 }
4147 var_node_list = var_listnode2;
4148 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction335> */
4149 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
4150 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
4151 RET_LABEL:;
4152 }
4153 /* method parser#ReduceAction335#action for (self: Object, Parser) */
4154 void VIRTUAL_parser__ReduceAction335__action(val* self, val* p0) {
4155 parser__ReduceAction335__action(self, p0);
4156 RET_LABEL:;
4157 }
4158 /* method parser#ReduceAction336#action for (self: ReduceAction336, Parser) */
4159 void parser__ReduceAction336__action(val* self, val* p0) {
4160 val* var_p /* var p: Parser */;
4161 val* var /* : null */;
4162 val* var_node_list /* var node_list: nullable Object */;
4163 val* var1 /* : nullable Object */;
4164 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4165 val* var2 /* : nullable Object */;
4166 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4167 val* var3 /* : nullable Object */;
4168 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4169 val* var4 /* : nullable Object */;
4170 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4171 val* var5 /* : nullable Object */;
4172 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4173 val* var6 /* : nullable Object */;
4174 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4175 val* var7 /* : Array[Object] */;
4176 val* var_listnode3 /* var listnode3: Array[Object] */;
4177 val* var_pformaldefnode1 /* var pformaldefnode1: nullable Object */;
4178 val* var_listnode2 /* var listnode2: nullable Object */;
4179 short int var8 /* : Bool */;
4180 int cltype;
4181 int idtype;
4182 val* var9 /* : null */;
4183 short int var10 /* : Bool */;
4184 val* var11 /* : Array[Object] */;
4185 long var12 /* : Int */;
4186 long var13 /* : Int */;
4187 var_p = p0;
4188 var = NULL;
4189 var_node_list = var;
4190 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4191 var_nodearraylist6 = var1;
4192 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4193 var_nodearraylist5 = var2;
4194 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4195 var_nodearraylist4 = var3;
4196 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4197 var_nodearraylist3 = var4;
4198 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4199 var_nodearraylist2 = var5;
4200 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4201 var_nodearraylist1 = var6;
4202 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
4203 ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[Object]>*/;
4204 CHECK_NEW_array__Array(var7);
4205 var_listnode3 = var7;
4206 var_pformaldefnode1 = var_nodearraylist3;
4207 var_listnode2 = var_nodearraylist4;
4208 /* <var_listnode2:nullable Object> isa Array[Object] */
4209 cltype = type_array__Arraykernel__Object.color;
4210 idtype = type_array__Arraykernel__Object.id;
4211 if(var_listnode2 == NULL) {
4212 var8 = 0;
4213 } else {
4214 if(cltype >= var_listnode2->type->table_size) {
4215 var8 = 0;
4216 } else {
4217 var8 = var_listnode2->type->type_table[cltype] == idtype;
4218 }
4219 }
4220 if (!var8) {
4221 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15591);
4222 exit(1);
4223 }
4224 var9 = NULL;
4225 if (var_pformaldefnode1 == NULL) {
4226 var10 = 0; /* is null */
4227 } else {
4228 var10 = 1; /* arg is null and recv is not */
4229 }
4230 if (var10){
4231 ((void (*)(val*, val*))(var_listnode3->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_listnode3, var_pformaldefnode1) /* add on <var_listnode3:Array[Object]>*/;
4232 } else {
4233 }
4234 var11 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_parser__ReduceAction__concat]))(self, var_listnode3, var_listnode2) /* concat on <self:ReduceAction336>*/;
4235 var_listnode3 = var11;
4236 var_node_list = var_listnode3;
4237 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction336> */
4238 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
4239 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
4240 RET_LABEL:;
4241 }
4242 /* method parser#ReduceAction336#action for (self: Object, Parser) */
4243 void VIRTUAL_parser__ReduceAction336__action(val* self, val* p0) {
4244 parser__ReduceAction336__action(self, p0);
4245 RET_LABEL:;
4246 }
4247 /* method parser#ReduceAction337#action for (self: ReduceAction337, Parser) */
4248 void parser__ReduceAction337__action(val* self, val* p0) {
4249 val* var_p /* var p: Parser */;
4250 val* var /* : null */;
4251 val* var_node_list /* var node_list: nullable Object */;
4252 val* var1 /* : nullable Object */;
4253 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4254 val* var2 /* : nullable Object */;
4255 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4256 val* var3 /* : nullable Object */;
4257 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4258 val* var_pformaldefnode1 /* var pformaldefnode1: nullable Object */;
4259 long var4 /* : Int */;
4260 long var5 /* : Int */;
4261 var_p = p0;
4262 var = NULL;
4263 var_node_list = var;
4264 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4265 var_nodearraylist3 = var1;
4266 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4267 var_nodearraylist2 = var2;
4268 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4269 var_nodearraylist1 = var3;
4270 var_pformaldefnode1 = var_nodearraylist3;
4271 var_node_list = var_pformaldefnode1;
4272 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction337> */
4273 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
4274 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
4275 RET_LABEL:;
4276 }
4277 /* method parser#ReduceAction337#action for (self: Object, Parser) */
4278 void VIRTUAL_parser__ReduceAction337__action(val* self, val* p0) {
4279 parser__ReduceAction337__action(self, p0);
4280 RET_LABEL:;
4281 }
4282 /* method parser#ReduceAction338#action for (self: ReduceAction338, Parser) */
4283 void parser__ReduceAction338__action(val* self, val* p0) {
4284 val* var_p /* var p: Parser */;
4285 val* var /* : null */;
4286 val* var_node_list /* var node_list: nullable Object */;
4287 val* var1 /* : nullable Object */;
4288 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4289 val* var_tclassidnode2 /* var tclassidnode2: nullable Object */;
4290 short int var2 /* : Bool */;
4291 int cltype;
4292 int idtype;
4293 val* var3 /* : AFormaldef */;
4294 val* var4 /* : null */;
4295 val* var5 /* : null */;
4296 val* var_pformaldefnode1 /* var pformaldefnode1: nullable AFormaldef */;
4297 long var6 /* : Int */;
4298 long var7 /* : Int */;
4299 var_p = p0;
4300 var = NULL;
4301 var_node_list = var;
4302 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4303 var_nodearraylist1 = var1;
4304 var_tclassidnode2 = var_nodearraylist1;
4305 /* <var_tclassidnode2:nullable Object> isa nullable TClassid */
4306 cltype = type_nullable_parser_nodes__TClassid.color;
4307 idtype = type_nullable_parser_nodes__TClassid.id;
4308 if(var_tclassidnode2 == NULL) {
4309 var2 = 1;
4310 } else {
4311 if(cltype >= var_tclassidnode2->type->table_size) {
4312 var2 = 0;
4313 } else {
4314 var2 = var_tclassidnode2->type->type_table[cltype] == idtype;
4315 }
4316 }
4317 if (!var2) {
4318 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15620);
4319 exit(1);
4320 }
4321 var3 = NEW_parser_nodes__AFormaldef(&type_parser_nodes__AFormaldef);
4322 var4 = NULL;
4323 var5 = NULL;
4324 ((void (*)(val*, val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AFormaldef__init_aformaldef]))(var3, var_tclassidnode2, var4, var5) /* init_aformaldef on <var3:AFormaldef>*/;
4325 CHECK_NEW_parser_nodes__AFormaldef(var3);
4326 var_pformaldefnode1 = var3;
4327 var_node_list = var_pformaldefnode1;
4328 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction338> */
4329 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
4330 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
4331 RET_LABEL:;
4332 }
4333 /* method parser#ReduceAction338#action for (self: Object, Parser) */
4334 void VIRTUAL_parser__ReduceAction338__action(val* self, val* p0) {
4335 parser__ReduceAction338__action(self, p0);
4336 RET_LABEL:;
4337 }
4338 /* method parser#ReduceAction339#action for (self: ReduceAction339, Parser) */
4339 void parser__ReduceAction339__action(val* self, val* p0) {
4340 val* var_p /* var p: Parser */;
4341 val* var /* : null */;
4342 val* var_node_list /* var node_list: nullable Object */;
4343 val* var1 /* : nullable Object */;
4344 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4345 val* var2 /* : nullable Object */;
4346 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4347 val* var_tclassidnode2 /* var tclassidnode2: nullable Object */;
4348 short int var3 /* : Bool */;
4349 int cltype;
4350 int idtype;
4351 val* var_pannotationsnode4 /* var pannotationsnode4: nullable Object */;
4352 short int var4 /* : Bool */;
4353 int cltype5;
4354 int idtype6;
4355 val* var7 /* : AFormaldef */;
4356 val* var8 /* : null */;
4357 val* var_pformaldefnode1 /* var pformaldefnode1: nullable AFormaldef */;
4358 long var9 /* : Int */;
4359 long var10 /* : Int */;
4360 var_p = p0;
4361 var = NULL;
4362 var_node_list = var;
4363 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4364 var_nodearraylist2 = var1;
4365 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4366 var_nodearraylist1 = var2;
4367 var_tclassidnode2 = var_nodearraylist1;
4368 /* <var_tclassidnode2:nullable Object> isa nullable TClassid */
4369 cltype = type_nullable_parser_nodes__TClassid.color;
4370 idtype = type_nullable_parser_nodes__TClassid.id;
4371 if(var_tclassidnode2 == NULL) {
4372 var3 = 1;
4373 } else {
4374 if(cltype >= var_tclassidnode2->type->table_size) {
4375 var3 = 0;
4376 } else {
4377 var3 = var_tclassidnode2->type->type_table[cltype] == idtype;
4378 }
4379 }
4380 if (!var3) {
4381 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15638);
4382 exit(1);
4383 }
4384 var_pannotationsnode4 = var_nodearraylist2;
4385 /* <var_pannotationsnode4:nullable Object> isa nullable AAnnotations */
4386 cltype5 = type_nullable_parser_nodes__AAnnotations.color;
4387 idtype6 = type_nullable_parser_nodes__AAnnotations.id;
4388 if(var_pannotationsnode4 == NULL) {
4389 var4 = 1;
4390 } else {
4391 if(cltype5 >= var_pannotationsnode4->type->table_size) {
4392 var4 = 0;
4393 } else {
4394 var4 = var_pannotationsnode4->type->type_table[cltype5] == idtype6;
4395 }
4396 }
4397 if (!var4) {
4398 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15640);
4399 exit(1);
4400 }
4401 var7 = NEW_parser_nodes__AFormaldef(&type_parser_nodes__AFormaldef);
4402 var8 = NULL;
4403 ((void (*)(val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AFormaldef__init_aformaldef]))(var7, var_tclassidnode2, var8, var_pannotationsnode4) /* init_aformaldef on <var7:AFormaldef>*/;
4404 CHECK_NEW_parser_nodes__AFormaldef(var7);
4405 var_pformaldefnode1 = var7;
4406 var_node_list = var_pformaldefnode1;
4407 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction339> */
4408 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
4409 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
4410 RET_LABEL:;
4411 }
4412 /* method parser#ReduceAction339#action for (self: Object, Parser) */
4413 void VIRTUAL_parser__ReduceAction339__action(val* self, val* p0) {
4414 parser__ReduceAction339__action(self, p0);
4415 RET_LABEL:;
4416 }
4417 /* method parser#ReduceAction340#action for (self: ReduceAction340, Parser) */
4418 void parser__ReduceAction340__action(val* self, val* p0) {
4419 val* var_p /* var p: Parser */;
4420 val* var /* : null */;
4421 val* var_node_list /* var node_list: nullable Object */;
4422 val* var1 /* : nullable Object */;
4423 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4424 val* var2 /* : nullable Object */;
4425 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4426 val* var_tclassidnode2 /* var tclassidnode2: nullable Object */;
4427 short int var3 /* : Bool */;
4428 int cltype;
4429 int idtype;
4430 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
4431 short int var4 /* : Bool */;
4432 int cltype5;
4433 int idtype6;
4434 val* var7 /* : AFormaldef */;
4435 val* var8 /* : null */;
4436 val* var_pformaldefnode1 /* var pformaldefnode1: nullable AFormaldef */;
4437 long var9 /* : Int */;
4438 long var10 /* : Int */;
4439 var_p = p0;
4440 var = NULL;
4441 var_node_list = var;
4442 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4443 var_nodearraylist2 = var1;
4444 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4445 var_nodearraylist1 = var2;
4446 var_tclassidnode2 = var_nodearraylist1;
4447 /* <var_tclassidnode2:nullable Object> isa nullable TClassid */
4448 cltype = type_nullable_parser_nodes__TClassid.color;
4449 idtype = type_nullable_parser_nodes__TClassid.id;
4450 if(var_tclassidnode2 == NULL) {
4451 var3 = 1;
4452 } else {
4453 if(cltype >= var_tclassidnode2->type->table_size) {
4454 var3 = 0;
4455 } else {
4456 var3 = var_tclassidnode2->type->type_table[cltype] == idtype;
4457 }
4458 }
4459 if (!var3) {
4460 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15658);
4461 exit(1);
4462 }
4463 var_ptypenode3 = var_nodearraylist2;
4464 /* <var_ptypenode3:nullable Object> isa nullable AType */
4465 cltype5 = type_nullable_parser_nodes__AType.color;
4466 idtype6 = type_nullable_parser_nodes__AType.id;
4467 if(var_ptypenode3 == NULL) {
4468 var4 = 1;
4469 } else {
4470 if(cltype5 >= var_ptypenode3->type->table_size) {
4471 var4 = 0;
4472 } else {
4473 var4 = var_ptypenode3->type->type_table[cltype5] == idtype6;
4474 }
4475 }
4476 if (!var4) {
4477 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15660);
4478 exit(1);
4479 }
4480 var7 = NEW_parser_nodes__AFormaldef(&type_parser_nodes__AFormaldef);
4481 var8 = NULL;
4482 ((void (*)(val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AFormaldef__init_aformaldef]))(var7, var_tclassidnode2, var_ptypenode3, var8) /* init_aformaldef on <var7:AFormaldef>*/;
4483 CHECK_NEW_parser_nodes__AFormaldef(var7);
4484 var_pformaldefnode1 = var7;
4485 var_node_list = var_pformaldefnode1;
4486 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction340> */
4487 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
4488 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
4489 RET_LABEL:;
4490 }
4491 /* method parser#ReduceAction340#action for (self: Object, Parser) */
4492 void VIRTUAL_parser__ReduceAction340__action(val* self, val* p0) {
4493 parser__ReduceAction340__action(self, p0);
4494 RET_LABEL:;
4495 }
4496 /* method parser#ReduceAction341#action for (self: ReduceAction341, Parser) */
4497 void parser__ReduceAction341__action(val* self, val* p0) {
4498 val* var_p /* var p: Parser */;
4499 val* var /* : null */;
4500 val* var_node_list /* var node_list: nullable Object */;
4501 val* var1 /* : nullable Object */;
4502 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4503 val* var2 /* : nullable Object */;
4504 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4505 val* var3 /* : nullable Object */;
4506 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4507 val* var_tclassidnode2 /* var tclassidnode2: nullable Object */;
4508 short int var4 /* : Bool */;
4509 int cltype;
4510 int idtype;
4511 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
4512 short int var5 /* : Bool */;
4513 int cltype6;
4514 int idtype7;
4515 val* var_pannotationsnode4 /* var pannotationsnode4: nullable Object */;
4516 short int var8 /* : Bool */;
4517 int cltype9;
4518 int idtype10;
4519 val* var11 /* : AFormaldef */;
4520 val* var_pformaldefnode1 /* var pformaldefnode1: nullable AFormaldef */;
4521 long var12 /* : Int */;
4522 long var13 /* : Int */;
4523 var_p = p0;
4524 var = NULL;
4525 var_node_list = var;
4526 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4527 var_nodearraylist3 = var1;
4528 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4529 var_nodearraylist2 = var2;
4530 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4531 var_nodearraylist1 = var3;
4532 var_tclassidnode2 = var_nodearraylist1;
4533 /* <var_tclassidnode2:nullable Object> isa nullable TClassid */
4534 cltype = type_nullable_parser_nodes__TClassid.color;
4535 idtype = type_nullable_parser_nodes__TClassid.id;
4536 if(var_tclassidnode2 == NULL) {
4537 var4 = 1;
4538 } else {
4539 if(cltype >= var_tclassidnode2->type->table_size) {
4540 var4 = 0;
4541 } else {
4542 var4 = var_tclassidnode2->type->type_table[cltype] == idtype;
4543 }
4544 }
4545 if (!var4) {
4546 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15679);
4547 exit(1);
4548 }
4549 var_ptypenode3 = var_nodearraylist3;
4550 /* <var_ptypenode3:nullable Object> isa nullable AType */
4551 cltype6 = type_nullable_parser_nodes__AType.color;
4552 idtype7 = type_nullable_parser_nodes__AType.id;
4553 if(var_ptypenode3 == NULL) {
4554 var5 = 1;
4555 } else {
4556 if(cltype6 >= var_ptypenode3->type->table_size) {
4557 var5 = 0;
4558 } else {
4559 var5 = var_ptypenode3->type->type_table[cltype6] == idtype7;
4560 }
4561 }
4562 if (!var5) {
4563 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15681);
4564 exit(1);
4565 }
4566 var_pannotationsnode4 = var_nodearraylist2;
4567 /* <var_pannotationsnode4:nullable Object> isa nullable AAnnotations */
4568 cltype9 = type_nullable_parser_nodes__AAnnotations.color;
4569 idtype10 = type_nullable_parser_nodes__AAnnotations.id;
4570 if(var_pannotationsnode4 == NULL) {
4571 var8 = 1;
4572 } else {
4573 if(cltype9 >= var_pannotationsnode4->type->table_size) {
4574 var8 = 0;
4575 } else {
4576 var8 = var_pannotationsnode4->type->type_table[cltype9] == idtype10;
4577 }
4578 }
4579 if (!var8) {
4580 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15683);
4581 exit(1);
4582 }
4583 var11 = NEW_parser_nodes__AFormaldef(&type_parser_nodes__AFormaldef);
4584 ((void (*)(val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AFormaldef__init_aformaldef]))(var11, var_tclassidnode2, var_ptypenode3, var_pannotationsnode4) /* init_aformaldef on <var11:AFormaldef>*/;
4585 CHECK_NEW_parser_nodes__AFormaldef(var11);
4586 var_pformaldefnode1 = var11;
4587 var_node_list = var_pformaldefnode1;
4588 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction341> */
4589 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
4590 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
4591 RET_LABEL:;
4592 }
4593 /* method parser#ReduceAction341#action for (self: Object, Parser) */
4594 void VIRTUAL_parser__ReduceAction341__action(val* self, val* p0) {
4595 parser__ReduceAction341__action(self, p0);
4596 RET_LABEL:;
4597 }
4598 /* method parser#ReduceAction342#action for (self: ReduceAction342, Parser) */
4599 void parser__ReduceAction342__action(val* self, val* p0) {
4600 val* var_p /* var p: Parser */;
4601 val* var /* : null */;
4602 val* var_node_list /* var node_list: nullable Object */;
4603 val* var1 /* : nullable Object */;
4604 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4605 val* var2 /* : nullable Object */;
4606 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4607 val* var3 /* : nullable Object */;
4608 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4609 val* var4 /* : nullable Object */;
4610 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4611 val* var_tkwsupernode2 /* var tkwsupernode2: nullable Object */;
4612 short int var5 /* : Bool */;
4613 int cltype;
4614 int idtype;
4615 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
4616 short int var6 /* : Bool */;
4617 int cltype7;
4618 int idtype8;
4619 val* var9 /* : ASuperclass */;
4620 val* var10 /* : null */;
4621 val* var_psuperclassnode1 /* var psuperclassnode1: nullable ASuperclass */;
4622 long var11 /* : Int */;
4623 long var12 /* : Int */;
4624 var_p = p0;
4625 var = NULL;
4626 var_node_list = var;
4627 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4628 var_nodearraylist4 = var1;
4629 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4630 var_nodearraylist3 = var2;
4631 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4632 var_nodearraylist2 = var3;
4633 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4634 var_nodearraylist1 = var4;
4635 var_tkwsupernode2 = var_nodearraylist2;
4636 /* <var_tkwsupernode2:nullable Object> isa nullable TKwsuper */
4637 cltype = type_nullable_parser_nodes__TKwsuper.color;
4638 idtype = type_nullable_parser_nodes__TKwsuper.id;
4639 if(var_tkwsupernode2 == NULL) {
4640 var5 = 1;
4641 } else {
4642 if(cltype >= var_tkwsupernode2->type->table_size) {
4643 var5 = 0;
4644 } else {
4645 var5 = var_tkwsupernode2->type->type_table[cltype] == idtype;
4646 }
4647 }
4648 if (!var5) {
4649 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15703);
4650 exit(1);
4651 }
4652 var_ptypenode3 = var_nodearraylist4;
4653 /* <var_ptypenode3:nullable Object> isa nullable AType */
4654 cltype7 = type_nullable_parser_nodes__AType.color;
4655 idtype8 = type_nullable_parser_nodes__AType.id;
4656 if(var_ptypenode3 == NULL) {
4657 var6 = 1;
4658 } else {
4659 if(cltype7 >= var_ptypenode3->type->table_size) {
4660 var6 = 0;
4661 } else {
4662 var6 = var_ptypenode3->type->type_table[cltype7] == idtype8;
4663 }
4664 }
4665 if (!var6) {
4666 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15705);
4667 exit(1);
4668 }
4669 var9 = NEW_parser_nodes__ASuperclass(&type_parser_nodes__ASuperclass);
4670 var10 = NULL;
4671 ((void (*)(val*, val*, val*, val*))(var9->class->vft[COLOR_parser_prod__ASuperclass__init_asuperclass]))(var9, var_tkwsupernode2, var_ptypenode3, var10) /* init_asuperclass on <var9:ASuperclass>*/;
4672 CHECK_NEW_parser_nodes__ASuperclass(var9);
4673 var_psuperclassnode1 = var9;
4674 var_node_list = var_psuperclassnode1;
4675 var11 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction342> */
4676 var12 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var11) /* go_to on <var_p:Parser>*/;
4677 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var12, var_node_list) /* push on <var_p:Parser>*/;
4678 RET_LABEL:;
4679 }
4680 /* method parser#ReduceAction342#action for (self: Object, Parser) */
4681 void VIRTUAL_parser__ReduceAction342__action(val* self, val* p0) {
4682 parser__ReduceAction342__action(self, p0);
4683 RET_LABEL:;
4684 }
4685 /* method parser#ReduceAction343#action for (self: ReduceAction343, Parser) */
4686 void parser__ReduceAction343__action(val* self, val* p0) {
4687 val* var_p /* var p: Parser */;
4688 val* var /* : null */;
4689 val* var_node_list /* var node_list: nullable Object */;
4690 val* var1 /* : nullable Object */;
4691 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4692 val* var2 /* : nullable Object */;
4693 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4694 val* var3 /* : nullable Object */;
4695 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4696 val* var4 /* : nullable Object */;
4697 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4698 val* var5 /* : nullable Object */;
4699 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4700 val* var_tkwsupernode2 /* var tkwsupernode2: nullable Object */;
4701 short int var6 /* : Bool */;
4702 int cltype;
4703 int idtype;
4704 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
4705 short int var7 /* : Bool */;
4706 int cltype8;
4707 int idtype9;
4708 val* var_pannotationsnode4 /* var pannotationsnode4: nullable Object */;
4709 short int var10 /* : Bool */;
4710 int cltype11;
4711 int idtype12;
4712 val* var13 /* : ASuperclass */;
4713 val* var_psuperclassnode1 /* var psuperclassnode1: nullable ASuperclass */;
4714 long var14 /* : Int */;
4715 long var15 /* : Int */;
4716 var_p = p0;
4717 var = NULL;
4718 var_node_list = var;
4719 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4720 var_nodearraylist5 = var1;
4721 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4722 var_nodearraylist4 = var2;
4723 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4724 var_nodearraylist3 = var3;
4725 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4726 var_nodearraylist2 = var4;
4727 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4728 var_nodearraylist1 = var5;
4729 var_tkwsupernode2 = var_nodearraylist2;
4730 /* <var_tkwsupernode2:nullable Object> isa nullable TKwsuper */
4731 cltype = type_nullable_parser_nodes__TKwsuper.color;
4732 idtype = type_nullable_parser_nodes__TKwsuper.id;
4733 if(var_tkwsupernode2 == NULL) {
4734 var6 = 1;
4735 } else {
4736 if(cltype >= var_tkwsupernode2->type->table_size) {
4737 var6 = 0;
4738 } else {
4739 var6 = var_tkwsupernode2->type->type_table[cltype] == idtype;
4740 }
4741 }
4742 if (!var6) {
4743 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15726);
4744 exit(1);
4745 }
4746 var_ptypenode3 = var_nodearraylist4;
4747 /* <var_ptypenode3:nullable Object> isa nullable AType */
4748 cltype8 = type_nullable_parser_nodes__AType.color;
4749 idtype9 = type_nullable_parser_nodes__AType.id;
4750 if(var_ptypenode3 == NULL) {
4751 var7 = 1;
4752 } else {
4753 if(cltype8 >= var_ptypenode3->type->table_size) {
4754 var7 = 0;
4755 } else {
4756 var7 = var_ptypenode3->type->type_table[cltype8] == idtype9;
4757 }
4758 }
4759 if (!var7) {
4760 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15728);
4761 exit(1);
4762 }
4763 var_pannotationsnode4 = var_nodearraylist5;
4764 /* <var_pannotationsnode4:nullable Object> isa nullable AAnnotations */
4765 cltype11 = type_nullable_parser_nodes__AAnnotations.color;
4766 idtype12 = type_nullable_parser_nodes__AAnnotations.id;
4767 if(var_pannotationsnode4 == NULL) {
4768 var10 = 1;
4769 } else {
4770 if(cltype11 >= var_pannotationsnode4->type->table_size) {
4771 var10 = 0;
4772 } else {
4773 var10 = var_pannotationsnode4->type->type_table[cltype11] == idtype12;
4774 }
4775 }
4776 if (!var10) {
4777 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15730);
4778 exit(1);
4779 }
4780 var13 = NEW_parser_nodes__ASuperclass(&type_parser_nodes__ASuperclass);
4781 ((void (*)(val*, val*, val*, val*))(var13->class->vft[COLOR_parser_prod__ASuperclass__init_asuperclass]))(var13, var_tkwsupernode2, var_ptypenode3, var_pannotationsnode4) /* init_asuperclass on <var13:ASuperclass>*/;
4782 CHECK_NEW_parser_nodes__ASuperclass(var13);
4783 var_psuperclassnode1 = var13;
4784 var_node_list = var_psuperclassnode1;
4785 var14 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction343> */
4786 var15 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var14) /* go_to on <var_p:Parser>*/;
4787 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var15, var_node_list) /* push on <var_p:Parser>*/;
4788 RET_LABEL:;
4789 }
4790 /* method parser#ReduceAction343#action for (self: Object, Parser) */
4791 void VIRTUAL_parser__ReduceAction343__action(val* self, val* p0) {
4792 parser__ReduceAction343__action(self, p0);
4793 RET_LABEL:;
4794 }
4795 /* method parser#ReduceAction344#action for (self: ReduceAction344, Parser) */
4796 void parser__ReduceAction344__action(val* self, val* p0) {
4797 val* var_p /* var p: Parser */;
4798 val* var /* : null */;
4799 val* var_node_list /* var node_list: nullable Object */;
4800 val* var1 /* : nullable Object */;
4801 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4802 val* var2 /* : nullable Object */;
4803 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4804 val* var_ppropdefnode1 /* var ppropdefnode1: nullable Object */;
4805 long var3 /* : Int */;
4806 long var4 /* : Int */;
4807 var_p = p0;
4808 var = NULL;
4809 var_node_list = var;
4810 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4811 var_nodearraylist2 = var1;
4812 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4813 var_nodearraylist1 = var2;
4814 var_ppropdefnode1 = var_nodearraylist1;
4815 var_node_list = var_ppropdefnode1;
4816 var3 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction344> */
4817 var4 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var3) /* go_to on <var_p:Parser>*/;
4818 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var4, var_node_list) /* push on <var_p:Parser>*/;
4819 RET_LABEL:;
4820 }
4821 /* method parser#ReduceAction344#action for (self: Object, Parser) */
4822 void VIRTUAL_parser__ReduceAction344__action(val* self, val* p0) {
4823 parser__ReduceAction344__action(self, p0);
4824 RET_LABEL:;
4825 }
4826 /* method parser#ReduceAction345#action for (self: ReduceAction345, Parser) */
4827 void parser__ReduceAction345__action(val* self, val* p0) {
4828 val* var_p /* var p: Parser */;
4829 val* var /* : null */;
4830 val* var_node_list /* var node_list: nullable Object */;
4831 val* var1 /* : nullable Object */;
4832 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
4833 val* var2 /* : nullable Object */;
4834 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4835 val* var3 /* : nullable Object */;
4836 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4837 val* var4 /* : nullable Object */;
4838 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4839 val* var5 /* : nullable Object */;
4840 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4841 val* var6 /* : nullable Object */;
4842 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4843 val* var7 /* : nullable Object */;
4844 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4845 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
4846 short int var8 /* : Bool */;
4847 int cltype;
4848 int idtype;
4849 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
4850 short int var9 /* : Bool */;
4851 int cltype10;
4852 int idtype11;
4853 val* var_tkwmethnode5 /* var tkwmethnode5: nullable Object */;
4854 short int var12 /* : Bool */;
4855 int cltype13;
4856 int idtype14;
4857 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
4858 short int var15 /* : Bool */;
4859 int cltype16;
4860 int idtype17;
4861 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
4862 short int var18 /* : Bool */;
4863 int cltype19;
4864 int idtype20;
4865 val* var_pexprnode9 /* var pexprnode9: nullable Object */;
4866 short int var21 /* : Bool */;
4867 int cltype22;
4868 int idtype23;
4869 val* var24 /* : AConcreteMethPropdef */;
4870 val* var25 /* : null */;
4871 val* var26 /* : null */;
4872 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AConcreteMethPropdef */;
4873 long var27 /* : Int */;
4874 long var28 /* : 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_nodearraylist7 = var1;
4880 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4881 var_nodearraylist6 = var2;
4882 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4883 var_nodearraylist5 = var3;
4884 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4885 var_nodearraylist4 = var4;
4886 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4887 var_nodearraylist3 = var5;
4888 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4889 var_nodearraylist2 = var6;
4890 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4891 var_nodearraylist1 = var7;
4892 var_pdocnode2 = var_nodearraylist1;
4893 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
4894 cltype = type_nullable_parser_nodes__ADoc.color;
4895 idtype = type_nullable_parser_nodes__ADoc.id;
4896 if(var_pdocnode2 == NULL) {
4897 var8 = 1;
4898 } else {
4899 if(cltype >= var_pdocnode2->type->table_size) {
4900 var8 = 0;
4901 } else {
4902 var8 = var_pdocnode2->type->type_table[cltype] == idtype;
4903 }
4904 }
4905 if (!var8) {
4906 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15765);
4907 exit(1);
4908 }
4909 var_pvisibilitynode4 = var_nodearraylist2;
4910 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
4911 cltype10 = type_nullable_parser_nodes__AVisibility.color;
4912 idtype11 = type_nullable_parser_nodes__AVisibility.id;
4913 if(var_pvisibilitynode4 == NULL) {
4914 var9 = 1;
4915 } else {
4916 if(cltype10 >= var_pvisibilitynode4->type->table_size) {
4917 var9 = 0;
4918 } else {
4919 var9 = var_pvisibilitynode4->type->type_table[cltype10] == idtype11;
4920 }
4921 }
4922 if (!var9) {
4923 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15767);
4924 exit(1);
4925 }
4926 var_tkwmethnode5 = var_nodearraylist3;
4927 /* <var_tkwmethnode5:nullable Object> isa nullable TKwmeth */
4928 cltype13 = type_nullable_parser_nodes__TKwmeth.color;
4929 idtype14 = type_nullable_parser_nodes__TKwmeth.id;
4930 if(var_tkwmethnode5 == NULL) {
4931 var12 = 1;
4932 } else {
4933 if(cltype13 >= var_tkwmethnode5->type->table_size) {
4934 var12 = 0;
4935 } else {
4936 var12 = var_tkwmethnode5->type->type_table[cltype13] == idtype14;
4937 }
4938 }
4939 if (!var12) {
4940 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15769);
4941 exit(1);
4942 }
4943 var_pmethidnode6 = var_nodearraylist4;
4944 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
4945 cltype16 = type_nullable_parser_nodes__AMethid.color;
4946 idtype17 = type_nullable_parser_nodes__AMethid.id;
4947 if(var_pmethidnode6 == NULL) {
4948 var15 = 1;
4949 } else {
4950 if(cltype16 >= var_pmethidnode6->type->table_size) {
4951 var15 = 0;
4952 } else {
4953 var15 = var_pmethidnode6->type->type_table[cltype16] == idtype17;
4954 }
4955 }
4956 if (!var15) {
4957 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15771);
4958 exit(1);
4959 }
4960 var_psignaturenode7 = var_nodearraylist5;
4961 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
4962 cltype19 = type_nullable_parser_nodes__ASignature.color;
4963 idtype20 = type_nullable_parser_nodes__ASignature.id;
4964 if(var_psignaturenode7 == NULL) {
4965 var18 = 1;
4966 } else {
4967 if(cltype19 >= var_psignaturenode7->type->table_size) {
4968 var18 = 0;
4969 } else {
4970 var18 = var_psignaturenode7->type->type_table[cltype19] == idtype20;
4971 }
4972 }
4973 if (!var18) {
4974 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15773);
4975 exit(1);
4976 }
4977 var_pexprnode9 = var_nodearraylist7;
4978 /* <var_pexprnode9:nullable Object> isa nullable AExpr */
4979 cltype22 = type_nullable_parser_nodes__AExpr.color;
4980 idtype23 = type_nullable_parser_nodes__AExpr.id;
4981 if(var_pexprnode9 == NULL) {
4982 var21 = 1;
4983 } else {
4984 if(cltype22 >= var_pexprnode9->type->table_size) {
4985 var21 = 0;
4986 } else {
4987 var21 = var_pexprnode9->type->type_table[cltype22] == idtype23;
4988 }
4989 }
4990 if (!var21) {
4991 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15775);
4992 exit(1);
4993 }
4994 var24 = NEW_parser_nodes__AConcreteMethPropdef(&type_parser_nodes__AConcreteMethPropdef);
4995 var25 = NULL;
4996 var26 = NULL;
4997 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*))(var24->class->vft[COLOR_parser_prod__AConcreteMethPropdef__init_aconcretemethpropdef]))(var24, var_pdocnode2, var25, var_pvisibilitynode4, var_tkwmethnode5, var_pmethidnode6, var_psignaturenode7, var26, var_pexprnode9) /* init_aconcretemethpropdef on <var24:AConcreteMethPropdef>*/;
4998 CHECK_NEW_parser_nodes__AConcreteMethPropdef(var24);
4999 var_ppropdefnode1 = var24;
5000 var_node_list = var_ppropdefnode1;
5001 var27 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction345> */
5002 var28 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var27) /* go_to on <var_p:Parser>*/;
5003 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var28, var_node_list) /* push on <var_p:Parser>*/;
5004 RET_LABEL:;
5005 }
5006 /* method parser#ReduceAction345#action for (self: Object, Parser) */
5007 void VIRTUAL_parser__ReduceAction345__action(val* self, val* p0) {
5008 parser__ReduceAction345__action(self, p0);
5009 RET_LABEL:;
5010 }
5011 /* method parser#ReduceAction346#action for (self: ReduceAction346, Parser) */
5012 void parser__ReduceAction346__action(val* self, val* p0) {
5013 val* var_p /* var p: Parser */;
5014 val* var /* : null */;
5015 val* var_node_list /* var node_list: nullable Object */;
5016 val* var1 /* : nullable Object */;
5017 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
5018 val* var2 /* : nullable Object */;
5019 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
5020 val* var3 /* : nullable Object */;
5021 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5022 val* var4 /* : nullable Object */;
5023 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5024 val* var5 /* : nullable Object */;
5025 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5026 val* var6 /* : nullable Object */;
5027 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5028 val* var7 /* : nullable Object */;
5029 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5030 val* var8 /* : nullable Object */;
5031 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5032 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
5033 short int var9 /* : Bool */;
5034 int cltype;
5035 int idtype;
5036 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
5037 short int var10 /* : Bool */;
5038 int cltype11;
5039 int idtype12;
5040 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
5041 short int var13 /* : Bool */;
5042 int cltype14;
5043 int idtype15;
5044 val* var_tkwmethnode5 /* var tkwmethnode5: nullable Object */;
5045 short int var16 /* : Bool */;
5046 int cltype17;
5047 int idtype18;
5048 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
5049 short int var19 /* : Bool */;
5050 int cltype20;
5051 int idtype21;
5052 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
5053 short int var22 /* : Bool */;
5054 int cltype23;
5055 int idtype24;
5056 val* var_pexprnode9 /* var pexprnode9: nullable Object */;
5057 short int var25 /* : Bool */;
5058 int cltype26;
5059 int idtype27;
5060 val* var28 /* : AConcreteMethPropdef */;
5061 val* var29 /* : null */;
5062 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AConcreteMethPropdef */;
5063 long var30 /* : Int */;
5064 long var31 /* : Int */;
5065 var_p = p0;
5066 var = NULL;
5067 var_node_list = var;
5068 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5069 var_nodearraylist8 = var1;
5070 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5071 var_nodearraylist7 = var2;
5072 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5073 var_nodearraylist6 = var3;
5074 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5075 var_nodearraylist5 = var4;
5076 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5077 var_nodearraylist4 = var5;
5078 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5079 var_nodearraylist3 = var6;
5080 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5081 var_nodearraylist2 = var7;
5082 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5083 var_nodearraylist1 = var8;
5084 var_pdocnode2 = var_nodearraylist1;
5085 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
5086 cltype = type_nullable_parser_nodes__ADoc.color;
5087 idtype = type_nullable_parser_nodes__ADoc.id;
5088 if(var_pdocnode2 == NULL) {
5089 var9 = 1;
5090 } else {
5091 if(cltype >= var_pdocnode2->type->table_size) {
5092 var9 = 0;
5093 } else {
5094 var9 = var_pdocnode2->type->type_table[cltype] == idtype;
5095 }
5096 }
5097 if (!var9) {
5098 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15804);
5099 exit(1);
5100 }
5101 var_tkwredefnode3 = var_nodearraylist2;
5102 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
5103 cltype11 = type_nullable_parser_nodes__TKwredef.color;
5104 idtype12 = type_nullable_parser_nodes__TKwredef.id;
5105 if(var_tkwredefnode3 == NULL) {
5106 var10 = 1;
5107 } else {
5108 if(cltype11 >= var_tkwredefnode3->type->table_size) {
5109 var10 = 0;
5110 } else {
5111 var10 = var_tkwredefnode3->type->type_table[cltype11] == idtype12;
5112 }
5113 }
5114 if (!var10) {
5115 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15806);
5116 exit(1);
5117 }
5118 var_pvisibilitynode4 = var_nodearraylist3;
5119 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
5120 cltype14 = type_nullable_parser_nodes__AVisibility.color;
5121 idtype15 = type_nullable_parser_nodes__AVisibility.id;
5122 if(var_pvisibilitynode4 == NULL) {
5123 var13 = 1;
5124 } else {
5125 if(cltype14 >= var_pvisibilitynode4->type->table_size) {
5126 var13 = 0;
5127 } else {
5128 var13 = var_pvisibilitynode4->type->type_table[cltype14] == idtype15;
5129 }
5130 }
5131 if (!var13) {
5132 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15808);
5133 exit(1);
5134 }
5135 var_tkwmethnode5 = var_nodearraylist4;
5136 /* <var_tkwmethnode5:nullable Object> isa nullable TKwmeth */
5137 cltype17 = type_nullable_parser_nodes__TKwmeth.color;
5138 idtype18 = type_nullable_parser_nodes__TKwmeth.id;
5139 if(var_tkwmethnode5 == NULL) {
5140 var16 = 1;
5141 } else {
5142 if(cltype17 >= var_tkwmethnode5->type->table_size) {
5143 var16 = 0;
5144 } else {
5145 var16 = var_tkwmethnode5->type->type_table[cltype17] == idtype18;
5146 }
5147 }
5148 if (!var16) {
5149 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15810);
5150 exit(1);
5151 }
5152 var_pmethidnode6 = var_nodearraylist5;
5153 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
5154 cltype20 = type_nullable_parser_nodes__AMethid.color;
5155 idtype21 = type_nullable_parser_nodes__AMethid.id;
5156 if(var_pmethidnode6 == NULL) {
5157 var19 = 1;
5158 } else {
5159 if(cltype20 >= var_pmethidnode6->type->table_size) {
5160 var19 = 0;
5161 } else {
5162 var19 = var_pmethidnode6->type->type_table[cltype20] == idtype21;
5163 }
5164 }
5165 if (!var19) {
5166 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15812);
5167 exit(1);
5168 }
5169 var_psignaturenode7 = var_nodearraylist6;
5170 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
5171 cltype23 = type_nullable_parser_nodes__ASignature.color;
5172 idtype24 = type_nullable_parser_nodes__ASignature.id;
5173 if(var_psignaturenode7 == NULL) {
5174 var22 = 1;
5175 } else {
5176 if(cltype23 >= var_psignaturenode7->type->table_size) {
5177 var22 = 0;
5178 } else {
5179 var22 = var_psignaturenode7->type->type_table[cltype23] == idtype24;
5180 }
5181 }
5182 if (!var22) {
5183 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15814);
5184 exit(1);
5185 }
5186 var_pexprnode9 = var_nodearraylist8;
5187 /* <var_pexprnode9:nullable Object> isa nullable AExpr */
5188 cltype26 = type_nullable_parser_nodes__AExpr.color;
5189 idtype27 = type_nullable_parser_nodes__AExpr.id;
5190 if(var_pexprnode9 == NULL) {
5191 var25 = 1;
5192 } else {
5193 if(cltype26 >= var_pexprnode9->type->table_size) {
5194 var25 = 0;
5195 } else {
5196 var25 = var_pexprnode9->type->type_table[cltype26] == idtype27;
5197 }
5198 }
5199 if (!var25) {
5200 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15816);
5201 exit(1);
5202 }
5203 var28 = NEW_parser_nodes__AConcreteMethPropdef(&type_parser_nodes__AConcreteMethPropdef);
5204 var29 = NULL;
5205 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*))(var28->class->vft[COLOR_parser_prod__AConcreteMethPropdef__init_aconcretemethpropdef]))(var28, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwmethnode5, var_pmethidnode6, var_psignaturenode7, var29, var_pexprnode9) /* init_aconcretemethpropdef on <var28:AConcreteMethPropdef>*/;
5206 CHECK_NEW_parser_nodes__AConcreteMethPropdef(var28);
5207 var_ppropdefnode1 = var28;
5208 var_node_list = var_ppropdefnode1;
5209 var30 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction346> */
5210 var31 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var30) /* go_to on <var_p:Parser>*/;
5211 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var31, var_node_list) /* push on <var_p:Parser>*/;
5212 RET_LABEL:;
5213 }
5214 /* method parser#ReduceAction346#action for (self: Object, Parser) */
5215 void VIRTUAL_parser__ReduceAction346__action(val* self, val* p0) {
5216 parser__ReduceAction346__action(self, p0);
5217 RET_LABEL:;
5218 }
5219 /* method parser#ReduceAction347#action for (self: ReduceAction347, Parser) */
5220 void parser__ReduceAction347__action(val* self, val* p0) {
5221 val* var_p /* var p: Parser */;
5222 val* var /* : null */;
5223 val* var_node_list /* var node_list: nullable Object */;
5224 val* var1 /* : nullable Object */;
5225 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
5226 val* var2 /* : nullable Object */;
5227 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
5228 val* var3 /* : nullable Object */;
5229 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5230 val* var4 /* : nullable Object */;
5231 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5232 val* var5 /* : nullable Object */;
5233 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5234 val* var6 /* : nullable Object */;
5235 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5236 val* var7 /* : nullable Object */;
5237 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5238 val* var8 /* : nullable Object */;
5239 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5240 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
5241 short int var9 /* : Bool */;
5242 int cltype;
5243 int idtype;
5244 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
5245 short int var10 /* : Bool */;
5246 int cltype11;
5247 int idtype12;
5248 val* var_tkwmethnode5 /* var tkwmethnode5: nullable Object */;
5249 short int var13 /* : Bool */;
5250 int cltype14;
5251 int idtype15;
5252 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
5253 short int var16 /* : Bool */;
5254 int cltype17;
5255 int idtype18;
5256 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
5257 short int var19 /* : Bool */;
5258 int cltype20;
5259 int idtype21;
5260 val* var_pannotationsnode8 /* var pannotationsnode8: nullable Object */;
5261 short int var22 /* : Bool */;
5262 int cltype23;
5263 int idtype24;
5264 val* var_pexprnode9 /* var pexprnode9: nullable Object */;
5265 short int var25 /* : Bool */;
5266 int cltype26;
5267 int idtype27;
5268 val* var28 /* : AConcreteMethPropdef */;
5269 val* var29 /* : null */;
5270 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AConcreteMethPropdef */;
5271 long var30 /* : Int */;
5272 long var31 /* : Int */;
5273 var_p = p0;
5274 var = NULL;
5275 var_node_list = var;
5276 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5277 var_nodearraylist8 = var1;
5278 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5279 var_nodearraylist7 = var2;
5280 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5281 var_nodearraylist6 = var3;
5282 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5283 var_nodearraylist5 = var4;
5284 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5285 var_nodearraylist4 = var5;
5286 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5287 var_nodearraylist3 = var6;
5288 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5289 var_nodearraylist2 = var7;
5290 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5291 var_nodearraylist1 = var8;
5292 var_pdocnode2 = var_nodearraylist1;
5293 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
5294 cltype = type_nullable_parser_nodes__ADoc.color;
5295 idtype = type_nullable_parser_nodes__ADoc.id;
5296 if(var_pdocnode2 == NULL) {
5297 var9 = 1;
5298 } else {
5299 if(cltype >= var_pdocnode2->type->table_size) {
5300 var9 = 0;
5301 } else {
5302 var9 = var_pdocnode2->type->type_table[cltype] == idtype;
5303 }
5304 }
5305 if (!var9) {
5306 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15845);
5307 exit(1);
5308 }
5309 var_pvisibilitynode4 = var_nodearraylist2;
5310 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
5311 cltype11 = type_nullable_parser_nodes__AVisibility.color;
5312 idtype12 = type_nullable_parser_nodes__AVisibility.id;
5313 if(var_pvisibilitynode4 == NULL) {
5314 var10 = 1;
5315 } else {
5316 if(cltype11 >= var_pvisibilitynode4->type->table_size) {
5317 var10 = 0;
5318 } else {
5319 var10 = var_pvisibilitynode4->type->type_table[cltype11] == idtype12;
5320 }
5321 }
5322 if (!var10) {
5323 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15847);
5324 exit(1);
5325 }
5326 var_tkwmethnode5 = var_nodearraylist3;
5327 /* <var_tkwmethnode5:nullable Object> isa nullable TKwmeth */
5328 cltype14 = type_nullable_parser_nodes__TKwmeth.color;
5329 idtype15 = type_nullable_parser_nodes__TKwmeth.id;
5330 if(var_tkwmethnode5 == NULL) {
5331 var13 = 1;
5332 } else {
5333 if(cltype14 >= var_tkwmethnode5->type->table_size) {
5334 var13 = 0;
5335 } else {
5336 var13 = var_tkwmethnode5->type->type_table[cltype14] == idtype15;
5337 }
5338 }
5339 if (!var13) {
5340 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15849);
5341 exit(1);
5342 }
5343 var_pmethidnode6 = var_nodearraylist4;
5344 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
5345 cltype17 = type_nullable_parser_nodes__AMethid.color;
5346 idtype18 = type_nullable_parser_nodes__AMethid.id;
5347 if(var_pmethidnode6 == NULL) {
5348 var16 = 1;
5349 } else {
5350 if(cltype17 >= var_pmethidnode6->type->table_size) {
5351 var16 = 0;
5352 } else {
5353 var16 = var_pmethidnode6->type->type_table[cltype17] == idtype18;
5354 }
5355 }
5356 if (!var16) {
5357 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15851);
5358 exit(1);
5359 }
5360 var_psignaturenode7 = var_nodearraylist5;
5361 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
5362 cltype20 = type_nullable_parser_nodes__ASignature.color;
5363 idtype21 = type_nullable_parser_nodes__ASignature.id;
5364 if(var_psignaturenode7 == NULL) {
5365 var19 = 1;
5366 } else {
5367 if(cltype20 >= var_psignaturenode7->type->table_size) {
5368 var19 = 0;
5369 } else {
5370 var19 = var_psignaturenode7->type->type_table[cltype20] == idtype21;
5371 }
5372 }
5373 if (!var19) {
5374 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15853);
5375 exit(1);
5376 }
5377 var_pannotationsnode8 = var_nodearraylist6;
5378 /* <var_pannotationsnode8:nullable Object> isa nullable AAnnotations */
5379 cltype23 = type_nullable_parser_nodes__AAnnotations.color;
5380 idtype24 = type_nullable_parser_nodes__AAnnotations.id;
5381 if(var_pannotationsnode8 == NULL) {
5382 var22 = 1;
5383 } else {
5384 if(cltype23 >= var_pannotationsnode8->type->table_size) {
5385 var22 = 0;
5386 } else {
5387 var22 = var_pannotationsnode8->type->type_table[cltype23] == idtype24;
5388 }
5389 }
5390 if (!var22) {
5391 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15855);
5392 exit(1);
5393 }
5394 var_pexprnode9 = var_nodearraylist8;
5395 /* <var_pexprnode9:nullable Object> isa nullable AExpr */
5396 cltype26 = type_nullable_parser_nodes__AExpr.color;
5397 idtype27 = type_nullable_parser_nodes__AExpr.id;
5398 if(var_pexprnode9 == NULL) {
5399 var25 = 1;
5400 } else {
5401 if(cltype26 >= var_pexprnode9->type->table_size) {
5402 var25 = 0;
5403 } else {
5404 var25 = var_pexprnode9->type->type_table[cltype26] == idtype27;
5405 }
5406 }
5407 if (!var25) {
5408 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15857);
5409 exit(1);
5410 }
5411 var28 = NEW_parser_nodes__AConcreteMethPropdef(&type_parser_nodes__AConcreteMethPropdef);
5412 var29 = NULL;
5413 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*))(var28->class->vft[COLOR_parser_prod__AConcreteMethPropdef__init_aconcretemethpropdef]))(var28, var_pdocnode2, var29, var_pvisibilitynode4, var_tkwmethnode5, var_pmethidnode6, var_psignaturenode7, var_pannotationsnode8, var_pexprnode9) /* init_aconcretemethpropdef on <var28:AConcreteMethPropdef>*/;
5414 CHECK_NEW_parser_nodes__AConcreteMethPropdef(var28);
5415 var_ppropdefnode1 = var28;
5416 var_node_list = var_ppropdefnode1;
5417 var30 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction347> */
5418 var31 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var30) /* go_to on <var_p:Parser>*/;
5419 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var31, var_node_list) /* push on <var_p:Parser>*/;
5420 RET_LABEL:;
5421 }
5422 /* method parser#ReduceAction347#action for (self: Object, Parser) */
5423 void VIRTUAL_parser__ReduceAction347__action(val* self, val* p0) {
5424 parser__ReduceAction347__action(self, p0);
5425 RET_LABEL:;
5426 }
5427 /* method parser#ReduceAction348#action for (self: ReduceAction348, Parser) */
5428 void parser__ReduceAction348__action(val* self, val* p0) {
5429 val* var_p /* var p: Parser */;
5430 val* var /* : null */;
5431 val* var_node_list /* var node_list: nullable Object */;
5432 val* var1 /* : nullable Object */;
5433 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
5434 val* var2 /* : nullable Object */;
5435 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
5436 val* var3 /* : nullable Object */;
5437 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
5438 val* var4 /* : nullable Object */;
5439 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5440 val* var5 /* : nullable Object */;
5441 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5442 val* var6 /* : nullable Object */;
5443 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5444 val* var7 /* : nullable Object */;
5445 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5446 val* var8 /* : nullable Object */;
5447 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5448 val* var9 /* : nullable Object */;
5449 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5450 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
5451 short int var10 /* : Bool */;
5452 int cltype;
5453 int idtype;
5454 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
5455 short int var11 /* : Bool */;
5456 int cltype12;
5457 int idtype13;
5458 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
5459 short int var14 /* : Bool */;
5460 int cltype15;
5461 int idtype16;
5462 val* var_tkwmethnode5 /* var tkwmethnode5: nullable Object */;
5463 short int var17 /* : Bool */;
5464 int cltype18;
5465 int idtype19;
5466 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
5467 short int var20 /* : Bool */;
5468 int cltype21;
5469 int idtype22;
5470 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
5471 short int var23 /* : Bool */;
5472 int cltype24;
5473 int idtype25;
5474 val* var_pannotationsnode8 /* var pannotationsnode8: nullable Object */;
5475 short int var26 /* : Bool */;
5476 int cltype27;
5477 int idtype28;
5478 val* var_pexprnode9 /* var pexprnode9: nullable Object */;
5479 short int var29 /* : Bool */;
5480 int cltype30;
5481 int idtype31;
5482 val* var32 /* : AConcreteMethPropdef */;
5483 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AConcreteMethPropdef */;
5484 long var33 /* : Int */;
5485 long var34 /* : Int */;
5486 var_p = p0;
5487 var = NULL;
5488 var_node_list = var;
5489 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5490 var_nodearraylist9 = var1;
5491 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5492 var_nodearraylist8 = var2;
5493 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5494 var_nodearraylist7 = var3;
5495 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5496 var_nodearraylist6 = var4;
5497 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5498 var_nodearraylist5 = var5;
5499 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5500 var_nodearraylist4 = var6;
5501 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5502 var_nodearraylist3 = var7;
5503 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5504 var_nodearraylist2 = var8;
5505 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5506 var_nodearraylist1 = var9;
5507 var_pdocnode2 = var_nodearraylist1;
5508 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
5509 cltype = type_nullable_parser_nodes__ADoc.color;
5510 idtype = type_nullable_parser_nodes__ADoc.id;
5511 if(var_pdocnode2 == NULL) {
5512 var10 = 1;
5513 } else {
5514 if(cltype >= var_pdocnode2->type->table_size) {
5515 var10 = 0;
5516 } else {
5517 var10 = var_pdocnode2->type->type_table[cltype] == idtype;
5518 }
5519 }
5520 if (!var10) {
5521 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15887);
5522 exit(1);
5523 }
5524 var_tkwredefnode3 = var_nodearraylist2;
5525 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
5526 cltype12 = type_nullable_parser_nodes__TKwredef.color;
5527 idtype13 = type_nullable_parser_nodes__TKwredef.id;
5528 if(var_tkwredefnode3 == NULL) {
5529 var11 = 1;
5530 } else {
5531 if(cltype12 >= var_tkwredefnode3->type->table_size) {
5532 var11 = 0;
5533 } else {
5534 var11 = var_tkwredefnode3->type->type_table[cltype12] == idtype13;
5535 }
5536 }
5537 if (!var11) {
5538 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15889);
5539 exit(1);
5540 }
5541 var_pvisibilitynode4 = var_nodearraylist3;
5542 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
5543 cltype15 = type_nullable_parser_nodes__AVisibility.color;
5544 idtype16 = type_nullable_parser_nodes__AVisibility.id;
5545 if(var_pvisibilitynode4 == NULL) {
5546 var14 = 1;
5547 } else {
5548 if(cltype15 >= var_pvisibilitynode4->type->table_size) {
5549 var14 = 0;
5550 } else {
5551 var14 = var_pvisibilitynode4->type->type_table[cltype15] == idtype16;
5552 }
5553 }
5554 if (!var14) {
5555 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15891);
5556 exit(1);
5557 }
5558 var_tkwmethnode5 = var_nodearraylist4;
5559 /* <var_tkwmethnode5:nullable Object> isa nullable TKwmeth */
5560 cltype18 = type_nullable_parser_nodes__TKwmeth.color;
5561 idtype19 = type_nullable_parser_nodes__TKwmeth.id;
5562 if(var_tkwmethnode5 == NULL) {
5563 var17 = 1;
5564 } else {
5565 if(cltype18 >= var_tkwmethnode5->type->table_size) {
5566 var17 = 0;
5567 } else {
5568 var17 = var_tkwmethnode5->type->type_table[cltype18] == idtype19;
5569 }
5570 }
5571 if (!var17) {
5572 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15893);
5573 exit(1);
5574 }
5575 var_pmethidnode6 = var_nodearraylist5;
5576 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
5577 cltype21 = type_nullable_parser_nodes__AMethid.color;
5578 idtype22 = type_nullable_parser_nodes__AMethid.id;
5579 if(var_pmethidnode6 == NULL) {
5580 var20 = 1;
5581 } else {
5582 if(cltype21 >= var_pmethidnode6->type->table_size) {
5583 var20 = 0;
5584 } else {
5585 var20 = var_pmethidnode6->type->type_table[cltype21] == idtype22;
5586 }
5587 }
5588 if (!var20) {
5589 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15895);
5590 exit(1);
5591 }
5592 var_psignaturenode7 = var_nodearraylist6;
5593 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
5594 cltype24 = type_nullable_parser_nodes__ASignature.color;
5595 idtype25 = type_nullable_parser_nodes__ASignature.id;
5596 if(var_psignaturenode7 == NULL) {
5597 var23 = 1;
5598 } else {
5599 if(cltype24 >= var_psignaturenode7->type->table_size) {
5600 var23 = 0;
5601 } else {
5602 var23 = var_psignaturenode7->type->type_table[cltype24] == idtype25;
5603 }
5604 }
5605 if (!var23) {
5606 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15897);
5607 exit(1);
5608 }
5609 var_pannotationsnode8 = var_nodearraylist7;
5610 /* <var_pannotationsnode8:nullable Object> isa nullable AAnnotations */
5611 cltype27 = type_nullable_parser_nodes__AAnnotations.color;
5612 idtype28 = type_nullable_parser_nodes__AAnnotations.id;
5613 if(var_pannotationsnode8 == NULL) {
5614 var26 = 1;
5615 } else {
5616 if(cltype27 >= var_pannotationsnode8->type->table_size) {
5617 var26 = 0;
5618 } else {
5619 var26 = var_pannotationsnode8->type->type_table[cltype27] == idtype28;
5620 }
5621 }
5622 if (!var26) {
5623 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15899);
5624 exit(1);
5625 }
5626 var_pexprnode9 = var_nodearraylist9;
5627 /* <var_pexprnode9:nullable Object> isa nullable AExpr */
5628 cltype30 = type_nullable_parser_nodes__AExpr.color;
5629 idtype31 = type_nullable_parser_nodes__AExpr.id;
5630 if(var_pexprnode9 == NULL) {
5631 var29 = 1;
5632 } else {
5633 if(cltype30 >= var_pexprnode9->type->table_size) {
5634 var29 = 0;
5635 } else {
5636 var29 = var_pexprnode9->type->type_table[cltype30] == idtype31;
5637 }
5638 }
5639 if (!var29) {
5640 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15901);
5641 exit(1);
5642 }
5643 var32 = NEW_parser_nodes__AConcreteMethPropdef(&type_parser_nodes__AConcreteMethPropdef);
5644 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*))(var32->class->vft[COLOR_parser_prod__AConcreteMethPropdef__init_aconcretemethpropdef]))(var32, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwmethnode5, var_pmethidnode6, var_psignaturenode7, var_pannotationsnode8, var_pexprnode9) /* init_aconcretemethpropdef on <var32:AConcreteMethPropdef>*/;
5645 CHECK_NEW_parser_nodes__AConcreteMethPropdef(var32);
5646 var_ppropdefnode1 = var32;
5647 var_node_list = var_ppropdefnode1;
5648 var33 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction348> */
5649 var34 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var33) /* go_to on <var_p:Parser>*/;
5650 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var34, var_node_list) /* push on <var_p:Parser>*/;
5651 RET_LABEL:;
5652 }
5653 /* method parser#ReduceAction348#action for (self: Object, Parser) */
5654 void VIRTUAL_parser__ReduceAction348__action(val* self, val* p0) {
5655 parser__ReduceAction348__action(self, p0);
5656 RET_LABEL:;
5657 }
5658 /* method parser#ReduceAction349#action for (self: ReduceAction349, Parser) */
5659 void parser__ReduceAction349__action(val* self, val* p0) {
5660 val* var_p /* var p: Parser */;
5661 val* var /* : null */;
5662 val* var_node_list /* var node_list: nullable Object */;
5663 val* var1 /* : nullable Object */;
5664 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
5665 val* var2 /* : nullable Object */;
5666 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
5667 val* var3 /* : nullable Object */;
5668 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5669 val* var4 /* : nullable Object */;
5670 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5671 val* var5 /* : nullable Object */;
5672 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5673 val* var6 /* : nullable Object */;
5674 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5675 val* var7 /* : nullable Object */;
5676 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5677 val* var8 /* : nullable Object */;
5678 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5679 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
5680 short int var9 /* : Bool */;
5681 int cltype;
5682 int idtype;
5683 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
5684 short int var10 /* : Bool */;
5685 int cltype11;
5686 int idtype12;
5687 val* var_tkwmethnode5 /* var tkwmethnode5: nullable Object */;
5688 short int var13 /* : Bool */;
5689 int cltype14;
5690 int idtype15;
5691 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
5692 short int var16 /* : Bool */;
5693 int cltype17;
5694 int idtype18;
5695 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
5696 short int var19 /* : Bool */;
5697 int cltype20;
5698 int idtype21;
5699 val* var_pexprnode9 /* var pexprnode9: nullable Object */;
5700 short int var22 /* : Bool */;
5701 int cltype23;
5702 int idtype24;
5703 val* var25 /* : AConcreteMethPropdef */;
5704 val* var26 /* : null */;
5705 val* var27 /* : null */;
5706 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AConcreteMethPropdef */;
5707 long var28 /* : Int */;
5708 long var29 /* : Int */;
5709 var_p = p0;
5710 var = NULL;
5711 var_node_list = var;
5712 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5713 var_nodearraylist8 = var1;
5714 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5715 var_nodearraylist7 = var2;
5716 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5717 var_nodearraylist6 = var3;
5718 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5719 var_nodearraylist5 = var4;
5720 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5721 var_nodearraylist4 = var5;
5722 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5723 var_nodearraylist3 = var6;
5724 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5725 var_nodearraylist2 = var7;
5726 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5727 var_nodearraylist1 = var8;
5728 var_pdocnode2 = var_nodearraylist1;
5729 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
5730 cltype = type_nullable_parser_nodes__ADoc.color;
5731 idtype = type_nullable_parser_nodes__ADoc.id;
5732 if(var_pdocnode2 == NULL) {
5733 var9 = 1;
5734 } else {
5735 if(cltype >= var_pdocnode2->type->table_size) {
5736 var9 = 0;
5737 } else {
5738 var9 = var_pdocnode2->type->type_table[cltype] == idtype;
5739 }
5740 }
5741 if (!var9) {
5742 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15930);
5743 exit(1);
5744 }
5745 var_pvisibilitynode4 = var_nodearraylist2;
5746 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
5747 cltype11 = type_nullable_parser_nodes__AVisibility.color;
5748 idtype12 = type_nullable_parser_nodes__AVisibility.id;
5749 if(var_pvisibilitynode4 == NULL) {
5750 var10 = 1;
5751 } else {
5752 if(cltype11 >= var_pvisibilitynode4->type->table_size) {
5753 var10 = 0;
5754 } else {
5755 var10 = var_pvisibilitynode4->type->type_table[cltype11] == idtype12;
5756 }
5757 }
5758 if (!var10) {
5759 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15932);
5760 exit(1);
5761 }
5762 var_tkwmethnode5 = var_nodearraylist3;
5763 /* <var_tkwmethnode5:nullable Object> isa nullable TKwmeth */
5764 cltype14 = type_nullable_parser_nodes__TKwmeth.color;
5765 idtype15 = type_nullable_parser_nodes__TKwmeth.id;
5766 if(var_tkwmethnode5 == NULL) {
5767 var13 = 1;
5768 } else {
5769 if(cltype14 >= var_tkwmethnode5->type->table_size) {
5770 var13 = 0;
5771 } else {
5772 var13 = var_tkwmethnode5->type->type_table[cltype14] == idtype15;
5773 }
5774 }
5775 if (!var13) {
5776 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15934);
5777 exit(1);
5778 }
5779 var_pmethidnode6 = var_nodearraylist4;
5780 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
5781 cltype17 = type_nullable_parser_nodes__AMethid.color;
5782 idtype18 = type_nullable_parser_nodes__AMethid.id;
5783 if(var_pmethidnode6 == NULL) {
5784 var16 = 1;
5785 } else {
5786 if(cltype17 >= var_pmethidnode6->type->table_size) {
5787 var16 = 0;
5788 } else {
5789 var16 = var_pmethidnode6->type->type_table[cltype17] == idtype18;
5790 }
5791 }
5792 if (!var16) {
5793 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15936);
5794 exit(1);
5795 }
5796 var_psignaturenode7 = var_nodearraylist5;
5797 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
5798 cltype20 = type_nullable_parser_nodes__ASignature.color;
5799 idtype21 = type_nullable_parser_nodes__ASignature.id;
5800 if(var_psignaturenode7 == NULL) {
5801 var19 = 1;
5802 } else {
5803 if(cltype20 >= var_psignaturenode7->type->table_size) {
5804 var19 = 0;
5805 } else {
5806 var19 = var_psignaturenode7->type->type_table[cltype20] == idtype21;
5807 }
5808 }
5809 if (!var19) {
5810 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15938);
5811 exit(1);
5812 }
5813 var_pexprnode9 = var_nodearraylist7;
5814 /* <var_pexprnode9:nullable Object> isa nullable AExpr */
5815 cltype23 = type_nullable_parser_nodes__AExpr.color;
5816 idtype24 = type_nullable_parser_nodes__AExpr.id;
5817 if(var_pexprnode9 == NULL) {
5818 var22 = 1;
5819 } else {
5820 if(cltype23 >= var_pexprnode9->type->table_size) {
5821 var22 = 0;
5822 } else {
5823 var22 = var_pexprnode9->type->type_table[cltype23] == idtype24;
5824 }
5825 }
5826 if (!var22) {
5827 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15940);
5828 exit(1);
5829 }
5830 var25 = NEW_parser_nodes__AConcreteMethPropdef(&type_parser_nodes__AConcreteMethPropdef);
5831 var26 = NULL;
5832 var27 = NULL;
5833 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*))(var25->class->vft[COLOR_parser_prod__AConcreteMethPropdef__init_aconcretemethpropdef]))(var25, var_pdocnode2, var26, var_pvisibilitynode4, var_tkwmethnode5, var_pmethidnode6, var_psignaturenode7, var27, var_pexprnode9) /* init_aconcretemethpropdef on <var25:AConcreteMethPropdef>*/;
5834 CHECK_NEW_parser_nodes__AConcreteMethPropdef(var25);
5835 var_ppropdefnode1 = var25;
5836 var_node_list = var_ppropdefnode1;
5837 var28 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction349> */
5838 var29 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var28) /* go_to on <var_p:Parser>*/;
5839 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var29, var_node_list) /* push on <var_p:Parser>*/;
5840 RET_LABEL:;
5841 }
5842 /* method parser#ReduceAction349#action for (self: Object, Parser) */
5843 void VIRTUAL_parser__ReduceAction349__action(val* self, val* p0) {
5844 parser__ReduceAction349__action(self, p0);
5845 RET_LABEL:;
5846 }
5847 /* method parser#ReduceAction350#action for (self: ReduceAction350, Parser) */
5848 void parser__ReduceAction350__action(val* self, val* p0) {
5849 val* var_p /* var p: Parser */;
5850 val* var /* : null */;
5851 val* var_node_list /* var node_list: nullable Object */;
5852 val* var1 /* : nullable Object */;
5853 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
5854 val* var2 /* : nullable Object */;
5855 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
5856 val* var3 /* : nullable Object */;
5857 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
5858 val* var4 /* : nullable Object */;
5859 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5860 val* var5 /* : nullable Object */;
5861 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5862 val* var6 /* : nullable Object */;
5863 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5864 val* var7 /* : nullable Object */;
5865 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5866 val* var8 /* : nullable Object */;
5867 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5868 val* var9 /* : nullable Object */;
5869 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5870 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
5871 short int var10 /* : Bool */;
5872 int cltype;
5873 int idtype;
5874 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
5875 short int var11 /* : Bool */;
5876 int cltype12;
5877 int idtype13;
5878 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
5879 short int var14 /* : Bool */;
5880 int cltype15;
5881 int idtype16;
5882 val* var_tkwmethnode5 /* var tkwmethnode5: nullable Object */;
5883 short int var17 /* : Bool */;
5884 int cltype18;
5885 int idtype19;
5886 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
5887 short int var20 /* : Bool */;
5888 int cltype21;
5889 int idtype22;
5890 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
5891 short int var23 /* : Bool */;
5892 int cltype24;
5893 int idtype25;
5894 val* var_pexprnode9 /* var pexprnode9: nullable Object */;
5895 short int var26 /* : Bool */;
5896 int cltype27;
5897 int idtype28;
5898 val* var29 /* : AConcreteMethPropdef */;
5899 val* var30 /* : null */;
5900 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AConcreteMethPropdef */;
5901 long var31 /* : Int */;
5902 long var32 /* : Int */;
5903 var_p = p0;
5904 var = NULL;
5905 var_node_list = var;
5906 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5907 var_nodearraylist9 = var1;
5908 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5909 var_nodearraylist8 = var2;
5910 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5911 var_nodearraylist7 = var3;
5912 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5913 var_nodearraylist6 = var4;
5914 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5915 var_nodearraylist5 = var5;
5916 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5917 var_nodearraylist4 = var6;
5918 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5919 var_nodearraylist3 = var7;
5920 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5921 var_nodearraylist2 = var8;
5922 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5923 var_nodearraylist1 = var9;
5924 var_pdocnode2 = var_nodearraylist1;
5925 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
5926 cltype = type_nullable_parser_nodes__ADoc.color;
5927 idtype = type_nullable_parser_nodes__ADoc.id;
5928 if(var_pdocnode2 == NULL) {
5929 var10 = 1;
5930 } else {
5931 if(cltype >= var_pdocnode2->type->table_size) {
5932 var10 = 0;
5933 } else {
5934 var10 = var_pdocnode2->type->type_table[cltype] == idtype;
5935 }
5936 }
5937 if (!var10) {
5938 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15970);
5939 exit(1);
5940 }
5941 var_tkwredefnode3 = var_nodearraylist2;
5942 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
5943 cltype12 = type_nullable_parser_nodes__TKwredef.color;
5944 idtype13 = type_nullable_parser_nodes__TKwredef.id;
5945 if(var_tkwredefnode3 == NULL) {
5946 var11 = 1;
5947 } else {
5948 if(cltype12 >= var_tkwredefnode3->type->table_size) {
5949 var11 = 0;
5950 } else {
5951 var11 = var_tkwredefnode3->type->type_table[cltype12] == idtype13;
5952 }
5953 }
5954 if (!var11) {
5955 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15972);
5956 exit(1);
5957 }
5958 var_pvisibilitynode4 = var_nodearraylist3;
5959 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
5960 cltype15 = type_nullable_parser_nodes__AVisibility.color;
5961 idtype16 = type_nullable_parser_nodes__AVisibility.id;
5962 if(var_pvisibilitynode4 == NULL) {
5963 var14 = 1;
5964 } else {
5965 if(cltype15 >= var_pvisibilitynode4->type->table_size) {
5966 var14 = 0;
5967 } else {
5968 var14 = var_pvisibilitynode4->type->type_table[cltype15] == idtype16;
5969 }
5970 }
5971 if (!var14) {
5972 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15974);
5973 exit(1);
5974 }
5975 var_tkwmethnode5 = var_nodearraylist4;
5976 /* <var_tkwmethnode5:nullable Object> isa nullable TKwmeth */
5977 cltype18 = type_nullable_parser_nodes__TKwmeth.color;
5978 idtype19 = type_nullable_parser_nodes__TKwmeth.id;
5979 if(var_tkwmethnode5 == NULL) {
5980 var17 = 1;
5981 } else {
5982 if(cltype18 >= var_tkwmethnode5->type->table_size) {
5983 var17 = 0;
5984 } else {
5985 var17 = var_tkwmethnode5->type->type_table[cltype18] == idtype19;
5986 }
5987 }
5988 if (!var17) {
5989 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15976);
5990 exit(1);
5991 }
5992 var_pmethidnode6 = var_nodearraylist5;
5993 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
5994 cltype21 = type_nullable_parser_nodes__AMethid.color;
5995 idtype22 = type_nullable_parser_nodes__AMethid.id;
5996 if(var_pmethidnode6 == NULL) {
5997 var20 = 1;
5998 } else {
5999 if(cltype21 >= var_pmethidnode6->type->table_size) {
6000 var20 = 0;
6001 } else {
6002 var20 = var_pmethidnode6->type->type_table[cltype21] == idtype22;
6003 }
6004 }
6005 if (!var20) {
6006 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15978);
6007 exit(1);
6008 }
6009 var_psignaturenode7 = var_nodearraylist6;
6010 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
6011 cltype24 = type_nullable_parser_nodes__ASignature.color;
6012 idtype25 = type_nullable_parser_nodes__ASignature.id;
6013 if(var_psignaturenode7 == NULL) {
6014 var23 = 1;
6015 } else {
6016 if(cltype24 >= var_psignaturenode7->type->table_size) {
6017 var23 = 0;
6018 } else {
6019 var23 = var_psignaturenode7->type->type_table[cltype24] == idtype25;
6020 }
6021 }
6022 if (!var23) {
6023 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15980);
6024 exit(1);
6025 }
6026 var_pexprnode9 = var_nodearraylist8;
6027 /* <var_pexprnode9:nullable Object> isa nullable AExpr */
6028 cltype27 = type_nullable_parser_nodes__AExpr.color;
6029 idtype28 = type_nullable_parser_nodes__AExpr.id;
6030 if(var_pexprnode9 == NULL) {
6031 var26 = 1;
6032 } else {
6033 if(cltype27 >= var_pexprnode9->type->table_size) {
6034 var26 = 0;
6035 } else {
6036 var26 = var_pexprnode9->type->type_table[cltype27] == idtype28;
6037 }
6038 }
6039 if (!var26) {
6040 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 15982);
6041 exit(1);
6042 }
6043 var29 = NEW_parser_nodes__AConcreteMethPropdef(&type_parser_nodes__AConcreteMethPropdef);
6044 var30 = NULL;
6045 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*))(var29->class->vft[COLOR_parser_prod__AConcreteMethPropdef__init_aconcretemethpropdef]))(var29, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwmethnode5, var_pmethidnode6, var_psignaturenode7, var30, var_pexprnode9) /* init_aconcretemethpropdef on <var29:AConcreteMethPropdef>*/;
6046 CHECK_NEW_parser_nodes__AConcreteMethPropdef(var29);
6047 var_ppropdefnode1 = var29;
6048 var_node_list = var_ppropdefnode1;
6049 var31 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction350> */
6050 var32 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var31) /* go_to on <var_p:Parser>*/;
6051 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var32, var_node_list) /* push on <var_p:Parser>*/;
6052 RET_LABEL:;
6053 }
6054 /* method parser#ReduceAction350#action for (self: Object, Parser) */
6055 void VIRTUAL_parser__ReduceAction350__action(val* self, val* p0) {
6056 parser__ReduceAction350__action(self, p0);
6057 RET_LABEL:;
6058 }
6059 /* method parser#ReduceAction351#action for (self: ReduceAction351, Parser) */
6060 void parser__ReduceAction351__action(val* self, val* p0) {
6061 val* var_p /* var p: Parser */;
6062 val* var /* : null */;
6063 val* var_node_list /* var node_list: nullable Object */;
6064 val* var1 /* : nullable Object */;
6065 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
6066 val* var2 /* : nullable Object */;
6067 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
6068 val* var3 /* : nullable Object */;
6069 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
6070 val* var4 /* : nullable Object */;
6071 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6072 val* var5 /* : nullable Object */;
6073 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6074 val* var6 /* : nullable Object */;
6075 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6076 val* var7 /* : nullable Object */;
6077 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6078 val* var8 /* : nullable Object */;
6079 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6080 val* var9 /* : nullable Object */;
6081 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6082 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
6083 short int var10 /* : Bool */;
6084 int cltype;
6085 int idtype;
6086 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
6087 short int var11 /* : Bool */;
6088 int cltype12;
6089 int idtype13;
6090 val* var_tkwmethnode5 /* var tkwmethnode5: nullable Object */;
6091 short int var14 /* : Bool */;
6092 int cltype15;
6093 int idtype16;
6094 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
6095 short int var17 /* : Bool */;
6096 int cltype18;
6097 int idtype19;
6098 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
6099 short int var20 /* : Bool */;
6100 int cltype21;
6101 int idtype22;
6102 val* var_pannotationsnode8 /* var pannotationsnode8: nullable Object */;
6103 short int var23 /* : Bool */;
6104 int cltype24;
6105 int idtype25;
6106 val* var_pexprnode9 /* var pexprnode9: nullable Object */;
6107 short int var26 /* : Bool */;
6108 int cltype27;
6109 int idtype28;
6110 val* var29 /* : AConcreteMethPropdef */;
6111 val* var30 /* : null */;
6112 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AConcreteMethPropdef */;
6113 long var31 /* : Int */;
6114 long var32 /* : Int */;
6115 var_p = p0;
6116 var = NULL;
6117 var_node_list = var;
6118 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6119 var_nodearraylist9 = var1;
6120 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6121 var_nodearraylist8 = var2;
6122 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6123 var_nodearraylist7 = var3;
6124 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6125 var_nodearraylist6 = var4;
6126 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6127 var_nodearraylist5 = var5;
6128 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6129 var_nodearraylist4 = var6;
6130 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6131 var_nodearraylist3 = var7;
6132 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6133 var_nodearraylist2 = var8;
6134 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6135 var_nodearraylist1 = var9;
6136 var_pdocnode2 = var_nodearraylist1;
6137 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
6138 cltype = type_nullable_parser_nodes__ADoc.color;
6139 idtype = type_nullable_parser_nodes__ADoc.id;
6140 if(var_pdocnode2 == NULL) {
6141 var10 = 1;
6142 } else {
6143 if(cltype >= var_pdocnode2->type->table_size) {
6144 var10 = 0;
6145 } else {
6146 var10 = var_pdocnode2->type->type_table[cltype] == idtype;
6147 }
6148 }
6149 if (!var10) {
6150 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16012);
6151 exit(1);
6152 }
6153 var_pvisibilitynode4 = var_nodearraylist2;
6154 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
6155 cltype12 = type_nullable_parser_nodes__AVisibility.color;
6156 idtype13 = type_nullable_parser_nodes__AVisibility.id;
6157 if(var_pvisibilitynode4 == NULL) {
6158 var11 = 1;
6159 } else {
6160 if(cltype12 >= var_pvisibilitynode4->type->table_size) {
6161 var11 = 0;
6162 } else {
6163 var11 = var_pvisibilitynode4->type->type_table[cltype12] == idtype13;
6164 }
6165 }
6166 if (!var11) {
6167 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16014);
6168 exit(1);
6169 }
6170 var_tkwmethnode5 = var_nodearraylist3;
6171 /* <var_tkwmethnode5:nullable Object> isa nullable TKwmeth */
6172 cltype15 = type_nullable_parser_nodes__TKwmeth.color;
6173 idtype16 = type_nullable_parser_nodes__TKwmeth.id;
6174 if(var_tkwmethnode5 == NULL) {
6175 var14 = 1;
6176 } else {
6177 if(cltype15 >= var_tkwmethnode5->type->table_size) {
6178 var14 = 0;
6179 } else {
6180 var14 = var_tkwmethnode5->type->type_table[cltype15] == idtype16;
6181 }
6182 }
6183 if (!var14) {
6184 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16016);
6185 exit(1);
6186 }
6187 var_pmethidnode6 = var_nodearraylist4;
6188 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
6189 cltype18 = type_nullable_parser_nodes__AMethid.color;
6190 idtype19 = type_nullable_parser_nodes__AMethid.id;
6191 if(var_pmethidnode6 == NULL) {
6192 var17 = 1;
6193 } else {
6194 if(cltype18 >= var_pmethidnode6->type->table_size) {
6195 var17 = 0;
6196 } else {
6197 var17 = var_pmethidnode6->type->type_table[cltype18] == idtype19;
6198 }
6199 }
6200 if (!var17) {
6201 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16018);
6202 exit(1);
6203 }
6204 var_psignaturenode7 = var_nodearraylist5;
6205 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
6206 cltype21 = type_nullable_parser_nodes__ASignature.color;
6207 idtype22 = type_nullable_parser_nodes__ASignature.id;
6208 if(var_psignaturenode7 == NULL) {
6209 var20 = 1;
6210 } else {
6211 if(cltype21 >= var_psignaturenode7->type->table_size) {
6212 var20 = 0;
6213 } else {
6214 var20 = var_psignaturenode7->type->type_table[cltype21] == idtype22;
6215 }
6216 }
6217 if (!var20) {
6218 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16020);
6219 exit(1);
6220 }
6221 var_pannotationsnode8 = var_nodearraylist6;
6222 /* <var_pannotationsnode8:nullable Object> isa nullable AAnnotations */
6223 cltype24 = type_nullable_parser_nodes__AAnnotations.color;
6224 idtype25 = type_nullable_parser_nodes__AAnnotations.id;
6225 if(var_pannotationsnode8 == NULL) {
6226 var23 = 1;
6227 } else {
6228 if(cltype24 >= var_pannotationsnode8->type->table_size) {
6229 var23 = 0;
6230 } else {
6231 var23 = var_pannotationsnode8->type->type_table[cltype24] == idtype25;
6232 }
6233 }
6234 if (!var23) {
6235 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16022);
6236 exit(1);
6237 }
6238 var_pexprnode9 = var_nodearraylist8;
6239 /* <var_pexprnode9:nullable Object> isa nullable AExpr */
6240 cltype27 = type_nullable_parser_nodes__AExpr.color;
6241 idtype28 = type_nullable_parser_nodes__AExpr.id;
6242 if(var_pexprnode9 == NULL) {
6243 var26 = 1;
6244 } else {
6245 if(cltype27 >= var_pexprnode9->type->table_size) {
6246 var26 = 0;
6247 } else {
6248 var26 = var_pexprnode9->type->type_table[cltype27] == idtype28;
6249 }
6250 }
6251 if (!var26) {
6252 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16024);
6253 exit(1);
6254 }
6255 var29 = NEW_parser_nodes__AConcreteMethPropdef(&type_parser_nodes__AConcreteMethPropdef);
6256 var30 = NULL;
6257 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*))(var29->class->vft[COLOR_parser_prod__AConcreteMethPropdef__init_aconcretemethpropdef]))(var29, var_pdocnode2, var30, var_pvisibilitynode4, var_tkwmethnode5, var_pmethidnode6, var_psignaturenode7, var_pannotationsnode8, var_pexprnode9) /* init_aconcretemethpropdef on <var29:AConcreteMethPropdef>*/;
6258 CHECK_NEW_parser_nodes__AConcreteMethPropdef(var29);
6259 var_ppropdefnode1 = var29;
6260 var_node_list = var_ppropdefnode1;
6261 var31 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction351> */
6262 var32 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var31) /* go_to on <var_p:Parser>*/;
6263 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var32, var_node_list) /* push on <var_p:Parser>*/;
6264 RET_LABEL:;
6265 }
6266 /* method parser#ReduceAction351#action for (self: Object, Parser) */
6267 void VIRTUAL_parser__ReduceAction351__action(val* self, val* p0) {
6268 parser__ReduceAction351__action(self, p0);
6269 RET_LABEL:;
6270 }
6271 /* method parser#ReduceAction352#action for (self: ReduceAction352, Parser) */
6272 void parser__ReduceAction352__action(val* self, val* p0) {
6273 val* var_p /* var p: Parser */;
6274 val* var /* : null */;
6275 val* var_node_list /* var node_list: nullable Object */;
6276 val* var1 /* : nullable Object */;
6277 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
6278 val* var2 /* : nullable Object */;
6279 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
6280 val* var3 /* : nullable Object */;
6281 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
6282 val* var4 /* : nullable Object */;
6283 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
6284 val* var5 /* : nullable Object */;
6285 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6286 val* var6 /* : nullable Object */;
6287 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6288 val* var7 /* : nullable Object */;
6289 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6290 val* var8 /* : nullable Object */;
6291 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6292 val* var9 /* : nullable Object */;
6293 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6294 val* var10 /* : nullable Object */;
6295 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6296 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
6297 short int var11 /* : Bool */;
6298 int cltype;
6299 int idtype;
6300 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
6301 short int var12 /* : Bool */;
6302 int cltype13;
6303 int idtype14;
6304 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
6305 short int var15 /* : Bool */;
6306 int cltype16;
6307 int idtype17;
6308 val* var_tkwmethnode5 /* var tkwmethnode5: nullable Object */;
6309 short int var18 /* : Bool */;
6310 int cltype19;
6311 int idtype20;
6312 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
6313 short int var21 /* : Bool */;
6314 int cltype22;
6315 int idtype23;
6316 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
6317 short int var24 /* : Bool */;
6318 int cltype25;
6319 int idtype26;
6320 val* var_pannotationsnode8 /* var pannotationsnode8: nullable Object */;
6321 short int var27 /* : Bool */;
6322 int cltype28;
6323 int idtype29;
6324 val* var_pexprnode9 /* var pexprnode9: nullable Object */;
6325 short int var30 /* : Bool */;
6326 int cltype31;
6327 int idtype32;
6328 val* var33 /* : AConcreteMethPropdef */;
6329 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AConcreteMethPropdef */;
6330 long var34 /* : Int */;
6331 long var35 /* : Int */;
6332 var_p = p0;
6333 var = NULL;
6334 var_node_list = var;
6335 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6336 var_nodearraylist10 = var1;
6337 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6338 var_nodearraylist9 = var2;
6339 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6340 var_nodearraylist8 = var3;
6341 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6342 var_nodearraylist7 = var4;
6343 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6344 var_nodearraylist6 = var5;
6345 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6346 var_nodearraylist5 = var6;
6347 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6348 var_nodearraylist4 = var7;
6349 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6350 var_nodearraylist3 = var8;
6351 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6352 var_nodearraylist2 = var9;
6353 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6354 var_nodearraylist1 = var10;
6355 var_pdocnode2 = var_nodearraylist1;
6356 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
6357 cltype = type_nullable_parser_nodes__ADoc.color;
6358 idtype = type_nullable_parser_nodes__ADoc.id;
6359 if(var_pdocnode2 == NULL) {
6360 var11 = 1;
6361 } else {
6362 if(cltype >= var_pdocnode2->type->table_size) {
6363 var11 = 0;
6364 } else {
6365 var11 = var_pdocnode2->type->type_table[cltype] == idtype;
6366 }
6367 }
6368 if (!var11) {
6369 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16055);
6370 exit(1);
6371 }
6372 var_tkwredefnode3 = var_nodearraylist2;
6373 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
6374 cltype13 = type_nullable_parser_nodes__TKwredef.color;
6375 idtype14 = type_nullable_parser_nodes__TKwredef.id;
6376 if(var_tkwredefnode3 == NULL) {
6377 var12 = 1;
6378 } else {
6379 if(cltype13 >= var_tkwredefnode3->type->table_size) {
6380 var12 = 0;
6381 } else {
6382 var12 = var_tkwredefnode3->type->type_table[cltype13] == idtype14;
6383 }
6384 }
6385 if (!var12) {
6386 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16057);
6387 exit(1);
6388 }
6389 var_pvisibilitynode4 = var_nodearraylist3;
6390 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
6391 cltype16 = type_nullable_parser_nodes__AVisibility.color;
6392 idtype17 = type_nullable_parser_nodes__AVisibility.id;
6393 if(var_pvisibilitynode4 == NULL) {
6394 var15 = 1;
6395 } else {
6396 if(cltype16 >= var_pvisibilitynode4->type->table_size) {
6397 var15 = 0;
6398 } else {
6399 var15 = var_pvisibilitynode4->type->type_table[cltype16] == idtype17;
6400 }
6401 }
6402 if (!var15) {
6403 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16059);
6404 exit(1);
6405 }
6406 var_tkwmethnode5 = var_nodearraylist4;
6407 /* <var_tkwmethnode5:nullable Object> isa nullable TKwmeth */
6408 cltype19 = type_nullable_parser_nodes__TKwmeth.color;
6409 idtype20 = type_nullable_parser_nodes__TKwmeth.id;
6410 if(var_tkwmethnode5 == NULL) {
6411 var18 = 1;
6412 } else {
6413 if(cltype19 >= var_tkwmethnode5->type->table_size) {
6414 var18 = 0;
6415 } else {
6416 var18 = var_tkwmethnode5->type->type_table[cltype19] == idtype20;
6417 }
6418 }
6419 if (!var18) {
6420 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16061);
6421 exit(1);
6422 }
6423 var_pmethidnode6 = var_nodearraylist5;
6424 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
6425 cltype22 = type_nullable_parser_nodes__AMethid.color;
6426 idtype23 = type_nullable_parser_nodes__AMethid.id;
6427 if(var_pmethidnode6 == NULL) {
6428 var21 = 1;
6429 } else {
6430 if(cltype22 >= var_pmethidnode6->type->table_size) {
6431 var21 = 0;
6432 } else {
6433 var21 = var_pmethidnode6->type->type_table[cltype22] == idtype23;
6434 }
6435 }
6436 if (!var21) {
6437 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16063);
6438 exit(1);
6439 }
6440 var_psignaturenode7 = var_nodearraylist6;
6441 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
6442 cltype25 = type_nullable_parser_nodes__ASignature.color;
6443 idtype26 = type_nullable_parser_nodes__ASignature.id;
6444 if(var_psignaturenode7 == NULL) {
6445 var24 = 1;
6446 } else {
6447 if(cltype25 >= var_psignaturenode7->type->table_size) {
6448 var24 = 0;
6449 } else {
6450 var24 = var_psignaturenode7->type->type_table[cltype25] == idtype26;
6451 }
6452 }
6453 if (!var24) {
6454 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16065);
6455 exit(1);
6456 }
6457 var_pannotationsnode8 = var_nodearraylist7;
6458 /* <var_pannotationsnode8:nullable Object> isa nullable AAnnotations */
6459 cltype28 = type_nullable_parser_nodes__AAnnotations.color;
6460 idtype29 = type_nullable_parser_nodes__AAnnotations.id;
6461 if(var_pannotationsnode8 == NULL) {
6462 var27 = 1;
6463 } else {
6464 if(cltype28 >= var_pannotationsnode8->type->table_size) {
6465 var27 = 0;
6466 } else {
6467 var27 = var_pannotationsnode8->type->type_table[cltype28] == idtype29;
6468 }
6469 }
6470 if (!var27) {
6471 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16067);
6472 exit(1);
6473 }
6474 var_pexprnode9 = var_nodearraylist9;
6475 /* <var_pexprnode9:nullable Object> isa nullable AExpr */
6476 cltype31 = type_nullable_parser_nodes__AExpr.color;
6477 idtype32 = type_nullable_parser_nodes__AExpr.id;
6478 if(var_pexprnode9 == NULL) {
6479 var30 = 1;
6480 } else {
6481 if(cltype31 >= var_pexprnode9->type->table_size) {
6482 var30 = 0;
6483 } else {
6484 var30 = var_pexprnode9->type->type_table[cltype31] == idtype32;
6485 }
6486 }
6487 if (!var30) {
6488 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16069);
6489 exit(1);
6490 }
6491 var33 = NEW_parser_nodes__AConcreteMethPropdef(&type_parser_nodes__AConcreteMethPropdef);
6492 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*))(var33->class->vft[COLOR_parser_prod__AConcreteMethPropdef__init_aconcretemethpropdef]))(var33, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwmethnode5, var_pmethidnode6, var_psignaturenode7, var_pannotationsnode8, var_pexprnode9) /* init_aconcretemethpropdef on <var33:AConcreteMethPropdef>*/;
6493 CHECK_NEW_parser_nodes__AConcreteMethPropdef(var33);
6494 var_ppropdefnode1 = var33;
6495 var_node_list = var_ppropdefnode1;
6496 var34 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction352> */
6497 var35 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var34) /* go_to on <var_p:Parser>*/;
6498 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var35, var_node_list) /* push on <var_p:Parser>*/;
6499 RET_LABEL:;
6500 }
6501 /* method parser#ReduceAction352#action for (self: Object, Parser) */
6502 void VIRTUAL_parser__ReduceAction352__action(val* self, val* p0) {
6503 parser__ReduceAction352__action(self, p0);
6504 RET_LABEL:;
6505 }
6506 /* method parser#ReduceAction353#action for (self: ReduceAction353, Parser) */
6507 void parser__ReduceAction353__action(val* self, val* p0) {
6508 val* var_p /* var p: Parser */;
6509 val* var /* : null */;
6510 val* var_node_list /* var node_list: nullable Object */;
6511 val* var1 /* : nullable Object */;
6512 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
6513 val* var2 /* : nullable Object */;
6514 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
6515 val* var3 /* : nullable Object */;
6516 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6517 val* var4 /* : nullable Object */;
6518 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6519 val* var5 /* : nullable Object */;
6520 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6521 val* var6 /* : nullable Object */;
6522 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6523 val* var7 /* : nullable Object */;
6524 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6525 val* var8 /* : nullable Object */;
6526 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6527 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
6528 short int var9 /* : Bool */;
6529 int cltype;
6530 int idtype;
6531 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
6532 short int var10 /* : Bool */;
6533 int cltype11;
6534 int idtype12;
6535 val* var_tkwmethnode5 /* var tkwmethnode5: nullable Object */;
6536 short int var13 /* : Bool */;
6537 int cltype14;
6538 int idtype15;
6539 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
6540 short int var16 /* : Bool */;
6541 int cltype17;
6542 int idtype18;
6543 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
6544 short int var19 /* : Bool */;
6545 int cltype20;
6546 int idtype21;
6547 val* var_pexprnode9 /* var pexprnode9: nullable Object */;
6548 short int var22 /* : Bool */;
6549 int cltype23;
6550 int idtype24;
6551 val* var25 /* : AConcreteMethPropdef */;
6552 val* var26 /* : null */;
6553 val* var27 /* : null */;
6554 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AConcreteMethPropdef */;
6555 long var28 /* : Int */;
6556 long var29 /* : Int */;
6557 var_p = p0;
6558 var = NULL;
6559 var_node_list = var;
6560 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6561 var_nodearraylist8 = var1;
6562 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6563 var_nodearraylist7 = var2;
6564 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6565 var_nodearraylist6 = var3;
6566 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6567 var_nodearraylist5 = var4;
6568 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6569 var_nodearraylist4 = var5;
6570 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6571 var_nodearraylist3 = var6;
6572 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6573 var_nodearraylist2 = var7;
6574 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6575 var_nodearraylist1 = var8;
6576 var_pdocnode2 = var_nodearraylist1;
6577 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
6578 cltype = type_nullable_parser_nodes__ADoc.color;
6579 idtype = type_nullable_parser_nodes__ADoc.id;
6580 if(var_pdocnode2 == NULL) {
6581 var9 = 1;
6582 } else {
6583 if(cltype >= var_pdocnode2->type->table_size) {
6584 var9 = 0;
6585 } else {
6586 var9 = var_pdocnode2->type->type_table[cltype] == idtype;
6587 }
6588 }
6589 if (!var9) {
6590 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16098);
6591 exit(1);
6592 }
6593 var_pvisibilitynode4 = var_nodearraylist2;
6594 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
6595 cltype11 = type_nullable_parser_nodes__AVisibility.color;
6596 idtype12 = type_nullable_parser_nodes__AVisibility.id;
6597 if(var_pvisibilitynode4 == NULL) {
6598 var10 = 1;
6599 } else {
6600 if(cltype11 >= var_pvisibilitynode4->type->table_size) {
6601 var10 = 0;
6602 } else {
6603 var10 = var_pvisibilitynode4->type->type_table[cltype11] == idtype12;
6604 }
6605 }
6606 if (!var10) {
6607 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16100);
6608 exit(1);
6609 }
6610 var_tkwmethnode5 = var_nodearraylist3;
6611 /* <var_tkwmethnode5:nullable Object> isa nullable TKwmeth */
6612 cltype14 = type_nullable_parser_nodes__TKwmeth.color;
6613 idtype15 = type_nullable_parser_nodes__TKwmeth.id;
6614 if(var_tkwmethnode5 == NULL) {
6615 var13 = 1;
6616 } else {
6617 if(cltype14 >= var_tkwmethnode5->type->table_size) {
6618 var13 = 0;
6619 } else {
6620 var13 = var_tkwmethnode5->type->type_table[cltype14] == idtype15;
6621 }
6622 }
6623 if (!var13) {
6624 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16102);
6625 exit(1);
6626 }
6627 var_pmethidnode6 = var_nodearraylist4;
6628 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
6629 cltype17 = type_nullable_parser_nodes__AMethid.color;
6630 idtype18 = type_nullable_parser_nodes__AMethid.id;
6631 if(var_pmethidnode6 == NULL) {
6632 var16 = 1;
6633 } else {
6634 if(cltype17 >= var_pmethidnode6->type->table_size) {
6635 var16 = 0;
6636 } else {
6637 var16 = var_pmethidnode6->type->type_table[cltype17] == idtype18;
6638 }
6639 }
6640 if (!var16) {
6641 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16104);
6642 exit(1);
6643 }
6644 var_psignaturenode7 = var_nodearraylist5;
6645 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
6646 cltype20 = type_nullable_parser_nodes__ASignature.color;
6647 idtype21 = type_nullable_parser_nodes__ASignature.id;
6648 if(var_psignaturenode7 == NULL) {
6649 var19 = 1;
6650 } else {
6651 if(cltype20 >= var_psignaturenode7->type->table_size) {
6652 var19 = 0;
6653 } else {
6654 var19 = var_psignaturenode7->type->type_table[cltype20] == idtype21;
6655 }
6656 }
6657 if (!var19) {
6658 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16106);
6659 exit(1);
6660 }
6661 var_pexprnode9 = var_nodearraylist8;
6662 /* <var_pexprnode9:nullable Object> isa nullable AExpr */
6663 cltype23 = type_nullable_parser_nodes__AExpr.color;
6664 idtype24 = type_nullable_parser_nodes__AExpr.id;
6665 if(var_pexprnode9 == NULL) {
6666 var22 = 1;
6667 } else {
6668 if(cltype23 >= var_pexprnode9->type->table_size) {
6669 var22 = 0;
6670 } else {
6671 var22 = var_pexprnode9->type->type_table[cltype23] == idtype24;
6672 }
6673 }
6674 if (!var22) {
6675 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16108);
6676 exit(1);
6677 }
6678 var25 = NEW_parser_nodes__AConcreteMethPropdef(&type_parser_nodes__AConcreteMethPropdef);
6679 var26 = NULL;
6680 var27 = NULL;
6681 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*))(var25->class->vft[COLOR_parser_prod__AConcreteMethPropdef__init_aconcretemethpropdef]))(var25, var_pdocnode2, var26, var_pvisibilitynode4, var_tkwmethnode5, var_pmethidnode6, var_psignaturenode7, var27, var_pexprnode9) /* init_aconcretemethpropdef on <var25:AConcreteMethPropdef>*/;
6682 CHECK_NEW_parser_nodes__AConcreteMethPropdef(var25);
6683 var_ppropdefnode1 = var25;
6684 var_node_list = var_ppropdefnode1;
6685 var28 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction353> */
6686 var29 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var28) /* go_to on <var_p:Parser>*/;
6687 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var29, var_node_list) /* push on <var_p:Parser>*/;
6688 RET_LABEL:;
6689 }
6690 /* method parser#ReduceAction353#action for (self: Object, Parser) */
6691 void VIRTUAL_parser__ReduceAction353__action(val* self, val* p0) {
6692 parser__ReduceAction353__action(self, p0);
6693 RET_LABEL:;
6694 }
6695 /* method parser#ReduceAction354#action for (self: ReduceAction354, Parser) */
6696 void parser__ReduceAction354__action(val* self, val* p0) {
6697 val* var_p /* var p: Parser */;
6698 val* var /* : null */;
6699 val* var_node_list /* var node_list: nullable Object */;
6700 val* var1 /* : nullable Object */;
6701 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
6702 val* var2 /* : nullable Object */;
6703 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
6704 val* var3 /* : nullable Object */;
6705 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
6706 val* var4 /* : nullable Object */;
6707 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6708 val* var5 /* : nullable Object */;
6709 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6710 val* var6 /* : nullable Object */;
6711 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6712 val* var7 /* : nullable Object */;
6713 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6714 val* var8 /* : nullable Object */;
6715 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6716 val* var9 /* : nullable Object */;
6717 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6718 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
6719 short int var10 /* : Bool */;
6720 int cltype;
6721 int idtype;
6722 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
6723 short int var11 /* : Bool */;
6724 int cltype12;
6725 int idtype13;
6726 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
6727 short int var14 /* : Bool */;
6728 int cltype15;
6729 int idtype16;
6730 val* var_tkwmethnode5 /* var tkwmethnode5: nullable Object */;
6731 short int var17 /* : Bool */;
6732 int cltype18;
6733 int idtype19;
6734 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
6735 short int var20 /* : Bool */;
6736 int cltype21;
6737 int idtype22;
6738 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
6739 short int var23 /* : Bool */;
6740 int cltype24;
6741 int idtype25;
6742 val* var_pexprnode9 /* var pexprnode9: nullable Object */;
6743 short int var26 /* : Bool */;
6744 int cltype27;
6745 int idtype28;
6746 val* var29 /* : AConcreteMethPropdef */;
6747 val* var30 /* : null */;
6748 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AConcreteMethPropdef */;
6749 long var31 /* : Int */;
6750 long var32 /* : Int */;
6751 var_p = p0;
6752 var = NULL;
6753 var_node_list = var;
6754 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6755 var_nodearraylist9 = var1;
6756 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6757 var_nodearraylist8 = var2;
6758 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6759 var_nodearraylist7 = var3;
6760 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6761 var_nodearraylist6 = var4;
6762 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6763 var_nodearraylist5 = var5;
6764 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6765 var_nodearraylist4 = var6;
6766 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6767 var_nodearraylist3 = var7;
6768 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6769 var_nodearraylist2 = var8;
6770 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6771 var_nodearraylist1 = var9;
6772 var_pdocnode2 = var_nodearraylist1;
6773 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
6774 cltype = type_nullable_parser_nodes__ADoc.color;
6775 idtype = type_nullable_parser_nodes__ADoc.id;
6776 if(var_pdocnode2 == NULL) {
6777 var10 = 1;
6778 } else {
6779 if(cltype >= var_pdocnode2->type->table_size) {
6780 var10 = 0;
6781 } else {
6782 var10 = var_pdocnode2->type->type_table[cltype] == idtype;
6783 }
6784 }
6785 if (!var10) {
6786 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16138);
6787 exit(1);
6788 }
6789 var_tkwredefnode3 = var_nodearraylist2;
6790 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
6791 cltype12 = type_nullable_parser_nodes__TKwredef.color;
6792 idtype13 = type_nullable_parser_nodes__TKwredef.id;
6793 if(var_tkwredefnode3 == NULL) {
6794 var11 = 1;
6795 } else {
6796 if(cltype12 >= var_tkwredefnode3->type->table_size) {
6797 var11 = 0;
6798 } else {
6799 var11 = var_tkwredefnode3->type->type_table[cltype12] == idtype13;
6800 }
6801 }
6802 if (!var11) {
6803 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16140);
6804 exit(1);
6805 }
6806 var_pvisibilitynode4 = var_nodearraylist3;
6807 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
6808 cltype15 = type_nullable_parser_nodes__AVisibility.color;
6809 idtype16 = type_nullable_parser_nodes__AVisibility.id;
6810 if(var_pvisibilitynode4 == NULL) {
6811 var14 = 1;
6812 } else {
6813 if(cltype15 >= var_pvisibilitynode4->type->table_size) {
6814 var14 = 0;
6815 } else {
6816 var14 = var_pvisibilitynode4->type->type_table[cltype15] == idtype16;
6817 }
6818 }
6819 if (!var14) {
6820 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16142);
6821 exit(1);
6822 }
6823 var_tkwmethnode5 = var_nodearraylist4;
6824 /* <var_tkwmethnode5:nullable Object> isa nullable TKwmeth */
6825 cltype18 = type_nullable_parser_nodes__TKwmeth.color;
6826 idtype19 = type_nullable_parser_nodes__TKwmeth.id;
6827 if(var_tkwmethnode5 == NULL) {
6828 var17 = 1;
6829 } else {
6830 if(cltype18 >= var_tkwmethnode5->type->table_size) {
6831 var17 = 0;
6832 } else {
6833 var17 = var_tkwmethnode5->type->type_table[cltype18] == idtype19;
6834 }
6835 }
6836 if (!var17) {
6837 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16144);
6838 exit(1);
6839 }
6840 var_pmethidnode6 = var_nodearraylist5;
6841 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
6842 cltype21 = type_nullable_parser_nodes__AMethid.color;
6843 idtype22 = type_nullable_parser_nodes__AMethid.id;
6844 if(var_pmethidnode6 == NULL) {
6845 var20 = 1;
6846 } else {
6847 if(cltype21 >= var_pmethidnode6->type->table_size) {
6848 var20 = 0;
6849 } else {
6850 var20 = var_pmethidnode6->type->type_table[cltype21] == idtype22;
6851 }
6852 }
6853 if (!var20) {
6854 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16146);
6855 exit(1);
6856 }
6857 var_psignaturenode7 = var_nodearraylist6;
6858 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
6859 cltype24 = type_nullable_parser_nodes__ASignature.color;
6860 idtype25 = type_nullable_parser_nodes__ASignature.id;
6861 if(var_psignaturenode7 == NULL) {
6862 var23 = 1;
6863 } else {
6864 if(cltype24 >= var_psignaturenode7->type->table_size) {
6865 var23 = 0;
6866 } else {
6867 var23 = var_psignaturenode7->type->type_table[cltype24] == idtype25;
6868 }
6869 }
6870 if (!var23) {
6871 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16148);
6872 exit(1);
6873 }
6874 var_pexprnode9 = var_nodearraylist9;
6875 /* <var_pexprnode9:nullable Object> isa nullable AExpr */
6876 cltype27 = type_nullable_parser_nodes__AExpr.color;
6877 idtype28 = type_nullable_parser_nodes__AExpr.id;
6878 if(var_pexprnode9 == NULL) {
6879 var26 = 1;
6880 } else {
6881 if(cltype27 >= var_pexprnode9->type->table_size) {
6882 var26 = 0;
6883 } else {
6884 var26 = var_pexprnode9->type->type_table[cltype27] == idtype28;
6885 }
6886 }
6887 if (!var26) {
6888 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16150);
6889 exit(1);
6890 }
6891 var29 = NEW_parser_nodes__AConcreteMethPropdef(&type_parser_nodes__AConcreteMethPropdef);
6892 var30 = NULL;
6893 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*))(var29->class->vft[COLOR_parser_prod__AConcreteMethPropdef__init_aconcretemethpropdef]))(var29, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwmethnode5, var_pmethidnode6, var_psignaturenode7, var30, var_pexprnode9) /* init_aconcretemethpropdef on <var29:AConcreteMethPropdef>*/;
6894 CHECK_NEW_parser_nodes__AConcreteMethPropdef(var29);
6895 var_ppropdefnode1 = var29;
6896 var_node_list = var_ppropdefnode1;
6897 var31 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction354> */
6898 var32 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var31) /* go_to on <var_p:Parser>*/;
6899 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var32, var_node_list) /* push on <var_p:Parser>*/;
6900 RET_LABEL:;
6901 }
6902 /* method parser#ReduceAction354#action for (self: Object, Parser) */
6903 void VIRTUAL_parser__ReduceAction354__action(val* self, val* p0) {
6904 parser__ReduceAction354__action(self, p0);
6905 RET_LABEL:;
6906 }
6907 /* method parser#ReduceAction355#action for (self: ReduceAction355, Parser) */
6908 void parser__ReduceAction355__action(val* self, val* p0) {
6909 val* var_p /* var p: Parser */;
6910 val* var /* : null */;
6911 val* var_node_list /* var node_list: nullable Object */;
6912 val* var1 /* : nullable Object */;
6913 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6914 val* var2 /* : nullable Object */;
6915 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6916 val* var3 /* : nullable Object */;
6917 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6918 val* var4 /* : nullable Object */;
6919 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6920 val* var5 /* : nullable Object */;
6921 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6922 val* var6 /* : nullable Object */;
6923 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6924 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
6925 short int var7 /* : Bool */;
6926 int cltype;
6927 int idtype;
6928 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
6929 short int var8 /* : Bool */;
6930 int cltype9;
6931 int idtype10;
6932 val* var_tkwmethnode5 /* var tkwmethnode5: nullable Object */;
6933 short int var11 /* : Bool */;
6934 int cltype12;
6935 int idtype13;
6936 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
6937 short int var14 /* : Bool */;
6938 int cltype15;
6939 int idtype16;
6940 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
6941 short int var17 /* : Bool */;
6942 int cltype18;
6943 int idtype19;
6944 val* var_pannotationsnode8 /* var pannotationsnode8: nullable Object */;
6945 short int var20 /* : Bool */;
6946 int cltype21;
6947 int idtype22;
6948 val* var23 /* : ADeferredMethPropdef */;
6949 val* var24 /* : null */;
6950 val* var_ppropdefnode1 /* var ppropdefnode1: nullable ADeferredMethPropdef */;
6951 long var25 /* : Int */;
6952 long var26 /* : Int */;
6953 var_p = p0;
6954 var = NULL;
6955 var_node_list = var;
6956 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6957 var_nodearraylist6 = var1;
6958 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6959 var_nodearraylist5 = var2;
6960 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6961 var_nodearraylist4 = var3;
6962 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6963 var_nodearraylist3 = var4;
6964 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6965 var_nodearraylist2 = var5;
6966 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6967 var_nodearraylist1 = var6;
6968 var_pdocnode2 = var_nodearraylist1;
6969 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
6970 cltype = type_nullable_parser_nodes__ADoc.color;
6971 idtype = type_nullable_parser_nodes__ADoc.id;
6972 if(var_pdocnode2 == NULL) {
6973 var7 = 1;
6974 } else {
6975 if(cltype >= var_pdocnode2->type->table_size) {
6976 var7 = 0;
6977 } else {
6978 var7 = var_pdocnode2->type->type_table[cltype] == idtype;
6979 }
6980 }
6981 if (!var7) {
6982 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16177);
6983 exit(1);
6984 }
6985 var_pvisibilitynode4 = var_nodearraylist2;
6986 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
6987 cltype9 = type_nullable_parser_nodes__AVisibility.color;
6988 idtype10 = type_nullable_parser_nodes__AVisibility.id;
6989 if(var_pvisibilitynode4 == NULL) {
6990 var8 = 1;
6991 } else {
6992 if(cltype9 >= var_pvisibilitynode4->type->table_size) {
6993 var8 = 0;
6994 } else {
6995 var8 = var_pvisibilitynode4->type->type_table[cltype9] == idtype10;
6996 }
6997 }
6998 if (!var8) {
6999 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16179);
7000 exit(1);
7001 }
7002 var_tkwmethnode5 = var_nodearraylist3;
7003 /* <var_tkwmethnode5:nullable Object> isa nullable TKwmeth */
7004 cltype12 = type_nullable_parser_nodes__TKwmeth.color;
7005 idtype13 = type_nullable_parser_nodes__TKwmeth.id;
7006 if(var_tkwmethnode5 == NULL) {
7007 var11 = 1;
7008 } else {
7009 if(cltype12 >= var_tkwmethnode5->type->table_size) {
7010 var11 = 0;
7011 } else {
7012 var11 = var_tkwmethnode5->type->type_table[cltype12] == idtype13;
7013 }
7014 }
7015 if (!var11) {
7016 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16181);
7017 exit(1);
7018 }
7019 var_pmethidnode6 = var_nodearraylist4;
7020 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
7021 cltype15 = type_nullable_parser_nodes__AMethid.color;
7022 idtype16 = type_nullable_parser_nodes__AMethid.id;
7023 if(var_pmethidnode6 == NULL) {
7024 var14 = 1;
7025 } else {
7026 if(cltype15 >= var_pmethidnode6->type->table_size) {
7027 var14 = 0;
7028 } else {
7029 var14 = var_pmethidnode6->type->type_table[cltype15] == idtype16;
7030 }
7031 }
7032 if (!var14) {
7033 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16183);
7034 exit(1);
7035 }
7036 var_psignaturenode7 = var_nodearraylist5;
7037 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
7038 cltype18 = type_nullable_parser_nodes__ASignature.color;
7039 idtype19 = type_nullable_parser_nodes__ASignature.id;
7040 if(var_psignaturenode7 == NULL) {
7041 var17 = 1;
7042 } else {
7043 if(cltype18 >= var_psignaturenode7->type->table_size) {
7044 var17 = 0;
7045 } else {
7046 var17 = var_psignaturenode7->type->type_table[cltype18] == idtype19;
7047 }
7048 }
7049 if (!var17) {
7050 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16185);
7051 exit(1);
7052 }
7053 var_pannotationsnode8 = var_nodearraylist6;
7054 /* <var_pannotationsnode8:nullable Object> isa nullable AAnnotations */
7055 cltype21 = type_nullable_parser_nodes__AAnnotations.color;
7056 idtype22 = type_nullable_parser_nodes__AAnnotations.id;
7057 if(var_pannotationsnode8 == NULL) {
7058 var20 = 1;
7059 } else {
7060 if(cltype21 >= var_pannotationsnode8->type->table_size) {
7061 var20 = 0;
7062 } else {
7063 var20 = var_pannotationsnode8->type->type_table[cltype21] == idtype22;
7064 }
7065 }
7066 if (!var20) {
7067 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16187);
7068 exit(1);
7069 }
7070 var23 = NEW_parser_nodes__ADeferredMethPropdef(&type_parser_nodes__ADeferredMethPropdef);
7071 var24 = NULL;
7072 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*))(var23->class->vft[COLOR_parser_prod__ADeferredMethPropdef__init_adeferredmethpropdef]))(var23, var_pdocnode2, var24, var_pvisibilitynode4, var_tkwmethnode5, var_pmethidnode6, var_psignaturenode7, var_pannotationsnode8) /* init_adeferredmethpropdef on <var23:ADeferredMethPropdef>*/;
7073 CHECK_NEW_parser_nodes__ADeferredMethPropdef(var23);
7074 var_ppropdefnode1 = var23;
7075 var_node_list = var_ppropdefnode1;
7076 var25 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction355> */
7077 var26 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var25) /* go_to on <var_p:Parser>*/;
7078 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var26, var_node_list) /* push on <var_p:Parser>*/;
7079 RET_LABEL:;
7080 }
7081 /* method parser#ReduceAction355#action for (self: Object, Parser) */
7082 void VIRTUAL_parser__ReduceAction355__action(val* self, val* p0) {
7083 parser__ReduceAction355__action(self, p0);
7084 RET_LABEL:;
7085 }
7086 /* method parser#ReduceAction356#action for (self: ReduceAction356, Parser) */
7087 void parser__ReduceAction356__action(val* self, val* p0) {
7088 val* var_p /* var p: Parser */;
7089 val* var /* : null */;
7090 val* var_node_list /* var node_list: nullable Object */;
7091 val* var1 /* : nullable Object */;
7092 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
7093 val* var2 /* : nullable Object */;
7094 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7095 val* var3 /* : nullable Object */;
7096 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7097 val* var4 /* : nullable Object */;
7098 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7099 val* var5 /* : nullable Object */;
7100 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7101 val* var6 /* : nullable Object */;
7102 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7103 val* var7 /* : nullable Object */;
7104 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7105 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
7106 short int var8 /* : Bool */;
7107 int cltype;
7108 int idtype;
7109 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
7110 short int var9 /* : Bool */;
7111 int cltype10;
7112 int idtype11;
7113 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
7114 short int var12 /* : Bool */;
7115 int cltype13;
7116 int idtype14;
7117 val* var_tkwmethnode5 /* var tkwmethnode5: nullable Object */;
7118 short int var15 /* : Bool */;
7119 int cltype16;
7120 int idtype17;
7121 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
7122 short int var18 /* : Bool */;
7123 int cltype19;
7124 int idtype20;
7125 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
7126 short int var21 /* : Bool */;
7127 int cltype22;
7128 int idtype23;
7129 val* var_pannotationsnode8 /* var pannotationsnode8: nullable Object */;
7130 short int var24 /* : Bool */;
7131 int cltype25;
7132 int idtype26;
7133 val* var27 /* : ADeferredMethPropdef */;
7134 val* var_ppropdefnode1 /* var ppropdefnode1: nullable ADeferredMethPropdef */;
7135 long var28 /* : Int */;
7136 long var29 /* : Int */;
7137 var_p = p0;
7138 var = NULL;
7139 var_node_list = var;
7140 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7141 var_nodearraylist7 = var1;
7142 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7143 var_nodearraylist6 = var2;
7144 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7145 var_nodearraylist5 = var3;
7146 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7147 var_nodearraylist4 = var4;
7148 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7149 var_nodearraylist3 = var5;
7150 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7151 var_nodearraylist2 = var6;
7152 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7153 var_nodearraylist1 = var7;
7154 var_pdocnode2 = var_nodearraylist1;
7155 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
7156 cltype = type_nullable_parser_nodes__ADoc.color;
7157 idtype = type_nullable_parser_nodes__ADoc.id;
7158 if(var_pdocnode2 == NULL) {
7159 var8 = 1;
7160 } else {
7161 if(cltype >= var_pdocnode2->type->table_size) {
7162 var8 = 0;
7163 } else {
7164 var8 = var_pdocnode2->type->type_table[cltype] == idtype;
7165 }
7166 }
7167 if (!var8) {
7168 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16214);
7169 exit(1);
7170 }
7171 var_tkwredefnode3 = var_nodearraylist2;
7172 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
7173 cltype10 = type_nullable_parser_nodes__TKwredef.color;
7174 idtype11 = type_nullable_parser_nodes__TKwredef.id;
7175 if(var_tkwredefnode3 == NULL) {
7176 var9 = 1;
7177 } else {
7178 if(cltype10 >= var_tkwredefnode3->type->table_size) {
7179 var9 = 0;
7180 } else {
7181 var9 = var_tkwredefnode3->type->type_table[cltype10] == idtype11;
7182 }
7183 }
7184 if (!var9) {
7185 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16216);
7186 exit(1);
7187 }
7188 var_pvisibilitynode4 = var_nodearraylist3;
7189 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
7190 cltype13 = type_nullable_parser_nodes__AVisibility.color;
7191 idtype14 = type_nullable_parser_nodes__AVisibility.id;
7192 if(var_pvisibilitynode4 == NULL) {
7193 var12 = 1;
7194 } else {
7195 if(cltype13 >= var_pvisibilitynode4->type->table_size) {
7196 var12 = 0;
7197 } else {
7198 var12 = var_pvisibilitynode4->type->type_table[cltype13] == idtype14;
7199 }
7200 }
7201 if (!var12) {
7202 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16218);
7203 exit(1);
7204 }
7205 var_tkwmethnode5 = var_nodearraylist4;
7206 /* <var_tkwmethnode5:nullable Object> isa nullable TKwmeth */
7207 cltype16 = type_nullable_parser_nodes__TKwmeth.color;
7208 idtype17 = type_nullable_parser_nodes__TKwmeth.id;
7209 if(var_tkwmethnode5 == NULL) {
7210 var15 = 1;
7211 } else {
7212 if(cltype16 >= var_tkwmethnode5->type->table_size) {
7213 var15 = 0;
7214 } else {
7215 var15 = var_tkwmethnode5->type->type_table[cltype16] == idtype17;
7216 }
7217 }
7218 if (!var15) {
7219 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16220);
7220 exit(1);
7221 }
7222 var_pmethidnode6 = var_nodearraylist5;
7223 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
7224 cltype19 = type_nullable_parser_nodes__AMethid.color;
7225 idtype20 = type_nullable_parser_nodes__AMethid.id;
7226 if(var_pmethidnode6 == NULL) {
7227 var18 = 1;
7228 } else {
7229 if(cltype19 >= var_pmethidnode6->type->table_size) {
7230 var18 = 0;
7231 } else {
7232 var18 = var_pmethidnode6->type->type_table[cltype19] == idtype20;
7233 }
7234 }
7235 if (!var18) {
7236 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16222);
7237 exit(1);
7238 }
7239 var_psignaturenode7 = var_nodearraylist6;
7240 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
7241 cltype22 = type_nullable_parser_nodes__ASignature.color;
7242 idtype23 = type_nullable_parser_nodes__ASignature.id;
7243 if(var_psignaturenode7 == NULL) {
7244 var21 = 1;
7245 } else {
7246 if(cltype22 >= var_psignaturenode7->type->table_size) {
7247 var21 = 0;
7248 } else {
7249 var21 = var_psignaturenode7->type->type_table[cltype22] == idtype23;
7250 }
7251 }
7252 if (!var21) {
7253 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16224);
7254 exit(1);
7255 }
7256 var_pannotationsnode8 = var_nodearraylist7;
7257 /* <var_pannotationsnode8:nullable Object> isa nullable AAnnotations */
7258 cltype25 = type_nullable_parser_nodes__AAnnotations.color;
7259 idtype26 = type_nullable_parser_nodes__AAnnotations.id;
7260 if(var_pannotationsnode8 == NULL) {
7261 var24 = 1;
7262 } else {
7263 if(cltype25 >= var_pannotationsnode8->type->table_size) {
7264 var24 = 0;
7265 } else {
7266 var24 = var_pannotationsnode8->type->type_table[cltype25] == idtype26;
7267 }
7268 }
7269 if (!var24) {
7270 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16226);
7271 exit(1);
7272 }
7273 var27 = NEW_parser_nodes__ADeferredMethPropdef(&type_parser_nodes__ADeferredMethPropdef);
7274 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*))(var27->class->vft[COLOR_parser_prod__ADeferredMethPropdef__init_adeferredmethpropdef]))(var27, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwmethnode5, var_pmethidnode6, var_psignaturenode7, var_pannotationsnode8) /* init_adeferredmethpropdef on <var27:ADeferredMethPropdef>*/;
7275 CHECK_NEW_parser_nodes__ADeferredMethPropdef(var27);
7276 var_ppropdefnode1 = var27;
7277 var_node_list = var_ppropdefnode1;
7278 var28 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction356> */
7279 var29 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var28) /* go_to on <var_p:Parser>*/;
7280 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var29, var_node_list) /* push on <var_p:Parser>*/;
7281 RET_LABEL:;
7282 }
7283 /* method parser#ReduceAction356#action for (self: Object, Parser) */
7284 void VIRTUAL_parser__ReduceAction356__action(val* self, val* p0) {
7285 parser__ReduceAction356__action(self, p0);
7286 RET_LABEL:;
7287 }
7288 /* method parser#ReduceAction357#action for (self: ReduceAction357, Parser) */
7289 void parser__ReduceAction357__action(val* self, val* p0) {
7290 val* var_p /* var p: Parser */;
7291 val* var /* : null */;
7292 val* var_node_list /* var node_list: nullable Object */;
7293 val* var1 /* : nullable Object */;
7294 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
7295 val* var2 /* : nullable Object */;
7296 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7297 val* var3 /* : nullable Object */;
7298 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7299 val* var4 /* : nullable Object */;
7300 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7301 val* var5 /* : nullable Object */;
7302 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7303 val* var6 /* : nullable Object */;
7304 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7305 val* var7 /* : nullable Object */;
7306 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7307 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
7308 short int var8 /* : Bool */;
7309 int cltype;
7310 int idtype;
7311 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
7312 short int var9 /* : Bool */;
7313 int cltype10;
7314 int idtype11;
7315 val* var_tkwmethnode5 /* var tkwmethnode5: nullable Object */;
7316 short int var12 /* : Bool */;
7317 int cltype13;
7318 int idtype14;
7319 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
7320 short int var15 /* : Bool */;
7321 int cltype16;
7322 int idtype17;
7323 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
7324 short int var18 /* : Bool */;
7325 int cltype19;
7326 int idtype20;
7327 val* var21 /* : ADeferredMethPropdef */;
7328 val* var22 /* : null */;
7329 val* var23 /* : null */;
7330 val* var_ppropdefnode1 /* var ppropdefnode1: nullable ADeferredMethPropdef */;
7331 long var24 /* : Int */;
7332 long var25 /* : Int */;
7333 var_p = p0;
7334 var = NULL;
7335 var_node_list = var;
7336 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7337 var_nodearraylist7 = var1;
7338 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7339 var_nodearraylist6 = var2;
7340 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7341 var_nodearraylist5 = var3;
7342 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7343 var_nodearraylist4 = var4;
7344 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7345 var_nodearraylist3 = var5;
7346 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7347 var_nodearraylist2 = var6;
7348 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7349 var_nodearraylist1 = var7;
7350 var_pdocnode2 = var_nodearraylist1;
7351 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
7352 cltype = type_nullable_parser_nodes__ADoc.color;
7353 idtype = type_nullable_parser_nodes__ADoc.id;
7354 if(var_pdocnode2 == NULL) {
7355 var8 = 1;
7356 } else {
7357 if(cltype >= var_pdocnode2->type->table_size) {
7358 var8 = 0;
7359 } else {
7360 var8 = var_pdocnode2->type->type_table[cltype] == idtype;
7361 }
7362 }
7363 if (!var8) {
7364 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16253);
7365 exit(1);
7366 }
7367 var_pvisibilitynode4 = var_nodearraylist2;
7368 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
7369 cltype10 = type_nullable_parser_nodes__AVisibility.color;
7370 idtype11 = type_nullable_parser_nodes__AVisibility.id;
7371 if(var_pvisibilitynode4 == NULL) {
7372 var9 = 1;
7373 } else {
7374 if(cltype10 >= var_pvisibilitynode4->type->table_size) {
7375 var9 = 0;
7376 } else {
7377 var9 = var_pvisibilitynode4->type->type_table[cltype10] == idtype11;
7378 }
7379 }
7380 if (!var9) {
7381 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16255);
7382 exit(1);
7383 }
7384 var_tkwmethnode5 = var_nodearraylist3;
7385 /* <var_tkwmethnode5:nullable Object> isa nullable TKwmeth */
7386 cltype13 = type_nullable_parser_nodes__TKwmeth.color;
7387 idtype14 = type_nullable_parser_nodes__TKwmeth.id;
7388 if(var_tkwmethnode5 == NULL) {
7389 var12 = 1;
7390 } else {
7391 if(cltype13 >= var_tkwmethnode5->type->table_size) {
7392 var12 = 0;
7393 } else {
7394 var12 = var_tkwmethnode5->type->type_table[cltype13] == idtype14;
7395 }
7396 }
7397 if (!var12) {
7398 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16257);
7399 exit(1);
7400 }
7401 var_pmethidnode6 = var_nodearraylist4;
7402 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
7403 cltype16 = type_nullable_parser_nodes__AMethid.color;
7404 idtype17 = type_nullable_parser_nodes__AMethid.id;
7405 if(var_pmethidnode6 == NULL) {
7406 var15 = 1;
7407 } else {
7408 if(cltype16 >= var_pmethidnode6->type->table_size) {
7409 var15 = 0;
7410 } else {
7411 var15 = var_pmethidnode6->type->type_table[cltype16] == idtype17;
7412 }
7413 }
7414 if (!var15) {
7415 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16259);
7416 exit(1);
7417 }
7418 var_psignaturenode7 = var_nodearraylist5;
7419 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
7420 cltype19 = type_nullable_parser_nodes__ASignature.color;
7421 idtype20 = type_nullable_parser_nodes__ASignature.id;
7422 if(var_psignaturenode7 == NULL) {
7423 var18 = 1;
7424 } else {
7425 if(cltype19 >= var_psignaturenode7->type->table_size) {
7426 var18 = 0;
7427 } else {
7428 var18 = var_psignaturenode7->type->type_table[cltype19] == idtype20;
7429 }
7430 }
7431 if (!var18) {
7432 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16261);
7433 exit(1);
7434 }
7435 var21 = NEW_parser_nodes__ADeferredMethPropdef(&type_parser_nodes__ADeferredMethPropdef);
7436 var22 = NULL;
7437 var23 = NULL;
7438 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*))(var21->class->vft[COLOR_parser_prod__ADeferredMethPropdef__init_adeferredmethpropdef]))(var21, var_pdocnode2, var22, var_pvisibilitynode4, var_tkwmethnode5, var_pmethidnode6, var_psignaturenode7, var23) /* init_adeferredmethpropdef on <var21:ADeferredMethPropdef>*/;
7439 CHECK_NEW_parser_nodes__ADeferredMethPropdef(var21);
7440 var_ppropdefnode1 = var21;
7441 var_node_list = var_ppropdefnode1;
7442 var24 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction357> */
7443 var25 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var24) /* go_to on <var_p:Parser>*/;
7444 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var25, var_node_list) /* push on <var_p:Parser>*/;
7445 RET_LABEL:;
7446 }
7447 /* method parser#ReduceAction357#action for (self: Object, Parser) */
7448 void VIRTUAL_parser__ReduceAction357__action(val* self, val* p0) {
7449 parser__ReduceAction357__action(self, p0);
7450 RET_LABEL:;
7451 }
7452 /* method parser#ReduceAction358#action for (self: ReduceAction358, Parser) */
7453 void parser__ReduceAction358__action(val* self, val* p0) {
7454 val* var_p /* var p: Parser */;
7455 val* var /* : null */;
7456 val* var_node_list /* var node_list: nullable Object */;
7457 val* var1 /* : nullable Object */;
7458 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
7459 val* var2 /* : nullable Object */;
7460 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
7461 val* var3 /* : nullable Object */;
7462 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7463 val* var4 /* : nullable Object */;
7464 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7465 val* var5 /* : nullable Object */;
7466 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7467 val* var6 /* : nullable Object */;
7468 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7469 val* var7 /* : nullable Object */;
7470 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7471 val* var8 /* : nullable Object */;
7472 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7473 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
7474 short int var9 /* : Bool */;
7475 int cltype;
7476 int idtype;
7477 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
7478 short int var10 /* : Bool */;
7479 int cltype11;
7480 int idtype12;
7481 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
7482 short int var13 /* : Bool */;
7483 int cltype14;
7484 int idtype15;
7485 val* var_tkwmethnode5 /* var tkwmethnode5: nullable Object */;
7486 short int var16 /* : Bool */;
7487 int cltype17;
7488 int idtype18;
7489 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
7490 short int var19 /* : Bool */;
7491 int cltype20;
7492 int idtype21;
7493 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
7494 short int var22 /* : Bool */;
7495 int cltype23;
7496 int idtype24;
7497 val* var25 /* : ADeferredMethPropdef */;
7498 val* var26 /* : null */;
7499 val* var_ppropdefnode1 /* var ppropdefnode1: nullable ADeferredMethPropdef */;
7500 long var27 /* : Int */;
7501 long var28 /* : Int */;
7502 var_p = p0;
7503 var = NULL;
7504 var_node_list = var;
7505 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7506 var_nodearraylist8 = var1;
7507 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7508 var_nodearraylist7 = var2;
7509 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7510 var_nodearraylist6 = var3;
7511 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7512 var_nodearraylist5 = var4;
7513 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7514 var_nodearraylist4 = var5;
7515 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7516 var_nodearraylist3 = var6;
7517 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7518 var_nodearraylist2 = var7;
7519 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7520 var_nodearraylist1 = var8;
7521 var_pdocnode2 = var_nodearraylist1;
7522 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
7523 cltype = type_nullable_parser_nodes__ADoc.color;
7524 idtype = type_nullable_parser_nodes__ADoc.id;
7525 if(var_pdocnode2 == NULL) {
7526 var9 = 1;
7527 } else {
7528 if(cltype >= var_pdocnode2->type->table_size) {
7529 var9 = 0;
7530 } else {
7531 var9 = var_pdocnode2->type->type_table[cltype] == idtype;
7532 }
7533 }
7534 if (!var9) {
7535 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16289);
7536 exit(1);
7537 }
7538 var_tkwredefnode3 = var_nodearraylist2;
7539 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
7540 cltype11 = type_nullable_parser_nodes__TKwredef.color;
7541 idtype12 = type_nullable_parser_nodes__TKwredef.id;
7542 if(var_tkwredefnode3 == NULL) {
7543 var10 = 1;
7544 } else {
7545 if(cltype11 >= var_tkwredefnode3->type->table_size) {
7546 var10 = 0;
7547 } else {
7548 var10 = var_tkwredefnode3->type->type_table[cltype11] == idtype12;
7549 }
7550 }
7551 if (!var10) {
7552 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16291);
7553 exit(1);
7554 }
7555 var_pvisibilitynode4 = var_nodearraylist3;
7556 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
7557 cltype14 = type_nullable_parser_nodes__AVisibility.color;
7558 idtype15 = type_nullable_parser_nodes__AVisibility.id;
7559 if(var_pvisibilitynode4 == NULL) {
7560 var13 = 1;
7561 } else {
7562 if(cltype14 >= var_pvisibilitynode4->type->table_size) {
7563 var13 = 0;
7564 } else {
7565 var13 = var_pvisibilitynode4->type->type_table[cltype14] == idtype15;
7566 }
7567 }
7568 if (!var13) {
7569 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16293);
7570 exit(1);
7571 }
7572 var_tkwmethnode5 = var_nodearraylist4;
7573 /* <var_tkwmethnode5:nullable Object> isa nullable TKwmeth */
7574 cltype17 = type_nullable_parser_nodes__TKwmeth.color;
7575 idtype18 = type_nullable_parser_nodes__TKwmeth.id;
7576 if(var_tkwmethnode5 == NULL) {
7577 var16 = 1;
7578 } else {
7579 if(cltype17 >= var_tkwmethnode5->type->table_size) {
7580 var16 = 0;
7581 } else {
7582 var16 = var_tkwmethnode5->type->type_table[cltype17] == idtype18;
7583 }
7584 }
7585 if (!var16) {
7586 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16295);
7587 exit(1);
7588 }
7589 var_pmethidnode6 = var_nodearraylist5;
7590 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
7591 cltype20 = type_nullable_parser_nodes__AMethid.color;
7592 idtype21 = type_nullable_parser_nodes__AMethid.id;
7593 if(var_pmethidnode6 == NULL) {
7594 var19 = 1;
7595 } else {
7596 if(cltype20 >= var_pmethidnode6->type->table_size) {
7597 var19 = 0;
7598 } else {
7599 var19 = var_pmethidnode6->type->type_table[cltype20] == idtype21;
7600 }
7601 }
7602 if (!var19) {
7603 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16297);
7604 exit(1);
7605 }
7606 var_psignaturenode7 = var_nodearraylist6;
7607 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
7608 cltype23 = type_nullable_parser_nodes__ASignature.color;
7609 idtype24 = type_nullable_parser_nodes__ASignature.id;
7610 if(var_psignaturenode7 == NULL) {
7611 var22 = 1;
7612 } else {
7613 if(cltype23 >= var_psignaturenode7->type->table_size) {
7614 var22 = 0;
7615 } else {
7616 var22 = var_psignaturenode7->type->type_table[cltype23] == idtype24;
7617 }
7618 }
7619 if (!var22) {
7620 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16299);
7621 exit(1);
7622 }
7623 var25 = NEW_parser_nodes__ADeferredMethPropdef(&type_parser_nodes__ADeferredMethPropdef);
7624 var26 = NULL;
7625 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*))(var25->class->vft[COLOR_parser_prod__ADeferredMethPropdef__init_adeferredmethpropdef]))(var25, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwmethnode5, var_pmethidnode6, var_psignaturenode7, var26) /* init_adeferredmethpropdef on <var25:ADeferredMethPropdef>*/;
7626 CHECK_NEW_parser_nodes__ADeferredMethPropdef(var25);
7627 var_ppropdefnode1 = var25;
7628 var_node_list = var_ppropdefnode1;
7629 var27 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction358> */
7630 var28 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var27) /* go_to on <var_p:Parser>*/;
7631 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var28, var_node_list) /* push on <var_p:Parser>*/;
7632 RET_LABEL:;
7633 }
7634 /* method parser#ReduceAction358#action for (self: Object, Parser) */
7635 void VIRTUAL_parser__ReduceAction358__action(val* self, val* p0) {
7636 parser__ReduceAction358__action(self, p0);
7637 RET_LABEL:;
7638 }
7639 /* method parser#ReduceAction359#action for (self: ReduceAction359, Parser) */
7640 void parser__ReduceAction359__action(val* self, val* p0) {
7641 val* var_p /* var p: Parser */;
7642 val* var /* : null */;
7643 val* var_node_list /* var node_list: nullable Object */;
7644 val* var1 /* : nullable Object */;
7645 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
7646 val* var2 /* : nullable Object */;
7647 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7648 val* var3 /* : nullable Object */;
7649 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7650 val* var4 /* : nullable Object */;
7651 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7652 val* var5 /* : nullable Object */;
7653 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7654 val* var6 /* : nullable Object */;
7655 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7656 val* var7 /* : nullable Object */;
7657 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7658 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
7659 short int var8 /* : Bool */;
7660 int cltype;
7661 int idtype;
7662 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
7663 short int var9 /* : Bool */;
7664 int cltype10;
7665 int idtype11;
7666 val* var_tkwmethnode5 /* var tkwmethnode5: nullable Object */;
7667 short int var12 /* : Bool */;
7668 int cltype13;
7669 int idtype14;
7670 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
7671 short int var15 /* : Bool */;
7672 int cltype16;
7673 int idtype17;
7674 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
7675 short int var18 /* : Bool */;
7676 int cltype19;
7677 int idtype20;
7678 val* var21 /* : AInternMethPropdef */;
7679 val* var22 /* : null */;
7680 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AInternMethPropdef */;
7681 long var23 /* : Int */;
7682 long var24 /* : Int */;
7683 var_p = p0;
7684 var = NULL;
7685 var_node_list = var;
7686 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7687 var_nodearraylist7 = var1;
7688 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7689 var_nodearraylist6 = var2;
7690 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7691 var_nodearraylist5 = var3;
7692 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7693 var_nodearraylist4 = var4;
7694 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7695 var_nodearraylist3 = var5;
7696 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7697 var_nodearraylist2 = var6;
7698 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7699 var_nodearraylist1 = var7;
7700 var_pdocnode2 = var_nodearraylist1;
7701 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
7702 cltype = type_nullable_parser_nodes__ADoc.color;
7703 idtype = type_nullable_parser_nodes__ADoc.id;
7704 if(var_pdocnode2 == NULL) {
7705 var8 = 1;
7706 } else {
7707 if(cltype >= var_pdocnode2->type->table_size) {
7708 var8 = 0;
7709 } else {
7710 var8 = var_pdocnode2->type->type_table[cltype] == idtype;
7711 }
7712 }
7713 if (!var8) {
7714 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16326);
7715 exit(1);
7716 }
7717 var_pvisibilitynode4 = var_nodearraylist2;
7718 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
7719 cltype10 = type_nullable_parser_nodes__AVisibility.color;
7720 idtype11 = type_nullable_parser_nodes__AVisibility.id;
7721 if(var_pvisibilitynode4 == NULL) {
7722 var9 = 1;
7723 } else {
7724 if(cltype10 >= var_pvisibilitynode4->type->table_size) {
7725 var9 = 0;
7726 } else {
7727 var9 = var_pvisibilitynode4->type->type_table[cltype10] == idtype11;
7728 }
7729 }
7730 if (!var9) {
7731 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16328);
7732 exit(1);
7733 }
7734 var_tkwmethnode5 = var_nodearraylist3;
7735 /* <var_tkwmethnode5:nullable Object> isa nullable TKwmeth */
7736 cltype13 = type_nullable_parser_nodes__TKwmeth.color;
7737 idtype14 = type_nullable_parser_nodes__TKwmeth.id;
7738 if(var_tkwmethnode5 == NULL) {
7739 var12 = 1;
7740 } else {
7741 if(cltype13 >= var_tkwmethnode5->type->table_size) {
7742 var12 = 0;
7743 } else {
7744 var12 = var_tkwmethnode5->type->type_table[cltype13] == idtype14;
7745 }
7746 }
7747 if (!var12) {
7748 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16330);
7749 exit(1);
7750 }
7751 var_pmethidnode6 = var_nodearraylist4;
7752 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
7753 cltype16 = type_nullable_parser_nodes__AMethid.color;
7754 idtype17 = type_nullable_parser_nodes__AMethid.id;
7755 if(var_pmethidnode6 == NULL) {
7756 var15 = 1;
7757 } else {
7758 if(cltype16 >= var_pmethidnode6->type->table_size) {
7759 var15 = 0;
7760 } else {
7761 var15 = var_pmethidnode6->type->type_table[cltype16] == idtype17;
7762 }
7763 }
7764 if (!var15) {
7765 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16332);
7766 exit(1);
7767 }
7768 var_psignaturenode7 = var_nodearraylist5;
7769 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
7770 cltype19 = type_nullable_parser_nodes__ASignature.color;
7771 idtype20 = type_nullable_parser_nodes__ASignature.id;
7772 if(var_psignaturenode7 == NULL) {
7773 var18 = 1;
7774 } else {
7775 if(cltype19 >= var_psignaturenode7->type->table_size) {
7776 var18 = 0;
7777 } else {
7778 var18 = var_psignaturenode7->type->type_table[cltype19] == idtype20;
7779 }
7780 }
7781 if (!var18) {
7782 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16334);
7783 exit(1);
7784 }
7785 var21 = NEW_parser_nodes__AInternMethPropdef(&type_parser_nodes__AInternMethPropdef);
7786 var22 = NULL;
7787 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var21->class->vft[COLOR_parser_prod__AInternMethPropdef__init_ainternmethpropdef]))(var21, var_pdocnode2, var22, var_pvisibilitynode4, var_tkwmethnode5, var_pmethidnode6, var_psignaturenode7) /* init_ainternmethpropdef on <var21:AInternMethPropdef>*/;
7788 CHECK_NEW_parser_nodes__AInternMethPropdef(var21);
7789 var_ppropdefnode1 = var21;
7790 var_node_list = var_ppropdefnode1;
7791 var23 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction359> */
7792 var24 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var23) /* go_to on <var_p:Parser>*/;
7793 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var24, var_node_list) /* push on <var_p:Parser>*/;
7794 RET_LABEL:;
7795 }
7796 /* method parser#ReduceAction359#action for (self: Object, Parser) */
7797 void VIRTUAL_parser__ReduceAction359__action(val* self, val* p0) {
7798 parser__ReduceAction359__action(self, p0);
7799 RET_LABEL:;
7800 }
7801 /* method parser#ReduceAction360#action for (self: ReduceAction360, Parser) */
7802 void parser__ReduceAction360__action(val* self, val* p0) {
7803 val* var_p /* var p: Parser */;
7804 val* var /* : null */;
7805 val* var_node_list /* var node_list: nullable Object */;
7806 val* var1 /* : nullable Object */;
7807 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
7808 val* var2 /* : nullable Object */;
7809 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
7810 val* var3 /* : nullable Object */;
7811 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7812 val* var4 /* : nullable Object */;
7813 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7814 val* var5 /* : nullable Object */;
7815 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7816 val* var6 /* : nullable Object */;
7817 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7818 val* var7 /* : nullable Object */;
7819 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7820 val* var8 /* : nullable Object */;
7821 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7822 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
7823 short int var9 /* : Bool */;
7824 int cltype;
7825 int idtype;
7826 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
7827 short int var10 /* : Bool */;
7828 int cltype11;
7829 int idtype12;
7830 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
7831 short int var13 /* : Bool */;
7832 int cltype14;
7833 int idtype15;
7834 val* var_tkwmethnode5 /* var tkwmethnode5: nullable Object */;
7835 short int var16 /* : Bool */;
7836 int cltype17;
7837 int idtype18;
7838 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
7839 short int var19 /* : Bool */;
7840 int cltype20;
7841 int idtype21;
7842 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
7843 short int var22 /* : Bool */;
7844 int cltype23;
7845 int idtype24;
7846 val* var25 /* : AInternMethPropdef */;
7847 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AInternMethPropdef */;
7848 long var26 /* : Int */;
7849 long var27 /* : Int */;
7850 var_p = p0;
7851 var = NULL;
7852 var_node_list = var;
7853 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7854 var_nodearraylist8 = var1;
7855 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7856 var_nodearraylist7 = var2;
7857 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7858 var_nodearraylist6 = var3;
7859 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7860 var_nodearraylist5 = var4;
7861 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7862 var_nodearraylist4 = var5;
7863 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7864 var_nodearraylist3 = var6;
7865 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7866 var_nodearraylist2 = var7;
7867 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7868 var_nodearraylist1 = var8;
7869 var_pdocnode2 = var_nodearraylist1;
7870 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
7871 cltype = type_nullable_parser_nodes__ADoc.color;
7872 idtype = type_nullable_parser_nodes__ADoc.id;
7873 if(var_pdocnode2 == NULL) {
7874 var9 = 1;
7875 } else {
7876 if(cltype >= var_pdocnode2->type->table_size) {
7877 var9 = 0;
7878 } else {
7879 var9 = var_pdocnode2->type->type_table[cltype] == idtype;
7880 }
7881 }
7882 if (!var9) {
7883 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16361);
7884 exit(1);
7885 }
7886 var_tkwredefnode3 = var_nodearraylist2;
7887 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
7888 cltype11 = type_nullable_parser_nodes__TKwredef.color;
7889 idtype12 = type_nullable_parser_nodes__TKwredef.id;
7890 if(var_tkwredefnode3 == NULL) {
7891 var10 = 1;
7892 } else {
7893 if(cltype11 >= var_tkwredefnode3->type->table_size) {
7894 var10 = 0;
7895 } else {
7896 var10 = var_tkwredefnode3->type->type_table[cltype11] == idtype12;
7897 }
7898 }
7899 if (!var10) {
7900 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16363);
7901 exit(1);
7902 }
7903 var_pvisibilitynode4 = var_nodearraylist3;
7904 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
7905 cltype14 = type_nullable_parser_nodes__AVisibility.color;
7906 idtype15 = type_nullable_parser_nodes__AVisibility.id;
7907 if(var_pvisibilitynode4 == NULL) {
7908 var13 = 1;
7909 } else {
7910 if(cltype14 >= var_pvisibilitynode4->type->table_size) {
7911 var13 = 0;
7912 } else {
7913 var13 = var_pvisibilitynode4->type->type_table[cltype14] == idtype15;
7914 }
7915 }
7916 if (!var13) {
7917 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16365);
7918 exit(1);
7919 }
7920 var_tkwmethnode5 = var_nodearraylist4;
7921 /* <var_tkwmethnode5:nullable Object> isa nullable TKwmeth */
7922 cltype17 = type_nullable_parser_nodes__TKwmeth.color;
7923 idtype18 = type_nullable_parser_nodes__TKwmeth.id;
7924 if(var_tkwmethnode5 == NULL) {
7925 var16 = 1;
7926 } else {
7927 if(cltype17 >= var_tkwmethnode5->type->table_size) {
7928 var16 = 0;
7929 } else {
7930 var16 = var_tkwmethnode5->type->type_table[cltype17] == idtype18;
7931 }
7932 }
7933 if (!var16) {
7934 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16367);
7935 exit(1);
7936 }
7937 var_pmethidnode6 = var_nodearraylist5;
7938 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
7939 cltype20 = type_nullable_parser_nodes__AMethid.color;
7940 idtype21 = type_nullable_parser_nodes__AMethid.id;
7941 if(var_pmethidnode6 == NULL) {
7942 var19 = 1;
7943 } else {
7944 if(cltype20 >= var_pmethidnode6->type->table_size) {
7945 var19 = 0;
7946 } else {
7947 var19 = var_pmethidnode6->type->type_table[cltype20] == idtype21;
7948 }
7949 }
7950 if (!var19) {
7951 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16369);
7952 exit(1);
7953 }
7954 var_psignaturenode7 = var_nodearraylist6;
7955 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
7956 cltype23 = type_nullable_parser_nodes__ASignature.color;
7957 idtype24 = type_nullable_parser_nodes__ASignature.id;
7958 if(var_psignaturenode7 == NULL) {
7959 var22 = 1;
7960 } else {
7961 if(cltype23 >= var_psignaturenode7->type->table_size) {
7962 var22 = 0;
7963 } else {
7964 var22 = var_psignaturenode7->type->type_table[cltype23] == idtype24;
7965 }
7966 }
7967 if (!var22) {
7968 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16371);
7969 exit(1);
7970 }
7971 var25 = NEW_parser_nodes__AInternMethPropdef(&type_parser_nodes__AInternMethPropdef);
7972 ((void (*)(val*, val*, val*, val*, val*, val*, val*))(var25->class->vft[COLOR_parser_prod__AInternMethPropdef__init_ainternmethpropdef]))(var25, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwmethnode5, var_pmethidnode6, var_psignaturenode7) /* init_ainternmethpropdef on <var25:AInternMethPropdef>*/;
7973 CHECK_NEW_parser_nodes__AInternMethPropdef(var25);
7974 var_ppropdefnode1 = var25;
7975 var_node_list = var_ppropdefnode1;
7976 var26 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction360> */
7977 var27 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var26) /* go_to on <var_p:Parser>*/;
7978 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var27, var_node_list) /* push on <var_p:Parser>*/;
7979 RET_LABEL:;
7980 }
7981 /* method parser#ReduceAction360#action for (self: Object, Parser) */
7982 void VIRTUAL_parser__ReduceAction360__action(val* self, val* p0) {
7983 parser__ReduceAction360__action(self, p0);
7984 RET_LABEL:;
7985 }
7986 /* method parser#ReduceAction361#action for (self: ReduceAction361, Parser) */
7987 void parser__ReduceAction361__action(val* self, val* p0) {
7988 val* var_p /* var p: Parser */;
7989 val* var /* : null */;
7990 val* var_node_list /* var node_list: nullable Object */;
7991 val* var1 /* : nullable Object */;
7992 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
7993 val* var2 /* : nullable Object */;
7994 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7995 val* var3 /* : nullable Object */;
7996 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7997 val* var4 /* : nullable Object */;
7998 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7999 val* var5 /* : nullable Object */;
8000 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8001 val* var6 /* : nullable Object */;
8002 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8003 val* var7 /* : nullable Object */;
8004 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8005 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
8006 short int var8 /* : Bool */;
8007 int cltype;
8008 int idtype;
8009 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
8010 short int var9 /* : Bool */;
8011 int cltype10;
8012 int idtype11;
8013 val* var_tkwmethnode5 /* var tkwmethnode5: nullable Object */;
8014 short int var12 /* : Bool */;
8015 int cltype13;
8016 int idtype14;
8017 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
8018 short int var15 /* : Bool */;
8019 int cltype16;
8020 int idtype17;
8021 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
8022 short int var18 /* : Bool */;
8023 int cltype19;
8024 int idtype20;
8025 val* var21 /* : AExternMethPropdef */;
8026 val* var22 /* : null */;
8027 val* var23 /* : null */;
8028 val* var24 /* : null */;
8029 val* var25 /* : null */;
8030 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternMethPropdef */;
8031 long var26 /* : Int */;
8032 long var27 /* : Int */;
8033 var_p = p0;
8034 var = NULL;
8035 var_node_list = var;
8036 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8037 var_nodearraylist7 = var1;
8038 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8039 var_nodearraylist6 = var2;
8040 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8041 var_nodearraylist5 = var3;
8042 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8043 var_nodearraylist4 = var4;
8044 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8045 var_nodearraylist3 = var5;
8046 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8047 var_nodearraylist2 = var6;
8048 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8049 var_nodearraylist1 = var7;
8050 var_pdocnode2 = var_nodearraylist1;
8051 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
8052 cltype = type_nullable_parser_nodes__ADoc.color;
8053 idtype = type_nullable_parser_nodes__ADoc.id;
8054 if(var_pdocnode2 == NULL) {
8055 var8 = 1;
8056 } else {
8057 if(cltype >= var_pdocnode2->type->table_size) {
8058 var8 = 0;
8059 } else {
8060 var8 = var_pdocnode2->type->type_table[cltype] == idtype;
8061 }
8062 }
8063 if (!var8) {
8064 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16397);
8065 exit(1);
8066 }
8067 var_pvisibilitynode4 = var_nodearraylist2;
8068 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
8069 cltype10 = type_nullable_parser_nodes__AVisibility.color;
8070 idtype11 = type_nullable_parser_nodes__AVisibility.id;
8071 if(var_pvisibilitynode4 == NULL) {
8072 var9 = 1;
8073 } else {
8074 if(cltype10 >= var_pvisibilitynode4->type->table_size) {
8075 var9 = 0;
8076 } else {
8077 var9 = var_pvisibilitynode4->type->type_table[cltype10] == idtype11;
8078 }
8079 }
8080 if (!var9) {
8081 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16399);
8082 exit(1);
8083 }
8084 var_tkwmethnode5 = var_nodearraylist3;
8085 /* <var_tkwmethnode5:nullable Object> isa nullable TKwmeth */
8086 cltype13 = type_nullable_parser_nodes__TKwmeth.color;
8087 idtype14 = type_nullable_parser_nodes__TKwmeth.id;
8088 if(var_tkwmethnode5 == NULL) {
8089 var12 = 1;
8090 } else {
8091 if(cltype13 >= var_tkwmethnode5->type->table_size) {
8092 var12 = 0;
8093 } else {
8094 var12 = var_tkwmethnode5->type->type_table[cltype13] == idtype14;
8095 }
8096 }
8097 if (!var12) {
8098 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16401);
8099 exit(1);
8100 }
8101 var_pmethidnode6 = var_nodearraylist4;
8102 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
8103 cltype16 = type_nullable_parser_nodes__AMethid.color;
8104 idtype17 = type_nullable_parser_nodes__AMethid.id;
8105 if(var_pmethidnode6 == NULL) {
8106 var15 = 1;
8107 } else {
8108 if(cltype16 >= var_pmethidnode6->type->table_size) {
8109 var15 = 0;
8110 } else {
8111 var15 = var_pmethidnode6->type->type_table[cltype16] == idtype17;
8112 }
8113 }
8114 if (!var15) {
8115 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16403);
8116 exit(1);
8117 }
8118 var_psignaturenode7 = var_nodearraylist5;
8119 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
8120 cltype19 = type_nullable_parser_nodes__ASignature.color;
8121 idtype20 = type_nullable_parser_nodes__ASignature.id;
8122 if(var_psignaturenode7 == NULL) {
8123 var18 = 1;
8124 } else {
8125 if(cltype19 >= var_psignaturenode7->type->table_size) {
8126 var18 = 0;
8127 } else {
8128 var18 = var_psignaturenode7->type->type_table[cltype19] == idtype20;
8129 }
8130 }
8131 if (!var18) {
8132 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16405);
8133 exit(1);
8134 }
8135 var21 = NEW_parser_nodes__AExternMethPropdef(&type_parser_nodes__AExternMethPropdef);
8136 var22 = NULL;
8137 var23 = NULL;
8138 var24 = NULL;
8139 var25 = NULL;
8140 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var21->class->vft[COLOR_parser_prod__AExternMethPropdef__init_aexternmethpropdef]))(var21, var_pdocnode2, var22, var_pvisibilitynode4, var_tkwmethnode5, var_pmethidnode6, var_psignaturenode7, var23, var24, var25) /* init_aexternmethpropdef on <var21:AExternMethPropdef>*/;
8141 CHECK_NEW_parser_nodes__AExternMethPropdef(var21);
8142 var_ppropdefnode1 = var21;
8143 var_node_list = var_ppropdefnode1;
8144 var26 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction361> */
8145 var27 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var26) /* go_to on <var_p:Parser>*/;
8146 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var27, var_node_list) /* push on <var_p:Parser>*/;
8147 RET_LABEL:;
8148 }
8149 /* method parser#ReduceAction361#action for (self: Object, Parser) */
8150 void VIRTUAL_parser__ReduceAction361__action(val* self, val* p0) {
8151 parser__ReduceAction361__action(self, p0);
8152 RET_LABEL:;
8153 }
8154 /* method parser#ReduceAction362#action for (self: ReduceAction362, Parser) */
8155 void parser__ReduceAction362__action(val* self, val* p0) {
8156 val* var_p /* var p: Parser */;
8157 val* var /* : null */;
8158 val* var_node_list /* var node_list: nullable Object */;
8159 val* var1 /* : nullable Object */;
8160 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
8161 val* var2 /* : nullable Object */;
8162 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
8163 val* var3 /* : nullable Object */;
8164 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
8165 val* var4 /* : nullable Object */;
8166 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
8167 val* var5 /* : nullable Object */;
8168 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8169 val* var6 /* : nullable Object */;
8170 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8171 val* var7 /* : nullable Object */;
8172 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8173 val* var8 /* : nullable Object */;
8174 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8175 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
8176 short int var9 /* : Bool */;
8177 int cltype;
8178 int idtype;
8179 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
8180 short int var10 /* : Bool */;
8181 int cltype11;
8182 int idtype12;
8183 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
8184 short int var13 /* : Bool */;
8185 int cltype14;
8186 int idtype15;
8187 val* var_tkwmethnode5 /* var tkwmethnode5: nullable Object */;
8188 short int var16 /* : Bool */;
8189 int cltype17;
8190 int idtype18;
8191 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
8192 short int var19 /* : Bool */;
8193 int cltype20;
8194 int idtype21;
8195 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
8196 short int var22 /* : Bool */;
8197 int cltype23;
8198 int idtype24;
8199 val* var25 /* : AExternMethPropdef */;
8200 val* var26 /* : null */;
8201 val* var27 /* : null */;
8202 val* var28 /* : null */;
8203 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternMethPropdef */;
8204 long var29 /* : Int */;
8205 long var30 /* : Int */;
8206 var_p = p0;
8207 var = NULL;
8208 var_node_list = var;
8209 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8210 var_nodearraylist8 = var1;
8211 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8212 var_nodearraylist7 = var2;
8213 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8214 var_nodearraylist6 = var3;
8215 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8216 var_nodearraylist5 = var4;
8217 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8218 var_nodearraylist4 = var5;
8219 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8220 var_nodearraylist3 = var6;
8221 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8222 var_nodearraylist2 = var7;
8223 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8224 var_nodearraylist1 = var8;
8225 var_pdocnode2 = var_nodearraylist1;
8226 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
8227 cltype = type_nullable_parser_nodes__ADoc.color;
8228 idtype = type_nullable_parser_nodes__ADoc.id;
8229 if(var_pdocnode2 == NULL) {
8230 var9 = 1;
8231 } else {
8232 if(cltype >= var_pdocnode2->type->table_size) {
8233 var9 = 0;
8234 } else {
8235 var9 = var_pdocnode2->type->type_table[cltype] == idtype;
8236 }
8237 }
8238 if (!var9) {
8239 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16435);
8240 exit(1);
8241 }
8242 var_tkwredefnode3 = var_nodearraylist2;
8243 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
8244 cltype11 = type_nullable_parser_nodes__TKwredef.color;
8245 idtype12 = type_nullable_parser_nodes__TKwredef.id;
8246 if(var_tkwredefnode3 == NULL) {
8247 var10 = 1;
8248 } else {
8249 if(cltype11 >= var_tkwredefnode3->type->table_size) {
8250 var10 = 0;
8251 } else {
8252 var10 = var_tkwredefnode3->type->type_table[cltype11] == idtype12;
8253 }
8254 }
8255 if (!var10) {
8256 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16437);
8257 exit(1);
8258 }
8259 var_pvisibilitynode4 = var_nodearraylist3;
8260 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
8261 cltype14 = type_nullable_parser_nodes__AVisibility.color;
8262 idtype15 = type_nullable_parser_nodes__AVisibility.id;
8263 if(var_pvisibilitynode4 == NULL) {
8264 var13 = 1;
8265 } else {
8266 if(cltype14 >= var_pvisibilitynode4->type->table_size) {
8267 var13 = 0;
8268 } else {
8269 var13 = var_pvisibilitynode4->type->type_table[cltype14] == idtype15;
8270 }
8271 }
8272 if (!var13) {
8273 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16439);
8274 exit(1);
8275 }
8276 var_tkwmethnode5 = var_nodearraylist4;
8277 /* <var_tkwmethnode5:nullable Object> isa nullable TKwmeth */
8278 cltype17 = type_nullable_parser_nodes__TKwmeth.color;
8279 idtype18 = type_nullable_parser_nodes__TKwmeth.id;
8280 if(var_tkwmethnode5 == NULL) {
8281 var16 = 1;
8282 } else {
8283 if(cltype17 >= var_tkwmethnode5->type->table_size) {
8284 var16 = 0;
8285 } else {
8286 var16 = var_tkwmethnode5->type->type_table[cltype17] == idtype18;
8287 }
8288 }
8289 if (!var16) {
8290 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16441);
8291 exit(1);
8292 }
8293 var_pmethidnode6 = var_nodearraylist5;
8294 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
8295 cltype20 = type_nullable_parser_nodes__AMethid.color;
8296 idtype21 = type_nullable_parser_nodes__AMethid.id;
8297 if(var_pmethidnode6 == NULL) {
8298 var19 = 1;
8299 } else {
8300 if(cltype20 >= var_pmethidnode6->type->table_size) {
8301 var19 = 0;
8302 } else {
8303 var19 = var_pmethidnode6->type->type_table[cltype20] == idtype21;
8304 }
8305 }
8306 if (!var19) {
8307 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16443);
8308 exit(1);
8309 }
8310 var_psignaturenode7 = var_nodearraylist6;
8311 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
8312 cltype23 = type_nullable_parser_nodes__ASignature.color;
8313 idtype24 = type_nullable_parser_nodes__ASignature.id;
8314 if(var_psignaturenode7 == NULL) {
8315 var22 = 1;
8316 } else {
8317 if(cltype23 >= var_psignaturenode7->type->table_size) {
8318 var22 = 0;
8319 } else {
8320 var22 = var_psignaturenode7->type->type_table[cltype23] == idtype24;
8321 }
8322 }
8323 if (!var22) {
8324 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16445);
8325 exit(1);
8326 }
8327 var25 = NEW_parser_nodes__AExternMethPropdef(&type_parser_nodes__AExternMethPropdef);
8328 var26 = NULL;
8329 var27 = NULL;
8330 var28 = NULL;
8331 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var25->class->vft[COLOR_parser_prod__AExternMethPropdef__init_aexternmethpropdef]))(var25, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwmethnode5, var_pmethidnode6, var_psignaturenode7, var26, var27, var28) /* init_aexternmethpropdef on <var25:AExternMethPropdef>*/;
8332 CHECK_NEW_parser_nodes__AExternMethPropdef(var25);
8333 var_ppropdefnode1 = var25;
8334 var_node_list = var_ppropdefnode1;
8335 var29 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction362> */
8336 var30 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var29) /* go_to on <var_p:Parser>*/;
8337 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var30, var_node_list) /* push on <var_p:Parser>*/;
8338 RET_LABEL:;
8339 }
8340 /* method parser#ReduceAction362#action for (self: Object, Parser) */
8341 void VIRTUAL_parser__ReduceAction362__action(val* self, val* p0) {
8342 parser__ReduceAction362__action(self, p0);
8343 RET_LABEL:;
8344 }
8345 /* method parser#ReduceAction363#action for (self: ReduceAction363, Parser) */
8346 void parser__ReduceAction363__action(val* self, val* p0) {
8347 val* var_p /* var p: Parser */;
8348 val* var /* : null */;
8349 val* var_node_list /* var node_list: nullable Object */;
8350 val* var1 /* : nullable Object */;
8351 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
8352 val* var2 /* : nullable Object */;
8353 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
8354 val* var3 /* : nullable Object */;
8355 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
8356 val* var4 /* : nullable Object */;
8357 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
8358 val* var5 /* : nullable Object */;
8359 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8360 val* var6 /* : nullable Object */;
8361 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8362 val* var7 /* : nullable Object */;
8363 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8364 val* var8 /* : nullable Object */;
8365 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8366 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
8367 short int var9 /* : Bool */;
8368 int cltype;
8369 int idtype;
8370 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
8371 short int var10 /* : Bool */;
8372 int cltype11;
8373 int idtype12;
8374 val* var_tkwmethnode5 /* var tkwmethnode5: nullable Object */;
8375 short int var13 /* : Bool */;
8376 int cltype14;
8377 int idtype15;
8378 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
8379 short int var16 /* : Bool */;
8380 int cltype17;
8381 int idtype18;
8382 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
8383 short int var19 /* : Bool */;
8384 int cltype20;
8385 int idtype21;
8386 val* var_tstringnode8 /* var tstringnode8: nullable Object */;
8387 short int var22 /* : Bool */;
8388 int cltype23;
8389 int idtype24;
8390 val* var25 /* : AExternMethPropdef */;
8391 val* var26 /* : null */;
8392 val* var27 /* : null */;
8393 val* var28 /* : null */;
8394 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternMethPropdef */;
8395 long var29 /* : Int */;
8396 long var30 /* : Int */;
8397 var_p = p0;
8398 var = NULL;
8399 var_node_list = var;
8400 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8401 var_nodearraylist8 = var1;
8402 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8403 var_nodearraylist7 = var2;
8404 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8405 var_nodearraylist6 = var3;
8406 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8407 var_nodearraylist5 = var4;
8408 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8409 var_nodearraylist4 = var5;
8410 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8411 var_nodearraylist3 = var6;
8412 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8413 var_nodearraylist2 = var7;
8414 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8415 var_nodearraylist1 = var8;
8416 var_pdocnode2 = var_nodearraylist1;
8417 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
8418 cltype = type_nullable_parser_nodes__ADoc.color;
8419 idtype = type_nullable_parser_nodes__ADoc.id;
8420 if(var_pdocnode2 == NULL) {
8421 var9 = 1;
8422 } else {
8423 if(cltype >= var_pdocnode2->type->table_size) {
8424 var9 = 0;
8425 } else {
8426 var9 = var_pdocnode2->type->type_table[cltype] == idtype;
8427 }
8428 }
8429 if (!var9) {
8430 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16475);
8431 exit(1);
8432 }
8433 var_pvisibilitynode4 = var_nodearraylist2;
8434 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
8435 cltype11 = type_nullable_parser_nodes__AVisibility.color;
8436 idtype12 = type_nullable_parser_nodes__AVisibility.id;
8437 if(var_pvisibilitynode4 == NULL) {
8438 var10 = 1;
8439 } else {
8440 if(cltype11 >= var_pvisibilitynode4->type->table_size) {
8441 var10 = 0;
8442 } else {
8443 var10 = var_pvisibilitynode4->type->type_table[cltype11] == idtype12;
8444 }
8445 }
8446 if (!var10) {
8447 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16477);
8448 exit(1);
8449 }
8450 var_tkwmethnode5 = var_nodearraylist3;
8451 /* <var_tkwmethnode5:nullable Object> isa nullable TKwmeth */
8452 cltype14 = type_nullable_parser_nodes__TKwmeth.color;
8453 idtype15 = type_nullable_parser_nodes__TKwmeth.id;
8454 if(var_tkwmethnode5 == NULL) {
8455 var13 = 1;
8456 } else {
8457 if(cltype14 >= var_tkwmethnode5->type->table_size) {
8458 var13 = 0;
8459 } else {
8460 var13 = var_tkwmethnode5->type->type_table[cltype14] == idtype15;
8461 }
8462 }
8463 if (!var13) {
8464 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16479);
8465 exit(1);
8466 }
8467 var_pmethidnode6 = var_nodearraylist4;
8468 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
8469 cltype17 = type_nullable_parser_nodes__AMethid.color;
8470 idtype18 = type_nullable_parser_nodes__AMethid.id;
8471 if(var_pmethidnode6 == NULL) {
8472 var16 = 1;
8473 } else {
8474 if(cltype17 >= var_pmethidnode6->type->table_size) {
8475 var16 = 0;
8476 } else {
8477 var16 = var_pmethidnode6->type->type_table[cltype17] == idtype18;
8478 }
8479 }
8480 if (!var16) {
8481 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16481);
8482 exit(1);
8483 }
8484 var_psignaturenode7 = var_nodearraylist5;
8485 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
8486 cltype20 = type_nullable_parser_nodes__ASignature.color;
8487 idtype21 = type_nullable_parser_nodes__ASignature.id;
8488 if(var_psignaturenode7 == NULL) {
8489 var19 = 1;
8490 } else {
8491 if(cltype20 >= var_psignaturenode7->type->table_size) {
8492 var19 = 0;
8493 } else {
8494 var19 = var_psignaturenode7->type->type_table[cltype20] == idtype21;
8495 }
8496 }
8497 if (!var19) {
8498 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16483);
8499 exit(1);
8500 }
8501 var_tstringnode8 = var_nodearraylist8;
8502 /* <var_tstringnode8:nullable Object> isa nullable TString */
8503 cltype23 = type_nullable_parser_nodes__TString.color;
8504 idtype24 = type_nullable_parser_nodes__TString.id;
8505 if(var_tstringnode8 == NULL) {
8506 var22 = 1;
8507 } else {
8508 if(cltype23 >= var_tstringnode8->type->table_size) {
8509 var22 = 0;
8510 } else {
8511 var22 = var_tstringnode8->type->type_table[cltype23] == idtype24;
8512 }
8513 }
8514 if (!var22) {
8515 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16485);
8516 exit(1);
8517 }
8518 var25 = NEW_parser_nodes__AExternMethPropdef(&type_parser_nodes__AExternMethPropdef);
8519 var26 = NULL;
8520 var27 = NULL;
8521 var28 = NULL;
8522 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var25->class->vft[COLOR_parser_prod__AExternMethPropdef__init_aexternmethpropdef]))(var25, var_pdocnode2, var26, var_pvisibilitynode4, var_tkwmethnode5, var_pmethidnode6, var_psignaturenode7, var_tstringnode8, var27, var28) /* init_aexternmethpropdef on <var25:AExternMethPropdef>*/;
8523 CHECK_NEW_parser_nodes__AExternMethPropdef(var25);
8524 var_ppropdefnode1 = var25;
8525 var_node_list = var_ppropdefnode1;
8526 var29 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction363> */
8527 var30 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var29) /* go_to on <var_p:Parser>*/;
8528 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var30, var_node_list) /* push on <var_p:Parser>*/;
8529 RET_LABEL:;
8530 }
8531 /* method parser#ReduceAction363#action for (self: Object, Parser) */
8532 void VIRTUAL_parser__ReduceAction363__action(val* self, val* p0) {
8533 parser__ReduceAction363__action(self, p0);
8534 RET_LABEL:;
8535 }
8536 /* method parser#ReduceAction364#action for (self: ReduceAction364, Parser) */
8537 void parser__ReduceAction364__action(val* self, val* p0) {
8538 val* var_p /* var p: Parser */;
8539 val* var /* : null */;
8540 val* var_node_list /* var node_list: nullable Object */;
8541 val* var1 /* : nullable Object */;
8542 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
8543 val* var2 /* : nullable Object */;
8544 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
8545 val* var3 /* : nullable Object */;
8546 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
8547 val* var4 /* : nullable Object */;
8548 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
8549 val* var5 /* : nullable Object */;
8550 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
8551 val* var6 /* : nullable Object */;
8552 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8553 val* var7 /* : nullable Object */;
8554 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8555 val* var8 /* : nullable Object */;
8556 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8557 val* var9 /* : nullable Object */;
8558 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8559 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
8560 short int var10 /* : Bool */;
8561 int cltype;
8562 int idtype;
8563 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
8564 short int var11 /* : Bool */;
8565 int cltype12;
8566 int idtype13;
8567 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
8568 short int var14 /* : Bool */;
8569 int cltype15;
8570 int idtype16;
8571 val* var_tkwmethnode5 /* var tkwmethnode5: nullable Object */;
8572 short int var17 /* : Bool */;
8573 int cltype18;
8574 int idtype19;
8575 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
8576 short int var20 /* : Bool */;
8577 int cltype21;
8578 int idtype22;
8579 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
8580 short int var23 /* : Bool */;
8581 int cltype24;
8582 int idtype25;
8583 val* var_tstringnode8 /* var tstringnode8: nullable Object */;
8584 short int var26 /* : Bool */;
8585 int cltype27;
8586 int idtype28;
8587 val* var29 /* : AExternMethPropdef */;
8588 val* var30 /* : null */;
8589 val* var31 /* : null */;
8590 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternMethPropdef */;
8591 long var32 /* : Int */;
8592 long var33 /* : Int */;
8593 var_p = p0;
8594 var = NULL;
8595 var_node_list = var;
8596 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8597 var_nodearraylist9 = var1;
8598 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8599 var_nodearraylist8 = var2;
8600 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8601 var_nodearraylist7 = var3;
8602 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8603 var_nodearraylist6 = var4;
8604 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8605 var_nodearraylist5 = var5;
8606 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8607 var_nodearraylist4 = var6;
8608 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8609 var_nodearraylist3 = var7;
8610 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8611 var_nodearraylist2 = var8;
8612 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8613 var_nodearraylist1 = var9;
8614 var_pdocnode2 = var_nodearraylist1;
8615 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
8616 cltype = type_nullable_parser_nodes__ADoc.color;
8617 idtype = type_nullable_parser_nodes__ADoc.id;
8618 if(var_pdocnode2 == NULL) {
8619 var10 = 1;
8620 } else {
8621 if(cltype >= var_pdocnode2->type->table_size) {
8622 var10 = 0;
8623 } else {
8624 var10 = var_pdocnode2->type->type_table[cltype] == idtype;
8625 }
8626 }
8627 if (!var10) {
8628 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16516);
8629 exit(1);
8630 }
8631 var_tkwredefnode3 = var_nodearraylist2;
8632 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
8633 cltype12 = type_nullable_parser_nodes__TKwredef.color;
8634 idtype13 = type_nullable_parser_nodes__TKwredef.id;
8635 if(var_tkwredefnode3 == NULL) {
8636 var11 = 1;
8637 } else {
8638 if(cltype12 >= var_tkwredefnode3->type->table_size) {
8639 var11 = 0;
8640 } else {
8641 var11 = var_tkwredefnode3->type->type_table[cltype12] == idtype13;
8642 }
8643 }
8644 if (!var11) {
8645 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16518);
8646 exit(1);
8647 }
8648 var_pvisibilitynode4 = var_nodearraylist3;
8649 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
8650 cltype15 = type_nullable_parser_nodes__AVisibility.color;
8651 idtype16 = type_nullable_parser_nodes__AVisibility.id;
8652 if(var_pvisibilitynode4 == NULL) {
8653 var14 = 1;
8654 } else {
8655 if(cltype15 >= var_pvisibilitynode4->type->table_size) {
8656 var14 = 0;
8657 } else {
8658 var14 = var_pvisibilitynode4->type->type_table[cltype15] == idtype16;
8659 }
8660 }
8661 if (!var14) {
8662 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16520);
8663 exit(1);
8664 }
8665 var_tkwmethnode5 = var_nodearraylist4;
8666 /* <var_tkwmethnode5:nullable Object> isa nullable TKwmeth */
8667 cltype18 = type_nullable_parser_nodes__TKwmeth.color;
8668 idtype19 = type_nullable_parser_nodes__TKwmeth.id;
8669 if(var_tkwmethnode5 == NULL) {
8670 var17 = 1;
8671 } else {
8672 if(cltype18 >= var_tkwmethnode5->type->table_size) {
8673 var17 = 0;
8674 } else {
8675 var17 = var_tkwmethnode5->type->type_table[cltype18] == idtype19;
8676 }
8677 }
8678 if (!var17) {
8679 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16522);
8680 exit(1);
8681 }
8682 var_pmethidnode6 = var_nodearraylist5;
8683 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
8684 cltype21 = type_nullable_parser_nodes__AMethid.color;
8685 idtype22 = type_nullable_parser_nodes__AMethid.id;
8686 if(var_pmethidnode6 == NULL) {
8687 var20 = 1;
8688 } else {
8689 if(cltype21 >= var_pmethidnode6->type->table_size) {
8690 var20 = 0;
8691 } else {
8692 var20 = var_pmethidnode6->type->type_table[cltype21] == idtype22;
8693 }
8694 }
8695 if (!var20) {
8696 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16524);
8697 exit(1);
8698 }
8699 var_psignaturenode7 = var_nodearraylist6;
8700 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
8701 cltype24 = type_nullable_parser_nodes__ASignature.color;
8702 idtype25 = type_nullable_parser_nodes__ASignature.id;
8703 if(var_psignaturenode7 == NULL) {
8704 var23 = 1;
8705 } else {
8706 if(cltype24 >= var_psignaturenode7->type->table_size) {
8707 var23 = 0;
8708 } else {
8709 var23 = var_psignaturenode7->type->type_table[cltype24] == idtype25;
8710 }
8711 }
8712 if (!var23) {
8713 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16526);
8714 exit(1);
8715 }
8716 var_tstringnode8 = var_nodearraylist9;
8717 /* <var_tstringnode8:nullable Object> isa nullable TString */
8718 cltype27 = type_nullable_parser_nodes__TString.color;
8719 idtype28 = type_nullable_parser_nodes__TString.id;
8720 if(var_tstringnode8 == NULL) {
8721 var26 = 1;
8722 } else {
8723 if(cltype27 >= var_tstringnode8->type->table_size) {
8724 var26 = 0;
8725 } else {
8726 var26 = var_tstringnode8->type->type_table[cltype27] == idtype28;
8727 }
8728 }
8729 if (!var26) {
8730 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16528);
8731 exit(1);
8732 }
8733 var29 = NEW_parser_nodes__AExternMethPropdef(&type_parser_nodes__AExternMethPropdef);
8734 var30 = NULL;
8735 var31 = NULL;
8736 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var29->class->vft[COLOR_parser_prod__AExternMethPropdef__init_aexternmethpropdef]))(var29, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwmethnode5, var_pmethidnode6, var_psignaturenode7, var_tstringnode8, var30, var31) /* init_aexternmethpropdef on <var29:AExternMethPropdef>*/;
8737 CHECK_NEW_parser_nodes__AExternMethPropdef(var29);
8738 var_ppropdefnode1 = var29;
8739 var_node_list = var_ppropdefnode1;
8740 var32 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction364> */
8741 var33 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var32) /* go_to on <var_p:Parser>*/;
8742 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var33, var_node_list) /* push on <var_p:Parser>*/;
8743 RET_LABEL:;
8744 }
8745 /* method parser#ReduceAction364#action for (self: Object, Parser) */
8746 void VIRTUAL_parser__ReduceAction364__action(val* self, val* p0) {
8747 parser__ReduceAction364__action(self, p0);
8748 RET_LABEL:;
8749 }
8750 /* method parser#ReduceAction365#action for (self: ReduceAction365, Parser) */
8751 void parser__ReduceAction365__action(val* self, val* p0) {
8752 val* var_p /* var p: Parser */;
8753 val* var /* : null */;
8754 val* var_node_list /* var node_list: nullable Object */;
8755 val* var1 /* : nullable Object */;
8756 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
8757 val* var2 /* : nullable Object */;
8758 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
8759 val* var3 /* : nullable Object */;
8760 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
8761 val* var4 /* : nullable Object */;
8762 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
8763 val* var5 /* : nullable Object */;
8764 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8765 val* var6 /* : nullable Object */;
8766 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8767 val* var7 /* : nullable Object */;
8768 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8769 val* var8 /* : nullable Object */;
8770 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8771 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
8772 short int var9 /* : Bool */;
8773 int cltype;
8774 int idtype;
8775 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
8776 short int var10 /* : Bool */;
8777 int cltype11;
8778 int idtype12;
8779 val* var_tkwmethnode5 /* var tkwmethnode5: nullable Object */;
8780 short int var13 /* : Bool */;
8781 int cltype14;
8782 int idtype15;
8783 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
8784 short int var16 /* : Bool */;
8785 int cltype17;
8786 int idtype18;
8787 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
8788 short int var19 /* : Bool */;
8789 int cltype20;
8790 int idtype21;
8791 val* var_pexterncallsnode9 /* var pexterncallsnode9: nullable Object */;
8792 short int var22 /* : Bool */;
8793 int cltype23;
8794 int idtype24;
8795 val* var25 /* : AExternMethPropdef */;
8796 val* var26 /* : null */;
8797 val* var27 /* : null */;
8798 val* var28 /* : null */;
8799 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternMethPropdef */;
8800 long var29 /* : Int */;
8801 long var30 /* : Int */;
8802 var_p = p0;
8803 var = NULL;
8804 var_node_list = var;
8805 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8806 var_nodearraylist8 = var1;
8807 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8808 var_nodearraylist7 = var2;
8809 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8810 var_nodearraylist6 = var3;
8811 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8812 var_nodearraylist5 = var4;
8813 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8814 var_nodearraylist4 = var5;
8815 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8816 var_nodearraylist3 = var6;
8817 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8818 var_nodearraylist2 = var7;
8819 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8820 var_nodearraylist1 = var8;
8821 var_pdocnode2 = var_nodearraylist1;
8822 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
8823 cltype = type_nullable_parser_nodes__ADoc.color;
8824 idtype = type_nullable_parser_nodes__ADoc.id;
8825 if(var_pdocnode2 == NULL) {
8826 var9 = 1;
8827 } else {
8828 if(cltype >= var_pdocnode2->type->table_size) {
8829 var9 = 0;
8830 } else {
8831 var9 = var_pdocnode2->type->type_table[cltype] == idtype;
8832 }
8833 }
8834 if (!var9) {
8835 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16558);
8836 exit(1);
8837 }
8838 var_pvisibilitynode4 = var_nodearraylist2;
8839 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
8840 cltype11 = type_nullable_parser_nodes__AVisibility.color;
8841 idtype12 = type_nullable_parser_nodes__AVisibility.id;
8842 if(var_pvisibilitynode4 == NULL) {
8843 var10 = 1;
8844 } else {
8845 if(cltype11 >= var_pvisibilitynode4->type->table_size) {
8846 var10 = 0;
8847 } else {
8848 var10 = var_pvisibilitynode4->type->type_table[cltype11] == idtype12;
8849 }
8850 }
8851 if (!var10) {
8852 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16560);
8853 exit(1);
8854 }
8855 var_tkwmethnode5 = var_nodearraylist3;
8856 /* <var_tkwmethnode5:nullable Object> isa nullable TKwmeth */
8857 cltype14 = type_nullable_parser_nodes__TKwmeth.color;
8858 idtype15 = type_nullable_parser_nodes__TKwmeth.id;
8859 if(var_tkwmethnode5 == NULL) {
8860 var13 = 1;
8861 } else {
8862 if(cltype14 >= var_tkwmethnode5->type->table_size) {
8863 var13 = 0;
8864 } else {
8865 var13 = var_tkwmethnode5->type->type_table[cltype14] == idtype15;
8866 }
8867 }
8868 if (!var13) {
8869 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16562);
8870 exit(1);
8871 }
8872 var_pmethidnode6 = var_nodearraylist4;
8873 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
8874 cltype17 = type_nullable_parser_nodes__AMethid.color;
8875 idtype18 = type_nullable_parser_nodes__AMethid.id;
8876 if(var_pmethidnode6 == NULL) {
8877 var16 = 1;
8878 } else {
8879 if(cltype17 >= var_pmethidnode6->type->table_size) {
8880 var16 = 0;
8881 } else {
8882 var16 = var_pmethidnode6->type->type_table[cltype17] == idtype18;
8883 }
8884 }
8885 if (!var16) {
8886 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16564);
8887 exit(1);
8888 }
8889 var_psignaturenode7 = var_nodearraylist5;
8890 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
8891 cltype20 = type_nullable_parser_nodes__ASignature.color;
8892 idtype21 = type_nullable_parser_nodes__ASignature.id;
8893 if(var_psignaturenode7 == NULL) {
8894 var19 = 1;
8895 } else {
8896 if(cltype20 >= var_psignaturenode7->type->table_size) {
8897 var19 = 0;
8898 } else {
8899 var19 = var_psignaturenode7->type->type_table[cltype20] == idtype21;
8900 }
8901 }
8902 if (!var19) {
8903 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16566);
8904 exit(1);
8905 }
8906 var_pexterncallsnode9 = var_nodearraylist8;
8907 /* <var_pexterncallsnode9:nullable Object> isa nullable AExternCalls */
8908 cltype23 = type_nullable_parser_nodes__AExternCalls.color;
8909 idtype24 = type_nullable_parser_nodes__AExternCalls.id;
8910 if(var_pexterncallsnode9 == NULL) {
8911 var22 = 1;
8912 } else {
8913 if(cltype23 >= var_pexterncallsnode9->type->table_size) {
8914 var22 = 0;
8915 } else {
8916 var22 = var_pexterncallsnode9->type->type_table[cltype23] == idtype24;
8917 }
8918 }
8919 if (!var22) {
8920 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16568);
8921 exit(1);
8922 }
8923 var25 = NEW_parser_nodes__AExternMethPropdef(&type_parser_nodes__AExternMethPropdef);
8924 var26 = NULL;
8925 var27 = NULL;
8926 var28 = NULL;
8927 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var25->class->vft[COLOR_parser_prod__AExternMethPropdef__init_aexternmethpropdef]))(var25, var_pdocnode2, var26, var_pvisibilitynode4, var_tkwmethnode5, var_pmethidnode6, var_psignaturenode7, var27, var_pexterncallsnode9, var28) /* init_aexternmethpropdef on <var25:AExternMethPropdef>*/;
8928 CHECK_NEW_parser_nodes__AExternMethPropdef(var25);
8929 var_ppropdefnode1 = var25;
8930 var_node_list = var_ppropdefnode1;
8931 var29 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction365> */
8932 var30 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var29) /* go_to on <var_p:Parser>*/;
8933 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var30, var_node_list) /* push on <var_p:Parser>*/;
8934 RET_LABEL:;
8935 }
8936 /* method parser#ReduceAction365#action for (self: Object, Parser) */
8937 void VIRTUAL_parser__ReduceAction365__action(val* self, val* p0) {
8938 parser__ReduceAction365__action(self, p0);
8939 RET_LABEL:;
8940 }
8941 /* method parser#ReduceAction366#action for (self: ReduceAction366, Parser) */
8942 void parser__ReduceAction366__action(val* self, val* p0) {
8943 val* var_p /* var p: Parser */;
8944 val* var /* : null */;
8945 val* var_node_list /* var node_list: nullable Object */;
8946 val* var1 /* : nullable Object */;
8947 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
8948 val* var2 /* : nullable Object */;
8949 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
8950 val* var3 /* : nullable Object */;
8951 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
8952 val* var4 /* : nullable Object */;
8953 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
8954 val* var5 /* : nullable Object */;
8955 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
8956 val* var6 /* : nullable Object */;
8957 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8958 val* var7 /* : nullable Object */;
8959 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8960 val* var8 /* : nullable Object */;
8961 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8962 val* var9 /* : nullable Object */;
8963 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8964 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
8965 short int var10 /* : Bool */;
8966 int cltype;
8967 int idtype;
8968 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
8969 short int var11 /* : Bool */;
8970 int cltype12;
8971 int idtype13;
8972 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
8973 short int var14 /* : Bool */;
8974 int cltype15;
8975 int idtype16;
8976 val* var_tkwmethnode5 /* var tkwmethnode5: nullable Object */;
8977 short int var17 /* : Bool */;
8978 int cltype18;
8979 int idtype19;
8980 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
8981 short int var20 /* : Bool */;
8982 int cltype21;
8983 int idtype22;
8984 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
8985 short int var23 /* : Bool */;
8986 int cltype24;
8987 int idtype25;
8988 val* var_pexterncallsnode9 /* var pexterncallsnode9: nullable Object */;
8989 short int var26 /* : Bool */;
8990 int cltype27;
8991 int idtype28;
8992 val* var29 /* : AExternMethPropdef */;
8993 val* var30 /* : null */;
8994 val* var31 /* : null */;
8995 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternMethPropdef */;
8996 long var32 /* : Int */;
8997 long var33 /* : Int */;
8998 var_p = p0;
8999 var = NULL;
9000 var_node_list = var;
9001 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9002 var_nodearraylist9 = var1;
9003 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9004 var_nodearraylist8 = var2;
9005 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9006 var_nodearraylist7 = var3;
9007 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9008 var_nodearraylist6 = var4;
9009 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9010 var_nodearraylist5 = var5;
9011 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9012 var_nodearraylist4 = var6;
9013 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9014 var_nodearraylist3 = var7;
9015 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9016 var_nodearraylist2 = var8;
9017 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9018 var_nodearraylist1 = var9;
9019 var_pdocnode2 = var_nodearraylist1;
9020 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
9021 cltype = type_nullable_parser_nodes__ADoc.color;
9022 idtype = type_nullable_parser_nodes__ADoc.id;
9023 if(var_pdocnode2 == NULL) {
9024 var10 = 1;
9025 } else {
9026 if(cltype >= var_pdocnode2->type->table_size) {
9027 var10 = 0;
9028 } else {
9029 var10 = var_pdocnode2->type->type_table[cltype] == idtype;
9030 }
9031 }
9032 if (!var10) {
9033 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16599);
9034 exit(1);
9035 }
9036 var_tkwredefnode3 = var_nodearraylist2;
9037 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
9038 cltype12 = type_nullable_parser_nodes__TKwredef.color;
9039 idtype13 = type_nullable_parser_nodes__TKwredef.id;
9040 if(var_tkwredefnode3 == NULL) {
9041 var11 = 1;
9042 } else {
9043 if(cltype12 >= var_tkwredefnode3->type->table_size) {
9044 var11 = 0;
9045 } else {
9046 var11 = var_tkwredefnode3->type->type_table[cltype12] == idtype13;
9047 }
9048 }
9049 if (!var11) {
9050 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16601);
9051 exit(1);
9052 }
9053 var_pvisibilitynode4 = var_nodearraylist3;
9054 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
9055 cltype15 = type_nullable_parser_nodes__AVisibility.color;
9056 idtype16 = type_nullable_parser_nodes__AVisibility.id;
9057 if(var_pvisibilitynode4 == NULL) {
9058 var14 = 1;
9059 } else {
9060 if(cltype15 >= var_pvisibilitynode4->type->table_size) {
9061 var14 = 0;
9062 } else {
9063 var14 = var_pvisibilitynode4->type->type_table[cltype15] == idtype16;
9064 }
9065 }
9066 if (!var14) {
9067 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16603);
9068 exit(1);
9069 }
9070 var_tkwmethnode5 = var_nodearraylist4;
9071 /* <var_tkwmethnode5:nullable Object> isa nullable TKwmeth */
9072 cltype18 = type_nullable_parser_nodes__TKwmeth.color;
9073 idtype19 = type_nullable_parser_nodes__TKwmeth.id;
9074 if(var_tkwmethnode5 == NULL) {
9075 var17 = 1;
9076 } else {
9077 if(cltype18 >= var_tkwmethnode5->type->table_size) {
9078 var17 = 0;
9079 } else {
9080 var17 = var_tkwmethnode5->type->type_table[cltype18] == idtype19;
9081 }
9082 }
9083 if (!var17) {
9084 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16605);
9085 exit(1);
9086 }
9087 var_pmethidnode6 = var_nodearraylist5;
9088 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
9089 cltype21 = type_nullable_parser_nodes__AMethid.color;
9090 idtype22 = type_nullable_parser_nodes__AMethid.id;
9091 if(var_pmethidnode6 == NULL) {
9092 var20 = 1;
9093 } else {
9094 if(cltype21 >= var_pmethidnode6->type->table_size) {
9095 var20 = 0;
9096 } else {
9097 var20 = var_pmethidnode6->type->type_table[cltype21] == idtype22;
9098 }
9099 }
9100 if (!var20) {
9101 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16607);
9102 exit(1);
9103 }
9104 var_psignaturenode7 = var_nodearraylist6;
9105 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
9106 cltype24 = type_nullable_parser_nodes__ASignature.color;
9107 idtype25 = type_nullable_parser_nodes__ASignature.id;
9108 if(var_psignaturenode7 == NULL) {
9109 var23 = 1;
9110 } else {
9111 if(cltype24 >= var_psignaturenode7->type->table_size) {
9112 var23 = 0;
9113 } else {
9114 var23 = var_psignaturenode7->type->type_table[cltype24] == idtype25;
9115 }
9116 }
9117 if (!var23) {
9118 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16609);
9119 exit(1);
9120 }
9121 var_pexterncallsnode9 = var_nodearraylist9;
9122 /* <var_pexterncallsnode9:nullable Object> isa nullable AExternCalls */
9123 cltype27 = type_nullable_parser_nodes__AExternCalls.color;
9124 idtype28 = type_nullable_parser_nodes__AExternCalls.id;
9125 if(var_pexterncallsnode9 == NULL) {
9126 var26 = 1;
9127 } else {
9128 if(cltype27 >= var_pexterncallsnode9->type->table_size) {
9129 var26 = 0;
9130 } else {
9131 var26 = var_pexterncallsnode9->type->type_table[cltype27] == idtype28;
9132 }
9133 }
9134 if (!var26) {
9135 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16611);
9136 exit(1);
9137 }
9138 var29 = NEW_parser_nodes__AExternMethPropdef(&type_parser_nodes__AExternMethPropdef);
9139 var30 = NULL;
9140 var31 = NULL;
9141 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var29->class->vft[COLOR_parser_prod__AExternMethPropdef__init_aexternmethpropdef]))(var29, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwmethnode5, var_pmethidnode6, var_psignaturenode7, var30, var_pexterncallsnode9, var31) /* init_aexternmethpropdef on <var29:AExternMethPropdef>*/;
9142 CHECK_NEW_parser_nodes__AExternMethPropdef(var29);
9143 var_ppropdefnode1 = var29;
9144 var_node_list = var_ppropdefnode1;
9145 var32 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction366> */
9146 var33 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var32) /* go_to on <var_p:Parser>*/;
9147 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var33, var_node_list) /* push on <var_p:Parser>*/;
9148 RET_LABEL:;
9149 }
9150 /* method parser#ReduceAction366#action for (self: Object, Parser) */
9151 void VIRTUAL_parser__ReduceAction366__action(val* self, val* p0) {
9152 parser__ReduceAction366__action(self, p0);
9153 RET_LABEL:;
9154 }
9155 /* method parser#ReduceAction367#action for (self: ReduceAction367, Parser) */
9156 void parser__ReduceAction367__action(val* self, val* p0) {
9157 val* var_p /* var p: Parser */;
9158 val* var /* : null */;
9159 val* var_node_list /* var node_list: nullable Object */;
9160 val* var1 /* : nullable Object */;
9161 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
9162 val* var2 /* : nullable Object */;
9163 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
9164 val* var3 /* : nullable Object */;
9165 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
9166 val* var4 /* : nullable Object */;
9167 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
9168 val* var5 /* : nullable Object */;
9169 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9170 val* var6 /* : nullable Object */;
9171 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9172 val* var7 /* : nullable Object */;
9173 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9174 val* var8 /* : nullable Object */;
9175 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9176 val* var9 /* : nullable Object */;
9177 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9178 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
9179 short int var10 /* : Bool */;
9180 int cltype;
9181 int idtype;
9182 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
9183 short int var11 /* : Bool */;
9184 int cltype12;
9185 int idtype13;
9186 val* var_tkwmethnode5 /* var tkwmethnode5: nullable Object */;
9187 short int var14 /* : Bool */;
9188 int cltype15;
9189 int idtype16;
9190 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
9191 short int var17 /* : Bool */;
9192 int cltype18;
9193 int idtype19;
9194 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
9195 short int var20 /* : Bool */;
9196 int cltype21;
9197 int idtype22;
9198 val* var_tstringnode8 /* var tstringnode8: nullable Object */;
9199 short int var23 /* : Bool */;
9200 int cltype24;
9201 int idtype25;
9202 val* var_pexterncallsnode9 /* var pexterncallsnode9: nullable Object */;
9203 short int var26 /* : Bool */;
9204 int cltype27;
9205 int idtype28;
9206 val* var29 /* : AExternMethPropdef */;
9207 val* var30 /* : null */;
9208 val* var31 /* : null */;
9209 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternMethPropdef */;
9210 long var32 /* : Int */;
9211 long var33 /* : Int */;
9212 var_p = p0;
9213 var = NULL;
9214 var_node_list = var;
9215 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9216 var_nodearraylist9 = var1;
9217 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9218 var_nodearraylist8 = var2;
9219 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9220 var_nodearraylist7 = var3;
9221 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9222 var_nodearraylist6 = var4;
9223 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9224 var_nodearraylist5 = var5;
9225 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9226 var_nodearraylist4 = var6;
9227 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9228 var_nodearraylist3 = var7;
9229 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9230 var_nodearraylist2 = var8;
9231 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9232 var_nodearraylist1 = var9;
9233 var_pdocnode2 = var_nodearraylist1;
9234 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
9235 cltype = type_nullable_parser_nodes__ADoc.color;
9236 idtype = type_nullable_parser_nodes__ADoc.id;
9237 if(var_pdocnode2 == NULL) {
9238 var10 = 1;
9239 } else {
9240 if(cltype >= var_pdocnode2->type->table_size) {
9241 var10 = 0;
9242 } else {
9243 var10 = var_pdocnode2->type->type_table[cltype] == idtype;
9244 }
9245 }
9246 if (!var10) {
9247 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16642);
9248 exit(1);
9249 }
9250 var_pvisibilitynode4 = var_nodearraylist2;
9251 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
9252 cltype12 = type_nullable_parser_nodes__AVisibility.color;
9253 idtype13 = type_nullable_parser_nodes__AVisibility.id;
9254 if(var_pvisibilitynode4 == NULL) {
9255 var11 = 1;
9256 } else {
9257 if(cltype12 >= var_pvisibilitynode4->type->table_size) {
9258 var11 = 0;
9259 } else {
9260 var11 = var_pvisibilitynode4->type->type_table[cltype12] == idtype13;
9261 }
9262 }
9263 if (!var11) {
9264 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16644);
9265 exit(1);
9266 }
9267 var_tkwmethnode5 = var_nodearraylist3;
9268 /* <var_tkwmethnode5:nullable Object> isa nullable TKwmeth */
9269 cltype15 = type_nullable_parser_nodes__TKwmeth.color;
9270 idtype16 = type_nullable_parser_nodes__TKwmeth.id;
9271 if(var_tkwmethnode5 == NULL) {
9272 var14 = 1;
9273 } else {
9274 if(cltype15 >= var_tkwmethnode5->type->table_size) {
9275 var14 = 0;
9276 } else {
9277 var14 = var_tkwmethnode5->type->type_table[cltype15] == idtype16;
9278 }
9279 }
9280 if (!var14) {
9281 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16646);
9282 exit(1);
9283 }
9284 var_pmethidnode6 = var_nodearraylist4;
9285 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
9286 cltype18 = type_nullable_parser_nodes__AMethid.color;
9287 idtype19 = type_nullable_parser_nodes__AMethid.id;
9288 if(var_pmethidnode6 == NULL) {
9289 var17 = 1;
9290 } else {
9291 if(cltype18 >= var_pmethidnode6->type->table_size) {
9292 var17 = 0;
9293 } else {
9294 var17 = var_pmethidnode6->type->type_table[cltype18] == idtype19;
9295 }
9296 }
9297 if (!var17) {
9298 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16648);
9299 exit(1);
9300 }
9301 var_psignaturenode7 = var_nodearraylist5;
9302 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
9303 cltype21 = type_nullable_parser_nodes__ASignature.color;
9304 idtype22 = type_nullable_parser_nodes__ASignature.id;
9305 if(var_psignaturenode7 == NULL) {
9306 var20 = 1;
9307 } else {
9308 if(cltype21 >= var_psignaturenode7->type->table_size) {
9309 var20 = 0;
9310 } else {
9311 var20 = var_psignaturenode7->type->type_table[cltype21] == idtype22;
9312 }
9313 }
9314 if (!var20) {
9315 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16650);
9316 exit(1);
9317 }
9318 var_tstringnode8 = var_nodearraylist8;
9319 /* <var_tstringnode8:nullable Object> isa nullable TString */
9320 cltype24 = type_nullable_parser_nodes__TString.color;
9321 idtype25 = type_nullable_parser_nodes__TString.id;
9322 if(var_tstringnode8 == NULL) {
9323 var23 = 1;
9324 } else {
9325 if(cltype24 >= var_tstringnode8->type->table_size) {
9326 var23 = 0;
9327 } else {
9328 var23 = var_tstringnode8->type->type_table[cltype24] == idtype25;
9329 }
9330 }
9331 if (!var23) {
9332 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16652);
9333 exit(1);
9334 }
9335 var_pexterncallsnode9 = var_nodearraylist9;
9336 /* <var_pexterncallsnode9:nullable Object> isa nullable AExternCalls */
9337 cltype27 = type_nullable_parser_nodes__AExternCalls.color;
9338 idtype28 = type_nullable_parser_nodes__AExternCalls.id;
9339 if(var_pexterncallsnode9 == NULL) {
9340 var26 = 1;
9341 } else {
9342 if(cltype27 >= var_pexterncallsnode9->type->table_size) {
9343 var26 = 0;
9344 } else {
9345 var26 = var_pexterncallsnode9->type->type_table[cltype27] == idtype28;
9346 }
9347 }
9348 if (!var26) {
9349 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16654);
9350 exit(1);
9351 }
9352 var29 = NEW_parser_nodes__AExternMethPropdef(&type_parser_nodes__AExternMethPropdef);
9353 var30 = NULL;
9354 var31 = NULL;
9355 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var29->class->vft[COLOR_parser_prod__AExternMethPropdef__init_aexternmethpropdef]))(var29, var_pdocnode2, var30, var_pvisibilitynode4, var_tkwmethnode5, var_pmethidnode6, var_psignaturenode7, var_tstringnode8, var_pexterncallsnode9, var31) /* init_aexternmethpropdef on <var29:AExternMethPropdef>*/;
9356 CHECK_NEW_parser_nodes__AExternMethPropdef(var29);
9357 var_ppropdefnode1 = var29;
9358 var_node_list = var_ppropdefnode1;
9359 var32 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction367> */
9360 var33 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var32) /* go_to on <var_p:Parser>*/;
9361 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var33, var_node_list) /* push on <var_p:Parser>*/;
9362 RET_LABEL:;
9363 }
9364 /* method parser#ReduceAction367#action for (self: Object, Parser) */
9365 void VIRTUAL_parser__ReduceAction367__action(val* self, val* p0) {
9366 parser__ReduceAction367__action(self, p0);
9367 RET_LABEL:;
9368 }
9369 /* method parser#ReduceAction368#action for (self: ReduceAction368, Parser) */
9370 void parser__ReduceAction368__action(val* self, val* p0) {
9371 val* var_p /* var p: Parser */;
9372 val* var /* : null */;
9373 val* var_node_list /* var node_list: nullable Object */;
9374 val* var1 /* : nullable Object */;
9375 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
9376 val* var2 /* : nullable Object */;
9377 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
9378 val* var3 /* : nullable Object */;
9379 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
9380 val* var4 /* : nullable Object */;
9381 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
9382 val* var5 /* : nullable Object */;
9383 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
9384 val* var6 /* : nullable Object */;
9385 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9386 val* var7 /* : nullable Object */;
9387 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9388 val* var8 /* : nullable Object */;
9389 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9390 val* var9 /* : nullable Object */;
9391 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9392 val* var10 /* : nullable Object */;
9393 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9394 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
9395 short int var11 /* : Bool */;
9396 int cltype;
9397 int idtype;
9398 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
9399 short int var12 /* : Bool */;
9400 int cltype13;
9401 int idtype14;
9402 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
9403 short int var15 /* : Bool */;
9404 int cltype16;
9405 int idtype17;
9406 val* var_tkwmethnode5 /* var tkwmethnode5: nullable Object */;
9407 short int var18 /* : Bool */;
9408 int cltype19;
9409 int idtype20;
9410 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
9411 short int var21 /* : Bool */;
9412 int cltype22;
9413 int idtype23;
9414 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
9415 short int var24 /* : Bool */;
9416 int cltype25;
9417 int idtype26;
9418 val* var_tstringnode8 /* var tstringnode8: nullable Object */;
9419 short int var27 /* : Bool */;
9420 int cltype28;
9421 int idtype29;
9422 val* var_pexterncallsnode9 /* var pexterncallsnode9: nullable Object */;
9423 short int var30 /* : Bool */;
9424 int cltype31;
9425 int idtype32;
9426 val* var33 /* : AExternMethPropdef */;
9427 val* var34 /* : null */;
9428 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternMethPropdef */;
9429 long var35 /* : Int */;
9430 long var36 /* : Int */;
9431 var_p = p0;
9432 var = NULL;
9433 var_node_list = var;
9434 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9435 var_nodearraylist10 = var1;
9436 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9437 var_nodearraylist9 = var2;
9438 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9439 var_nodearraylist8 = var3;
9440 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9441 var_nodearraylist7 = var4;
9442 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9443 var_nodearraylist6 = var5;
9444 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9445 var_nodearraylist5 = var6;
9446 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9447 var_nodearraylist4 = var7;
9448 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9449 var_nodearraylist3 = var8;
9450 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9451 var_nodearraylist2 = var9;
9452 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9453 var_nodearraylist1 = var10;
9454 var_pdocnode2 = var_nodearraylist1;
9455 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
9456 cltype = type_nullable_parser_nodes__ADoc.color;
9457 idtype = type_nullable_parser_nodes__ADoc.id;
9458 if(var_pdocnode2 == NULL) {
9459 var11 = 1;
9460 } else {
9461 if(cltype >= var_pdocnode2->type->table_size) {
9462 var11 = 0;
9463 } else {
9464 var11 = var_pdocnode2->type->type_table[cltype] == idtype;
9465 }
9466 }
9467 if (!var11) {
9468 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16686);
9469 exit(1);
9470 }
9471 var_tkwredefnode3 = var_nodearraylist2;
9472 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
9473 cltype13 = type_nullable_parser_nodes__TKwredef.color;
9474 idtype14 = type_nullable_parser_nodes__TKwredef.id;
9475 if(var_tkwredefnode3 == NULL) {
9476 var12 = 1;
9477 } else {
9478 if(cltype13 >= var_tkwredefnode3->type->table_size) {
9479 var12 = 0;
9480 } else {
9481 var12 = var_tkwredefnode3->type->type_table[cltype13] == idtype14;
9482 }
9483 }
9484 if (!var12) {
9485 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16688);
9486 exit(1);
9487 }
9488 var_pvisibilitynode4 = var_nodearraylist3;
9489 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
9490 cltype16 = type_nullable_parser_nodes__AVisibility.color;
9491 idtype17 = type_nullable_parser_nodes__AVisibility.id;
9492 if(var_pvisibilitynode4 == NULL) {
9493 var15 = 1;
9494 } else {
9495 if(cltype16 >= var_pvisibilitynode4->type->table_size) {
9496 var15 = 0;
9497 } else {
9498 var15 = var_pvisibilitynode4->type->type_table[cltype16] == idtype17;
9499 }
9500 }
9501 if (!var15) {
9502 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16690);
9503 exit(1);
9504 }
9505 var_tkwmethnode5 = var_nodearraylist4;
9506 /* <var_tkwmethnode5:nullable Object> isa nullable TKwmeth */
9507 cltype19 = type_nullable_parser_nodes__TKwmeth.color;
9508 idtype20 = type_nullable_parser_nodes__TKwmeth.id;
9509 if(var_tkwmethnode5 == NULL) {
9510 var18 = 1;
9511 } else {
9512 if(cltype19 >= var_tkwmethnode5->type->table_size) {
9513 var18 = 0;
9514 } else {
9515 var18 = var_tkwmethnode5->type->type_table[cltype19] == idtype20;
9516 }
9517 }
9518 if (!var18) {
9519 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16692);
9520 exit(1);
9521 }
9522 var_pmethidnode6 = var_nodearraylist5;
9523 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
9524 cltype22 = type_nullable_parser_nodes__AMethid.color;
9525 idtype23 = type_nullable_parser_nodes__AMethid.id;
9526 if(var_pmethidnode6 == NULL) {
9527 var21 = 1;
9528 } else {
9529 if(cltype22 >= var_pmethidnode6->type->table_size) {
9530 var21 = 0;
9531 } else {
9532 var21 = var_pmethidnode6->type->type_table[cltype22] == idtype23;
9533 }
9534 }
9535 if (!var21) {
9536 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16694);
9537 exit(1);
9538 }
9539 var_psignaturenode7 = var_nodearraylist6;
9540 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
9541 cltype25 = type_nullable_parser_nodes__ASignature.color;
9542 idtype26 = type_nullable_parser_nodes__ASignature.id;
9543 if(var_psignaturenode7 == NULL) {
9544 var24 = 1;
9545 } else {
9546 if(cltype25 >= var_psignaturenode7->type->table_size) {
9547 var24 = 0;
9548 } else {
9549 var24 = var_psignaturenode7->type->type_table[cltype25] == idtype26;
9550 }
9551 }
9552 if (!var24) {
9553 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16696);
9554 exit(1);
9555 }
9556 var_tstringnode8 = var_nodearraylist9;
9557 /* <var_tstringnode8:nullable Object> isa nullable TString */
9558 cltype28 = type_nullable_parser_nodes__TString.color;
9559 idtype29 = type_nullable_parser_nodes__TString.id;
9560 if(var_tstringnode8 == NULL) {
9561 var27 = 1;
9562 } else {
9563 if(cltype28 >= var_tstringnode8->type->table_size) {
9564 var27 = 0;
9565 } else {
9566 var27 = var_tstringnode8->type->type_table[cltype28] == idtype29;
9567 }
9568 }
9569 if (!var27) {
9570 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16698);
9571 exit(1);
9572 }
9573 var_pexterncallsnode9 = var_nodearraylist10;
9574 /* <var_pexterncallsnode9:nullable Object> isa nullable AExternCalls */
9575 cltype31 = type_nullable_parser_nodes__AExternCalls.color;
9576 idtype32 = type_nullable_parser_nodes__AExternCalls.id;
9577 if(var_pexterncallsnode9 == NULL) {
9578 var30 = 1;
9579 } else {
9580 if(cltype31 >= var_pexterncallsnode9->type->table_size) {
9581 var30 = 0;
9582 } else {
9583 var30 = var_pexterncallsnode9->type->type_table[cltype31] == idtype32;
9584 }
9585 }
9586 if (!var30) {
9587 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16700);
9588 exit(1);
9589 }
9590 var33 = NEW_parser_nodes__AExternMethPropdef(&type_parser_nodes__AExternMethPropdef);
9591 var34 = NULL;
9592 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var33->class->vft[COLOR_parser_prod__AExternMethPropdef__init_aexternmethpropdef]))(var33, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwmethnode5, var_pmethidnode6, var_psignaturenode7, var_tstringnode8, var_pexterncallsnode9, var34) /* init_aexternmethpropdef on <var33:AExternMethPropdef>*/;
9593 CHECK_NEW_parser_nodes__AExternMethPropdef(var33);
9594 var_ppropdefnode1 = var33;
9595 var_node_list = var_ppropdefnode1;
9596 var35 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction368> */
9597 var36 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var35) /* go_to on <var_p:Parser>*/;
9598 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var36, var_node_list) /* push on <var_p:Parser>*/;
9599 RET_LABEL:;
9600 }
9601 /* method parser#ReduceAction368#action for (self: Object, Parser) */
9602 void VIRTUAL_parser__ReduceAction368__action(val* self, val* p0) {
9603 parser__ReduceAction368__action(self, p0);
9604 RET_LABEL:;
9605 }
9606 /* method parser#ReduceAction369#action for (self: ReduceAction369, Parser) */
9607 void parser__ReduceAction369__action(val* self, val* p0) {
9608 val* var_p /* var p: Parser */;
9609 val* var /* : null */;
9610 val* var_node_list /* var node_list: nullable Object */;
9611 val* var1 /* : nullable Object */;
9612 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
9613 val* var2 /* : nullable Object */;
9614 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
9615 val* var3 /* : nullable Object */;
9616 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
9617 val* var4 /* : nullable Object */;
9618 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9619 val* var5 /* : nullable Object */;
9620 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9621 val* var6 /* : nullable Object */;
9622 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9623 val* var7 /* : nullable Object */;
9624 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9625 val* var8 /* : nullable Object */;
9626 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9627 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
9628 short int var9 /* : Bool */;
9629 int cltype;
9630 int idtype;
9631 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
9632 short int var10 /* : Bool */;
9633 int cltype11;
9634 int idtype12;
9635 val* var_tkwmethnode5 /* var tkwmethnode5: nullable Object */;
9636 short int var13 /* : Bool */;
9637 int cltype14;
9638 int idtype15;
9639 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
9640 short int var16 /* : Bool */;
9641 int cltype17;
9642 int idtype18;
9643 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
9644 short int var19 /* : Bool */;
9645 int cltype20;
9646 int idtype21;
9647 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
9648 short int var22 /* : Bool */;
9649 int cltype23;
9650 int idtype24;
9651 val* var25 /* : AExternMethPropdef */;
9652 val* var26 /* : null */;
9653 val* var27 /* : null */;
9654 val* var28 /* : null */;
9655 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternMethPropdef */;
9656 long var29 /* : Int */;
9657 long var30 /* : Int */;
9658 var_p = p0;
9659 var = NULL;
9660 var_node_list = var;
9661 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9662 var_nodearraylist8 = var1;
9663 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9664 var_nodearraylist7 = var2;
9665 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9666 var_nodearraylist6 = var3;
9667 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9668 var_nodearraylist5 = var4;
9669 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9670 var_nodearraylist4 = var5;
9671 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9672 var_nodearraylist3 = var6;
9673 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9674 var_nodearraylist2 = var7;
9675 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9676 var_nodearraylist1 = var8;
9677 var_pdocnode2 = var_nodearraylist1;
9678 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
9679 cltype = type_nullable_parser_nodes__ADoc.color;
9680 idtype = type_nullable_parser_nodes__ADoc.id;
9681 if(var_pdocnode2 == NULL) {
9682 var9 = 1;
9683 } else {
9684 if(cltype >= var_pdocnode2->type->table_size) {
9685 var9 = 0;
9686 } else {
9687 var9 = var_pdocnode2->type->type_table[cltype] == idtype;
9688 }
9689 }
9690 if (!var9) {
9691 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16730);
9692 exit(1);
9693 }
9694 var_pvisibilitynode4 = var_nodearraylist2;
9695 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
9696 cltype11 = type_nullable_parser_nodes__AVisibility.color;
9697 idtype12 = type_nullable_parser_nodes__AVisibility.id;
9698 if(var_pvisibilitynode4 == NULL) {
9699 var10 = 1;
9700 } else {
9701 if(cltype11 >= var_pvisibilitynode4->type->table_size) {
9702 var10 = 0;
9703 } else {
9704 var10 = var_pvisibilitynode4->type->type_table[cltype11] == idtype12;
9705 }
9706 }
9707 if (!var10) {
9708 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16732);
9709 exit(1);
9710 }
9711 var_tkwmethnode5 = var_nodearraylist3;
9712 /* <var_tkwmethnode5:nullable Object> isa nullable TKwmeth */
9713 cltype14 = type_nullable_parser_nodes__TKwmeth.color;
9714 idtype15 = type_nullable_parser_nodes__TKwmeth.id;
9715 if(var_tkwmethnode5 == NULL) {
9716 var13 = 1;
9717 } else {
9718 if(cltype14 >= var_tkwmethnode5->type->table_size) {
9719 var13 = 0;
9720 } else {
9721 var13 = var_tkwmethnode5->type->type_table[cltype14] == idtype15;
9722 }
9723 }
9724 if (!var13) {
9725 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16734);
9726 exit(1);
9727 }
9728 var_pmethidnode6 = var_nodearraylist4;
9729 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
9730 cltype17 = type_nullable_parser_nodes__AMethid.color;
9731 idtype18 = type_nullable_parser_nodes__AMethid.id;
9732 if(var_pmethidnode6 == NULL) {
9733 var16 = 1;
9734 } else {
9735 if(cltype17 >= var_pmethidnode6->type->table_size) {
9736 var16 = 0;
9737 } else {
9738 var16 = var_pmethidnode6->type->type_table[cltype17] == idtype18;
9739 }
9740 }
9741 if (!var16) {
9742 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16736);
9743 exit(1);
9744 }
9745 var_psignaturenode7 = var_nodearraylist5;
9746 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
9747 cltype20 = type_nullable_parser_nodes__ASignature.color;
9748 idtype21 = type_nullable_parser_nodes__ASignature.id;
9749 if(var_psignaturenode7 == NULL) {
9750 var19 = 1;
9751 } else {
9752 if(cltype20 >= var_psignaturenode7->type->table_size) {
9753 var19 = 0;
9754 } else {
9755 var19 = var_psignaturenode7->type->type_table[cltype20] == idtype21;
9756 }
9757 }
9758 if (!var19) {
9759 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16738);
9760 exit(1);
9761 }
9762 var_pexterncodeblocknode10 = var_nodearraylist8;
9763 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
9764 cltype23 = type_nullable_parser_nodes__AExternCodeBlock.color;
9765 idtype24 = type_nullable_parser_nodes__AExternCodeBlock.id;
9766 if(var_pexterncodeblocknode10 == NULL) {
9767 var22 = 1;
9768 } else {
9769 if(cltype23 >= var_pexterncodeblocknode10->type->table_size) {
9770 var22 = 0;
9771 } else {
9772 var22 = var_pexterncodeblocknode10->type->type_table[cltype23] == idtype24;
9773 }
9774 }
9775 if (!var22) {
9776 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 16740);
9777 exit(1);
9778 }
9779 var25 = NEW_parser_nodes__AExternMethPropdef(&type_parser_nodes__AExternMethPropdef);
9780 var26 = NULL;
9781 var27 = NULL;
9782 var28 = NULL;
9783 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var25->class->vft[COLOR_parser_prod__AExternMethPropdef__init_aexternmethpropdef]))(var25, var_pdocnode2, var26, var_pvisibilitynode4, var_tkwmethnode5, var_pmethidnode6, var_psignaturenode7, var27, var28, var_pexterncodeblocknode10) /* init_aexternmethpropdef on <var25:AExternMethPropdef>*/;
9784 CHECK_NEW_parser_nodes__AExternMethPropdef(var25);
9785 var_ppropdefnode1 = var25;
9786 var_node_list = var_ppropdefnode1;
9787 var29 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction369> */
9788 var30 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var29) /* go_to on <var_p:Parser>*/;
9789 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var30, var_node_list) /* push on <var_p:Parser>*/;
9790 RET_LABEL:;
9791 }
9792 /* method parser#ReduceAction369#action for (self: Object, Parser) */
9793 void VIRTUAL_parser__ReduceAction369__action(val* self, val* p0) {
9794 parser__ReduceAction369__action(self, p0);
9795 RET_LABEL:;
9796 }